Пример #1
0
def setUp():
    global ed
    from Vision.VPE import VisualProgramingEnvironment
    ed = VisualProgramingEnvironment(
        name='Vision',
        withShell=0,
    )
    ed.master.update_idletasks()
    ed.configure(withThreads=0)
Пример #2
0
def setUp():
    global ed
    ed = VisualProgramingEnvironment("test individual molkit nodes",
                                     withShell=0,
                                     visibleWidth=400,
                                     visibleHeight=300)

    ed.root.update()
    ed.configure(withThreads=0)
    ed.addLibraryInstance(molkitlib, 'MolKit.VisionInterface.MolKitNodes',
                          'molkitlib')
    ed.root.update()
Пример #3
0
    def doit(self):
        if self.root is None:
            self.root = Tkinter.Toplevel()
            self.root.withdraw()

            # the vision font must be decided in vision or _visionrc, not here anymore
            #            if 'changeFont' in self.vf.commands.keys():
            #                currentFont = self.vf.changeFont.getCurrentFont()
            #                self.ed = VisualProgramingEnvironment(
            #                    master=self.root, font=currentFont, withShell=0)
            #            else:
            self.ed = VisualProgramingEnvironment(master=self.root,
                                                  withShell=0)

            self.root.protocol("WM_DELETE_WINDOW", self.hide)

            if getResourceFolder() is None:
                self.ed.loadLibModule('Vision.StandardNodes')
            else:
                self.ed.sourceFile(resourceFile='_visionrc')
                self.ed.updateFastLibs()

            filemenu = self.ed.menuButtons['File'].menu
            filemenu.entryconfig(filemenu.index('Quit'), command=self.hide)
            # let Vision know which PMV instance runs it
            self.ed.vf = self.vf

            # add handle to Pmv library instance
            from Pmv.VisionInterface.PmvNodes import pmvlib
            self.lib = pmvlib

            # initialize the API between PMV and Vision
            self.vf.visionAPI.setEditor(self.ed)
            self.vf.visionAPI.setLibrary(self.lib)

            # add Pmv library to Vision
            self.ed.addLibraryInstance(pmvlib, 'Pmv.VisionInterface.PmvNodes',
                                       'pmvlib')

            # add Standard library to Vision
            from Vision.StandardNodes import stdlib
            self.ed.addLibraryInstance(stdlib, 'Vision.StandardNodes',
                                       'stdlib')

            # add MolKit library to Vision if needed
            if len(self.vf.Mols):
                from MolKit.VisionInterface.MolKitNodes import molkitlib
                self.ed.addLibraryInstance(
                    molkitlib, 'MolKit.VisionInterface.MolKitNodes',
                    'molkitlib')

            # add molecule nodes to Pmv library if molecules were loaded in
            # Pmv before Vision was started
            for obj, name, kw in self.vf.visionAPI.objects:
                self.vf.visionAPI.addNodeToLibrary(obj, name, kw)

            # is ARTK running? if so, we need to add the library and nodes
            if hasattr(self.vf, 'art') and self.vf.art.visionAPI is not None:
                visionAPI = self.vf.art.visionAPI
                visionAPI.setEditor(self.ed)
                from ARViewer.VisionInterface.ARNodes import artlib
                visionAPI.setLibrary(artlib)
                visionAPI.ed.addLibraryInstance(
                    artlib, 'ARTK.VisionInterface.ARNodes', 'artlib')
                # add nodes to ARTK library
                for obj, name, kw in visionAPI.objects:
                    visionAPI.addNodeToLibrary(obj, name, kw)

                # and add link to ARViewer
                self.ed.art = self.vf.art

        elif self.vf.GUI.toolbarCheckbuttons['Vision']['Variable'].get(
        ) == 0 and self.root:
            self.root.withdraw()
        elif self.vf.GUI.toolbarCheckbuttons['Vision']['Variable'].get(
        ) == 1 and self.root:
            self.root.deiconify()

        ##################################################################
        # FIXME:
        # Workaround: currently, Vision would crash on some Windows2000 and SGI
        # when running multi-threaded. We turn MT off by default
        ##################################################################
        #if sys.platform == 'win32' or sys.platform == 'irix646':
        self.ed.configure(withThreads=0)