def __init__(self,table): self.setTitle("Add Proxy") self.setSize(200,100) self.setVisible(True) self.table = table #self.getContentPane().add(about,BorderLayout.CENTER) boxHorizontal = Box.createHorizontalBox() boxVertical = Box.createVerticalBox() boxHorizontal.add(JLabel("IP:")) self.jIpText = JTextField(20) boxHorizontal.add(self.jIpText) boxVertical.add(boxHorizontal) boxHorizontal = Box.createHorizontalBox() boxHorizontal.add(JLabel("PROT:")) self.jPortText = JTextField(20) boxHorizontal.add(self.jPortText) boxVertical.add(boxHorizontal) boxHorizontal = Box.createHorizontalBox() boxHorizontal.add(JButton("Add",actionPerformed=self.addIP)) boxVertical.add(boxHorizontal) self.getContentPane().add(boxVertical,BorderLayout.CENTER)
def registerExtenderCallbacks(self,callbacks): self.callbacks = callbacks self.helpers = callbacks.getHelpers() self.callbacks.setExtensionName("KkMultiProxy") self.PROXY_LIST = [] self.jPanel = JPanel() boxVertical = Box.createVerticalBox() boxHorizontal = Box.createHorizontalBox() boxHorizontal.add(JButton("File",actionPerformed=self.getFile)) self.FileText = JTextField("") boxHorizontal.add(self.FileText) boxVertical.add(boxHorizontal) TableHeader = ('IP','PORT') TableModel = DefaultTableModel(self.PROXY_LIST,TableHeader) self.Table = JTable(TableModel) boxVertical.add(self.Table) boxHorizontal = Box.createHorizontalBox() boxHorizontal.add(JButton("Add",actionPerformed=self.addIP)) boxHorizontal.add(JButton("Delete",actionPerformed=self.deleteIP)) boxHorizontal.add(JButton("Save",actionPerformed=self.saveIP)) boxVertical.add(boxHorizontal) self.jPanel.add(boxVertical) self.callbacks.addSuiteTab(self) self.callbacks.registerHttpListener(self) return
def registerExtenderCallbacks(self, callbacks): self.callbacks = callbacks self.helpers = callbacks.getHelpers() self.callbacks.setExtensionName("KkMultiProxy") self.PROXY_LIST = [] self.jPanel = JPanel() boxVertical = Box.createVerticalBox() boxHorizontal = Box.createHorizontalBox() boxHorizontal.add(JButton("File", actionPerformed=self.getFile)) self.FileText = JTextField("") boxHorizontal.add(self.FileText) boxVertical.add(boxHorizontal) TableHeader = ('IP', 'PORT') TableModel = DefaultTableModel(self.PROXY_LIST, TableHeader) self.Table = JTable(TableModel) boxVertical.add(self.Table) boxHorizontal = Box.createHorizontalBox() boxHorizontal.add(JButton("Add", actionPerformed=self.addIP)) boxHorizontal.add(JButton("Delete", actionPerformed=self.deleteIP)) boxHorizontal.add(JButton("Save", actionPerformed=self.saveIP)) boxVertical.add(boxHorizontal) self.jPanel.add(boxVertical) self.callbacks.addSuiteTab(self) self.callbacks.registerHttpListener(self) return
def run(self): frame = JFrame('horizontalBox', locationRelativeTo=None, defaultCloseOperation=JFrame.EXIT_ON_CLOSE) vert = Box.createVerticalBox() vert.add(Box.createGlue()) vert.add(JButton('<>')) vert.add(Box.createVerticalStrut(5)) vert.add(JButton('<>')) vert.add(Box.createVerticalStrut(5)) vert.add(JButton('<>')) vert.add(Box.createGlue()) hor = Box.createHorizontalBox() hor.add(Box.createGlue()) hor.add(JButton('<>')) hor.add(Box.createHorizontalStrut(5)) hor.add(vert) hor.add(Box.createHorizontalStrut(5)) hor.add(JButton('<>')) hor.add(Box.createGlue()) frame.add(hor) frame.pack() frame.setVisible(1)
def __init__(self, table): self.setTitle("Add Proxy") self.setSize(200, 100) self.setVisible(True) self.table = table #self.getContentPane().add(about,BorderLayout.CENTER) boxHorizontal = Box.createHorizontalBox() boxVertical = Box.createVerticalBox() boxHorizontal.add(JLabel("IP:")) self.jIpText = JTextField(20) boxHorizontal.add(self.jIpText) boxVertical.add(boxHorizontal) boxHorizontal = Box.createHorizontalBox() boxHorizontal.add(JLabel("PROT:")) self.jPortText = JTextField(20) boxHorizontal.add(self.jPortText) boxVertical.add(boxHorizontal) boxHorizontal = Box.createHorizontalBox() boxHorizontal.add(JButton("Add", actionPerformed=self.addIP)) boxVertical.add(boxHorizontal) self.getContentPane().add(boxVertical, BorderLayout.CENTER)
def run( self ) : frame = JFrame( 'Box1', locationRelativeTo = None, defaultCloseOperation = JFrame.EXIT_ON_CLOSE ) name = 'A' size = Dimension( 46, 26 ) vBox = Box.createVerticalBox() for row in range( 5 ) : hBox = Box.createHorizontalBox() for col in range( 5 ) : button = JButton( name ) # button = JButton( # name, # size = size, # minimumSize = size, # maximumSize = size, # preferredSize = size # ) hBox.add( button ) self.showSizes( name, button ) name = chr( ord( name ) + 1 ) vBox.add( hBox ) frame.add( vBox ) frame.pack() frame.setVisible( 1 )
def buildAddEditPrompt(self, typeValue=None, searchValue=None, replacementValue=None): """ Builds the replacement rules add/edit prompt. Args: typeValue: the value that will be set on the type JLabel. searchValue: the value that will be set on the search JLabel. replacementValue: the value that will be set on the replacement JLabel. Return: tuple: (type, search, replacement) as input by user. """ panel = Box.createVerticalBox() typeLabel = JLabel("Replacement type") type = JComboBox([REPLACE_HEADER_NAME]) searchLabel = JLabel("Header Name / Search String") search = JTextField() replaceLabel = JLabel("Replacement Value") replacement = JTextField() panel.add(typeLabel) panel.add(type) panel.add(searchLabel) panel.add(search) panel.add(replaceLabel) panel.add(replacement) if typeValue: type.setSelectedItem(typeValue) if searchValue: search.text = searchValue if replacementValue: replacement.text = replacementValue title = "Add Replacement Rule" if type == None else "Edit Replacement Rule" result = JOptionPane.showConfirmDialog(None, panel, "Add Replacement Rule", JOptionPane.PLAIN_MESSAGE) if result == JOptionPane.OK_OPTION: if search.text.strip() == "": self.messageDialog("Header name must be non-blank.") raise InvalidInputException() else: return type.selectedItem, search.text, replacement.text else: raise InvalidInputException()
def run(self): frame = JFrame('verticalBox', locationRelativeTo=None, defaultCloseOperation=JFrame.EXIT_ON_CLOSE) box = Box.createVerticalBox() box.add(JLabel('<---- Top ---->')) box.add(JLabel('<---- Mid ---->')) box.add(JLabel('<---- Bot ---->')) frame.add(box) frame.pack() frame.setVisible(1)
def buildConfigPane(self, state, callbacks): """ Builds the config pane, section per section. """ configPage = Box.createVerticalBox() configPage.setBorder(BorderFactory.createLineBorder(Color.black)) configPage.add(self.buildScope(state, callbacks)) configPage.add(self.buildReplacementRules(state, callbacks)) configPage.add(self.buildSessionCheck(state, callbacks)) return configPage
def __init__(self, view, doc): EnhancedDialog.__init__(self, view, jEdit.getProperty("jython.export.title"), 1) self.view = view self.doc = doc panel = Box.createVerticalBox() panel.border = EmptyBorder(10, 10, 10, 10) self.header = JCheckBox(jEdit.getProperty("jython.export.header"), 0) panel.add(self.header) self.prompts = JCheckBox(jEdit.getProperty("jython.export.prompts"), 0) panel.add(self.prompts) self.errors = JCheckBox(jEdit.getProperty("jython.export.errors"), 0) panel.add(self.errors) self.contentPane.layout = BorderLayout() self.contentPane.add(panel, BorderLayout.CENTER) lowerPanel = JPanel(FlowLayout.LEFT) lowerPanel.add(JButton(jEdit.getProperty("common.ok"), actionPerformed = \ self._ok)) lowerPanel.add(JButton(jEdit.getProperty("common.cancel"), actionPerformed = \ self._cancel)) self.contentPane.add(lowerPanel, BorderLayout.SOUTH)
def run(self): self.frame = JFrame( 'InvertedIndex', size=(500, 900), layout=FlowLayout(), defaultCloseOperation=JFrame.EXIT_ON_CLOSE ) self.chooser = JButton( 'Browse', font=("Comic Sans MS", 30, 30), actionPerformed=self.showFC ) reset_button = JButton( "Reset", font=("Comic Sans MS", 30, 30), actionPerformed=self.reset ) exit_button = JButton( "Exit", font=("Comic Sans MS", 30, 30), actionPerformed=self.exit ) panel_button = JPanel() panel_button.setLayout(FlowLayout()) panel_button.add(reset_button) panel_button.add(exit_button) self.area = JTextArea( font=("Comic Sans MS", 30, 30), editable=False, rows=20, columns=45 ) self.command_editor = JTextField( font=("Comic Sans MS", 30, 30), actionPerformed=self.update ) panel = [None] * 8 panel[0] = JPanel() panel[0].setLayout(BorderLayout()) panel[0].add(self.chooser) panel[1] = JPanel() panel[1].setLayout(BorderLayout()) panel[1].add(JScrollPane(self.area)) panel[2] = JPanel() panel[2].setLayout(BorderLayout()) panel[2].add(JScrollPane(self.command_editor)) panel[3] = JPanel() panel[3].setLayout(FlowLayout()) self.label = panel[3].add(JLabel('Nothing selected', font=("Comic Sans MS", 30, 30))) panel[4] = JPanel() panel[4].setLayout(FlowLayout()) cp = panel[4] self.addCB(cp, 'TST') self.addCB(cp, 'BST') self.addCB(cp, 'TrieST') self.addCB(cp, 'SCHashST') panel[5] = JPanel() panel[5].setLayout(FlowLayout()) panel[5].add(panel_button) panel[6] = JPanel() panel[6].setLayout(FlowLayout()) panel[6].add(JLabel(text="powered by", font=("Comic Sans MS", 20, 20))) panel[7] = JPanel() panel[7].setLayout(FlowLayout()) panel[7].add(JLabel(text="Mohammad Hossein Forouhesh Tehrani", font=("Comic Sans MS", 30, 30))) box = Box.createVerticalBox() for pan in panel: box.add(Box.createGlue()) box.add(pan) box.add(Box.createVerticalStrut(5)) box.add(JSeparator()) box.add(Box.createGlue()) self.frame.add(box) self.frame.pack() self.frame.pack() self.frame.setVisible(1)
def drawUI(self): # 最外层:垂直盒子,内放一个水平盒子+一个胶水 out_vBox_main = Box.createVerticalBox() # 次外层:水平盒子,使用说明 usage = u''' JC-AntiToken(简单防重放绕过) 适用场景:防重放的方式为,提前向一个页面发送请求取得token,替换到下一个页面中。 适用说明: 1. 请求头中Headers和Data的值必须是JSON字符串,如:{"var":"value"} 2. 左边tokenRegex的格式为: a. .*开头,.*结尾,用()括住要取出的token b. 如:.*,"token":"(.*?)".* 3. 右边tokenRegex的格式为: a. 需要三个(),第二个()括住要替换的token b. 如:(.*,"token":")(.*?)(".*) 详见:https://github.com/chroblert/JC-AntiToken ''' hBox_usage = Box.createHorizontalBox() jpanel_test = JPanel() jTextarea_usage = JTextArea() jTextarea_usage.setText(usage) jTextarea_usage.setRows(13) jTextarea_usage.setEditable(False) # jpanel_test.add(jTextarea_usage) hBox_usage.add(JScrollPane(jTextarea_usage)) # 次外层:水平盒子,内放两个垂直盒子 hBox_main = Box.createHorizontalBox() # 左垂直盒子 vBox_left = Box.createVerticalBox() # 右垂直盒子 vBox_right = Box.createVerticalBox() # 左垂直盒子内部:发送请求包拿token # URL标签 jlabel_url = JLabel(" URL: ") self.jtext_url = JTextField(generWidth) self.jtext_url.setMaximumSize(self.jtext_url.getPreferredSize()) hbox_url = Box.createHorizontalBox() hbox_url.add(jlabel_url) hbox_url.add(self.jtext_url) hglue_url = Box.createHorizontalGlue() hbox_url.add(hglue_url) # 请求方法标签 jlabel_reqMeth = JLabel("ReqMeth: ") self.jcombobox_reqMeth = JComboBox() self.jcombobox_reqMeth.addItem("GET") self.jcombobox_reqMeth.addItem("POST") hbox_reqMeth = Box.createHorizontalBox() hbox_reqMeth.add(jlabel_reqMeth) hbox_reqMeth.add(self.jcombobox_reqMeth) self.jcombobox_reqMeth.setMaximumSize( self.jcombobox_reqMeth.getPreferredSize()) hglue_reqMeth = Box.createHorizontalGlue() hbox_reqMeth.add(hglue_reqMeth) # ContentType标签 jlabel_contentType = JLabel("ConType: ") self.jcombobox_contentType = JComboBox() self.jcombobox_contentType.addItem("application/json") self.jcombobox_contentType.addItem("application/x-www-form-urlencoded") hbox_contentType = Box.createHorizontalBox() hbox_contentType.add(jlabel_contentType) hbox_contentType.add(self.jcombobox_contentType) self.jcombobox_contentType.setMaximumSize( self.jcombobox_contentType.getPreferredSize()) hglue_contentType = Box.createHorizontalGlue() hbox_contentType.add(hglue_contentType) # Charset标签 jlabel_charset = JLabel("CharSet: ") self.jcombobox_charset = JComboBox() self.jcombobox_charset.addItem("UTF-8") self.jcombobox_charset.addItem("GBK") hbox_charset = Box.createHorizontalBox() hbox_charset.add(jlabel_charset) hbox_charset.add(self.jcombobox_charset) self.jcombobox_charset.setMaximumSize( self.jcombobox_charset.getPreferredSize()) hglue_charset = Box.createHorizontalGlue() hbox_charset.add(hglue_charset) # 请求头标签 jlabel_headers = JLabel("Headers: ") self.jtext_headers = JTextField(generWidth) self.jtext_headers.setMaximumSize( self.jtext_headers.getPreferredSize()) hbox_headers = Box.createHorizontalBox() hbox_headers.add(jlabel_headers) hbox_headers.add(self.jtext_headers) hglue_headers = Box.createHorizontalGlue() hbox_headers.add(hglue_headers) # 请求参数标签 jlabel_data = JLabel(" Data: ") self.jtext_data = JTextField(generWidth) self.jtext_data.setPreferredSize(Dimension(20, 40)) self.jtext_data.setMaximumSize(self.jtext_data.getPreferredSize()) hbox_data = Box.createHorizontalBox() hbox_data.add(jlabel_data) hbox_data.add(self.jtext_data) hglue_data = Box.createHorizontalGlue() hbox_data.add(hglue_data) # token标志位置标签 hbox_radiobtn = Box.createHorizontalBox() jlabel_tokenPosition = JLabel("Token Position: ") self.radioBtn01 = JRadioButton("Header") self.radioBtn02 = JRadioButton("Body") btnGroup = ButtonGroup() btnGroup.add(self.radioBtn01) btnGroup.add(self.radioBtn02) self.radioBtn01.setSelected(True) hbox_radiobtn.add(jlabel_tokenPosition) hbox_radiobtn.add(self.radioBtn01) hbox_radiobtn.add(self.radioBtn02) # token正则表达式标签 hbox_token = Box.createHorizontalBox() hbox_token_header = Box.createHorizontalBox() hbox_token_body = Box.createHorizontalBox() # token正则表达式标签:header中 jlabel_tokenName = JLabel("tokenName: ") self.jtext_tokenName = JTextField(tokenWidth) self.jtext_tokenName.setMaximumSize( self.jtext_tokenName.getPreferredSize()) hbox_token_header.add(jlabel_tokenName) hbox_token_header.add(self.jtext_tokenName) hglue_token_header = Box.createHorizontalGlue() hbox_token_header.add(hglue_token_header) # token正则表达式标签:body中 jlabel_tokenRegex = JLabel("tokenRegex: ") self.jtext_tokenRegex = JTextField(tokenWidth) self.jtext_tokenRegex.setMaximumSize( self.jtext_tokenRegex.getPreferredSize()) hbox_token_body.add(jlabel_tokenRegex) hbox_token_body.add(self.jtext_tokenRegex) hglue_token_body = Box.createHorizontalGlue() hbox_token_body.add(hglue_token_body) # token正则表达式标签 hbox_token.add(hbox_token_header) hbox_token.add(hbox_token_body) # test测试按钮 hbox_test = Box.createHorizontalBox() jbtn_test = JButton("TEST", actionPerformed=self.btnTest) self.jlabel_test = JLabel("Result: ") hbox_test.add(jbtn_test) hbox_test.add(self.jlabel_test) # 水平胶水填充 hGlue_test = Box.createHorizontalGlue() hbox_test.add(hGlue_test) hbox_test.setBorder(BorderFactory.createLineBorder(Color.green, 2)) # 响应数据输出 hbox_resp = Box.createHorizontalBox() self.jtextarea_resp = JTextArea() jsp = JScrollPane(self.jtextarea_resp) hbox_resp.add(self.jtextarea_resp) # 左垂直盒子:添加各种水平盒子 vBox_left.add(hbox_url) vBox_left.add(hbox_reqMeth) vBox_left.add(hbox_contentType) vBox_left.add(hbox_charset) vBox_left.add(hbox_headers) vBox_left.add(hbox_data) vBox_left.add(hbox_radiobtn) vBox_left.add(hbox_token) vBox_left.add(hbox_test) vBox_left.add(hbox_resp) # 左垂直盒子:垂直胶水填充 vGlue_test = Box.createGlue() vBox_left.add(vGlue_test) # 右垂直盒子内部:指定token在请求包中的位置 # token标志位置单选按钮 hbox_radiobtn_r = Box.createHorizontalBox() jlabel_tokenPosition_r = JLabel("Token Position: ") self.radioBtn01_r = JRadioButton("Header") self.radioBtn02_r = JRadioButton("Body") btnGroup_r = ButtonGroup() btnGroup_r.add(self.radioBtn01_r) btnGroup_r.add(self.radioBtn02_r) self.radioBtn01_r.setSelected(True) hbox_radiobtn_r.add(jlabel_tokenPosition_r) hbox_radiobtn_r.add(self.radioBtn01_r) hbox_radiobtn_r.add(self.radioBtn02_r) # token正则表达式 hbox_token_r = Box.createHorizontalBox() hbox_token_header_r = Box.createHorizontalBox() hbox_token_body_r = Box.createHorizontalBox() # token正则表达式:在header中 jlabel_tokenName_r = JLabel("tokenName: ") self.jtext_tokenName_r = JTextField(tokenWidth) self.jtext_tokenName_r.setMaximumSize( self.jtext_tokenName_r.getPreferredSize()) hbox_token_header_r.add(jlabel_tokenName_r) hbox_token_header_r.add(self.jtext_tokenName_r) hglue_token_header_r = Box.createHorizontalGlue() hbox_token_header_r.add(hglue_token_header_r) # token正则表达式:在Body中 jlabel_tokenRegex_r = JLabel("tokenRegex: ") self.jtext_tokenRegex_r = JTextField(tokenWidth) self.jtext_tokenRegex_r.setMaximumSize( self.jtext_tokenRegex_r.getPreferredSize()) hbox_token_body_r.add(jlabel_tokenRegex_r) hbox_token_body_r.add(self.jtext_tokenRegex_r) hglue_token_body_r = Box.createHorizontalGlue() hbox_token_body_r.add(hglue_token_body_r) # token正则表达式 hbox_token_r.add(hbox_token_header_r) hbox_token_r.add(hbox_token_body_r) # 测试按钮 hbox_test_r = Box.createHorizontalBox() jbtn_test_r = JButton("SET", actionPerformed=self.btnTest_r) self.jlabel_test_r = JLabel("Result: ") hbox_test_r.add(jbtn_test_r) hbox_test_r.add(self.jlabel_test_r) # 水平胶水填充 hGlue02 = Box.createHorizontalGlue() hbox_test_r.add(hGlue02) hbox_test_r.setBorder(BorderFactory.createLineBorder(Color.green, 2)) # 右垂直盒子:添加各种水平盒子 vBox_right.add(hbox_radiobtn_r) vBox_right.add(hbox_token_r) vBox_right.add(hbox_test_r) vGlue = Box.createVerticalGlue() vBox_right.add(vGlue) vBox_left.setBorder(BorderFactory.createLineBorder(Color.black, 3)) vBox_right.setBorder(BorderFactory.createLineBorder(Color.black, 3)) # 次外层水平盒子:添加左右两个垂直盒子 hBox_main.add(vBox_left) hBox_main.add(vBox_right) # 最外层垂直盒子:添加次外层水平盒子,垂直胶水 out_vBox_main.add(hBox_usage) out_vBox_main.add(hBox_main) self.mainPanel = out_vBox_main self._callbacks.customizeUiComponent(self.mainPanel) self._callbacks.addSuiteTab(self)