List of usage examples for javax.swing.table JTableHeader setReorderingAllowed
@BeanProperty(description = "Whether the user can drag column headers to reorder columns.") public void setReorderingAllowed(boolean reorderingAllowed)
From source file:org.richie.codeGen.ui.configui.ConstantConfigWin.java
public JScrollPane getCenterPanel() { if (centerPanel == null) { constantConfigModel = new ConstantConfigModel(); table = new JTable(constantConfigModel); table.setBackground(Color.white); table.setSelectionBackground(Color.white); table.setSelectionForeground(Color.black); JTableHeader tableHeader = table.getTableHeader(); tableHeader.setReorderingAllowed(false);// ?? table.setFont(new Font("Dialog", 0, 13)); table.setRowHeight(23);/* w ww . j ava2 s .c om*/ TemplateConfigWin.hideColumn(table, 3); JComboBox cm = new JComboBox(GlobalData.costantType); TableColumnModel tcm = table.getColumnModel(); tcm.getColumn(4).setCellRenderer(new ButtonRenderer()); tcm.getColumn(4).setCellEditor(new ButtonEditor()); tcm.getColumn(1).setCellEditor(new DefaultCellEditor(cm)); tcm.getColumn(0).setPreferredWidth(50); tcm.getColumn(1).setPreferredWidth(30); tcm.getColumn(2).setPreferredWidth(240); tcm.getColumn(4).setPreferredWidth(20); centerPanel = new JScrollPane(table); // table addTableListener(); } return centerPanel; }
From source file:org.richie.codeGen.ui.GenAndPreviewUI.java
public JScrollPane getTemplatePanel() { complateModel = new CodeTemplateModel(false); table = new JTable(complateModel); table.setBackground(Color.white); table.setSelectionBackground(Color.white); table.setSelectionForeground(Color.black); JTableHeader tableHeader = table.getTableHeader(); tableHeader.setReorderingAllowed(false);// ?? table.setFont(new Font("Dialog", 0, 13)); table.setRowHeight(23);//from www .j a v a2 s .c om try { templateNames = GlobalData.getTemplateNames(); rootPathNames = GlobalData.getOutFileRootNames(); } catch (Exception e) { log.error("??", e); } templateNameCom = new JComboBox(templateNames); rootPathCom = new JComboBox(rootPathNames); // ?? TemplateConfigWin.hideColumn(table, 8); TableColumnModel tcm = table.getColumnModel(); tcm.getColumn(1).setCellEditor(new DefaultCellEditor(templateNameCom)); tcm.getColumn(3).setCellEditor(new DefaultCellEditor(rootPathCom)); tcm.getColumn(7).setCellRenderer(new ButtonRenderer()); tcm.getColumn(7).setCellEditor(new ButtonEditor()); tcm.getColumn(9).setCellRenderer(new ButtonRenderer()); tcm.getColumn(9).setCellEditor(new ButtonEditor()); tcm.getColumn(0).setMaxWidth(40); tcm.getColumn(1).setPreferredWidth(50); tcm.getColumn(2).setPreferredWidth(30); tcm.getColumn(3).setPreferredWidth(40); tcm.getColumn(4).setPreferredWidth(120); tcm.getColumn(5).setMinWidth(90); tcm.getColumn(5).setMaxWidth(90); tcm.getColumn(6).setPreferredWidth(10); tcm.getColumn(7).setMaxWidth(60); tcm.getColumn(7).setMinWidth(60); tcm.getColumn(9).setMaxWidth(60); tcm.getColumn(9).setMinWidth(60); JScrollPane tablePanel = new JScrollPane(table); // table addTableListener(); return tablePanel; }
From source file:org.ut.biolab.medsavant.client.view.genetics.variantinfo.VariantFrequencyAggregatePane.java
public void setVariantRecords(Set<VariantRecord> records) { innerPanel.removeAll();// www.jav a2s.co m //This function executes quickly, no need for waitPanel. //innerPanel.add(new WaitPanel("Loading DNA Ids...")); tableModel.setValues(records); aggregateTable = new AggregateTable(tableModel) { @Override //Necessary to enable buttons within the table. public boolean isCellEditable(int rowIndex, int colIndex) { return colIndex == buttonIndex; } //"Disables" selection within the aggregateTable. @Override public TableCellRenderer getCellRenderer(final int rowIndex, final int columnIndex) { final TableCellRenderer renderer = super.getCellRenderer(rowIndex, columnIndex); return new TableCellRenderer() { @Override public Component getTableCellRendererComponent(JTable jtable, final Object o, boolean bln, boolean bln1, int i, int i1) { return renderer.getTableCellRendererComponent(jtable, o, false, false, i, i1); } }; } //This overridden method, together with the custom mouse listener on the //AggregateTable header, disallows moving the first column, and columns //>= dnaIDIndex @Override protected AggregateTable.DraggingHandler createDraggingColumnPropertyChangeListener() { return new AggregateTable.DraggingHandler() { @Override public void columnMoved(TableColumnModelEvent e) { if (fromColumnIndex == -1) { fromColumnIndex = e.getFromIndex(); } toColumnIndex = e.getToIndex(); } }; } }; header = new AggregateTableHeader(aggregateTable); header.addMouseListener(new MouseAdapter() { //Disable moving the first column, or columns with index //>=dnaIDIndex @Override public void mouseReleased(MouseEvent e) { if (toColumnIndex != -1 && ((toColumnIndex == 0 || fromColumnIndex == 0) || (toColumnIndex >= dnaIDIndex || fromColumnIndex >= dnaIDIndex))) { aggregateTable.moveColumn(toColumnIndex, fromColumnIndex); String msg = "This column cannot be moved."; DialogUtils.displayMessage(msg); } else { for (int columnHeaderIndex = 0; columnHeaderIndex < header.getColumnModel().getColumnCount() - 2; columnHeaderIndex++) { String columnTitle = (String) header.getColumnModel().getColumn(columnHeaderIndex) .getHeaderValue(); aggregateColumns[columnHeaderIndex] = columnTitle; } reaggregate(); } //aggregateTable.aggregate(this.aggregateColumns); fromColumnIndex = -1; toColumnIndex = -1; //expandAllButLast(); } }); header.setAutoFilterEnabled(false); header.setReorderingAllowed(true); header.setFont(TABLE_FONT_LARGE); aggregateTable.setTableHeader(header); aggregateTable.setAutoResizeMode(AggregateTable.AUTO_RESIZE_ALL_COLUMNS); aggregateTable.setFont(TABLE_FONT_LARGE); //Setup a custom "summary". This is what calculates frequencies when cells are //collapsed PivotField f = aggregateTable.getAggregateTableModel().getField(BasicVariantColumns.DNA_ID.getAlias()); f.setSummaryType(PivotConstants.SUMMARY_RESERVED_MAX + 1); aggregateTable.getAggregateTableModel().setSummaryCalculator(new SummaryCalculator() { private Set<String> collapsedDNAIDs = new HashSet<String>(); private Values lastRowValues; private int valueCount = 0; private final int SUMMARY_FREQ = PivotConstants.SUMMARY_RESERVED_MAX + 1; @Override public void addValue(PivotValueProvider dataModel, PivotField field, Values rowValues, Values columnValues, Object object) { //this gets called multiple times for all the cells that disappear when //something is collapsed. // row[0] is the value of the corresponding first column: e.g. a Cohort or Family. // columnValues can be ignored (blank) // Object is the value of the item in the cell that disappeared. (i.e. those cells which are being summarized) // field.getName() is the column name corresponding to Object // Useful Debugging code: //if(field.getName().equals(BasicVariantColumns.DNA_ID.getAlias())){ /* System.out.println("=========="); System.out.println("Field : " + field.getName()); System.out.println("Row values: "); for (int i = 0; i < rowValues.getCount(); ++i) { System.out.println("\trow[" + i + "] = " + rowValues.getValueAt(i).getValue()); } System.out.println("Column values: "); for (int i = 0; i < columnValues.getCount(); ++i) { System.out.println("\tcol[" + i + "] = " + columnValues.getValueAt(i).getValue()); } System.out.println("Object: "); System.out.println("\t" + object); System.out.println("=========="); */ // } if (field.getName().equals(BasicVariantColumns.DNA_ID.getAlias())) { collapsedDNAIDs.add((String) object); lastRowValues = rowValues; } else { lastRowValues = null; } valueCount++; } //Should never be called @Override public void addValue(Object o) { LOG.error("Unexpected method invocation in OtherIndividualsSubInspector (1)"); } //Should never be called @Override public void addValue(IPivotDataModel ipdm, PivotField pf, int i, int i1, Object o) { LOG.error("Unexpected method invocation in OtherIndividualsSubInspector (2)"); } //Should never be called @Override public void addValue(PivotValueProvider pvp, PivotField pf, Object o) { LOG.error("Unexpected method invocation in OtherIndividualsSubInspector (3)"); } @Override public void clear() { collapsedDNAIDs.clear(); valueCount = 0; lastRowValues = null; } @Override public Object getSummaryResult(int type) { //if null, then we're not in the DNAId column. Return null //to show a blank in this cell if (lastRowValues == null) { return null; } int numIndividuals = getNumberOfIndividualsInGroup(lastRowValues.getValueAt(0)); return new Frequency(collapsedDNAIDs.size(), numIndividuals); } private int getNumberOfIndividualsInGroup(Value v) { if (aggregateColumns[0].equals("Cohort")) { //LOG.debug("Getting number of individuals in group " + v.getValue()); Set<String> dnaIds = cohortDNAIDMap.get((Cohort) v.getValue()); //for (String id : dnaIds) { //LOG.debug("\tGot id " + id); //} return cohortDNAIDMap.get((Cohort) v.getValue()).size(); } else if (aggregateColumns[0].equals(BasicPatientColumns.FAMILY_ID.getAlias())) { return familyIDdnaIDMap.get((String) v.getValue()).size(); } else { LOG.error("Invalid first column"); return -1; } } @Override public long getCount() { return valueCount; } @Override public int getNumberOfSummaries() { return 1; } @Override public String getSummaryName(Locale locale, int i) { return "Frequency"; } @Override public int[] getAllowedSummaries(Class<?> type) { return new int[] { SUMMARY_FREQ }; } @Override public int[] getAllowedSummaries(Class<?> type, ConverterContext cc) { return new int[] { SUMMARY_FREQ }; } }); //Sets up the context menu for clicking column headers. This will probably not be used //frequently. Limit the available operations to collapsing, expanding, and grouping. TableHeaderPopupMenuInstaller installer = new TableHeaderPopupMenuInstaller(aggregateTable); installer.addTableHeaderPopupMenuCustomizer(new AggregateTablePopupMenuCustomizer() { @Override public void customizePopupMenu(JTableHeader header, JPopupMenu popup, int clickingColumn) { super.customizePopupMenu(header, popup, clickingColumn); for (int i = 0; i < popup.getComponentCount(); i++) { String menuItemName = popup.getComponent(i).getName(); if (!(CONTEXT_MENU_COLLAPSE.equals(menuItemName) || CONTEXT_MENU_COLLAPSE_ALL.equals(menuItemName) || CONTEXT_MENU_EXPAND.equals(menuItemName) || CONTEXT_MENU_EXPAND_ALL.equals(menuItemName) || CONTEXT_MENU_GROUP.equals(menuItemName) || CONTEXT_MENU_UNGROUP.equals(menuItemName))) { popup.remove(popup.getComponent(i)); } } } }); aggregateTable.getAggregateTableModel().setSummaryMode(true); aggregateTable.aggregate(aggregateColumns); aggregateTable.setShowContextMenu(false); expandAllButLast(); setupButtonColumn(); JScrollPane jsp = new JScrollPane(aggregateTable); jsp.setPreferredSize(PREFERRED_SIZE); JPanel bp = new JPanel(); bp.setLayout(new BoxLayout(bp, BoxLayout.X_AXIS)); JButton closeButton = new JButton(IconFactory.getInstance().getIcon(IconFactory.StandardIcon.CLOSE)); closeButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ae) { unsplitScreen(); } }); bp.add(Box.createHorizontalGlue()); bp.add(title); bp.add(Box.createHorizontalGlue()); bp.add(closeButton); innerPanel.add(bp); innerPanel.add(jsp); reaggregate(); innerPanel.revalidate(); innerPanel.repaint(); }
From source file:pcgen.gui2.dialog.CharacterHPDialog.java
private void initComponents() { setDefaultCloseOperation(DISPOSE_ON_CLOSE); Container pane = getContentPane(); pane.setLayout(new BorderLayout()); JTable table = new JTable(tableModel) { @Override//from ww w. j a v a 2 s . c o m public TableCellEditor getCellEditor(int row, int column) { if (column == 5) {//TODO: the max roll should be calculated in a different manner String hd = levels.getClassTaken(levels.getElementAt(row)).getHD(); int max = NumberUtils.toInt(hd); return new IntegerEditor(1, max); } else { return super.getCellEditor(row, column); } } }; table.setDefaultRenderer(JButton.class, new Renderer()); table.setDefaultEditor(JButton.class, new Editor()); table.setCellSelectionEnabled(false); table.setRowHeight(new IntegerEditor(1, 10).getPreferredSize().height); JTableHeader header = table.getTableHeader(); header.setReorderingAllowed(false); JScrollPane scrollPane = new JScrollPane(table); pane.add(scrollPane, BorderLayout.CENTER); Box box = Box.createHorizontalBox(); box.add(new JLabel("Total Hp:")); box.add(Box.createHorizontalStrut(3)); final ReferenceListener<Integer> hpListener = new ReferenceListener<Integer>() { @Override public void referenceChanged(ReferenceEvent<Integer> e) { totalHp.setText(e.getNewReference().toString()); } }; ReferenceFacade<Integer> hpRef = character.getTotalHPRef(); totalHp.setText(hpRef.get().toString()); hpRef.addReferenceListener(hpListener); box.add(totalHp); box.add(Box.createHorizontalStrut(5)); JButton button = new JButton("Reroll All"); button.setActionCommand("Reroll"); button.addActionListener(this); box.add(button); box.add(Box.createHorizontalGlue()); button = new JButton("Close"); button.setActionCommand("Close"); button.addActionListener(this); box.add(button); pane.add(box, BorderLayout.SOUTH); addWindowListener(new WindowAdapter() { @Override public void windowClosed(WindowEvent e) { //Make sure to remove the listeners so that the garbage collector can //dispose of this dialog and prevent a memory leak levels.removeHitPointListener(tableModel); character.getTotalHPRef().removeReferenceListener(hpListener); } }); Utility.installEscapeCloseOperation(this); }
From source file:pcgen.gui2.dialog.PostLevelUpDialog.java
private void initComponents() { setDefaultCloseOperation(DISPOSE_ON_CLOSE); Container pane = getContentPane(); pane.setLayout(new BorderLayout()); JTable table = new JTable(tableModel) { @Override//from ww w .ja v a 2 s .c o m public TableCellEditor getCellEditor(int row, int column) { if (column == LevelTableModel.COL_ROLLED_HP && row < numLevels) {//TODO: the max roll should be calculated in a different manner String hd = levels.getClassTaken(levels.getElementAt(row + oldLevel)).getHD(); int max = NumberUtils.toInt(hd); return new SpinnerEditor(new SpinnerNumberModel(1, 1, max, 1)); } return super.getCellEditor(row, column); } @Override public TableCellRenderer getCellRenderer(int row, int column) { if (column == LevelTableModel.COL_ROLLED_HP && row < numLevels) { return new SpinnerRenderer(); } return super.getCellRenderer(row, column); } }; table.setCellSelectionEnabled(false); table.setRowHeight(new JSpinner().getPreferredSize().height); JTableHeader header = table.getTableHeader(); header.setReorderingAllowed(false); JScrollPane scrollPane = new JScrollPane(table); pane.add(scrollPane, BorderLayout.CENTER); Box box = Box.createHorizontalBox(); box.add(Box.createHorizontalGlue()); JButton button = new JButton(LanguageBundle.getString("in_close")); //$NON-NLS-1$ button.setMnemonic(LanguageBundle.getMnemonic("in_mn_close")); //$NON-NLS-1$ button.setActionCommand("Close"); //$NON-NLS-1$ button.addActionListener(this); box.add(button); pane.add(box, BorderLayout.SOUTH); addWindowListener(new WindowAdapter() { @Override public void windowClosed(WindowEvent e) { //Make sure to remove the listeners so that the garbage collector can //dispose of this dialog and prevent a memory leak levels.removeHitPointListener(tableModel); } }); Utility.installEscapeCloseOperation(this); }