Example #1
0
    def __init__(self, reaclabel=REACTINV, scalelabel=SCALEFAC):
        WriterPanel.__init__(self)

        self.reacpanel = swing.Box(swing.BoxLayout.LINE_AXIS)
        self.reacpanel.add(swing.JLabel(reaclabel))
        self.reacfield = swing.JTextField()
        self.reacpanel.add(self.reacfield)
        self.reacpanel.add(
            swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0)))
        self.add(self.reacpanel, awt.BorderLayout.CENTER)

        self.numscalepanel = swing.Box(swing.BoxLayout.LINE_AXIS)
        self.add(self.numscalepanel, awt.BorderLayout.EAST)

        self.numpanel = swing.Box(swing.BoxLayout.LINE_AXIS)
        self.numpanel.add(swing.JLabel(NUMBER))
        self.numfield = swing.JFormattedTextField(value=lang.Float(1.0))
        self.numfield.setPreferredSize(
            awt.Dimension(FIELDWIDTH, self.numfield.getHeight()))
        self.numpanel.add(self.numfield)

        self.scalepanel = swing.Box(swing.BoxLayout.LINE_AXIS)
        self.scalepanel.add(swing.JLabel(scalelabel))
        self.scalefield = swing.JFormattedTextField(
            value=lang.Float(Data.Problem.VMAX))
        self.scalefield.setPreferredSize(
            awt.Dimension(FIELDWIDTH, self.scalefield.getHeight()))
        self.scalepanel.add(self.scalefield)

        self.optLayout()
Example #2
0
    def addOptions(self):
        self.optpanel = swing.JPanel(layout=awt.BorderLayout())
        self.add(self.optpanel, awt.BorderLayout.EAST)

        self.commentcheck = swing.JCheckBox(
            COMMENTS, horizontalTextPosition=swing.SwingConstants.LEFT)
        self.commentcheck.setSelected(SHOWCOMMENTS)
        self.optpanel.add(self.commentcheck, awt.BorderLayout.EAST)

        #        self.grbcheck = swing.JCheckBox('Gurobi:', horizontalTextPosition = swing.SwingConstants.LEFT)#w#
        #        self.grbcheck.setSelected(False)#w#

        self.LPbox = swing.Box(swing.BoxLayout.LINE_AXIS)
        self.LPbox.add(
            swing.Box.createRigidArea(awt.Dimension(2 * BORDERWIDTH, 0)))
        self.LPbox.add(swing.JLabel(SOLVER))

        self.solverbox = swing.JComboBox(Data.Problem.SOLVERS)
        self.solverbox.addActionListener(self.SolverSwitcher(self))

        self.LPbox.add(self.solverbox)
        self.LPbox.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH,
                                                               0)))
        self.trimcheck = swing.JCheckBox(
            REDUCE, horizontalTextPosition=swing.SwingConstants.LEFT)
        self.LPbox.add(self.trimcheck)
        self.LPbox.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH,
                                                               0)))

        self.optpanel.add(self.LPbox, awt.BorderLayout.WEST)  #CENTER->WEST
Example #3
0
 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
Example #4
0
 def __init__(self):
     GNIWriterPanel.__init__(self)
     self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0)))
     self.samlabel = swing.JLabel(Util.SAMSIZE)
     self.add(self.samlabel)
     self.samfield = swing.JTextField()
     self.samfield.setMinimumSize(awt.Dimension(1, 0))
     self.samfield.setPreferredSize(awt.Dimension(80, 0))
     self.samfield.setMaximumSize(awt.Dimension(80, 50))
     self.add(self.samfield)
Example #5
0
    def __init__(self):
        WriterPanel.__init__(self)

        self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0)))
        self.explabel = swing.JLabel(EXPRESSION)
        self.add(self.explabel)
        self.expfield = swing.JTextField()
        self.expfield.setMinimumSize(awt.Dimension(1, 0))
        self.expfield.setPreferredSize(awt.Dimension(120, 0))
        self.expfield.setMaximumSize(awt.Dimension(120, 50))
        self.add(self.expfield)

        self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0)))
        self.thrlabel = swing.JLabel(THRESHOLD)
        self.add(self.thrlabel)
        self.thrfield = swing.JTextField('1.0')
        #        self.thrfield = swing.JFormattedTextField('1.0')
        self.thrfield.setMinimumSize(awt.Dimension(1, 0))
        self.thrfield.setPreferredSize(awt.Dimension(50, 0))
        self.thrfield.setMaximumSize(awt.Dimension(50, 50))
        self.add(self.thrfield)

        self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0)))
        self.argwriter = ArgWriterPanel('Reactions/Genes: ')
        self.add(self.argwriter)
Example #6
0
    def __init__(self, name, fun=None):
        super.__init__(self, swing.BoxLayout.LINE_AXIS)
        self.add(swing.JLabel(name))
        self.add(swing.Box.createRigidArea(awt.Dimension(self.BORDERWIDTH, 0)))

        button = swing.JButton(CLOSELABEL, actionPerformed=self.close)
        button.setContentAreaFilled(False)
        button.setBorder(swing.BorderFactory.createEtchedBorder())
        button.setPreferredSize(awt.Dimension(CLOSESIZE, CLOSESIZE))
        self.add(button)
        self.fun = fun
        self.name = name
Example #7
0
    def __init__(self):
        WriterPanel.__init__(self)

        self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0)))
        self.bmlabel = swing.JLabel('Biomass: ')
        self.add(self.bmlabel)
        self.bmfield = swing.JTextField()
        self.bmfield.setMinimumSize(awt.Dimension(1, 0))
        self.bmfield.setPreferredSize(awt.Dimension(120, 0))
        self.bmfield.setMaximumSize(awt.Dimension(120, 50))
        self.add(self.bmfield)

        self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH * 2, 0)))
        self.argwriter = ArgWriterPanel('Genes: ')
        self.add(self.argwriter)
    def run(self):
        self.splash = splash = swing.JWindow()
        splash.setAlwaysOnTop(1)
        cpane = splash.getContentPane()
        rp = splash.getRootPane()
        tb = sborder.TitledBorder("Leo")
        tb.setTitleJustification(tb.CENTER)
        rp.setBorder(tb)
        splash.setBackground(awt.Color.ORANGE)
        dimension = awt.Dimension(400, 400)
        splash.setPreferredSize(dimension)
        splash.setSize(400, 400)

        sicon = g.os_path_join(g.app.loadDir, "..", "Icons", "Leosplash.GIF")
        #ii = swing.ImageIcon( "../Icons/Leosplash.GIF" )
        ii = swing.ImageIcon(sicon)
        image = swing.JLabel(ii)
        image.setBackground(awt.Color.ORANGE)
        cpane.add(image)
        self.splashlabel = splashlabel = swing.JLabel("Leo Starting....")
        splashlabel.setBackground(awt.Color.ORANGE)
        splashlabel.setForeground(awt.Color.BLUE)
        cpane.add(splashlabel, awt.BorderLayout.SOUTH)
        w, h = self._calculateCenteredPosition(splash)
        splash.setLocation(w, h)
        splash.visible = True
