Esempio n. 1
0
 def __addMenuItem__(self, name, command, parent, enabled=1, accelerator=None):
     """Adds a new menu item
     name (string) - name for the menu item
     command (function) - command to be runned on item click
     parent (string) - name of the parent menu
     enabled (boolean) - if true the item can be clicked
     accelerator (char) - key to be used has a keyboard shortcut"""
     self.actions[name]=command
     mi=swing.JMenuItem(name)
     mi.actionPerformed=lambda e: self.__menuAction__(e, command)
     mi.setEnabled(enabled)
     if accelerator:
         mi.setAccelerator(getKeyStroke(accelerator, KeyEvent.CTRL_MASK))
     self.menu[parent][name]=mi
     self.menu[parent]['menu'].add(mi)
Esempio n. 2
0
 def __addMenuItem__(self,
                     name,
                     command,
                     parent,
                     enabled=1,
                     accelerator=None):
     """Adds a new menu item
     name (string) - name for the menu item
     command (function) - command to be runned on item click
     parent (string) - name of the parent menu
     enabled (boolean) - if true the item can be clicked
     accelerator (char) - key to be used has a keyboard shortcut"""
     self.actions[name] = command
     mi = swing.JMenuItem(name)
     mi.actionPerformed = lambda e: self.__menuAction__(e, command)
     mi.setEnabled(enabled)
     if accelerator:
         mi.setAccelerator(getKeyStroke(accelerator, KeyEvent.CTRL_MASK))
     self.menu[parent][name] = mi
     self.menu[parent]['menu'].add(mi)
