@Override public List<AbstractButton> getButtons() { List<AbstractButton> buttons = new ArrayList<AbstractButton>(); // JToggleButton and JButton are both javax.swing.AbstractButton // Toggle button JToggleButton buttonPoint = new JToggleButton(); buttonPoint.setMargin(new Insets(0, 0, 0, 0)); buttonPoint.setMinimumSize(new Dimension(16, 16)); buttonPoint.setToolTipText("Mark reference point"); try { buttonPoint.setIcon(new ImageIcon(StamperPS.class.getResource("icons/markPoint.png"))); } catch (Exception e) { e.printStackTrace(); } buttonPoint.addItemListener( new ItemListener() { @Override public void itemStateChanged(ItemEvent itemEvent) { int state = itemEvent.getStateChange(); if (state == ItemEvent.SELECTED) { toggleMarkReferencePoint(true); } else { toggleMarkReferencePoint(false); } } }); buttonPoint.setToolTipText("Mark reference point"); buttonPoint.setMargin(new Insets(0, 0, 0, 0)); buttonPoint.setMinimumSize(new Dimension(16, 16)); buttons.add(buttonPoint); // Clear Points button JButton buttonClearPoints = new JButton(); buttonClearPoints.setMargin(new Insets(0, 0, 0, 0)); buttonClearPoints.setMinimumSize(new Dimension(16, 16)); buttonClearPoints.setToolTipText("Clear marked points"); try { buttonClearPoints.setIcon( new ImageIcon(StamperPS.class.getResource("icons/markPointClear.png"))); } catch (Exception e) { e.printStackTrace(); } buttonClearPoints.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { clearMarkedPoints(); } }); buttons.add(buttonClearPoints); return buttons; }
public ButtonPane(int idx) { index = idx; JButton leftmostB = new JButton("<<"); leftmostB.setActionCommand("<<"); leftmostB.addActionListener(this); leftmostB.setMargin(new Insets(0, 0, 0, 0)); JButton leftB = new JButton(" < "); leftB.setActionCommand("<"); leftB.addActionListener(this); leftB.setMargin(new Insets(0, 0, 0, 0)); JButton rightB = new JButton(" > "); rightB.setActionCommand(">"); rightB.addActionListener(this); rightB.setMargin(new Insets(0, 0, 0, 0)); JButton rightmostB = new JButton(">>"); rightmostB.setActionCommand(">>"); rightmostB.addActionListener(this); rightmostB.setMargin(new Insets(0, 0, 0, 0)); mzDisp = new JToggleButton("show all m/z"); mzDisp.setActionCommand("mz"); mzDisp.addActionListener(this); mzDisp.setMargin(new Insets(0, 0, 0, 0)); msDiff = new JToggleButton("mass difference"); msDiff.setActionCommand("msdiff"); msDiff.addActionListener(this); msDiff.setMargin(new Insets(0, 0, 0, 0)); setLayout(new BoxLayout(this, BoxLayout.X_AXIS)); add(leftmostB); add(leftB); add(rightB); add(rightmostB); add(mzDisp); add(msDiff); }
public JModRadioButton( int x, int y, int w, int h, Object obj, int min_val, int max_val, Parameter newPar) { super(min_val, max_val, newPar); b = new JToggleButton(); if (obj instanceof String) { b.setText((String) obj); b.setFont(new Font("Dialog", Font.PLAIN, 10)); } // ImageIcon icon = new ImageIcon("./grafix/_sync.gif"); // b = new JToggleButton(new ImageIcon("./grafix/_sync.gif")); b.setSize(w, h); b.setMargin(new Insets(0, 0, 0, 0)); b.setFocusPainted(false); add(b); setLocation(x, y); setSize(b.getWidth(), b.getHeight()); b.setSelected(par.getValue() == getMaxValue()); b.addMouseListener( new MouseAdapter() { public void mouseReleased(MouseEvent arg0) { if (b.isSelected()) setValue(getMaxValue()); else b.setSelected(true); } }); par.addChangeListener( new ChangeListener() { public void stateChanged(ChangeEvent e) { int val = (int) ((Parameter) e.getSource()).getValue(); setValueWithoutFireStarter(val); } }); }
public PaintBar(Tool tool) { bg = new ButtonGroup(); this.tool = tool; setLayout(new GridLayout(0, 2)); Listener listener = new Listener(); for (Button b : interactButtons) { JToggleButton button = new JToggleButton( new ImageIcon(getClass().getResource("/gfx/" + b.tool.toolName + ".png"))); button.setToolTipText(b.tooltip); button.addActionListener(listener); button.setActionCommand(b.tool.toolName); button.setMargin(new Insets(2, 2, 2, 2)); if (b.tool == tool) { button.setSelected(true); } bg.add(button); add(button); } }
private void addResultTable( final String sql, long duration, final StatementExecutionResultSetResult resultSetResult) { int rowCount = resultSetResult.getRowCount(); JPanel resultPane = addResultPane(); final JLabel label = new JLabel(" " + rowCount + " rows"); FlowLayout flowLayout = new FlowLayout(FlowLayout.LEFT, 0, 0); flowLayout.setAlignOnBaseline(true); JPanel statusPane = new JPanel(flowLayout); statusPane.setOpaque(false); if (rowCount <= resultSetResult.getRetainParsedRSDataRowCountThreshold()) { final JTableX table = new ResultTable(resultSetResult); JTableHeader tableHeader = new JTableHeader(table.getColumnModel()) { @Override public String getToolTipText(MouseEvent e) { int col = getTable().convertColumnIndexToModel(columnAtPoint(e.getPoint())); return col == 0 ? null : resultSetResult.getTypeInfos()[col - 1].toString(); } }; ToolTipManager.sharedInstance().registerComponent(tableHeader); table.setTableHeader(tableHeader); table.setDefaultRenderer( String.class, new DefaultTableCellRenderer() { @Override public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (value != null) { value = "\"" + value + "\""; } return super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column); } }); final TableCellRenderer booleanRenderer = table.getDefaultRenderer(Boolean.class); table.setDefaultRenderer( Boolean.class, new DefaultTableCellRenderer() { @Override public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Component c = null; if (value == null) { c = super.getTableCellRendererComponent( table, " ", isSelected, hasFocus, row, column); } else { c = booleanRenderer.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column); } if (!isSelected) { c.setBackground( row % 2 == 0 ? UIManager.getColor("Table.background") : JTableX.getTableAlternateRowBackgroundColor()); } return c; } }); table.setDefaultRenderer( Timestamp.class, new DefaultTableCellRenderer() { @SuppressWarnings("deprecation") @Override public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Component c = super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column); if (value != null && c instanceof JLabel) { Timestamp timestamp = (Timestamp) value; String s; if (timestamp.getHours() != 0 || timestamp.getMinutes() != 0 || timestamp.getSeconds() != 0) { s = Utils.formatDateTimeGMT((Timestamp) value); } else { s = Utils.formatDateGMT((Timestamp) value); } ((JLabel) c).setText(s); } return c; } }); table.setDefaultRenderer( byte[].class, new DefaultTableCellRenderer() { @Override public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Component c = super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column); if (value != null && c instanceof JLabel) { byte[] bytes = (byte[]) value; ((JLabel) c).setText("Blob (" + bytes.length + " bytes)"); } return c; } }); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); table.setAutoCreateRowSorter(true); table .getRowSorter() .setSortKeys(Arrays.asList(new RowSorter.SortKey(0, SortOrder.ASCENDING))); table.setColumnSelectionAllowed(true); table.applyMinimumAndPreferredColumnSizes(200); resultPane.add(new JScrollPane(table), BorderLayout.CENTER); table .getSelectionModel() .addListSelectionListener( new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { int selectedRowCount = table.getSelectedRowCount(); label.setText( " " + resultSetResult.getRowData().length + " rows" + (selectedRowCount == 0 ? "" : " - " + selectedRowCount + " selected rows")); } }); table.addMouseListener( new MouseAdapter() { @Override public void mousePressed(MouseEvent e) { int row = table.rowAtPoint(e.getPoint()); int column = table.columnAtPoint(e.getPoint()); if (!table.isCellSelected(row, column)) { table.changeSelection(row, column, false, false); } maybeShowPopup(e); } @Override public void mouseReleased(MouseEvent e) { maybeShowPopup(e); } private void maybeShowPopup(MouseEvent e) { if (!e.isPopupTrigger()) { return; } boolean isEditable = resultSetResult.isEditable(); JPopupMenu menu = new JPopupMenu(); int selectedRowCount = table.getSelectedRowCount(); int selectedColumnCount = table.getSelectedColumnCount(); boolean isAddingSeparator = false; // Here to add custom menus. if (isEditable) { if (isAddingSeparator) { isAddingSeparator = false; menu.addSeparator(); } JMenuItem insertNullMenuItem = new JMenuItem("Insert NULL"); insertNullMenuItem.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { int row = table.getSelectedRow(); int column = table.getSelectedColumn(); table.setValueAt(null, row, column); } }); insertNullMenuItem.setEnabled( selectedRowCount == 1 && selectedColumnCount == 1 && table.convertColumnIndexToModel(table.getSelectedColumn()) != 0); menu.add(insertNullMenuItem); menu.addSeparator(); JMenuItem deleteRowMenuItem = new JMenuItem( "Delete " + (selectedRowCount > 1 ? selectedRowCount + " rows" : "row")); deleteRowMenuItem.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { int[] selectedRows = table.getSelectedRows(); for (int i = selectedRows.length - 1; i >= 0; i--) { selectedRows[i] = table.convertRowIndexToModel(selectedRows[i]); } Arrays.sort(selectedRows); for (int i = selectedRows.length - 1; i >= 0; i--) { int row = selectedRows[i]; boolean isSuccess = resultSetResult.deleteRow(row); if (isSuccess) { ((AbstractTableModel) table.getModel()).fireTableRowsDeleted(row, row); } } } }); deleteRowMenuItem.setEnabled(selectedRowCount > 0); menu.add(deleteRowMenuItem); } if (menu.getComponentCount() > 0) { menu.show(e.getComponent(), e.getX(), e.getY()); } } }); final JPanel filterPane = new JPanel(flowLayout); filterPane.setOpaque(false); final JToggleButton filterToggleButton = new JToggleButton( new ImageIcon( getClass().getResource("/org/jooq/debug/console/resources/Search16.png"))); filterToggleButton.setOpaque(false); filterToggleButton.setToolTipText( "Filter (" + KeyEvent.getKeyModifiersText(InputEvent.CTRL_MASK) + "+" + KeyEvent.getKeyText(KeyEvent.VK_F) + ")"); filterToggleButton.setMargin(new Insets(0, 0, 0, 0)); filterPane.add(filterToggleButton); final JTextField searchField = new JTextField(7); searchField .getDocument() .addDocumentListener( new DocumentListener() { @Override public void removeUpdate(DocumentEvent e) { adjustFilter(); } @Override public void insertUpdate(DocumentEvent e) { adjustFilter(); } @Override public void changedUpdate(DocumentEvent e) { adjustFilter(); } private void adjustFilter() { setFilter(table, searchField.getText()); } }); searchField.setVisible(false); filterPane.add(searchField); filterToggleButton.addItemListener( new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { boolean isActive = e.getStateChange() == ItemEvent.SELECTED; searchField.setVisible(isActive); if (isActive) { searchField.requestFocus(); } else { searchField.setText(""); table.requestFocus(); } filterPane.revalidate(); filterPane.repaint(); } }); searchField.addKeyListener( new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { e.consume(); filterToggleButton.setSelected(false); } else if (e.getKeyCode() == KeyEvent.VK_F && e.isControlDown()) { filterToggleButton.setSelected(false); } } }); table.addKeyListener( new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_F && e.isControlDown()) { e.consume(); filterToggleButton.setSelected(true); searchField.requestFocus(); searchField.selectAll(); } } }); statusPane.add(filterPane); } JPanel southResultPanel = new JPanel(new BorderLayout()); southResultPanel.setOpaque(false); if (isUsingMaxRowCount && rowCount == MAX_ROW_COUNT) { label.setForeground(Color.RED); } statusPane.add(label); southResultPanel.add(statusPane, BorderLayout.WEST); southResultPanel.add( new JLabel( Utils.formatDuration(duration) + " - " + Utils.formatDuration(resultSetResult.getResultSetParsingDuration())), BorderLayout.EAST); resultPane.add(southResultPanel, BorderLayout.SOUTH); southResultPanel.setToolTipText(sql); resultPane.revalidate(); resultPane.repaint(); }
public JMovieControlAqua() { // Set the background color to the border color of the buttons. // This way the toolbar won't look too ugly when the buttons // are displayed before they have been loaded completely. // setBackground(new Color(118, 118, 118)); setBackground(Color.WHITE); Dimension buttonSize = new Dimension(16, 16); GridBagLayout gridbag = new GridBagLayout(); Insets margin = new Insets(0, 0, 0, 0); setLayout(gridbag); GridBagConstraints c; ResourceBundle labels = ResourceBundle.getBundle("org.monte.media.Labels"); colorCyclingButton = new JToggleButton(); colorCyclingButton.setToolTipText(labels.getString("colorCycling.toolTipText")); colorCyclingButton.addActionListener(this); colorCyclingButton.setPreferredSize(buttonSize); colorCyclingButton.setMinimumSize(buttonSize); colorCyclingButton.setVisible(false); colorCyclingButton.setMargin(margin); c = new GridBagConstraints(); // c.gridx = 0; // c.gridy = 0; gridbag.setConstraints(colorCyclingButton, c); add(colorCyclingButton); audioButton = new JToggleButton(); audioButton.setToolTipText(labels.getString("audio.toolTipText")); audioButton.addActionListener(this); audioButton.setPreferredSize(buttonSize); audioButton.setMinimumSize(buttonSize); audioButton.setVisible(false); audioButton.setMargin(margin); c = new GridBagConstraints(); // c.gridx = 0; // c.gridy = 0; gridbag.setConstraints(audioButton, c); add(audioButton); startButton = new JToggleButton(); startButton.setToolTipText(labels.getString("play.toolTipText")); startButton.addActionListener(this); startButton.setPreferredSize(buttonSize); startButton.setMinimumSize(buttonSize); startButton.setMargin(margin); c = new GridBagConstraints(); // c.gridx = 1; // c.gridy = 0; gridbag.setConstraints(startButton, c); add(startButton); slider = new JMovieSliderAqua(); c = new GridBagConstraints(); // c.gridx = 2; // c.gridy = 0; c.fill = GridBagConstraints.HORIZONTAL; c.weightx = 1.0; gridbag.setConstraints(slider, c); add(slider); rewindButton = new JButton(); rewindButton.setToolTipText(labels.getString("previous.toolTipText")); rewindButton.setPreferredSize(buttonSize); rewindButton.setMinimumSize(buttonSize); rewindButton.setMargin(margin); c = new GridBagConstraints(); // c.gridx = 3; // c.gridy = 0; gridbag.setConstraints(rewindButton, c); add(rewindButton); rewindButton.addActionListener(this); forwardButton = new JButton(); forwardButton.setToolTipText(labels.getString("next.toolTipText")); buttonSize = new Dimension(17, 16); forwardButton.setPreferredSize(buttonSize); forwardButton.setMinimumSize(buttonSize); forwardButton.setMargin(margin); c = new GridBagConstraints(); // c.gridx = 4; // c.gridy = 0; gridbag.setConstraints(forwardButton, c); add(forwardButton); forwardButton.addActionListener(this); // The spacer is used when the play controls are hidden spacer = new JPanel(new BorderLayout()); spacer.setVisible(false); spacer.setPreferredSize(new Dimension(16, 16)); spacer.setMinimumSize(new Dimension(16, 16)); spacer.setOpaque(false); c = new GridBagConstraints(); c.fill = GridBagConstraints.HORIZONTAL; c.weightx = 1.0; gridbag.setConstraints(spacer, c); add(spacer); Border border = new BackdropBorder( new ButtonStateBorder( new ImageBevelBorder( Images.createImage(getClass(), "images/Player.border.png"), new Insets(1, 1, 1, 1), new Insets(0, 4, 1, 4)), new ImageBevelBorder( Images.createImage(getClass(), "images/Player.borderP.png"), new Insets(1, 1, 1, 1), new Insets(0, 4, 1, 4)))); Border westBorder = new BackdropBorder( new ButtonStateBorder( new ImageBevelBorder( Images.createImage(getClass(), "images/Player.borderWest.png"), new Insets(1, 1, 1, 0), new Insets(0, 4, 1, 4)), new ImageBevelBorder( Images.createImage(getClass(), "images/Player.borderWestP.png"), new Insets(1, 1, 1, 0), new Insets(0, 4, 1, 4)))); startButton.setBorder(westBorder); colorCyclingButton.setBorder(westBorder); audioButton.setBorder(westBorder); rewindButton.setBorder(westBorder); forwardButton.setBorder(border); startButton.setUI((ButtonUI) CustomButtonUI.createUI(startButton)); colorCyclingButton.setUI((ButtonUI) CustomButtonUI.createUI(audioButton)); audioButton.setUI((ButtonUI) CustomButtonUI.createUI(audioButton)); rewindButton.setUI((ButtonUI) CustomButtonUI.createUI(rewindButton)); forwardButton.setUI((ButtonUI) CustomButtonUI.createUI(forwardButton)); colorCyclingButton.setIcon( new ImageIcon(Images.createImage(getClass(), "images/PlayerStartColorCycling.png"))); colorCyclingButton.setSelectedIcon( new ImageIcon(Images.createImage(getClass(), "images/PlayerStartColorCycling.png"))); colorCyclingButton.setDisabledIcon( new ImageIcon( Images.createImage(getClass(), "images/PlayerStartColorCycling.disabled.png"))); audioButton.setIcon( new ImageIcon(Images.createImage(getClass(), "images/PlayerStartAudio.png"))); audioButton.setSelectedIcon( new ImageIcon(Images.createImage(getClass(), "images/PlayerStopAudio.png"))); audioButton.setDisabledIcon( new ImageIcon(Images.createImage(getClass(), "images/PlayerStartAudio.disabled.png"))); startButton.setIcon(new ImageIcon(Images.createImage(getClass(), "images/PlayerStart.png"))); startButton.setSelectedIcon( new ImageIcon(Images.createImage(getClass(), "images/PlayerStop.png"))); startButton.setDisabledIcon( new ImageIcon(Images.createImage(getClass(), "images/PlayerStart.disabled.png"))); rewindButton.setIcon(new ImageIcon(Images.createImage(getClass(), "images/PlayerBack.png"))); rewindButton.setDisabledIcon( new ImageIcon(Images.createImage(getClass(), "images/PlayerBack.disabled.png"))); forwardButton.setIcon(new ImageIcon(Images.createImage(getClass(), "images/PlayerNext.png"))); forwardButton.setDisabledIcon( new ImageIcon(Images.createImage(getClass(), "images/PlayerNext.disabled.png"))); // Automatic scrolling scrollHandler = new ScrollHandler(); scrollTimer = new Timer(60, scrollHandler); scrollTimer.setInitialDelay(300); // default InitialDelay? forwardButton.addMouseListener(scrollHandler); rewindButton.addMouseListener(scrollHandler); }
public ABCPanel(MainPanel mainPanel) { this.mainPanel = mainPanel; setLayout(new BorderLayout()); decompiledTextArea = new DecompiledEditorPane(this); decompiledTextArea.addTextChangedListener(this::decompiledTextAreaTextChanged); decompiledTextArea.setLinkHandler( new LinkHandler() { @Override public boolean isLink(Token token) { return hasDeclaration(token.length == 1 ? token.start : token.start + 1); } @Override public void handleLink(Token token) { gotoDeclaration(token.length == 1 ? token.start : token.start + 1); } @Override public Highlighter.HighlightPainter linkPainter() { return decompiledTextArea.linkPainter(); } }); searchPanel = new SearchPanel<>(new FlowLayout(), this); decompiledScrollPane = new JScrollPane(decompiledTextArea); JPanel iconDecPanel = new JPanel(); iconDecPanel.setLayout(new BoxLayout(iconDecPanel, BoxLayout.Y_AXIS)); JPanel iconsPanel = new JPanel(); iconsPanel.setLayout(new BoxLayout(iconsPanel, BoxLayout.X_AXIS)); JButton newTraitButton = new JButton(View.getIcon("traitadd16")); newTraitButton.setMargin(new Insets(5, 5, 5, 5)); newTraitButton.addActionListener(this::addTraitButtonActionPerformed); newTraitButton.setToolTipText(AppStrings.translate("button.addtrait")); iconsPanel.add(newTraitButton); scriptNameLabel = new JLabel("-"); scriptNameLabel.setAlignmentX(0); iconsPanel.setAlignmentX(0); decompiledScrollPane.setAlignmentX(0); iconDecPanel.add(scriptNameLabel); iconDecPanel.add(iconsPanel); iconDecPanel.add(decompiledScrollPane); JPanel decButtonsPan = new JPanel(new FlowLayout()); decButtonsPan.setBorder(new BevelBorder(BevelBorder.RAISED)); decButtonsPan.add(editDecompiledButton); decButtonsPan.add(experimentalLabel); decButtonsPan.add(saveDecompiledButton); decButtonsPan.add(cancelDecompiledButton); editDecompiledButton.setMargin(new Insets(3, 3, 3, 10)); saveDecompiledButton.setMargin(new Insets(3, 3, 3, 10)); cancelDecompiledButton.setMargin(new Insets(3, 3, 3, 10)); saveDecompiledButton.addActionListener(this::saveDecompiledButtonActionPerformed); editDecompiledButton.addActionListener(this::editDecompiledButtonActionPerformed); cancelDecompiledButton.addActionListener(this::cancelDecompiledButtonActionPerformed); saveDecompiledButton.setVisible(false); cancelDecompiledButton.setVisible(false); decButtonsPan.setAlignmentX(0); JPanel decPanel = new JPanel(new BorderLayout()); decPanel.add(searchPanel, BorderLayout.NORTH); decPanel.add(iconDecPanel, BorderLayout.CENTER); decPanel.add(decButtonsPan, BorderLayout.SOUTH); detailPanel = new DetailPanel(this); JPanel panB = new JPanel(); panB.setLayout(new BorderLayout()); panB.add(decPanel, BorderLayout.CENTER); panB.add(decLabel, BorderLayout.NORTH); decLabel.setHorizontalAlignment(SwingConstants.CENTER); // decLabel.setBorder(new BevelBorder(BevelBorder.RAISED)); splitPane = new JPersistentSplitPane( JSplitPane.HORIZONTAL_SPLIT, panB, detailPanel, Configuration.guiAvm2SplitPaneDividerLocationPercent); splitPane.setContinuousLayout(true); decompiledTextArea.changeContentType("text/actionscript"); decompiledTextArea.setFont( new Font("Monospaced", Font.PLAIN, decompiledTextArea.getFont().getSize())); View.addEditorAction( decompiledTextArea, new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { int multinameIndex = decompiledTextArea.getMultinameUnderCaret(); if (multinameIndex > -1) { UsageFrame usageFrame = new UsageFrame(abc, multinameIndex, ABCPanel.this, false); usageFrame.setVisible(true); } } }, "find-usages", AppStrings.translate("abc.action.find-usages"), "control U"); View.addEditorAction( decompiledTextArea, new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { gotoDeclaration(decompiledTextArea.getCaretPosition()); } }, "find-declaration", AppStrings.translate("abc.action.find-declaration"), "control B"); CtrlClickHandler cch = new CtrlClickHandler(); decompiledTextArea.addKeyListener(cch); decompiledTextArea.addMouseListener(cch); decompiledTextArea.addMouseMotionListener(cch); navigator = new TraitsList(this); navPanel = new JPanel(new BorderLayout()); JPanel navIconsPanel = new JPanel(); navIconsPanel.setLayout(new BoxLayout(navIconsPanel, BoxLayout.X_AXIS)); final JToggleButton sortButton = new JToggleButton(View.getIcon("sort16")); sortButton.setMargin(new Insets(3, 3, 3, 3)); navIconsPanel.add(sortButton); navPanel.add(navIconsPanel, BorderLayout.SOUTH); navPanel.add(new JScrollPane(navigator), BorderLayout.CENTER); sortButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { navigator.setSorted(sortButton.isSelected()); navigator.updateUI(); } }); tabbedPane = new JTabbedPane(); tabbedPane.addTab(AppStrings.translate("traits"), navPanel); add(splitPane, BorderLayout.CENTER); JPanel panConstants = new JPanel(); panConstants.setLayout(new BorderLayout()); constantTypeList = new JComboBox<>( new String[] { "UINT", "INT", "DOUBLE", "DECIMAL", "STRING", "NAMESPACE", "NAMESPACESET", "MULTINAME" }); constantTable = new JTable(); if (abc != null) { View.autoResizeColWidth(constantTable, new UIntTableModel(abc)); } constantTable.setAutoCreateRowSorter(true); final ABCPanel t = this; constantTable.addMouseListener( new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { if (constantTypeList.getSelectedIndex() == 7) { // MULTINAME int rowIndex = constantTable.getSelectedRow(); if (rowIndex == -1) { return; } int multinameIndex = constantTable.convertRowIndexToModel(rowIndex); if (multinameIndex > 0) { UsageFrame usageFrame = new UsageFrame(abc, multinameIndex, t, false); usageFrame.setVisible(true); } } } } }); constantTypeList.addItemListener(this); panConstants.add(constantTypeList, BorderLayout.NORTH); panConstants.add(new JScrollPane(constantTable), BorderLayout.CENTER); tabbedPane.addTab(AppStrings.translate("constants"), panConstants); }