Example #9
0
    def __init__(self):
        self.frame=swing.JFrame(title="My Frame", size=(300,300))
        self.frame.defaultCloseOperation=swing.JFrame.EXIT_ON_CLOSE;
        self.frame.layout=awt.BorderLayout()
        self.panel1=swing.JPanel(awt.BorderLayout())
        self.panel2=swing.JPanel(awt.GridLayout(4,1))
        self.panel2.preferredSize = awt.Dimension(10,100)
        self.panel3=swing.JPanel(awt.BorderLayout())

        self.title=swing.JLabel("Text Rendering")
        self.button1=swing.JButton("Print Text", actionPerformed=self.printMessage)
        self.button2=swing.JButton("Clear Text", actionPerformed=self.clearMessage)
        self.textField=swing.JTextField(30)
        self.outputText=swing.JTextArea(4,15)
        

        self.panel1.add(self.title)
        self.panel2.add(self.textField)
        self.panel2.add(self.button1)
        self.panel2.add(self.button2)
        self.panel3.add(self.outputText)

        self.frame.contentPane.add(self.panel1, awt.BorderLayout.PAGE_START)
        self.frame.contentPane.add(self.panel2, awt.BorderLayout.CENTER)
        self.frame.contentPane.add(self.panel3, awt.BorderLayout.PAGE_END)
Example #10
0
    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)
Example #11
0
    def __init__(self, id, client):
        self.id = id
        self.client = client
        self.events = {}
        self.actions = {}

        self.frame = swing.JFrame()
        self.frame.contentPane.layout = awt.BorderLayout()

        self.attr = ThingAttrModel(self)
        self.attrTable = ThingAttrTable(self.attr, client)
        self.attrTable.preferredSize = 200, 75
        #        self.frame.contentPane.add(swing.JScrollPane(self.attrTable))
        self.frame.contentPane.add(self.attrTable)

        self.actionList = swing.Box.createVerticalBox()
        self.actionControls = {}
        self.frame.contentPane.add(self.actionList, 'North')

        self.eventBox = swing.Box.createVerticalBox()
        self.frame.contentPane.add(self.eventBox, 'South')

        self.frame.setDefaultCloseOperation(
            swing.WindowConstants.DO_NOTHING_ON_CLOSE)
        self.frame.windowClosing = self.clickedOnClose
        self.frame.show()
        self.frame.setSize(awt.Dimension(200, 200))
        self.frame.validate()
Example #12
0
    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)
Example #13
0
 def __init__(self):
     GFAWriterPanel_gfva.__init__(self)
     self.remove(self.thrlabel)
     self.remove(self.thrfield)
     self.remove(self.argwriter)
     self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH * 2, 0)))
     self.argwriter = ArgWriterPanel('Reactions: ')
     self.add(self.argwriter)
Example #14
0
    def __init__(self):
        WriterPanel.__init__(self)

        self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0)))
        self.explabel = swing.JLabel(EXPRESSION)
        self.add(self.explabel)
        self.expfield = swing.JTextField()
        self.add(self.expfield)
    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
Example #16
0
    def __init__(self):
        WriterPanel.__init__(self)
        self.dirlabel = swing.JLabel(DIRECTION)
        self.add(self.dirlabel)
        self.dirbox = swing.JComboBox(DIRORDER)
        self.add(self.dirbox)

        self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0)))
        self.objlabel = swing.JLabel(OBJECTIVE)
        self.add(self.objlabel)
        self.objfield = swing.JTextField()
        self.add(self.objfield)
Example #17
0
 def __init__(self):
     ObjArgWriterPanel.__init__(self, CONSTRAINT)
     theclass = swing.JTextField
     self.args = Util.OrderedDict.OrderedDict([
         (FROM, theclass()),
         (TO, theclass()),
         (STEP, theclass()),
     ])
     for label in self.args:
         self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0)))
         self.add(swing.JLabel(label))
         self.add(self.args[label])
     self._3D = False
Example #18
0
    def __init__(self, title=""):
        JFrame.__init__(self, title)
        self.size = 400, 500
        self.windowClosing = self.closing

        label = JLabel(text="Class Name:")
        label.horizontalAlignment = JLabel.RIGHT
        tpanel = JPanel(layout=awt.FlowLayout())
        self.text = JTextField(20, actionPerformed=self.entered)
        btn = JButton("Enter", actionPerformed=self.entered)
        tpanel.add(label)
        tpanel.add(self.text)
        tpanel.add(btn)

        bpanel = JPanel()
        self.tree = JTree(default_tree())
        scrollpane = JScrollPane(self.tree)
        scrollpane.setMinimumSize(awt.Dimension(200, 200))
        scrollpane.setPreferredSize(awt.Dimension(350, 400))
        bpanel.add(scrollpane)

        bag = GridBag(self.contentPane)
        bag.addRow(tpanel, fill='HORIZONTAL', weightx=1.0, weighty=0.5)
        bag.addRow(bpanel, fill='BOTH', weightx=0.5, weighty=1.0)
Example #19
0
    def __init__(self):
        WriterPanel.__init__(self)

        self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0)))
        self.objlabel = swing.JLabel(OBJECTIVE)
        self.add(self.objlabel)
        self.objfield = swing.JTextField()
        self.objfield.setMinimumSize(awt.Dimension(1, 0))
        self.objfield.setPreferredSize(awt.Dimension(120, 0))
        self.objfield.setMaximumSize(awt.Dimension(120, 50))
        self.add(self.objfield)

        self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0)))
        self.explabel = swing.JLabel(EXPRESSION)
        self.add(self.explabel)
        self.expfield = swing.JTextField()
        self.expfield.setMinimumSize(awt.Dimension(1, 0))
        self.expfield.setPreferredSize(awt.Dimension(50, 0))
        self.expfield.setMaximumSize(awt.Dimension(50, 50))
        self.add(self.expfield)

        self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0)))
        self.argwriter = ArgWriterPanel('Reactions: ')
        self.add(self.argwriter)
Example #20
0
	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)
Example #22
0
    return JList(lstPrpVal)


#===================================================================
# Get Sessions properties
#===================================================================
##inStream = io.FileInputStream("test/tn5250jMsgs.properties")
config = tnj.GlobalConfigure.instance()
prpSes = config.getProperties(config.SESSIONS)
jLst1 = makeJListFromProperty(prpSes)
#===================================================================
# Get System Properties
#===================================================================
prpSys = System.getProperties()
jLst2 = makeJListFromProperty(prpSys)
#===================================================================
# GUI Stuff
#===================================================================
minSize = awt.Dimension(100, 50)
scrPan1 = JScrollPane(jLst1)
scrPan1.setMinimumSize(minSize)
scrPan2 = JScrollPane(jLst2)
scrPan2.setMinimumSize(minSize)
splitPane = JSplitPane(JSplitPane.VERTICAL_SPLIT, scrPan1, scrPan2)
splitPane.setPreferredSize(awt.Dimension(600, 200))

frame = JFrame("System Properties")
frame.getContentPane().add(splitPane)
frame.pack()
frame.show()
Example #23
0
    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._jScrollPaneIn = swing.JScrollPane(self._jTextIn)
        self._jScrollPaneIn.setVerticalScrollBarPolicy(
            swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)
        self._jScrollPaneIn.setPreferredSize(awt.Dimension(20, 120))
        self._jTextOut = swing.JTextArea("SAML Binding Out", 20, 120)
        self._jTextOut.setLineWrap(True)
        self._jScrollPaneOut = swing.JScrollPane(self._jTextOut)
        self._jScrollPaneOut.setVerticalScrollBarPolicy(
            swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)
        self._jScrollPaneOut.setPreferredSize(awt.Dimension(20, 120))
        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)
        self._jPanel.add(self._jScrollPaneOut)

        # SAML Artifact Format
        self._jTextArtIn = swing.JTextArea("SAML Artifact In", 20, 120)
        self._jTextArtIn.setLineWrap(True)
        self._jScrollPaneArtIn = swing.JScrollPane(self._jTextArtIn)
        self._jScrollPaneArtIn.setVerticalScrollBarPolicy(
            swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)
        self._jScrollPaneArtIn.setPreferredSize(awt.Dimension(20, 120))
        self._jTextArtOut = swing.JTextArea("SAML Artifact Out", 20, 120)
        self._jTextArtOut.setLineWrap(True)
        self._jScrollPaneArtOut = swing.JScrollPane(self._jTextArtOut)
        self._jScrollPaneArtOut.setVerticalScrollBarPolicy(
            swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)
        self._jScrollPaneArtOut.setPreferredSize(awt.Dimension(20, 120))
        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._jScrollPaneArtIn)
        self._jPanel.add(self._jButtonArtPanel)
        self._jPanel.add(self._jScrollPaneArtOut)

        callbacks.customizeUiComponent(self._jPanel)

        # register ourselves as a message editor tab factory
        callbacks.addSuiteTab(self)
        return
