def __init__(self): self.contentPane.layout = swing.BoxLayout(self.contentPane, swing.BoxLayout.Y_AXIS) message = swing.JLabel(BUGREPORTMESSAGE) message.setAlignmentX(awt.Component.CENTER_ALIGNMENT) self.add(message) self.add(swing.Box.createVerticalStrut(10)) buttonbox = swing.Box(swing.BoxLayout.X_AXIS) self.sendbutton = swing.JButton(COMMAND_SEND, actionPerformed=self.actionPerformed) self.cancelbutton = swing.JButton(COMMAND_CANCEL, actionPerformed=self.actionPerformed) buttonbox.add(self.sendbutton) buttonbox.add(self.cancelbutton) #self.add(swing.Box.createVerticalStrut(10)) self.add(buttonbox) buttonbox.setAlignmentX(awt.Component.CENTER_ALIGNMENT) self.pack() self.size = (300, 175) self.setLocationRelativeTo(None) self.show()
def classify_image(image): """Displays a window that allows the user to view and classify an image.""" frame = swing.JFrame() frame.defaultCloseOperation = swing.JFrame.DO_NOTHING_ON_CLOSE frame.add(swing.JLabel(swing.ImageIcon(image))) frame.add(swing.JLabel("Enter one of " + ", ".join(CLASS_NAMES))) frame.layout = swing.BoxLayout(frame.contentPane, swing.BoxLayout.Y_AXIS) class_field = swing.JTextField() classify_button = swing.JButton("Classify") condition = threading.Condition() def listener(_event): if class_field.text in CLASS_NAMES: with condition: condition.notifyAll() else: swing.JOptionPane.showMessageDialog( frame, "Image type is not one of the recognized types", "Input error", swing.JOptionPane.ERROR_MESSAGE) class_field.addActionListener(listener) classify_button.addActionListener(listener) frame.add(class_field) frame.add(classify_button) frame.pack() frame.visible = True with condition: condition.wait() frame.dispose() return class_field.text
def registerExtenderCallbacks(self, callbacks): self._callbacks = callbacks self._helpers = callbacks.getHelpers() self.context = None callbacks.setExtensionName("quoted-printable Parser") self._jPanel = swing.JPanel() self._jPanel.setLayout( swing.BoxLayout(self._jPanel, swing.BoxLayout.Y_AXIS)) self._jTextIn = swing.JTextArea("Input", 20, 10) self._jTextIn.setLineWrap(True) self._jScrollPaneIn = swing.JScrollPane(self._jTextIn) self._jScrollPaneIn.setVerticalScrollBarPolicy( swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS) self._jScrollPaneIn.setPreferredSize(awt.Dimension(20, 10)) self._jTextOut = swing.JTextArea("Output", 20, 10) self._jTextOut.setLineWrap(True) self._jScrollPaneOut = swing.JScrollPane(self._jTextOut) self._jScrollPaneOut.setVerticalScrollBarPolicy( swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS) self._jScrollPaneOut.setPreferredSize(awt.Dimension(20, 10)) self._jButtonPanel = swing.JPanel() self._jButtonDecode = swing.JButton('Decode', actionPerformed=self.decode) self._jButtonPanel.add(self._jButtonDecode) self._jPanel.add(self._jScrollPaneIn) self._jPanel.add(self._jButtonPanel) self._jPanel.add(self._jScrollPaneOut) callbacks.customizeUiComponent(self._jPanel) callbacks.addSuiteTab(self) return
def __init__(self, localVars, globalVars, windowNumber, varsToFilter): """ Creates the layout of the window. """ self.varsToFilter = set(varsToFilter) now = time.localtime(time.time()) self.title = time.strftime(DEBUG_WINDOW_TITLE, now) self.title = self.title % windowNumber self.size = DEBUG_WINDOW_SIZE self.contentPane.setLayout( swing.BoxLayout(self.contentPane, swing.BoxLayout.Y_AXIS)) # Create panels and button, and place them on the frame closeButton = swing.JButton(CLOSE_BUTTON_CAPTION, actionListener=self) bottomPanel = swing.JPanel() bottomPanel.add(closeButton) localPane = self.buildTablePane(VAR_L_NAME_COL_CAPTION, localVars) globalPane = self.buildTablePane(VAR_G_NAME_COL_CAPTION, globalVars) self.contentPane.add(localPane) self.contentPane.add(globalPane) self.contentPane.add(bottomPanel) self.setDefaultCloseOperation(1) self.setVisible(1)
def __init__(self): self.size = ABOUT_WINDOW_SIZE self.title = ABOUT_TITLE self.setLocationRelativeTo(None) self.contentPane.setLayout( swing.BoxLayout(self.contentPane, swing.BoxLayout.Y_AXIS)) copyrightInfoArea = swing.JTextPane() copyrightInfoArea.setEditable(0) #Load copyright information from the JES copyright file copyrightFile = open(COPYRIGHT_FILE, 'r') copyrightInfoArea.text = copyrightFile.read() copyrightInfoArea.setCaretPosition(0) copyrightFile.close() okButton = swing.JButton(OK_BUTTON_CAPTION, actionListener=self) topPane = swing.JScrollPane(copyrightInfoArea) topPane.setPreferredSize( awt.Dimension(lang.Short.MAX_VALUE, lang.Short.MAX_VALUE)) bottomPanel = swing.JPanel() bottomPanel.add(okButton) self.contentPane.add(topPane) self.contentPane.add(bottomPanel)
def __init__(self, localVars, globalVars, windowNumber, varsToFilter): import time self.varsToFilter = varsToFilter now = time.localtime(time.time()) self.title = time.strftime(DEBUG_WINDOW_TITLE, now) self.title = self.title % windowNumber self.size = DEBUG_WINDOW_SIZE self.contentPane.setLayout( swing.BoxLayout(self.contentPane, swing.BoxLayout.Y_AXIS)) #Load the variables from varsToDisplay into an array for the JTable #Create panels and button, and place them on the frame closeButton = swing.JButton(CLOSE_BUTTON_CAPTION, actionListener=self) bottomPanel = swing.JPanel() bottomPanel.add(closeButton) (topPane, bottomPane) = self.buildContentPane(localVars, globalVars) self.contentPane.add(topPane) self.contentPane.add(bottomPane) self.contentPane.add(bottomPanel) self.setDefaultCloseOperation(1) self.setVisible(1)
def registerExtenderCallbacks(self, callbacks): print "SAML BurpSuite Extension" print "Ben Campbell <eat_meatballs[at]hotmail.co.uk>" print "http://rewtdance.blogspot.co.uk" print "http://github.com/Meatballs1/burp_saml" # keep a reference to our callbacks object self._callbacks = callbacks # obtain an extension helpers object self._helpers = callbacks.getHelpers() # set our extension name callbacks.setExtensionName("SAML Decoder") # Create Tab self._jPanel = swing.JPanel() self._jPanel.setLayout( swing.BoxLayout(self._jPanel, swing.BoxLayout.Y_AXIS)) # SAML Binding Format self._jTextIn = swing.JTextArea("SAML Binding In", 20, 120) self._jTextIn.setLineWrap(True) self._jTextOut = swing.JTextArea("SAML Binding Out", 20, 120) self._jTextOut.setLineWrap(True) self._jButtonPanel = swing.JPanel() self._jButtonEncode = swing.JButton('Encode', actionPerformed=self.encode) self._jButtonDecode = swing.JButton('Decode', actionPerformed=self.decode) self._jButtonPanel.add(self._jButtonEncode) self._jButtonPanel.add(self._jButtonDecode) self._jPanel.add(self._jTextIn) self._jPanel.add(self._jButtonPanel) self._jPanel.add(self._jTextOut) # SAML Artifact Format self._jTextArtIn = swing.JTextArea("SAML Artifact In", 20, 120) self._jTextArtIn.setLineWrap(True) self._jTextArtOut = swing.JTextArea("SAML Artifact Out", 20, 120) self._jTextArtOut.setLineWrap(True) self._jButtonArtPanel = swing.JPanel() self._jButtonArtEncode = swing.JButton('Encode', actionPerformed=self.art_encode) self._jButtonArtDecode = swing.JButton('Decode', actionPerformed=self.art_decode) self._jButtonArtPanel.add(self._jButtonArtEncode) self._jButtonArtPanel.add(self._jButtonArtDecode) self._jPanel.add(self._jTextArtIn) self._jPanel.add(self._jButtonArtPanel) self._jPanel.add(self._jTextArtOut) callbacks.customizeUiComponent(self._jPanel) # register ourselves as a message editor tab factory callbacks.addSuiteTab(self) return
def registerExtenderCallbacks(self, callbacks): print "Install Successful...." # 测试文本 testtext = u''' admin u'\u8fd9\u662f\u4e00\u4e2a\u6d4b\u8bd5\u9875\u9762' root u'\u4f60\u4ee5\u4e3a\u6709\u91cd\u8981\u4fe1\u606f\u4e48\uff1f' \u6211\u662F\u4E00\u4E2A\u7C89\u5237\u5320\uFF0C\u7C89\u5237\u672C\u9886\u5F3A\uFF0C \u6211\u8981\u628A\u90A3\u5C0F\u623F\u5B50\uFF0C\u5237\u7684\u5F88\u6F02\u4EAE\u3002 %u6211%u662F%u4E00%u4E2A%u7C89%u5237%u5320%uFF0C%u7C89%u5237%u672C%u9886%u5F3A%uFF0C %u6211%u8981%u628A%u90A3%u5C0F%u623F%u5B50%uFF0C%u5237%u7684%u5F88%u6F02%u4EAE%u3002 \x31\x2C\x31\x29\x3B\x75\x70\x64\x61\x74\x65\x20\x5B\x64\x76\x5F\x75\x73\x65\x72\x5D\x20\x73\x65\x74\x20\x75\x73\x65\x72\x67\x72\x6F\x75\x70\x69\x64\x3D\x31\x20\x77\x68\x65\x72\x65\x20\x75\x73\x65\x72\x69\x64\x3D\x32\x3B\x2D\x2D\x20 \x75\x73\x65\x72\x69\x64\x3D\x32\x3B\x2D\x2D\x20 0x310x2C0x310x290x3B0x750x700x640x610x740x650x200x5B0x640x760x5F0x750x730x650x720x5D0x200x730x650x740x200x750x730x650x720x670x720x6F0x750x700x690x640x3D0x310x200x770x680x650x720x650x200x750x730x650x720x690x640x3D0x320x3B0x2D0x2D0x20 0x312C31293B757064617465205B64765F757365725D20736574207573657267726F757069643D31207768657265207573657269643D323B2D2D20 闲话不说了,base64模块真正用的上的方法只有8个,分别是encode, decode, ZW5jb2Rlc3RyaW5n, ZGVjb2Rlc3RyaW5n, YjY0ZW5jb2Rl,b64decode, dXJsc2FmZV9iNjRkZWNvZGUsdXJsc2FmZV9iNjRlbmNvZGXjgII=他们8个可以两两分为4组, ZW5jb2RlLGRlY29kZQ==一组,专门用来编码和 解码文件的,也可以对StringIO里的数据做编解码; ZW5jb2Rlc3RyaW5nLGRlY29kZXN0cmluZw==一组,专门用来编码和解码字符串; ''' # 保持对象的引用 self._callbacks = callbacks # 获得扩展辅助对象 self._helpers = callbacks.getHelpers() # 设置Extender里面显示的插件名 callbacks.setExtensionName("DecodeAssistantDev0.2") # 用java的swing库创建一个标签 self._jPanel = swing.JPanel() self._jPanel.setLayout( swing.BoxLayout(self._jPanel, swing.BoxLayout.Y_AXIS)) # 文本框 self._jTextIn = swing.JTextArea(testtext, 20, 120) self._jTextIn.setLineWrap(True) self._jScrollPaneIn = swing.JScrollPane(self._jTextIn) self._jScrollPaneIn.setVerticalScrollBarPolicy( swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS) self._jScrollPaneIn.setPreferredSize(awt.Dimension(20, 120)) # 定义2个按钮,编码和解码 self._jButtonPanel = swing.JPanel() self._jButtonEncode = swing.JButton('Encode', actionPerformed=self.encode) self._jButtonDecode = swing.JButton('Decode', actionPerformed=self.decode) self._jButtonPanel.add(self._jButtonEncode) self._jButtonPanel.add(self._jButtonDecode) self._jPanel.add(self._jScrollPaneIn) self._jPanel.add(self._jButtonPanel) callbacks.customizeUiComponent(self._jPanel) # register ourselves as a message editor tab factory callbacks.addSuiteTab(self) return
def __init__(self, debugger): self.lastValue = None self.debugger = debugger MAX_SPEED = debugger.MAX_SPEED self.slider = swing.JSlider(swing.JSlider.HORIZONTAL, 0, MAX_SPEED, self.debugger.speed, stateChanged=self.stateChanged) self.last_speed = self.debugger.speed labels = Hashtable() labels.put(0, swing.JLabel('slow')) labels.put(MAX_SPEED, swing.JLabel('fast')) self.slider.labelTable = labels self.slider.paintLabels = 1 self.addButton = swing.JButton(swing.ImageIcon('images/plus.jpg'), actionPerformed=self.actionPerformed, toolTipText='add Variable', preferredSize=BUTTON_SIZE) self.deleteButton = swing.JButton(swing.ImageIcon('images/minus.jpg'), actionPerformed=self.actionPerformed, toolTipText='remove Variable', preferredSize=BUTTON_SIZE) self.stepButton = swing.JButton(swing.ImageIcon('images/boot.jpg'), actionPerformed=self.actionPerformed, toolTipText='step', preferredSize=BUTTON_SIZE) self.pauseIcon = swing.ImageIcon('images/pause.jpg') self.runIcon = swing.ImageIcon('images/run.jpg') self.runButton = swing.JButton(self.runIcon, actionPerformed=self.actionPerformed, toolTipText='run', preferredSize=BUTTON_SIZE) self.fullspeedButton = swing.JButton( swing.ImageIcon('images/fullspeed.jpg'), actionPerformed=self.actionPerformed, toolTipText='full speed', preferredSize=BUTTON_SIZE) self.stopButton = swing.JButton(swing.ImageIcon('images/stop.jpg'), actionPerformed=self.actionPerformed, toolTipText='stop', preferredSize=BUTTON_SIZE) self.setLayout(swing.BoxLayout(self, swing.BoxLayout.X_AXIS)) self.add(self.slider) self.add(self.addButton) self.add(self.deleteButton) #self.add(self.stepButton) # These two lines commented out by Brian O because of removed Pause functionality -- 23 June 2008 #self.add(self.runButton) self.add(self.fullspeedButton) self.add(self.stopButton) self.initialButtonState()
def __init__(self, debugger): self.lastValue = None self.debugger = debugger self.slider = swing.JSlider(swing.JSlider.VERTICAL, 0, 10, self.debugger.speed, stateChanged=self.stateChanged) self.stepButton = swing.JButton('step', actionPerformed=self.actionPerformed ) # pic of a boot would be nice self.stepButton.setEnabled(0) self.setLayout(swing.BoxLayout(self, swing.BoxLayout.Y_AXIS)) self.add(self.slider) self.add(self.stepButton)
def __init__(self): self.frame=swing.JFrame(title="Simple Jython Interpreter", size=(600,500)) self.frame.defaultCloseOperation=swing.JFrame.EXIT_ON_CLOSE; self.frame.layout=awt.BorderLayout() self.panel1=swing.JPanel(awt.BorderLayout()) self.panel2=swing.JPanel(awt.BorderLayout()) self.title=swing.JLabel("Jython Code") self.title2 = swing.JLabel("Interpreter Output") self.button1=swing.JButton("Run", actionPerformed=self.printMessage) self.button2=swing.JButton("Clear Output", actionPerformed=self.clearMessage) self.buttonPane = swing.JPanel() self.buttonPane.layout = swing.BoxLayout(self.buttonPane, swing.BoxLayout.LINE_AXIS) self.buttonPane.border = swing.BorderFactory.createEmptyBorder(0, 10, 10, 10) self.buttonPane.add(swing.Box.createHorizontalGlue()) self.buttonPane.add(self.button1) self.buttonPane.add(swing.Box.createRigidArea(awt.Dimension(10, 0))) self.buttonPane.add(self.button2) self.textField=swing.JTextArea(4,15) self.textField.lineWrap = True self.scrollPaneOne = swing.JScrollPane(self.textField) self.scrollPaneOne.verticalScrollBarPolicy = swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS self.outputText=swing.JTextArea(4,15) self.outputText.lineWrap = True self.outputText.editable = False self.scrollPane2 = swing.JScrollPane(self.outputText) self.scrollPane2.verticalScrollBarPolicy = swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS self.panel1.add(self.title, awt.BorderLayout.PAGE_START) self.panel1.add(self.scrollPaneOne, awt.BorderLayout.CENTER) self.panel2.add(self.title2, awt.BorderLayout.PAGE_START) self.panel2.add(self.scrollPane2, awt.BorderLayout.CENTER) self.splitPane = swing.JSplitPane(swing.JSplitPane.VERTICAL_SPLIT, self.panel1, self.panel2) self.splitPane.oneTouchExpandable = True self.minimumSize = awt.Dimension(50, 100) self.panel1.minimumSize = self.minimumSize self.panel2.minimumSize = self.minimumSize self.frame.contentPane.add(self.splitPane, awt.BorderLayout.CENTER) self.frame.contentPane.add(self.buttonPane, awt.BorderLayout.PAGE_END)
def mkclk(self): global tmlab # create a borderless frame fclk = swing.JFrame("Clk",size=(390,295)) fclk.setUndecorated(True) fclk.getContentPane().setOpaque(True) fclk.contentPane.setLayout(swing.BoxLayout(fclk.contentPane,swing.BoxLayout.X_AXIS)) pan = swing.JPanel(size=(390,295),border= border.EtchedBorder(border.EtchedBorder.RAISED)) tmlab=swing.JLabel() self.updclk() pan.add(tmlab) fclk.contentPane.add(pan) fclk.setSize(awt.Dimension(400,200)) # this sets the location on the screen 400 across and 15 down. fclk.setLocation(awt.Point(400,15)) fclk.pack() fclk.show() #print "fin clk" return
def __init__(self): self.size = ABOUT_WINDOW_SIZE self.title = ABOUT_TITLE self.setLocationRelativeTo(None) self.contentPane.setLayout( swing.BoxLayout(self.contentPane, swing.BoxLayout.Y_AXIS)) introductionInfoArea = swing.JTextPane() introductionInfoArea.setEditable(0) #Load information from the JES introduction file introductionFile = open(INTRODUCTION_FILE, 'r') introductionInfoArea.text = introductionFile.read() introductionFile.close() okButton = swing.JButton(OK_BUTTON_CAPTION, actionListener=self) topPane = swing.JScrollPane(introductionInfoArea) topPane.setPreferredSize( awt.Dimension(lang.Short.MAX_VALUE, lang.Short.MAX_VALUE)) bottomPanel = swing.JPanel() bottomPanel.add(okButton) self.contentPane.add(topPane) self.contentPane.add(bottomPanel)
def __init__(self, title, host, port, service): # create window win = swing.JFrame(title, size=(800, 480)) win.setDefaultCloseOperation(swing.JFrame.EXIT_ON_CLOSE) win.contentPane.layout = awt.BorderLayout(10, 10) # add scrollable textfield status = swing.JTextPane(preferredSize=(780, 400)) status.setAutoscrolls(True) status.setEditable(False) status.setBorder(swing.BorderFactory.createEmptyBorder(20, 20, 20, 20)) paneScrollPane = swing.JScrollPane(status) paneScrollPane.setVerticalScrollBarPolicy( swing.JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED) win.contentPane.add(paneScrollPane, awt.BorderLayout.CENTER) # add server button self.started = "Start Server" self.stopped = "Stop Server" self.serverButton = swing.JButton(self.started, preferredSize=(150, 20), actionPerformed=self.controlServer) # add client button self.clientButton = swing.JButton("Invoke Method", preferredSize=(150, 20), actionPerformed=self.runClient) self.clientButton.enabled = False # position buttons buttonPane = swing.JPanel() buttonPane.setLayout( swing.BoxLayout(buttonPane, swing.BoxLayout.X_AXIS)) buttonPane.setBorder( swing.BorderFactory.createEmptyBorder(0, 10, 10, 10)) buttonPane.add(swing.Box.createHorizontalGlue()) buttonPane.add(self.serverButton) buttonPane.add(swing.Box.createRigidArea(awt.Dimension(10, 0))) buttonPane.add(self.clientButton) win.contentPane.add(buttonPane, awt.BorderLayout.SOUTH) # add handler that writes log messages to the status textfield txtHandler = TextFieldLogger(status) logger = logging.getLogger("") logger.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s - %(message)s') txtHandler.setFormatter(formatter) logger.addHandler(txtHandler) # setup server self.service_name = service self.url = "http://%s:%d" % (host, port) self.server = ThreadedAmfServer(host, port, self.service_name) # center and display window on the screen win.pack() us = win.getSize() them = awt.Toolkit.getDefaultToolkit().getScreenSize() newX = (them.width - us.width) / 2 newY = (them.height - us.height) / 2 win.setLocation(newX, newY) win.show()
def createWidgets(self): self.dialog = swing.JDialog() self.dialog.setTitle("Spell Checker") cpane = self.dialog.getContentPane() blayout = swing.BoxLayout(cpane, swing.BoxLayout.Y_AXIS) cpane.setLayout(blayout) self.word = swing.JTextField() self.word.setEditable(False) cwborder = sborder.TitledBorder("Current Word:") self.word.setBorder(cwborder) cpane.add(self.word) self.possible = swing.JTextField() pborder = sborder.TitledBorder("Change To:") self.possible.setBorder(pborder) cpane.add(self.possible) center = swing.JPanel() blayout = swing.BoxLayout(center, swing.BoxLayout.X_AXIS) center.setLayout(blayout) self.jlist = swing.JList() self.jlist.setSelectionMode( swing.ListSelectionModel.SINGLE_SELECTION) self.jlist.setVisibleRowCount(5) class _listSelectionListener(sevent.ListSelectionListener): def __init__(self, jlist, possible): self.jlist = jlist self.possible = possible def valueChanged(self, event): self.possible.setText(str(self.jlist.getSelectedValue())) self.jlist.addListSelectionListener( _listSelectionListener(self.jlist, self.possible)) spane = swing.JScrollPane(self.jlist) spborder = sborder.TitledBorder("Suggestions") spane.setBorder(spborder) center.add(spane) bpanel = swing.JPanel() blayout = swing.BoxLayout(bpanel, swing.BoxLayout.Y_AXIS) bpanel.setLayout(blayout) center.add(bpanel) change = swing.JButton("Change") change.actionPerformed = self.change changeall = swing.JButton("Change All") changeall.actionPerformed = self.changeAll ignore = swing.JButton("Ignore All") ignore.actionPerformed = self.ignore add = swing.JButton("Add") add.actionPerformed = self.add bpanel.add(change) bpanel.add(changeall) bpanel.add(ignore) bpanel.add(add) cpane.add(center) self.next = swing.JButton("Next") self.next.actionPerformed = self.checkNextWord self.close = swing.JButton("Close") self.close.actionPerformed = lambda event: self.dialog.hide() jpanel = swing.JPanel() jpanel.add(self.next) jpanel.add(self.close) cpane.add(jpanel) self.dialog.pack()
def LayOut(self): self.setLayout(swing.BoxLayout(self, swing.BoxLayout.X_AXIS))
def registerExtenderCallbacks(self, callbacks): # for error handling sys.stdout = callbacks.getStdout() sys.stderr = callbacks.getStderr() self._callbacks = callbacks self._helpers = callbacks.getHelpers() jsonFilter = FileNameExtensionFilter("JSON files", ['json']) basePath = self._callbacks.loadExtensionSetting(SETTING_LAST_PATH) # print("got last path {}".format(basePath)) self._collectionChooser = swing.JFileChooser(basePath) self._collectionChooser.setFileFilter(jsonFilter) self._environmentChooser = swing.JFileChooser(basePath) self._environmentChooser.setFileFilter(jsonFilter) # ### Top "buttons" pane controlPane = swing.JPanel() controlPane.setBorder(EmptyBorder(10, 20, 0, 10)) controlPane.setLayout( swing.BoxLayout(controlPane, swing.BoxLayout.PAGE_AXIS)) controlPane.setAlignmentX(swing.Box.LEFT_ALIGNMENT) box1 = swing.Box.createHorizontalBox() box1.setAlignmentX(swing.Box.LEFT_ALIGNMENT) box1.add( swing.JButton('Load Collection', actionPerformed=self.loadCollection)) self._collectionLabel = swing.JLabel("Choose a collection file") box1.add(self._collectionLabel) controlPane.add(box1) box2 = swing.Box.createHorizontalBox() box2.setAlignmentX(swing.Box.LEFT_ALIGNMENT) box2.add( swing.JButton('Load Environment', actionPerformed=self.loadEnvironment)) self._environmentLabel = swing.JLabel("Choose an environment file") box2.add(self._environmentLabel) controlPane.add(box2) # ### end Top "controls" pane # ### instructions instructionsPane = swing.JPanel(BorderLayout()) instructions = swing.JLabel() instructions.setText("""<html><body> <h3>Usage:</h3> <ol> <li>Select the Collection Postman JSON file. This should extract all discovered environment variables.</li> <li>(Optional) Select an Environment Postman JSON file. This can be the same as the Collection file.</li> <li>Set environment variables below.</li> <li>Choose 'Create Requests' to create Repeater tabs.</li> </ol> </body></html>""") instructionsPane.add(instructions, BorderLayout.NORTH) # ### end instructions # ### environment variables envTablePane = swing.JPanel(BorderLayout()) envLabel = swing.JLabel("Environment Variables") envLabel.setBorder(EmptyBorder(5, 5, 5, 5)) envLabel.setFont( Font(envLabel.getFont().getName(), Font.BOLD, envLabel.getFont().getSize() + 2)) envTablePane.add(envLabel, BorderLayout.NORTH) self._envTable = swing.JTable(DefaultTableModel([], self._envCols)) self._envTable.setAutoCreateRowSorter(True) self._envTable.getTableHeader().setReorderingAllowed(False) tableMenu = swing.JPopupMenu() tableMenu.add(swing.JMenuItem("Add New", actionPerformed=self._addEnv)) tableMenu.add( swing.JMenuItem("Clear All", actionPerformed=self._clearEnv)) deleteMenuItem = swing.JMenuItem("Delete Row", actionPerformed=self._deleteEnv) deleteMenuItem.setEnabled(False) tableMenu.add(deleteMenuItem) self._envTable.setComponentPopupMenu(tableMenu) listener = self._envTableListener(self) self._envTable.addMouseListener(listener) renderer = self._envTableRenderer() self._envTable.setDefaultRenderer(Class.forName('java.lang.Object'), renderer) envTablePaneMenu = swing.JPopupMenu() envTablePaneMenu.add( swing.JMenuItem("Add New", actionPerformed=self._addEnv)) envTablePaneMenu.add( swing.JMenuItem("Clear All", actionPerformed=self._clearEnv)) scrl = swing.JScrollPane(self._envTable) scrl.setComponentPopupMenu(envTablePaneMenu) envTablePane.add(scrl) # ### end environment variables # ### requests reqTablePane = swing.JPanel(BorderLayout()) reqLabel = swing.JLabel("Requests") reqLabel.setBorder(EmptyBorder(5, 5, 5, 5)) reqLabel.setFont(envLabel.getFont()) reqTablePane.add(reqLabel, BorderLayout.NORTH) self._reqTable = self._reqTableClass( DefaultTableModel([], self._reqCols)) self._reqTable.setAutoCreateRowSorter(True) self._reqTable.getTableHeader().setReorderingAllowed(False) self._reqTable.setAutoResizeMode(swing.JTable.AUTO_RESIZE_LAST_COLUMN) self._reqTable.getTableHeader().setReorderingAllowed(False) self._reqTable.getColumnModel().getColumn(0).setMaxWidth(150) self._reqTable.getColumnModel().getColumn(0).setMinWidth(150) self._reqTable.getColumnModel().getColumn(2).setMaxWidth(150) self._reqTable.getColumnModel().getColumn(2).setMinWidth(150) scrl2 = swing.JScrollPane(self._reqTable) reqTablePane.add(scrl2) # ### end requests # ### Logs logPane = swing.JPanel(BorderLayout()) buttonBox = swing.JPanel(FlowLayout(FlowLayout.LEFT, 20, 0)) requestButtonBox = swing.Box.createHorizontalBox() self._selectButtons = [ swing.JButton('Select All', actionPerformed=self.selectAll), swing.JButton('Select None', actionPerformed=self.selectNone), swing.JButton('Invert Selection', actionPerformed=self.selectInvert) ] for btn in self._selectButtons: requestButtonBox.add(btn) btn.setEnabled(False) buttonBox.add(requestButtonBox) self._createRequestsButton = swing.JButton( 'Create Requests', actionPerformed=self.createRequests) self._createRequestsButton.setEnabled(False) requestButtonBox.add(self._createRequestsButton) buttonBox.add(self._createRequestsButton) self._logButton = swing.JButton('Clear Log', actionPerformed=self.clearLog) self._logButton.setEnabled(False) buttonBox.add(self._logButton) logPane.add(buttonBox, BorderLayout.NORTH) self._log = swing.JTextPane() self._log.setEditable(False) self._log.setFont(Font("monospaced", Font.PLAIN, 12)) logPane.add(swing.JScrollPane(self._log)) # ### end Logs # ### add panels self._topControlsPane = swing.JSplitPane( swing.JSplitPane.HORIZONTAL_SPLIT, controlPane, instructionsPane) p1 = swing.JSplitPane(swing.JSplitPane.VERTICAL_SPLIT, self._topControlsPane, envTablePane) p2 = swing.JSplitPane(swing.JSplitPane.VERTICAL_SPLIT, p1, reqTablePane) p2.setResizeWeight(0.5) self._panel = swing.JSplitPane(swing.JSplitPane.VERTICAL_SPLIT, p2, logPane) self._panel.setResizeWeight(0.6) # ### end add panels callbacks.setExtensionName(NAME) callbacks.addSuiteTab(self)
def registerExtenderCallbacks(self, callbacks): # Make available to whole class self._callbacks = callbacks # obtain an extension helpers object self._helpers = callbacks.getHelpers() # set our extension name callbacks.setExtensionName("MitM helper plugin for drozer") # create the log and a lock on which to synchronize when adding log entries self._log = ArrayList() self._lock = Lock() # Split pane self._splitpane = swing.JSplitPane(swing.JSplitPane.HORIZONTAL_SPLIT) # Create Tab topPanel = swing.JPanel() topPanel.setLayout(swing.BoxLayout(topPanel, swing.BoxLayout.Y_AXIS)) # Define all tools self.tools = [] self.tools.append( Tool(180, "JavaScript Injection", "Inject Remote JS into HTTP Responses", self.nothing, self.injectJs, "JS Location", "http://x.x.x.x:31415/dz.js")) self.tools.append( Tool(180, "APK Replacement", "Replace APK with specified one when requested", self.modifyAPKRequest, self.injectAPK, "APK Location", "", True)) self.tools.append( Tool( 170, "Invoke drozer using pwn://", "Inject code into HTTP Responses that invokes installed drozer agent", self.nothing, self.injectPwn, None, None, None, "Perform active invocation (required for Chromium >= 25)")) self.tools.append( Tool( 220, "Custom URI Handler Injection", "Inject code into HTTP Responses that invokes specified URI handler", self.nothing, self.injectCustomURI, "URI", "pwn://me", None, "Perform active invocation (required for Chromium >= 25)")) # Add all tools to panel for i in self.tools: topPanel.add(i.getPanel()) self._splitpane.setLeftComponent(topPanel) # table of log entries logTable = Table(self) logTable.setAutoResizeMode(swing.JTable.AUTO_RESIZE_ALL_COLUMNS) logTable.getColumn("Time").setPreferredWidth(120) logTable.getColumn("URL").setPreferredWidth(500) scrollPane = swing.JScrollPane(logTable) self._splitpane.setRightComponent(scrollPane) # customize our UI components callbacks.customizeUiComponent(self._splitpane) callbacks.customizeUiComponent(logTable) callbacks.customizeUiComponent(scrollPane) callbacks.customizeUiComponent(topPanel) # add the custom tab to Burp's UI callbacks.addSuiteTab(self) # register ourselves as an HTTP listener callbacks.registerHttpListener(self) return
def __init__(self, movie): try: self.size = (600, 400) self.movie = movie self.fps = 30 # The buttons on the right side self.clearButton = swing.JButton( COMMAND_CLEAR_IMG, actionPerformed=self.actionPerformed) self.addButton = swing.JButton( COMMAND_ADD_IMG, actionPerformed=self.actionPerformed) self.addDirectoryButton = swing.JButton( COMMAND_ADD_DIR, actionPerformed=self.actionPerformed) self.deleteButton = swing.JButton( COMMAND_DELETE_IMG, actionPerformed=self.actionPerformed) self.playButton = swing.JButton( COMMAND_PLAY_MOVIE, actionPerformed=self.actionPerformed) self.moveUpButton = swing.JButton( COMMAND_MOVE_UP, actionPerformed=self.actionPerformed) self.moveDownButton = swing.JButton( COMMAND_MOVE_DOWN, actionPerformed=self.actionPerformed) self.changeFPSButton = swing.JButton( COMMAND_CHANGE_FPS, actionPerformed=self.actionPerformed) self.buttonpane = swing.JPanel() self.buttonpane.setLayout( swing.BoxLayout(self.buttonpane, swing.BoxLayout.Y_AXIS)) self.buttonpane.add(self.clearButton) self.buttonpane.add(self.deleteButton) self.buttonpane.add(self.addDirectoryButton) self.buttonpane.add(self.addButton) self.buttonpane.add(self.playButton) self.buttonpane.add(self.moveUpButton) self.buttonpane.add(self.moveDownButton) self.buttonpane.add(self.changeFPSButton) # The images on the left side self.listModel = swing.DefaultListModel() self.list = swing.JList(self.listModel) self.listpane = swing.JScrollPane(self.list) #self.listpane.setLayout(swing.BoxLayout(self.listpane, swing.BoxLayout.X_AXIS)) # self.listpane.add(self.list) # The splitter pane splitterPane = swing.JSplitPane() splitterPane.orientation = swing.JSplitPane.HORIZONTAL_SPLIT splitterPane.leftComponent = self.listpane splitterPane.rightComponent = self.buttonpane splitterPane.setDividerSize(SPLITTER_SIZE) splitterPane.setDividerLocation(VSPLITTER_LOCATION) splitterPane.setResizeWeight(1.0) self.add(splitterPane) self.addFramesIntoListModel(self.movie) self.show() except: import traceback import sys a, b, c = sys.exc_info() print "FrameSequencerTool exception:" traceback.print_exception(a, b, c)
def __init__(self, maxSizeY, title, description, requestExecutor, responseExecutor, editBoxLabel=None, editBox=None, browseButton=None, tickBox=None): self.title = title self.descriptionLabel = swing.JLabel(description) self.requestExecutor = requestExecutor self.responseExecutor = responseExecutor self.panel = swing.JPanel() self.panel.setLayout( swing.BoxLayout(self.panel, swing.BoxLayout.Y_AXIS)) self.panel.setBorder(swing.BorderFactory.createTitledBorder(title)) self.panel.setAlignmentX(awt.Component.LEFT_ALIGNMENT) self.panel.setMaximumSize(awt.Dimension(1000, maxSizeY)) descriptionPanel = swing.JPanel() descriptionPanel.setLayout( swing.BoxLayout(descriptionPanel, swing.BoxLayout.X_AXIS)) descriptionPanel.add(self.descriptionLabel) self._setBorder(descriptionPanel, 10, 10) self.panel.add(descriptionPanel) optionPanel = swing.JPanel() optionPanel.setLayout( swing.BoxLayout(optionPanel, swing.BoxLayout.X_AXIS)) if editBox is not None: self.editBox = swing.JTextField(editBox) self.editBox.setMaximumSize(awt.Dimension(1000, 30)) optionPanel.add(swing.JLabel(editBoxLabel)) optionPanel.add(self.editBox) if browseButton is not None: self.browseButton = swing.JButton( 'Browse', actionPerformed=self.openBrowseDialog) optionPanel.add(self.browseButton) if editBox is not None or browseButton is not None: self._setBorder(optionPanel, 10, 10) self.panel.add(optionPanel) if tickBox is not None: self.tickBox = swing.JCheckBox(tickBox) tickBoxPanel = swing.JPanel() tickBoxPanel.setLayout( swing.BoxLayout(tickBoxPanel, swing.BoxLayout.X_AXIS)) tickBoxPanel.add(self.tickBox) self._setBorder(tickBoxPanel, 10, 10) self.panel.add(tickBoxPanel) enableButtonPanel = swing.JPanel() enableButtonPanel.setLayout( swing.BoxLayout(enableButtonPanel, swing.BoxLayout.X_AXIS)) self.enableButton = swing.JToggleButton('Disabled', actionPerformed=self.toggle) enableButtonPanel.add(self.enableButton) self._setBorder(enableButtonPanel, 10, 10) self.panel.add(enableButtonPanel)
def reportSolution_gsa(self, output, cmdarray): #w#for genome-scale analysis recordtabs = swing.JTabbedPane() # records = output.split(ENDTAG) records = output.split(';\n') outputtable = [] pscript = self.getScript() #problem file precs = pscript.split(';') for i in range(len(records) - 1): record = records[i] outtabs = swing.JTabbedPane() if self.program == Util.GFAA: lines_reac, lines_gene = Data.Tabular.output2table_gfaa(record) table_reac = OutputTable.OutputTable(self.metabolicModel) table_reac.write(lines_reac, 'GFAAreac') tab_reac = swing.JScrollPane(table_reac) table_gene = OutputTable.OutputTable(self.metabolicModel) table_gene.write(lines_gene, 'GFAAgene') tab_gene = swing.JScrollPane(table_gene) outtabs.addTab('Reaction', tab_reac) outtabs.addTab('Gene', tab_gene) outtabs.setToolTipTextAt(outtabs.indexOfTab('Reaction'), 'Flux-activity state for reactions') outtabs.setToolTipTextAt(outtabs.indexOfTab('Gene'), 'Flux-activity state for Gene') outputtable += [table_reac, table_gene] recordtabs.addTab('Record' + str(i + 1), outtabs) elif self.program in (Util.GFVA2, Util.GFVA3, Util.GIMME2): lines_obj, lines_reac = Data.Tabular.output2table_gfva( record, self.program) table_obj = OutputTable.OutputTable(self.metabolicModel) table_reac = OutputTable.OutputTable(self.metabolicModel) table_obj.write(lines_obj, 'GFVAobj') table_reac.write(lines_reac, 'GFVAreac') tabpanel = swing.JPanel() # tabpanelsp = swing.JScrollPane(tabpanel) tabpanel.setLayout( swing.BoxLayout(tabpanel, swing.BoxLayout.Y_AXIS)) tab1 = swing.JScrollPane(table_obj) tab1.setPreferredSize(awt.Dimension(0, 60)) tab2 = swing.JScrollPane(table_reac) tabpanel.add(tab1) tabpanel.add(tab2) # outtabs.addTab('Results', tabpanel) outputtable += [table_obj, table_reac] recordtabs.addTab('Record' + str(i + 1), tabpanel) elif self.program == 'SGNI': media = precs[i].strip().split('\n')[0].strip().lstrip( '!').split(' ') lines_blp, lines_gni = Data.Tabular.output2table_sgni( record, media) table_blp = OutputTable.OutputTable(self.metabolicModel) table_blp.write_gni(lines_blp, 'SGNIblp', media) tab_blp = swing.JScrollPane(table_blp) table_gni = OutputTable.OutputTable(self.metabolicModel) table_gni.write_gni(lines_gni, 'SGNIgni', media) for col in range(table_gni.getColumnCount())[1:]: table_gni.getColumnModel().getColumn(col).setCellRenderer( OutputTable.SGNIRenderer()) tab_gni = swing.JScrollPane(table_gni) outtabs.addTab('Results', tab_blp) outtabs.addTab('GNI matrix', tab_gni) outtabs.setToolTipTextAt(outtabs.indexOfTab('Results'), 'bi-level LP optimization results') outtabs.setToolTipTextAt( outtabs.indexOfTab('GNI matrix'), 'the predicted gene-nutrient interactions') outputtable += [table_blp, table_gni] recordtabs.addTab('Record' + str(i + 1), outtabs) elif self.program == 'WGNI': media = precs[i].strip().split('\n')[0].strip().lstrip( '!').split(' ') lines_out, lines_gni = Data.Tabular.output2table_wgni( record, media) table_out = OutputTable.OutputTable(self.metabolicModel) table_out.write(lines_out, 'WGNIout') tab_out = swing.JScrollPane(table_out) table_gni = OutputTable.OutputTable(self.metabolicModel) table_gni.write_gni(lines_gni, 'WGNIgni', media) tab_gni = swing.JScrollPane(table_gni) outtabs.addTab('Results', tab_out) outtabs.addTab('GNI matrix', tab_gni) outtabs.setToolTipTextAt(outtabs.indexOfTab('Results'), 'weak GNI results') outtabs.setToolTipTextAt( outtabs.indexOfTab('GNI matrix'), 'the predicted gene-nutrient interactions') outputtable += [table_out, table_gni] recordtabs.addTab('Record' + str(i + 1), outtabs) elif self.program == 'DPAplot': lines_m2g, lines_g2m, lines_mat, glist = Data.Tabular.output2table_dpaplot( record) self.table_m2g = OutputTable.OutputTable(self.metabolicModel) table_g2m = OutputTable.OutputTable(self.metabolicModel) table_mat = OutputTable.OutputTable(self.metabolicModel) self.table_m2g.write(lines_m2g, 'DPAm2g') table_g2m.write(lines_g2m, 'DPAg2m') table_mat.write_gni(lines_mat, 'DPAmat', glist) tab_m2g = swing.JScrollPane(self.table_m2g) tab_g2m = swing.JScrollPane(table_g2m) tab_mat = swing.JScrollPane(table_mat) outtabs.addTab('Metabolites', tab_m2g) outtabs.addTab('Genes', tab_g2m) outtabs.addTab('Producibility of WT and KO', tab_mat) outtabs.setToolTipTextAt( outtabs.indexOfTab('Metabolites'), 'mapping from metabolites to essential genes') outtabs.setToolTipTextAt(outtabs.indexOfTab('Genes'), 'mapping from gene to metabolites') outtabs.setToolTipTextAt( outtabs.indexOfTab('Producibility of WT and KO'), 'metabolic producibility in wildtype and gene-knockout models' ) outputtable += [self.table_m2g, table_g2m, table_mat] recordtabs.addTab('Record' + str(i + 1), outtabs) elif self.program == 'DPAsig': lines_up, lines_dw, list = Data.Tabular.output2table_dpasig( record) table_up = OutputTable.OutputTable(self.metabolicModel) table_dw = OutputTable.OutputTable(self.metabolicModel) table_up.write_gni(lines_up, 'DPAsig', list) table_dw.write_gni(lines_dw, 'DPAsig', list) tab_up = swing.JScrollPane(table_up) tab_dw = swing.JScrollPane(table_dw) outtabs.addTab('Signals_UP', tab_up) outtabs.addTab('Signals_DOWN', tab_dw) outtabs.setToolTipTextAt(outtabs.indexOfTab('Signals_UP'), 'Signals for up-regulated genes') outtabs.setToolTipTextAt(outtabs.indexOfTab('Signals_DOWN'), 'Signals for down-regulated genes') outputtable += [table_up, table_dw] recordtabs.addTab('Record' + str(i + 1), outtabs) else: reclines = record.strip().split('\n') table = OutputTable.OutputTable(self.metabolicModel) table.write(reclines, self.program) tab = swing.JScrollPane(table) # table.setColWidths(self.getWidth()) outputtable += [table] recordtabs.addTab('Record' + str(i + 1), tab) # if self.program in ('GFAA','SGNI','WGNI','DPAplot','DPAsig'): # recordtabs.addTab('Record'+str(i+1), outtabs) # else: recordtabs.addTab('Record'+str(i+1), outtab) INFO = '#Analysis : ' + self.program + '\n\n' for i in range(len(precs) - 1): INFO += '#Record' + str(i + 1) + ' :\n' + precs[i].strip() + '\n;\n\n' INFO += '\n#Command :\n' + ' '.join(cmdarray) + '\n\n' INFO += '\n#Time spent : ' + records[-1].split( ':')[1].strip() + ' (second)\n\n' textArea = swing.JTextArea() textArea.append(INFO) textArea.setLineWrap(True) tab_info = swing.JScrollPane(textArea) recordtabs.addTab('INFO.', tab_info) TabCloser(self.program).put(recordtabs, self) for table in outputtable: table.setColWidths_gsa(self.getWidth()) if self.listener: self.listener() #self.table=table#wtr# #print self.table#wtr# self.tabtitle = self.getTitleAt(self.getSelectedIndex()) #wtr#
def createFrame (self): # Create the find panel... #outer = Tk.Frame(self.frame,relief="groove",bd=2) #outer.pack(padx=2,pady=2) self.top = swing.JFrame() g.app.gui.addLAFListener( self.top ) #self.top.setDefaultCloseOperation( swing.JFrame.EXIT_ON_CLOSE ) self.top.title = self.title jtab = swing.JTabbedPane() self.top.add( jtab ) cpane = swing.JPanel() jtab.addTab( "regular search", cpane ) clnsearch = swing.JPanel() clnsearch.setName( "Leodialog" ) jtab.addTab( "node search", clnsearch ) #cpane = outer.getContentPane() cpane.setName( "Leodialog" ) cpane.setLayout( awt.GridLayout( 3, 1 ) ) #@ << Create the Find and Change panes >> #@+node:mork.20050127121143.6:<< Create the Find and Change panes >> #fc = Tk.Frame(outer, bd="1m") #fc.pack(anchor="n", fill="x", expand=1) findPanel = self.findPanel = swing.JTextArea() self.CutCopyPaste( findPanel ) fspane = swing.JScrollPane( findPanel ) self.changePanel = changePanel = swing.JTextArea() self.CutCopyPaste( changePanel ) cpane2 = swing.JScrollPane( changePanel ) splitpane = swing.JSplitPane( swing.JSplitPane.VERTICAL_SPLIT, fspane, cpane2 ) splitpane.setDividerLocation( .5 ) #outer.getContentPane().add( splitpane ) cpane.add( splitpane ) #outer.pack() # Removed unused height/width params: using fractions causes problems in some locales! #fpane = Tk.Frame(fc, bd=1) #cpane = Tk.Frame(fc, bd=1) #fpane.pack(anchor="n", expand=1, fill="x") #cpane.pack(anchor="s", expand=1, fill="x") # Create the labels and text fields... #flab = Tk.Label(fpane, width=8, text="Find:") #clab = Tk.Label(cpane, width=8, text="Change:") # Use bigger boxes for scripts. #self.find_text = ftxt = Tk.Text(fpane,bd=1,relief="groove",height=4,width=20) #3self.change_text = ctxt = Tk.Text(cpane,bd=1,relief="groove",height=4,width=20) #fBar = Tk.Scrollbar(fpane,name='findBar') #cBar = Tk.Scrollbar(cpane,name='changeBar') # Add scrollbars. #for bar,txt in ((fBar,ftxt),(cBar,ctxt)): # txt['yscrollcommand'] = bar.set # bar['command'] = txt.yview # bar.pack(side="right", fill="y") #flab.pack(side="left") #clab.pack(side="left") #ctxt.pack(side="right", expand=1, fill="both") #ftxt.pack(side="right", expand=1, fill="both") #@nonl #@-node:mork.20050127121143.6:<< Create the Find and Change panes >> #@nl #@ << Create four columns of radio and checkboxes >> #@+node:mork.20050127121143.7:<< Create four columns of radio and checkboxes >> #columnsFrame = Tk.Frame(outer,relief="groove",bd=2) #columnsFrame.pack(anchor="e",expand=1,padx="7p",pady="2p") # Don't fill. columnsFrame = swing.JPanel() columnsFrame.setLayout( swing.BoxLayout( columnsFrame, swing.BoxLayout.X_AXIS ) ) cpane.add( columnsFrame, awt.BorderLayout.SOUTH ) numberOfColumns = 4 # Number of columns columns = [] ; radioLists = [] ; checkLists = []; buttonGroups = [] for i in xrange(numberOfColumns): #columns.append(Tk.Frame(columnsFrame,bd=1)) jp = swing.JPanel() jp.setLayout( swing.BoxLayout( jp, swing.BoxLayout.Y_AXIS ) ) columns.append( jp ) radioLists.append([]) checkLists.append([]) buttonGroups.append( swing.ButtonGroup() ) for i in xrange(numberOfColumns): columnsFrame.add( columns[ i ] ) #columns[i].pack(side="left",padx="1p") # fill="y" Aligns to top. padx expands columns. radioLists[0] = [ (self.dict["radio-find-type"],"Plain Search","plain-search"), (self.dict["radio-find-type"],"Pattern Match Search","pattern-search"), (self.dict["radio-find-type"],"Script Search","script-search")] checkLists[0] = [ ("Script Change",self.dict["script_change"])] checkLists[1] = [ ("Whole Word", self.dict["whole_word"]), ("Ignore Case", self.dict["ignore_case"]), ("Wrap Around", self.dict["wrap"]), ("Reverse", self.dict["reverse"])] radioLists[2] = [ (self.dict["radio-search-scope"],"Entire Outline","entire-outine"), (self.dict["radio-search-scope"],"Suboutline Only","suboutline-only"), (self.dict["radio-search-scope"],"Node Only","node-only"), # I don't know what selection-only is supposed to do. (self.dict["radio-search-scope"],"Selection Only","selection-only")] checkLists[2] = [] checkLists[3] = [ ("Search Headline Text", self.dict["search_headline"]), ("Search Body Text", self.dict["search_body"]), ("Mark Finds", self.dict["mark_finds"]), ("Mark Changes", self.dict["mark_changes"])] class rAction( swing.AbstractAction ): def __init__( self, name, var , val ): swing.AbstractAction.__init__( self, name ) self.name = name self.var = var self.val = val def actionPerformed( self, aE ): self.var.set( self.val ) class jcbAction( swing.AbstractAction ): def __init__( self, name, var ): swing.AbstractAction.__init__( self, name ) self.var = var def actionPerformed( self, ae ): val = self.var.get() if val: self.var.set( 0 ) else: self.var.set( 1 ) for i in xrange(numberOfColumns): for var,name,val in radioLists[i]: aa = rAction( name, var, val ) but = swing.JRadioButton( aa ) columns[ i ].add( but ) buttonGroups[ i ].add( but ) #box = Tk.Radiobutton(columns[i],anchor="w",text=name,variable=var,value=val) #box.pack(fill="x") #box.bind("<1>", self.resetWrap) #if val == None: box.configure(state="disabled") for name, var in checkLists[i]: cbut = swing.JCheckBox( jcbAction( name, var ) ) columns[ i ].add( cbut ) #box = Tk.Checkbutton(columns[i],anchor="w",text=name,variable=var) #box.pack(fill="x") #box.bind("<1>", self.resetWrap) #if var is None: box.configure(state="disabled") for z in buttonGroups: elements = z.getElements() for x in elements: x.setSelected( True ) break #@-node:mork.20050127121143.7:<< Create four columns of radio and checkboxes >> #@nl #@ << Create two rows of buttons >> #@+node:mork.20050127121143.8:<< Create two rows of buttons >> # Create the button panes secondGroup = swing.JPanel() secondGroup.setLayout( awt.GridLayout( 2, 3 , 10, 10 ) ) cpane.add( secondGroup ) #buttons = Tk.Frame(outer,bd=1) #buttons2 = Tk.Frame(outer,bd=1) #buttons.pack (anchor="n",expand=1,fill="x") #buttons2.pack(anchor="n",expand=1,fill="x") class commandAA( swing.AbstractAction ): def __init__( self, name, command ): swing.AbstractAction.__init__( self, name ) self.command = command def actionPerformed( self, aE ): self.command() # Create the first row of buttons #findButton=Tk.Button(buttons,width=8,text="Find",bd=4,command=self.findButton) # The default. #contextBox=Tk.Checkbutton(buttons,anchor="w",text="Show Context",variable=self.dict["batch"]) #findAllButton=Tk.Button(buttons,width=8,text="Find All",command=self.findAllButton) findButton = swing.JButton( commandAA( "Find", self.findButton ) ) contextBox = swing.JCheckBox( "Show Context" ) findAllButton = swing.JButton( commandAA( "Find All", self.findAllButton ) ) secondGroup.add( findButton ) secondGroup.add( contextBox ) secondGroup.add( findAllButton ) #findButton.pack (pady="1p",padx="25p",side="left") #contextBox.pack (pady="1p", side="left",expand=1) #findAllButton.pack(pady="1p",padx="25p",side="right",fill="x",) # Create the second row of buttons #changeButton =Tk.Button(buttons2,width=8,text="Change",command=self.changeButton) #changeFindButton=Tk.Button(buttons2, text="Change, Then Find",command=self.changeThenFindButton) #changeAllButton =Tk.Button(buttons2,width=8,text="Change All",command=self.changeAllButton) changeButton = swing.JButton( commandAA( "Change", self.changeButton ) ) changeFindButton = swing.JButton( commandAA( "Change, Then Find", self.changeThenFindButton ) ) changeAllButton = swing.JButton( commandAA( "Change All", self.changeAllButton ) ) secondGroup.add( changeButton ) secondGroup.add( changeFindButton ) secondGroup.add( changeAllButton ) #changeButton.pack (pady="1p",padx="25p",side="left") #changeFindButton.pack(pady="1p", side="left",expand=1) #changeAllButton.pack (pady="1p",padx="25p",side="right") #@nonl #@-node:mork.20050127121143.8:<< Create two rows of buttons >> #@nl self.createNodeSearchFrame( clnsearch ) #self.top.setSize( 500, 500 ) self.top.pack() size = self.top.getSize() size.width = size.width + 50 self.top.setSize( size ) splitpane.setDividerLocation( .5 )
import javax.swing as swing # create a window win = swing.JFrame("Welcome") # access the current model model = getCurrentModel() # if there is no loaded model output message in window if not model: win.getContentPane().add(swing.JLabel("No models")) win.setTitle("Example Window") # otherwise display model summary statistics else: # set the window layout win.getContentPane().setLayout(swing.BoxLayout(win.getContentPane(), 1)) # display the model name dLabel = swing.JLabel("Model name: " + model.getName()) win.add(dLabel) # display the number of bodies numBodiesString = "Number of bodies =" + lang.String.valueOf( model.getNumBodies()) bLabel = swing.JLabel(numBodiesString) win.add(bLabel) #display the number of joints numJointsString = "Number of Joints =" + lang.String.valueOf( model.getNumJoints()) njLabel = swing.JLabel(numJointsString)