Esempio n. 3
0
    def __init__(self, locals={}, doc_url={'default' : "file:///C:/java2/docs/api"}, size=(640, 480), exitOnClose=0, ownFrame=1, filename="untitled.py"):
        #~ def show_in_frame(self, ):
        self.locals=locals
        self.tempdir=tempfile.mkdtemp('_Py4IJSandbox_')
        sys.path.append(self.tempdir)
        
        def close_frame(event):
            w = event.getWindow()
            w.dispose()
        def exit_app(event):
            #sys.exit(0)
            pass
        if exitOnClose==1:
            close_func = exit_app
        else:
            close_func = close_frame
        self.test_console = JScrapbook.JScrapbook(locals=locals)
        self.console_pane = self.test_console

        self.doc_browser = DocBrowser(doc_url)
        self.doc_pane = self.doc_browser.get_pane()

        self.nodeinfo_pane = InfoDisplay(doc_browser=self.doc_browser)
        self.nodeinfo_pane.setPreferredSize(java.awt.Dimension(150, 150))

        self.o_tree = ObjectTree(info_display=self.nodeinfo_pane)
        self.o_tree.set_locals(locals)
        self.o_tree.init_model()
        self.test_console.diff_func = self.o_tree.update_changes

        self.tree = self.o_tree.getComponent()
        scroll_tree = swing.JScrollPane(self.tree)
        scroll_tree.setMinimumSize(java.awt.Dimension(180, 200))

        # define input, output, documentation, tree, value  and edit panes
        input=self.console_pane.input
        output=self.console_pane.output
        doc=self.doc_pane
        tree=scroll_tree
        value=swing.JScrollPane(self.nodeinfo_pane)

        # define main frame{'default' : "file:///C:/java2/docs/api"}
        self.frame = swing.JFrame("Py4IJ - QuickPALM edition", windowClosing=close_func)
        self.frame.contentPane.add(self)
        cp=self.frame.getContentPane()
        cp.setLayout(java.awt.BorderLayout())

        # define console
        self.jconsole = console.Console(self.frame, namespace=self.locals)

        # define tabbed pane
        self.tabPane=swing.JTabbedPane()
        self.tabPane.addTab("Console",swing.JScrollPane(self.jconsole.text_pane))
        self.tabPane.addTab("Editor",input)
        self.editor=input.text_pane
        font_family = "Monospaced" # jEdit.getProperty("jython.font", "Monospaced")
        font_size = 14 #jEdit.getIntegerProperty("jython.fontsize", 14)
        font_style = Font.PLAIN #jEdit.getIntegerProperty("jython.fontstyle", Font.PLAIN)
        self.editor.setFont(Font(font_family,font_style,font_size))
        self.filename=filename
        if filename!="untitled.py":
            self.frame.title=self.filename
            text=open(self.filename).read()
            self.editor.text=text
        #self.tabPane.addTab("Doc",doc)
        # tabPane.addTab("Value",value)
        # tabPane.addTab("Editor",swing.JScrollPane(editor))
        # rightPane=swing.JSplitPane(swing.JSplitPane.VERTICAL_SPLIT,self.tabPane,output)
        # cp.add(swing.JSplitPane(swing.JSplitPane.HORIZONTAL_SPLIT,tree,rightPane))
        cp.add(swing.JSplitPane(swing.JSplitPane.HORIZONTAL_SPLIT,tree,self.tabPane))

        self.frame.pack()

        # define menu bar
        mb=swing.JMenuBar()
        m1,m2=map(swing.JMenu,["File","Edit"])
        map(mb.add,[m1,m2])
        self.frame.setJMenuBar(mb)
        mFile,mEdit=m1,m2
        miNew, miOpen, miSave, miSaveAs, miExit, miRunCodeConsole, \
        miPasteAsString, miPasteAsFloat, miPasteAsInteger, miRefresh\
        = map(swing.JMenuItem,\
        ["New", "Open", "Save", "Save as...", "Exit","Run Code in Console", \
        "Paste as String", "Paste as Float", "Paste as Integer","Refresh"])
        mItems=\
        [miNew, miOpen, miSave, miSaveAs, miExit, \
        miPasteAsString, miPasteAsFloat, miPasteAsInteger,miRefresh]
        map(mFile.add,[miNew, miOpen, miSave, miSaveAs, miRunCodeConsole, miExit])
        map(mEdit.add,[miPasteAsString, miPasteAsFloat, miPasteAsInteger,miRefresh])

        # define menu actions
        self.consolePane=self.console_pane
        self.consoleFrame=self.frame

        miNew.actionPerformed=self.actionNew
        miOpen.actionPerformed=self.actionOpen
        miOpen.setAccelerator(getKeyStroke(KeyEvent.VK_O, KeyEvent.CTRL_MASK))
        miSave.actionPerformed=self.actionSave
        miSave.setAccelerator(getKeyStroke(KeyEvent.VK_Z, KeyEvent.CTRL_MASK))
        miSaveAs.actionPerformed=self.actionSaveAs
        miSaveAs.setAccelerator(getKeyStroke(KeyEvent.VK_S, KeyEvent.CTRL_MASK))
        miExit.actionPerformed=lambda e:sys.exit()
        miPasteAsString.actionPerformed=self.actionPasteAsString
        miPasteAsFloat.actionPerformed=self.actionPasteAsFloat
        miPasteAsInteger.actionPerformed=self.actionPasteAsInteger
        miRunCodeConsole.actionPerformed=self.actionRunCodeConsole
        miRunCodeConsole.setAccelerator(getKeyStroke(KeyEvent.VK_R, KeyEvent.CTRL_MASK))
        miRefresh.actionPerformed=self.actionRefresh
        #~ refresh_button = javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F5, 0)
        #~ refresh_button_action = RefreshAction()
        #~ inputMap = self.getInputMap(javax.swing.JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
        #~ actionMap = self.getActionMap()
        #~ inputMap.put(refresh_button, "refresh_button_pressed")
        #~ actionMap.put("refresh_button_pressed", refresh_button_action)
        #~ refresh_button_action.setRefreshFunc(self.o_tree.refresh)

        self.frame_size=size
        self.frame.setSize(apply(java.awt.Dimension, size))
        self.frame.setVisible(1)