Example #24
0
    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)
Example #25
0
    def __init__(self):
        #"@sig public JESProgram()"
        #swing.UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
        #        self.userExperience = JESConfig.getInstance().getStringProperty(JESConfig.CONFIG_MODE);
        #        self.gutterOn = JESConfig.getInstance().getBooleanProperty(JESConfig.CONFIG_GUTTER);
        #        self.blockBoxOff = JESConfig.getInstance().getBooleanProperty(JESConfig.CONFIG_BLOCK);
        #        self.autoSaveOnRun = JESConfig.getInstance().getBooleanProperty(JESConfig.CONFIG_AUTOSAVEONRUN);
        #        self.backupSave = JESConfig.getInstance().getBooleanProperty(JESConfig.CONFIG_BACKUPSAVE);
        #        self.wrapPixelValues = JESConfig.getInstance().getBooleanProperty(JESConfig.CONFIG_WRAPPIXELVALUES);
        #        self.userFont = JESConfig.getInstance().getIntegerProperty(JESConfig.CONFIG_FONT);
        #        self.showTurnin = JESConfig.getInstance().getBooleanProperty(JESConfig.CONFIG_SHOWTURNIN);
        #        self.skin = JESConfig.getInstance().getStringProperty(JESConfig.CONFIG_SKIN);
        #        self.webDefinitions = JESConfig.getInstance().getStringProperty(JESConfig.CONFIG_WEB_TURNIN);
        #        self.mediaFolder = JESConfig.getInstance().getStringProperty(JESConfig.CONFIG_MEDIAPATH);

        self.logBuffer = JESLogBuffer.JESLogBuffer(self)
        #        self.logBuffer.saveBoolean = JESConfig.getInstance().getBooleanProperty(JESConfig.CONFIG_LOGBUFFER);

        # let's just read the config file once, and if
        # it's no there, we'll handle it right now.
        # self.preCheckForConfigFile()
        # self.getSettingsLater = 0
        # self.loadConfigFile()

        self.textForCommandWindow = ''
        self.aboutWindow = None
        self.introWindow = None

        self.gui = JESUI.JESUI(self)
        self.filename = ' '
        self.settingsFileName = ''
        self.interpreter = JESInterpreter.JESInterpreter(self)
        # a gross hack?, see JESUI.py on why it's commentted out there
        self.interpreter.debugger.watcher.setMinimumSize(
            awt.Dimension(500, 400))
        self.interpreter.debugger.watcher.setPreferredSize(
            awt.Dimension(600, 400))

        self.gui.windowSetting(None)

        self.varsToHighlight = self.interpreter.getVarsToHighlight()

        self.chooser = JESFileChooser.JESFileChooser()
        self.defaultPath = io.File(JESConfig.getInstance().getStringProperty(
            JESConfig.CONFIG_MEDIAPATH))
        self.setHelpArray()
        #self.loadSuccess(), 5/15/09 Dorn: removed as unnecessary and breaks due to needed code in loadSuccess for input

        self.gui.changeSkin(JESConfig.getInstance().getStringProperty(
            JESConfig.CONFIG_SKIN))
        self.gui.show()

        if JESConfig.getInstance().getBooleanProperty(JESConfig.CONFIG_BLOCK):
            self.gui.editor.removeBox()
        else:
            self.gui.editor.addBox()

        if JESConfig.getInstance().getBooleanProperty(JESConfig.CONFIG_GUTTER):
            self.gui.turnOnGutter()
        else:
            self.gui.turnOffGutter()

        # self.checkForConfigFile()
        ## do these once we're started...

        # later is now!
        #if self.getSettingsLater:
        #self.openSettingsGUI()
        #self.openIntroductionWindow()

        #Show introduction window if settings could not be loaded (Either new JES user or bad write permissions)
        if not JESConfig.getInstance().isConfigLoaded():
            self.openIntroductionWindow()
Example #26
0
    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()
Example #27
0
    def registerExtenderCallbacks(self, callbacks):
        self._callbacks = callbacks
        self._helpers = callbacks.getHelpers()
        callbacks.setExtensionName("Encoder")
        callbacks.registerContextMenuFactory(self)
        callbacks.registerIntruderPayloadProcessor(self)

        #Create Jpanel
        self._jPanel = swing.JPanel()
        self._jPanel.setLayout(None)
        self._jPanel.setPreferredSize(awt.Dimension(1200, 1200))

        #Values for the combination boxes
        algOptions = [
            'Algorithm...', 'UTF-7', 'UTF-8', 'URL', 'Base64', 'XML', 'Binary',
            'Overlong', 'zlib deflate'
        ]
        hashOptions = [
            'Hash...', 'md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512'
        ]

        #GUI Components
        self.jEncode = swing.JRadioButton('Encode',
                                          actionPerformed=self.encodeButton)
        self.jDecode = swing.JRadioButton('Decode',
                                          actionPerformed=self.decodeButton)
        self.jAlgMenu = swing.JComboBox(algOptions)
        self.jInput = swing.JTextArea()
        self.jInputLabel = swing.JLabel()
        self.jOutput = swing.JTextArea()
        self.jInputScroll = swing.JScrollPane(self.jOutput)
        self.jOutputScroll = swing.JScrollPane(self.jOutput)
        self.jOutputLabel = swing.JLabel()
        self.jHashLabel = swing.JLabel()
        self.jHashMenu = swing.JComboBox(hashOptions)
        self.jStart = swing.JButton('Go', actionPerformed=self.doStart)
        self.jHex = swing.JRadioButton('Hex', actionPerformed=self.toHex)
        self.jString = swing.JRadioButton('String',
                                          actionPerformed=self.toString)
        self.jOutputFormat = swing.ButtonGroup()
        self.jSendToRequest = swing.JButton('Send to request',
                                            actionPerformed=self.sendToRequest)
        self.jToInput = swing.JButton('Send to Input',
                                      actionPerformed=self.toInput)
        self.jNextHistory = swing.JButton('>',
                                          actionPerformed=self.nextHistory)
        self.jPreviousHistory = swing.JButton(
            '<', actionPerformed=self.previousHistory)

        #Input and Ouptut scroll
        self.jOutputScroll = swing.JScrollPane(
            swing.JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
            swing.JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED)
        self.jOutputScroll.viewport.view = self.jOutput
        self.jInputScroll = swing.JScrollPane(
            swing.JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
            swing.JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED)
        self.jInputScroll.viewport.view = self.jInput
        #Add buttons to group
        self.jOutputFormat.add(self.jString)
        self.jOutputFormat.add(self.jHex)

        #Configure GUIs

        self.jEncode.setSelected(True)
        self.jDecode.setSelected(False)
        self.jAlgMenu.setSelectedIndex(0)
        self.jInput.setLineWrap(True)
        self.jOutput.setLineWrap(True)
        self.jOutput.setEditable(False)
        self.jHashMenu.setSelectedIndex(0)
        self.jString.setSelected(True)

        #Component Locations

        self.jEncode.setBounds(15, 15, 70, 20)
        self.jDecode.setBounds(85, 15, 70, 20)
        self.jAlgMenu.setBounds(15, 45, 140, 25)
        self.jHashMenu.setBounds(15, 80, 140, 25)
        self.jStart.setBounds(15, 115, 140, 20)
        self.jSendToRequest.setBounds(15, 145, 140, 20)
        self.jHex.setBounds(15, 175, 70, 20)
        self.jString.setBounds(85, 175, 70, 20)
        self.jInputScroll.setBounds(165, 15, 800, 200)
        self.jOutputScroll.setBounds(165, 225, 800, 200)
        self.jToInput.setBounds(15, 405, 140, 20)
        self.jNextHistory.setBounds(85, 465, 70, 20)
        self.jPreviousHistory.setBounds(15, 465, 70, 20)

        #Add components to Panel
        self._jPanel.add(self.jEncode)
        self._jPanel.add(self.jDecode)
        self._jPanel.add(self.jAlgMenu)
        self._jPanel.add(self.jHashMenu)
        self._jPanel.add(self.jInputScroll)
        self._jPanel.add(self.jOutputScroll)
        self._jPanel.add(self.jStart)
        self._jPanel.add(self.jHex)
        self._jPanel.add(self.jString)
        self._jPanel.add(self.jSendToRequest)
        self._jPanel.add(self.jToInput)
        self._jPanel.add(self.jNextHistory)
        self._jPanel.add(self.jPreviousHistory)

        callbacks.customizeUiComponent(self._jPanel)
        callbacks.addSuiteTab(self)

        # set some values
        self._inputHex = False
        self._outputHex = False

        return
Example #28
0
    def registerExtenderCallbacks(self, callbacks):
        # Print information about the plugin, set extension name, setup basic stuff
        self.printHeader()
        callbacks.setExtensionName("BurpHelper")
        self._callbacks = callbacks
        self._helpers = callbacks.getHelpers()
        callbacks.registerContextMenuFactory(self)
        # Create main panel with Components
        self._jTitleFont = Font("", Font.BOLD, 15)

        ##Current IP
        self._jLabelCurrentIPMainText = swing.JLabel()
        self._jLabelCurrentIPDesText = swing.JLabel()
        self._jLabelCurrentWanIpDes = swing.JLabel()
        self._jLabelCurrentLanIpDes = swing.JLabel()
        self._jLabelCurrentWanIp = swing.JLabel()
        self._jLabelCurrentLanIp = swing.JLabel()
        self._jCheckIPButton = swing.JButton("Check IP",
                                             actionPerformed=self.CheckIP)

        ##Proxy Setting

        self._jPAddButton = swing.JButton("Add", actionPerformed=self.PitemAdd)
        self._jPEditButton = swing.JButton("Edit",
                                           actionPerformed=self.PitemEdit)
        self._jPRemoveButton = swing.JButton("Remove",
                                             actionPerformed=self.PitemRemove)
        self._jLabelMainText = swing.JLabel()
        self._jLabelScanIPListen = swing.JLabel()

        self._jScanPanel = swing.JPanel()
        self._jScanPanel.setLayout(None)
        self._jTabledata = MappingTableModel(callbacks, self._jScanPanel)
        self._jTable = swing.JTable(self._jTabledata)
        self._jTablecont = swing.JScrollPane(self._jTable)
        self._jSeparator_first = swing.JSeparator(swing.JSeparator.HORIZONTAL)
        self._jSeparator_second = swing.JSeparator(swing.JSeparator.HORIZONTAL)

        ##Dashboard
        self._jLabelDashboardText = swing.JLabel()
        self._jLabelDashboardDesText = swing.JLabel()
        self._jDTabledata = DashboardTableModel(callbacks, self._jScanPanel)
        self._jDTable = swing.JTable(self._jDTabledata)
        self._jDTablecont = swing.JScrollPane(self._jDTable)

        # Configure GUI
        self._jLabelCurrentIPMainText.setText('Check Current IP ')
        self._jLabelCurrentIPMainText.setForeground(Color(228, 127, 0))
        self._jLabelCurrentIPMainText.setFont(self._jTitleFont)
        self._jLabelCurrentIPDesText.setText('You can check your current IP')
        self._jLabelCurrentWanIpDes.setText("Wan IP : ")
        self._jLabelCurrentLanIpDes.setText("Lan IP : ")

        self._jLabelMainText.setText('Proxy Server Setting')
        self._jLabelMainText.setForeground(Color(228, 127, 0))
        self._jLabelMainText.setFont(self._jTitleFont)
        self._jLabelScanIPListen.setText(
            'You can set the proxy server, When the plugin is loading, Proxy Setting is initialized'
        )
        self._jTable.getColumn("Name").setPreferredWidth(200)
        self._jTable.getColumn("IP").setPreferredWidth(150)
        self._jTable.getColumn("Port").setPreferredWidth(100)
        self._jTable.getColumn("Enabled").setPreferredWidth(50)

        self._jDTable.getColumn("URL").setPreferredWidth(180)
        self._jDTable.getColumn("Privilege").setPreferredWidth(130)
        self._jDTable.getColumn("ID").setPreferredWidth(100)
        self._jDTable.getColumn("Password").setPreferredWidth(100)
        self._jDTable.getColumn("Comment").setPreferredWidth(200)

        self._jScanPanel.setPreferredSize(awt.Dimension(1010, 1010))

        self._jLabelDashboardText.setText('Target Site List')
        self._jLabelDashboardText.setForeground(Color(228, 127, 0))
        self._jLabelDashboardText.setFont(self._jTitleFont)
        self._jLabelDashboardDesText.setText(
            'You can save the account list per site.')
        self._jDAddButton = swing.JButton("Add", actionPerformed=self.DitemAdd)
        self._jDEditButton = swing.JButton("Edit",
                                           actionPerformed=self.DitemEdit)
        self._jDRemoveButton = swing.JButton("Remove",
                                             actionPerformed=self.DitemRemove)
        self._jDIDCopyButton = swing.JButton("ID Copy",
                                             actionPerformed=self.DIDCopy)
        self._jDPwCopyButton = swing.JButton("PW Copy",
                                             actionPerformed=self.DPwCopy)
        self._jDitemsDelete = swing.JButton("Clear",
                                            actionPerformed=self.DitemsDelete)
        self._jDURLConButton = swing.JButton("Open URL",
                                             actionPerformed=self.DOpenURL)

        # Configure locations
        self._jLabelCurrentIPMainText.setBounds(15, 10, 300, 20)
        self._jLabelCurrentIPDesText.setBounds(15, 32, 300, 20)
        self._jLabelCurrentWanIpDes.setBounds(15, 60, 60, 15)
        self._jLabelCurrentLanIpDes.setBounds(15, 80, 60, 15)
        self._jLabelCurrentWanIp.setBounds(80, 60, 100, 15)
        self._jLabelCurrentLanIp.setBounds(80, 80, 100, 15)
        self._jCheckIPButton.setBounds(190, 57, 90, 40)

        self._jSeparator_first.setBounds(15, 110, 900, 15)

        self._jLabelMainText.setBounds(15, 120, 300, 20)
        self._jLabelScanIPListen.setBounds(15, 142, 500, 20)
        self._jPAddButton.setBounds(15, 170, 100, 30)
        self._jPEditButton.setBounds(15, 205, 100, 30)
        self._jPRemoveButton.setBounds(15, 240, 100, 30)
        self._jTablecont.setBounds(120, 170, 600, 150)
        self._jSeparator_second.setBounds(15, 335, 900, 15)

        self._jLabelDashboardText.setBounds(15, 350, 300, 20)
        self._jLabelDashboardDesText.setBounds(15, 372, 300, 20)
        self._jDAddButton.setBounds(15, 400, 100, 30)
        self._jDEditButton.setBounds(15, 435, 100, 30)
        self._jDRemoveButton.setBounds(15, 470, 100, 30)
        self._jDURLConButton.setBounds(15, 505, 100, 30)
        self._jDIDCopyButton.setBounds(15, 540, 100, 30)
        self._jDPwCopyButton.setBounds(15, 575, 100, 30)
        self._jDTablecont.setBounds(120, 400, 750, 205)
        self._jDitemsDelete.setBounds(810, 375, 60, 25)

        # Component ADD
        self._jScanPanel.add(self._jLabelCurrentIPMainText)
        self._jScanPanel.add(self._jLabelCurrentIPDesText)
        self._jScanPanel.add(self._jLabelCurrentWanIp)
        self._jScanPanel.add(self._jLabelCurrentLanIp)
        self._jScanPanel.add(self._jLabelCurrentWanIpDes)
        self._jScanPanel.add(self._jLabelCurrentLanIpDes)
        self._jScanPanel.add(self._jCheckIPButton)
        self._jScanPanel.add(self._jLabelMainText)
        self._jScanPanel.add(self._jLabelScanIPListen)
        self._jScanPanel.add(self._jPAddButton)
        self._jScanPanel.add(self._jPEditButton)
        self._jScanPanel.add(self._jPRemoveButton)
        self._jScanPanel.add(self._jSeparator_first)
        self._jScanPanel.add(self._jTablecont)
        self._jScanPanel.add(self._jSeparator_second)
        self._jScanPanel.add(self._jLabelDashboardText)
        self._jScanPanel.add(self._jLabelDashboardDesText)
        self._jScanPanel.add(self._jDAddButton)
        self._jScanPanel.add(self._jDEditButton)
        self._jScanPanel.add(self._jDRemoveButton)
        self._jScanPanel.add(self._jDIDCopyButton)
        self._jScanPanel.add(self._jDPwCopyButton)
        self._jScanPanel.add(self._jDTablecont)
        self._jScanPanel.add(self._jDitemsDelete)
        self._jScanPanel.add(self._jDURLConButton)

        # ADD/EDIT Dialog Create Component
        ## PROXY

        self.panel = swing.JPanel()
        self.panel.setLayout(None)
        self.panel.setPreferredSize(awt.Dimension(200, 140))
        self.DescriptionLabel = swing.JLabel()
        self.NameLabel = swing.JLabel()
        self.IPLabel = swing.JLabel()
        self.PortLabel = swing.JLabel()
        self.Nametext = swing.JTextField(50)
        self.IPtext = swing.JTextField(50)
        self.Porttext = swing.JTextField(50)

        ## ACOUNT
        self.Dpanel = swing.JPanel()
        self.Dpanel.setLayout(None)
        self.Dpanel.setPreferredSize(awt.Dimension(260, 210))
        self.DDescriptionLabel = swing.JLabel()
        self.DURLLabel = swing.JLabel()
        self.DURLText = swing.JTextField(50)
        self.DPrivLabel = swing.JLabel()
        self.DPrivCombo = swing.JComboBox()
        self.DIDLabel = swing.JLabel()
        self.DIDText = swing.JTextField(50)
        self.DPassLabel = swing.JLabel()
        self.DPassText = swing.JTextField(50)
        self.DCommentLabel = swing.JLabel()
        self.DCommentText = swing.JTextField(50)
        self.DSubCommentLabel = swing.JLabel()

        # ADD/EDIT Dialog Configure locations
        ## PROXY

        self.DescriptionLabel.setBounds(0, 0, 190, 15)
        self.NameLabel.setBounds(5, 35, 50, 30)
        self.IPLabel.setBounds(5, 70, 50, 30)
        self.PortLabel.setBounds(5, 105, 50, 30)
        self.Nametext.setBounds(60, 35, 150, 30)
        self.IPtext.setBounds(60, 70, 150, 30)
        self.Porttext.setBounds(60, 105, 150, 30)

        ## ACCOUNT
        self.DDescriptionLabel.setBounds(0, 0, 200, 10)

        self.DURLLabel.setBounds(5, 35, 70, 30)
        self.DURLText.setBounds(80, 35, 180, 30)
        self.DPrivLabel.setBounds(5, 70, 70, 30)
        self.DPrivCombo.setBounds(80, 70, 180, 30)
        self.DIDLabel.setBounds(5, 105, 70, 30)
        self.DIDText.setBounds(80, 105, 180, 30)
        self.DPassLabel.setBounds(5, 140, 70, 30)
        self.DPassText.setBounds(80, 140, 180, 30)
        self.DCommentLabel.setBounds(5, 175, 70, 15)
        self.DCommentText.setBounds(80, 175, 180, 30)
        self.DSubCommentLabel.setBounds(0, 190, 80, 15)

        # ADD/EDIT Dialog Configure GUI
        ## PROXY

        self.DescriptionLabel.setText("Input your proxy server details.")
        self.NameLabel.setText("NAME : ")
        self.IPLabel.setText("IP : ")
        self.PortLabel.setText("PORT : ")

        ## ACCOUNT
        self.DDescriptionLabel.setText("Input your account details")
        self.DURLLabel.setText("URL : ")
        self.DPrivLabel.setText("Privilege : ")
        self.DIDLabel.setText("ID : ")
        self.DPassLabel.setText("Password : "******"Comment : ")
        self.DSubCommentLabel.setText("(Unique Text)")
        self.DPrivCombo.addItem("System Administrator")
        self.DPrivCombo.addItem("Staff Administrator")
        self.DPrivCombo.addItem("Internal Staff")
        self.DPrivCombo.addItem("Customer")
        self.DPrivCombo.addItem("The Lowest Privilege")
        self.DPrivCombo.addItem("ETC")
        self.DPrivCombo.setEditable(False)

        # ADD/EDIT Dialog Component ADD
        ## PROXY
        self.panel.add(self.DescriptionLabel)
        self.panel.add(self.NameLabel)
        self.panel.add(self.IPLabel)
        self.panel.add(self.PortLabel)
        self.panel.add(self.Nametext)
        self.panel.add(self.IPtext)
        self.panel.add(self.Porttext)

        ## ACCOUNT
        self.Dpanel.add(self.DDescriptionLabel)
        self.Dpanel.add(self.DURLLabel)
        self.Dpanel.add(self.DURLText)
        self.Dpanel.add(self.DIDLabel)
        self.Dpanel.add(self.DIDText)
        self.Dpanel.add(self.DPassLabel)
        self.Dpanel.add(self.DPassText)
        self.Dpanel.add(self.DPrivLabel)
        self.Dpanel.add(self.DPrivCombo)
        self.Dpanel.add(self.DCommentLabel)
        self.Dpanel.add(self.DCommentText)
        self.Dpanel.add(self.DSubCommentLabel)

        # Setup Tabs
        self._jConfigTab = swing.JTabbedPane()
        self._jConfigTab.addTab("Smart Settings", self._jScanPanel)
        callbacks.addSuiteTab(self)
        return
Example #29
0
 def __init__(self, img, size):
     self.setPreferredSize(awt.Dimension(*size))
     self.img = img
Example #30
0
  def registerExtenderCallbacks(self, callbacks):
    # Print information about the plugin, set extension name, setup basic stuff
    self.printHeader()
    callbacks.setExtensionName("SQLiPy")
    self._callbacks = callbacks
    self._helpers = callbacks.getHelpers()
    callbacks.registerContextMenuFactory(self)

    # Create SQLMap API configuration JPanel
    self._jPanel = swing.JPanel()
    self._jPanel.setLayout(awt.GridBagLayout())
    self._jPanelConstraints = awt.GridBagConstraints()

    # Create panel for IP info
    self._jLabelIPListen = swing.JLabel("Listen on IP:")
    self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL
    self._jPanelConstraints.gridx = 0
    self._jPanelConstraints.gridy = 0
    self._jPanel.add(self._jLabelIPListen, self._jPanelConstraints)

    self._jTextFieldIPListen = swing.JTextField("",15)
    self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL
    self._jPanelConstraints.gridx = 1
    self._jPanelConstraints.gridy = 0
    self._jPanel.add(self._jTextFieldIPListen, self._jPanelConstraints)

    # Create panel for Port info
    self._jLabelPortListen = swing.JLabel("Listen on Port:")
    self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL
    self._jPanelConstraints.gridx = 0
    self._jPanelConstraints.gridy = 1
    self._jPanel.add(self._jLabelPortListen, self._jPanelConstraints)

    self._jTextFieldPortListen = swing.JTextField("",3)
    self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL
    self._jPanelConstraints.gridx = 1
    self._jPanelConstraints.gridy = 1
    self._jPanel.add(self._jTextFieldPortListen, self._jPanelConstraints)

    # Create panel to contain Python button
    self._jLabelPython = swing.JLabel("Select Python:")
    self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL
    self._jPanelConstraints.gridx = 0
    self._jPanelConstraints.gridy = 2
    self._jPanel.add(self._jLabelPython, self._jPanelConstraints)

    self._jButtonSetPython = swing.JButton('Python', actionPerformed=self.setPython)
    self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL
    self._jPanelConstraints.gridx = 1
    self._jPanelConstraints.gridy = 2
    self._jPanel.add(self._jButtonSetPython, self._jPanelConstraints)

    # Create panel to contain API button
    self._jLabelAPI = swing.JLabel("Select API:")
    self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL
    self._jPanelConstraints.gridx = 0
    self._jPanelConstraints.gridy = 3
    self._jPanel.add(self._jLabelAPI, self._jPanelConstraints)

    self._jButtonSetAPI = swing.JButton('SQLMap API', actionPerformed=self.setAPI)
    self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL
    self._jPanelConstraints.gridx = 1
    self._jPanelConstraints.gridy = 3
    self._jPanel.add(self._jButtonSetAPI, self._jPanelConstraints)

    # Create panel to execute API
    self._jButtonStartAPI = swing.JButton('Start API', actionPerformed=self.startAPI)
    self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL
    self._jPanelConstraints.gridx = 0
    self._jPanelConstraints.gridy = 4
    self._jPanelConstraints.gridwidth = 2
    self._jPanel.add(self._jButtonStartAPI, self._jPanelConstraints)

    # Create SQLMap scanner panel
    # Combobox Values
    levelValues = [1,2,3,4,5]
    riskValues = [0,1,2,3]
    threadValues = [1,2,3,4,5,6,7,8,9,10]
    delayValues = [0,1,2,3,4,5]
    timeoutValues = [1,5,10,15,20,25,30,35,40,45,50,55,60]
    retryValues = [1,2,3,4,5,6,7,8,9,10]
    dbmsValues = ['Any', 'MySQL', 'Oracle', 'PostgreSQL', 'Microsoft SQL Server', 'Microsoft Access', 'SQLite', 'Firebird', 'Sybase', 'SAP MaxDB', 'DB2']
    osValues = ['Any', 'Linux', 'Windows']
    timeSecValues = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
    torTypes = ['HTTP', 'SOCKS4', 'SOCKS5']

    # GUI components
    self._jLabelScanText = swing.JLabel()
    self._jLabelScanIPListen = swing.JLabel()
    self._jLabelScanPortListen = swing.JLabel()
    self._jTextFieldScanIPListen = swing.JTextField()
    self._jTextFieldScanPortListen = swing.JTextField()
    self._jSeparator1 = swing.JSeparator()
    self._jLabelURL = swing.JLabel()
    self._jTextFieldURL = swing.JTextField()
    self._jLabelData = swing.JLabel()
    self._jTextData = swing.JTextArea()
    self._jScrollPaneData = swing.JScrollPane(self._jTextData)
    self._jLabelCookie = swing.JLabel()
    self._jTextFieldCookie = swing.JTextField()
    self._jLabelReferer = swing.JLabel()
    self._jTextFieldReferer = swing.JTextField()
    self._jLabelUA = swing.JLabel()
    self._jTextFieldUA = swing.JTextField()
    self._jSeparator2 = swing.JSeparator()
    self._jLabelParam = swing.JLabel()
    self._jTextFieldParam = swing.JTextField()
    self._jCheckTO = swing.JCheckBox()
    self._jSeparator3 = swing.JSeparator()
    self._jComboLevel = swing.JComboBox(levelValues)
    self._jLabelLevel = swing.JLabel()
    self._jLabelRisk = swing.JLabel()
    self._jComboRisk = swing.JComboBox(riskValues)
    self._jSeparator4 = swing.JSeparator()
    self._jCheckHPP = swing.JCheckBox('Param Pollution')
    self._jCheckCU = swing.JCheckBox('Current User')
    self._jCheckDB = swing.JCheckBox('Current DB')
    self._jCheckHost = swing.JCheckBox('Hostname')
    self._jCheckDBA = swing.JCheckBox('Is DBA?')
    self._jCheckUsers = swing.JCheckBox('List Users')
    self._jCheckPrivs = swing.JCheckBox('List Privs')
    self._jCheckPswds = swing.JCheckBox('List Passwords')
    self._jCheckRoles = swing.JCheckBox('List Roles')
    self._jCheckDBs = swing.JCheckBox('List DBs')
    self._jSeparator5 = swing.JSeparator()
    self._jLabelThreads = swing.JLabel()
    self._jLabelDelay = swing.JLabel()
    self._jLabelTimeout = swing.JLabel()
    self._jLabelRetry = swing.JLabel()
    self._jLabelTimeSec = swing.JLabel()
    self._jComboThreads = swing.JComboBox(threadValues)
    self._jComboDelay = swing.JComboBox(delayValues)
    self._jComboTimeout = swing.JComboBox(timeoutValues)
    self._jComboRetry = swing.JComboBox(retryValues)
    self._jComboTimeSec = swing.JComboBox(timeSecValues)
    self._jSeparator6 = swing.JSeparator()
    self._jLabelDBMS = swing.JLabel()
    self._jComboDBMS = swing.JComboBox(dbmsValues)
    self._jLabelOS = swing.JLabel()
    self._jComboOS = swing.JComboBox(osValues)
    self._jSeparator7 = swing.JSeparator()
    self._jLabelProxy = swing.JLabel()
    self._jTextFieldProxy = swing.JTextField()
    self._jSeparator8 = swing.JSeparator()
    self._jLabelTamper = swing.JLabel()
    self._jTextFieldTamper = swing.JTextField()
    self._jButtonStartScan = swing.JButton('Start Scan', actionPerformed=self.startScan)
    self._jLabelScanAPI = swing.JLabel()
    self._jSeparator9 = swing.JSeparator()
    self._jSeparator10 = swing.JSeparator()
    self._jCheckTor = swing.JCheckBox('Enable Tor')
    self._jLabelTorType = swing.JLabel()
    self._jComboTorType = swing.JComboBox(torTypes)
    self._jLabelTorPort = swing.JLabel()
    self._jTextFieldTorPort = swing.JTextField()

    # Configure GUI
    self._jLabelScanText.setText('API Listening On:')
    self._jLabelScanIPListen.setText('SQLMap API IP:')
    self._jLabelScanPortListen.setText('SQLMap API Port:')
    self._jLabelURL.setText('URL:')
    self._jLabelData.setText('Post Data:')
    self._jTextData.setColumns(20)
    self._jTextData.setRows(5)
    self._jTextData.setLineWrap(True)
    self._jScrollPaneData.setVerticalScrollBarPolicy(swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)
    self._jLabelCookie.setText('Cookies:')
    self._jLabelReferer.setText('Referer:')
    self._jLabelUA.setText('User-Agent:')
    self._jLabelParam.setText('Test Parameter(s):')
    self._jCheckTO.setText('Text Only')
    self._jLabelLevel.setText('Level:')
    self._jLabelRisk.setText('Risk:')
    self._jComboLevel.setSelectedIndex(2)
    self._jComboRisk.setSelectedIndex(1)
    self._jComboThreads.setSelectedIndex(0)
    self._jComboDelay.setSelectedIndex(0)
    self._jComboTimeout.setSelectedIndex(6)
    self._jComboRetry.setSelectedIndex(2)
    self._jComboTimeSec.setSelectedIndex(4)
    self._jComboDBMS.setSelectedIndex(0)
    self._jComboOS.setSelectedIndex(0)
    self._jComboTorType.setSelectedIndex(2)
    self._jLabelThreads.setText('Threads:')
    self._jLabelDelay.setText('Delay:')
    self._jLabelTimeout.setText('Timeout:')
    self._jLabelRetry.setText('Retries:')
    self._jLabelTimeSec.setText('Time-Sec:')
    self._jLabelDBMS.setText('DBMS Backend:')
    self._jLabelOS.setText('Operating System:')
    self._jLabelProxy.setText('Proxy (HTTP://IP:Port):')
    self._jLabelTamper.setText('Tamper Scripts:')
    self._jLabelTorType.setText('Tor Type:')
    self._jLabelTorPort.setText('Tor Port:')
    self._jTextFieldTorPort.setText('9050')

    # Configure locations
    self._jLabelScanText.setBounds(15, 16, 126, 20)
    self._jLabelScanIPListen.setBounds(15, 58, 115, 20)
    self._jLabelScanPortListen.setBounds(402, 55, 129, 20)
    self._jTextFieldScanIPListen.setBounds(167, 52, 206, 26)
    self._jTextFieldScanPortListen.setBounds(546, 52, 63, 26)
    self._jSeparator1.setBounds(15, 96, 790, 10)
    self._jLabelURL.setBounds(15, 117, 35, 20)
    self._jTextFieldURL.setBounds(166, 114, 535, 26)
    self._jLabelData.setBounds(15, 156, 73, 20)
    self._jTextData.setColumns(20)
    self._jTextData.setRows(5)
    self._jScrollPaneData.setBounds(166, 156, 535, 96)
    self._jLabelCookie.setBounds(15, 271, 61, 20)
    self._jTextFieldCookie.setBounds(166, 271, 535, 26)
    self._jLabelReferer.setBounds(15, 320, 57, 20)
    self._jTextFieldReferer.setBounds(166, 320, 535, 26)
    self._jLabelUA.setBounds(15, 374, 86, 20)
    self._jTextFieldUA.setBounds(166, 371, 535, 26)
    self._jSeparator2.setBounds(15, 459, 790, 10)
    self._jLabelParam.setBounds(15, 483, 132, 20)
    self._jTextFieldParam.setBounds(165, 480, 366, 26)
    self._jCheckTO.setBounds(584, 479, 101, 29)
    self._jSeparator3.setBounds(15, 526, 790, 10)
    self._jComboLevel.setBounds(165, 544, 180, 26)
    self._jLabelLevel.setBounds(15, 547, 42, 20)
    self._jLabelRisk.setBounds(430, 547, 35, 20)
    self._jComboRisk.setBounds(518, 544, 180, 26)
    self._jSeparator4.setBounds(15, 588, 790, 10)
    self._jCheckHPP.setBounds(15, 608, 145, 29)
    self._jCheckCU.setBounds(191, 608, 123, 29)
    self._jCheckDB.setBounds(340, 608, 111, 29)
    self._jCheckHost.setBounds(469, 608, 103, 29)
    self._jCheckDBA.setBounds(599, 608, 105, 29)
    self._jCheckUsers.setBounds(15, 655, 101, 29)
    self._jCheckPswds.setBounds(191, 655, 135, 29)
    self._jCheckPrivs.setBounds(344, 655, 95, 29)
    self._jCheckRoles.setBounds(469, 655, 99, 29)
    self._jCheckDBs.setBounds(599, 655, 89, 29)
    self._jSeparator5.setBounds(15, 696, 790, 10)
    self._jLabelThreads.setBounds(15, 719, 63, 20)
    self._jLabelDelay.setBounds(173, 719, 45, 20)
    self._jLabelTimeout.setBounds(326, 719, 65, 20)
    self._jLabelRetry.setBounds(484, 719, 48, 20)
    self._jLabelTimeSec.setBounds(642, 719, 65, 20)
    self._jComboThreads.setBounds(80, 716, 78, 26)
    self._jComboDelay.setBounds(233, 716, 78, 26)
    self._jComboTimeout.setBounds(391, 716, 78, 26)
    self._jComboRetry.setBounds(549, 716, 78, 26)
    self._jComboTimeSec.setBounds(717, 716, 78, 26)
    self._jSeparator6.setBounds(15, 758, 790, 10)
    self._jLabelDBMS.setBounds(15, 781, 110, 20)
    self._jComboDBMS.setBounds(143, 778, 191, 26)
    self._jLabelOS.setBounds(352, 781, 132, 20)
    self._jComboOS.setBounds(502, 778, 191, 26)
    self._jSeparator7.setBounds(15, 820, 790, 10)
    self._jLabelProxy.setBounds(15, 844, 171, 20)
    self._jTextFieldProxy.setBounds(204, 841, 256, 26)
    self._jSeparator8.setBounds(15, 887, 790, 10)
    self._jCheckTor.setBounds(15, 911, 171, 20)
    self._jLabelTorType.setBounds(206, 908, 65, 26)
    self._jComboTorType.setBounds(291, 908, 100, 26)
    self._jLabelTorPort.setBounds(460, 908, 129, 26)
    self._jTextFieldTorPort.setBounds(545, 908, 65, 26)
    self._jSeparator9.setBounds(15, 954, 790, 10)
    self._jLabelTamper.setBounds(15, 979, 171, 20)
    self._jTextFieldTamper.setBounds(204, 976, 256, 26)
    self._jSeparator10.setBounds(15, 1024, 790, 10)
    self._jButtonStartScan.setBounds(346, 1047, 103, 29)
    self._jLabelScanAPI.setBounds(167, 16, 275, 20)

    # Create main panel
    self._jScanPanel = swing.JPanel()
    self._jScanPanel.setLayout(None)
    self._jScanPanel.setPreferredSize(awt.Dimension(1010,1010))
    self._jScanPanel.add(self._jLabelScanText)
    self._jScanPanel.add(self._jLabelScanIPListen)
    self._jScanPanel.add(self._jLabelScanPortListen)
    self._jScanPanel.add(self._jTextFieldScanIPListen)
    self._jScanPanel.add(self._jTextFieldScanPortListen)
    self._jScanPanel.add(self._jSeparator1)
    self._jScanPanel.add(self._jLabelURL)
    self._jScanPanel.add(self._jTextFieldURL)
    self._jScanPanel.add(self._jLabelData)
    self._jScanPanel.add(self._jScrollPaneData)
    self._jScanPanel.add(self._jLabelCookie)
    self._jScanPanel.add(self._jTextFieldCookie)
    self._jScanPanel.add(self._jLabelReferer)
    self._jScanPanel.add(self._jTextFieldReferer)
    self._jScanPanel.add(self._jLabelUA)
    self._jScanPanel.add(self._jTextFieldUA)
    self._jScanPanel.add(self._jSeparator2)
    self._jScanPanel.add(self._jLabelParam)
    self._jScanPanel.add(self._jTextFieldParam)
    self._jScanPanel.add(self._jCheckTO)
    self._jScanPanel.add(self._jSeparator3)
    self._jScanPanel.add(self._jComboLevel)
    self._jScanPanel.add(self._jLabelLevel)
    self._jScanPanel.add(self._jLabelRisk)
    self._jScanPanel.add(self._jComboRisk)
    self._jScanPanel.add(self._jSeparator4)
    self._jScanPanel.add(self._jCheckHPP)
    self._jScanPanel.add(self._jCheckCU)
    self._jScanPanel.add(self._jCheckDB)
    self._jScanPanel.add(self._jCheckHost)
    self._jScanPanel.add(self._jCheckDBA)
    self._jScanPanel.add(self._jCheckUsers)
    self._jScanPanel.add(self._jCheckPswds)
    self._jScanPanel.add(self._jCheckPrivs)
    self._jScanPanel.add(self._jCheckRoles)
    self._jScanPanel.add(self._jCheckDBs)
    self._jScanPanel.add(self._jSeparator5)
    self._jScanPanel.add(self._jLabelThreads)
    self._jScanPanel.add(self._jLabelDelay)
    self._jScanPanel.add(self._jLabelTimeout)
    self._jScanPanel.add(self._jLabelRetry)
    self._jScanPanel.add(self._jLabelTimeSec)
    self._jScanPanel.add(self._jComboThreads)
    self._jScanPanel.add(self._jComboDelay)
    self._jScanPanel.add(self._jComboTimeout)
    self._jScanPanel.add(self._jComboRetry)
    self._jScanPanel.add(self._jComboTimeSec)
    self._jScanPanel.add(self._jSeparator6)
    self._jScanPanel.add(self._jLabelDBMS)
    self._jScanPanel.add(self._jComboDBMS)
    self._jScanPanel.add(self._jLabelOS)
    self._jScanPanel.add(self._jComboOS)
    self._jScanPanel.add(self._jSeparator7)
    self._jScanPanel.add(self._jLabelProxy)
    self._jScanPanel.add(self._jTextFieldProxy)
    self._jScanPanel.add(self._jSeparator8)
    self._jScanPanel.add(self._jCheckTor)
    self._jScanPanel.add(self._jLabelTorType)
    self._jScanPanel.add(self._jComboTorType)
    self._jScanPanel.add(self._jLabelTorPort)
    self._jScanPanel.add(self._jTextFieldTorPort)
    self._jScanPanel.add(self._jSeparator9)
    self._jScanPanel.add(self._jLabelTamper)
    self._jScanPanel.add(self._jTextFieldTamper)
    self._jScanPanel.add(self._jSeparator10)
    self._jScanPanel.add(self._jButtonStartScan)
    self._jScanPanel.add(self._jLabelScanAPI)
    self._jScrollPaneMain = swing.JScrollPane(self._jScanPanel)
    self._jScrollPaneMain.setViewportView(self._jScanPanel)
    self._jScrollPaneMain.setPreferredSize(awt.Dimension(999,999))

    # Create SQLMap log JPanel
    self._jLogPanel = swing.JPanel()
    self._jLogPanel.setLayout(None)

    # Create label, combobox, and button to get logs and textarea to display them
    self._jLabelLog = swing.JLabel("Logs for Scan ID:")
    self._jComboLogs = swing.JComboBox(self.scantasks)
    self._jButtonGetLogs = swing.JButton('Get', actionPerformed=self.getLogs)
    self._jButtonRemoveLogs = swing.JButton('Remove', actionPerformed=self.removeLogs)
    self._jTextLogs = swing.JTextArea()
    self._jTextLogs.setColumns(50)
    self._jTextLogs.setRows(50)
    self._jTextLogs.setLineWrap(True)
    self._jTextLogs.setEditable(False)
    self._jScrollPaneLogs = swing.JScrollPane(self._jTextLogs)
    self._jScrollPaneLogs.setVerticalScrollBarPolicy(swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)

    self._jLabelLog.setBounds(15, 16, 126, 20)
    self._jComboLogs.setBounds(167, 16, 535, 20)
    self._jButtonGetLogs.setBounds(718, 16, 50, 20)
    self._jButtonRemoveLogs.setBounds(783, 16, 80, 20)
    self._jScrollPaneLogs.setBounds(15, 58, 846, 400)

    self._jLogPanel.add(self._jLabelLog)
    self._jLogPanel.add(self._jComboLogs)
    self._jLogPanel.add(self._jButtonGetLogs)
    self._jLogPanel.add(self._jButtonRemoveLogs)
    self._jLogPanel.add(self._jScrollPaneLogs)

    # Create SQLMap stop scan JPanel
    self._jStopScanPanel = swing.JPanel()
    self._jStopScanPanel.setLayout(None)

    # Create label, combobox, and button to stop scans and textfield to display success
    self._jLabelStopScan = swing.JLabel("Stop Scan ID:")
    self._jComboStopScan = swing.JComboBox(self.scantasks)
    self._jButtonStopScan = swing.JButton('Stop', actionPerformed=self.stopScan)
    self._jButtonRemoveScan = swing.JButton('Remove', actionPerformed=self.removeScan)
    self._jLabelStopStatus = swing.JLabel()

    self._jLabelStopScan.setBounds(15, 16, 126, 20)
    self._jComboStopScan.setBounds(167, 16, 535, 20)
    self._jButtonStopScan.setBounds(718, 16, 55, 20)
    self._jButtonRemoveScan.setBounds(783, 16, 80, 20)
    self._jLabelStopStatus.setBounds(167, 58, 846, 20)

    self._jStopScanPanel.add(self._jLabelStopScan)
    self._jStopScanPanel.add(self._jComboStopScan)
    self._jStopScanPanel.add(self._jButtonStopScan)
    self._jStopScanPanel.add(self._jButtonRemoveScan)
    self._jStopScanPanel.add(self._jLabelStopStatus)

    # Setup Tabs
    self._jConfigTab = swing.JTabbedPane()
    self._jConfigTab.addTab("SQLMap API", self._jPanel)
    self._jConfigTab.addTab("SQLMap Scanner", self._jScrollPaneMain)
    self._jConfigTab.addTab("SQLMap Logs", self._jLogPanel)
    self._jConfigTab.addTab("SQLMap Scan Stop", self._jStopScanPanel)

    callbacks.customizeUiComponent(self._jConfigTab)
    callbacks.addSuiteTab(self)
    return