Java Code Examples for javax.swing.JTable#getRowSorter()

The following examples show how to use javax.swing.JTable#getRowSorter() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: TableState.java    From constellation with Apache License 2.0 6 votes vote down vote up
public static TableState createMetaState(final JTable table, final boolean selectedOnly) {
    final TableState state = new TableState(table, selectedOnly);

    final GraphTableModel tm = (GraphTableModel) table.getModel();
    for (int i = 0; i < table.getColumnCount(); i++) {
        final TableColumn tc = table.getColumnModel().getColumn(i);
        final int modelIndex = tc.getModelIndex();
        final Attribute attr = tm.getAttribute(modelIndex);
        final String label = attr.getName();

        final ColumnState cs = new ColumnState(label, tm.getSegment(modelIndex), tc.getWidth());
        state.columns.add(cs);
    }

    final RowSorter<? extends TableModel> sorter = table.getRowSorter();
    for (final RowSorter.SortKey sk : sorter.getSortKeys()) {
        // TODO: should really store the column label + segment here.
        state.sortOrder.add(String.format("%d,%s", sk.getColumn(), sk.getSortOrder()));
    }

    return state;
}
 
Example 2
Source File: LuckTableCellHeaderRenderer.java    From littleluck with Apache License 2.0 6 votes vote down vote up
public static SortOrder getColumnSortOrder(JTable table, int column)
{
    SortOrder rv = null;

    if (table == null || table.getRowSorter() == null)
    {
        return rv;
    }

    java.util.List<? extends RowSorter.SortKey> sortKeys = table
            .getRowSorter().getSortKeys();

    if (sortKeys.size() > 0 && sortKeys.get(0).getColumn() == table
            .convertColumnIndexToModel(column))
    {
        rv = sortKeys.get(0).getSortOrder();
    }

    return rv;
}
 
Example 3
Source File: SeaGlassTableHeaderUI.java    From seaglass with Apache License 2.0 6 votes vote down vote up
/**
 * DOCUMENT ME!
 *
 * @param  table  DOCUMENT ME!
 * @param  column DOCUMENT ME!
 *
 * @return DOCUMENT ME!
 */
public static SortOrder getColumnSortOrder(JTable table, int column) {
    SortOrder rv = null;

    if (table == null || table.getRowSorter() == null) {
        return rv;
    }

    java.util.List<? extends RowSorter.SortKey> sortKeys = table.getRowSorter().getSortKeys();

    if (sortKeys.size() > 0 && sortKeys.get(0).getColumn() == table.convertColumnIndexToModel(column)) {
        rv = sortKeys.get(0).getSortOrder();
    }

    return rv;
}
 
Example 4
Source File: LogTopComponent.java    From NBANDROID-V2 with Apache License 2.0 5 votes vote down vote up
private void tabPaneStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_tabPaneStateChanged

        JScrollPane sPane = (JScrollPane) tabPane.getSelectedComponent();
        if (sPane != null) {

            JViewport view = (JViewport) sPane.getComponent(0);
            selectedTable = (JTable) view.getView();

            // re-apply the filter to the current tab
            if (selectedTable.getRowSorter() != null) {
                ((TableRowSorter) selectedTable.getRowSorter()).sort();
            }

            if (tabManagers != null) {

                // Remove all toggle button listeners
                for (ChangeListener l : autoScrollToggleButton.getChangeListeners()) {

                    autoScrollToggleButton.removeChangeListener(l);
                }

                LogTableManager manager = tabManagers.get(tabPane.getSelectedIndex());

                // Add current listener
                autoScrollToggleButton.addChangeListener(manager);

                // Refresh buttons
                autoScrollToggleButton.setSelected(manager.isAutoFollowScroll());
            }
        }
    }
 
Example 5
Source File: JtableUtils.java    From Cognizant-Intelligent-Test-Scripter with Apache License 2.0 5 votes vote down vote up
/**
 * get all selected rows and DELETE one by one from the last.
 *
 * @param table the table to DELETE rows
 */
public static void deleterow(JTable table) {
    int[] selectedrows = table.getSelectedRows();
    for (int row : selectedrows) {
        row = table.getSelectedRow();
        if (table.getRowSorter() != null) {
            row = table.getRowSorter().convertRowIndexToModel(row);
        }
        ((DefaultTableModel) table.getModel()).removeRow(row);
    }

}
 
Example 6
Source File: DefaultTableHeaderCellRenderer.java    From mars-sim with GNU General Public License v3.0 5 votes vote down vote up
/**
 * Returns the current sort key, or null if the column is unsorted.
 *
 * @param table the table
 * @param column the column index
 * @return the SortKey, or null if the column is unsorted
 */
protected SortKey getSortKey(JTable table, int column) {
  RowSorter<?> rowSorter = table.getRowSorter();
  if (rowSorter == null) {
    return null;
  }

  List<?> sortedColumns = rowSorter.getSortKeys();
  if (sortedColumns.size() > 0) {
    return (SortKey) sortedColumns.get(0);
  }
  return null;
}
 
Example 7
Source File: PollTabPane.java    From Qora with MIT License 5 votes vote down vote up
@SuppressWarnings("unchecked")
public PollTabPane(Poll poll)
{
	super();
		
	//POLL DETAILS
	this.pollDetailsPanel = new PollDetailsPanel(poll);
	this.addTab("Poll Details", this.pollDetailsPanel);
	
	//ALL VOTES
	VotesTableModel allVotesTableModel = new VotesTableModel(poll.getVotes());
	final JTable allVotesTable = Gui.createSortableTable(allVotesTableModel, 0);
	
	TableRowSorter<VotesTableModel> sorter =  (TableRowSorter<VotesTableModel>) allVotesTable.getRowSorter();
	sorter.setComparator(VotesTableModel.COLUMN_VOTES, new BigDecimalStringComparator());
	
	this.addTab("All Votes", new JScrollPane(allVotesTable));
	
	//MY VOTES
	VotesTableModel myVotesTableModel = new VotesTableModel(poll.getVotes(Controller.getInstance().getAccounts()));
	final JTable myVotesTable = Gui.createSortableTable(myVotesTableModel, 0);
	
	sorter =  (TableRowSorter<VotesTableModel>) myVotesTable.getRowSorter();
	sorter.setComparator(VotesTableModel.COLUMN_VOTES, new BigDecimalStringComparator());
	
	this.addTab("My Votes", new JScrollPane(myVotesTable));
}
 
Example 8
Source File: RepositoryEntryCellRenderer.java    From pentaho-reporting with GNU Lesser General Public License v2.1 5 votes vote down vote up
public Component getTableCellRendererComponent( final JTable table,
                                                final Object value,
                                                final boolean isSelected,
                                                final boolean hasFocus,
                                                final int row,
                                                final int column ) {
  final JLabel component =
    (JLabel) super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column );
  try {
    if ( column == 0 ) {
      final RepositoryTableModel tableModel = (RepositoryTableModel) table.getModel();
      final RowSorter rowSorter = table.getRowSorter();
      final FileObject e;
      if ( rowSorter != null ) {
        e = tableModel.getElementForRow( rowSorter.convertRowIndexToModel( row ) );
      } else {
        e = tableModel.getElementForRow( row );
      }

      if ( e.getType() == FileType.FOLDER ) {
        component.setIcon( closedIcon );
      } else {
        component.setIcon( leafIcon );
      }
    } else {
      component.setIcon( null );
    }
  } catch ( FileSystemException fse ) {
    // ok, ugly, but not fatal.
  }
  return component;
}
 
Example 9
Source File: LogTableCellRenderer.java    From NBANDROID-V2 with Apache License 2.0 4 votes vote down vote up
@Override
public Component getTableCellRendererComponent(
        JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    TableRowSorter rowsorter = (TableRowSorter) table.getRowSorter();

    LogTableModel model = (LogTableModel) table.getModel();
    LogLineRowFilter rowfilter = null;
    String line = htmlEscape(String.valueOf(value));

    // if possible, try to translate the visual row number to the model's row number
    if (rowsorter != null) {
        row = rowsorter.convertRowIndexToModel(row);

        if (rowsorter.getRowFilter() instanceof LogLineRowFilter) {
            rowfilter = (LogLineRowFilter) rowsorter.getRowFilter();
        }
    }

    // get the according event object
    LogEvent event = model.getValueAt(row);
    LogLevel level = event.getLevel();

    final String htmlLeft = "<html><nobr>";
    final String htmlRight = "</nobr></html>";

    switch (column) {
        case LogTableModel.COL_TIME: {
            return super.getTableCellRendererComponent(table, htmlLeft + line + htmlRight, isSelected, hasFocus, row, column);
        }

        case LogTableModel.COL_TAG:
        case LogTableModel.COL_PROCESS: {
            line = rowfilter.highlight(line);
            break;
        }

        case LogTableModel.COL_MESSAGE: {
            line = rowfilter.highlight(line);
            int indentSize = 0;

            while (indentSize < line.length() && line.charAt(indentSize) == ' ') {
                ++indentSize;
            }

            String indent = indentSize == 0 ? "" : line.substring(0, indentSize - 1);
            line = indentSize == 0 ? line : line.substring(indentSize);

            if (event.getStackTraceElement() != null) {
                line = "<pre>" + indent + "<u>" + line + "</u></pre>";
            }

            break;
        }
    }

    Component c = super.getTableCellRendererComponent(table, htmlLeft + line + htmlRight, isSelected, hasFocus, row, column);
    Color color = Color.BLACK;

    switch (level) {
        case ASSERT:
            color = COLOR_ASSERT;
            break;
        case DEBUG:
            color = COLOR_DEBUG;
            break;
        case ERROR:
            color = COLOR_ERROR;
            break;
        case INFO:
            color = COLOR_INFO;
            break;
        case WARN:
            color = COLOR_WARN;
            break;
        default:
            color = COLOR_VERBOSE;
            break;
    }

    c.setForeground(color);

    if (column == LogTableModel.COL_MESSAGE && c instanceof JLabel) {
        ((JLabel) c).setToolTipText(value != null ? value.toString() : "");
    }

    return c;
}
 
Example 10
Source File: LuckTableCellHeaderRenderer.java    From littleluck with Apache License 2.0 4 votes vote down vote up
public Component getTableCellRendererComponent(JTable table,
                                               Object value,
                                               boolean isSelected,
                                               boolean hasFocus,
                                               int row,
                                               int column)
{
    if (table == null)
    {
        return this;
    }

    if(column == table.getColumnCount() - 1)
    {
        setBorder(endColumnBorder);
    }
    else
    {
        setBorder(noramlBorder);
    }

    boolean isPaintingForPrint = false;

    if(table.getTableHeader() != null)
    {
        isPaintingForPrint = table.getTableHeader().isPaintingForPrint();
    }

    Icon sortIcon = null;

    if (!isPaintingForPrint && table.getRowSorter() != null)
    {
        SortOrder sortOrder = getColumnSortOrder(table, column);

        if (sortOrder != null)
        {
            switch (sortOrder)
            {
                case ASCENDING:

                    sortIcon = UIManager.getIcon("Table.ascendingSortIcon");

                    break;

                case DESCENDING:

                    sortIcon = UIManager.getIcon("Table.descendingSortIcon");

                    break;

                case UNSORTED:

                    break;
            }
        }
    }

    setIcon(sortIcon);

    setFont(table.getFont());

    setValue(value);

    return this;
}
 
Example 11
Source File: DefaultTableHeaderRenderer.java    From dsworkbench with Apache License 2.0 4 votes vote down vote up
@Override
public Component getTableCellRendererComponent(JTable table,
        Object value, boolean isSelected, boolean hasFocus,
        int row, int column) {
    Icon sortIcon = null;
   // setBackground(Constants.DS_BACK);
    boolean isPaintingForPrint = false;

    if (table != null) {
        JTableHeader header = table.getTableHeader();
        if (header != null) {
            Color fgColor = null;
            Color bgColor = null;
            if (hasFocus) {
                fgColor = UIManager.getColor("TableHeader.focusCellForeground");
                bgColor = UIManager.getColor("TableHeader.focusCellBackground");
            }
            if (fgColor == null) {
                fgColor = header.getForeground();
            }
            if (bgColor == null) {
                bgColor = header.getBackground();
            }

            setFont(header.getFont());
            isPaintingForPrint = header.isPaintingForPrint();
        }

        if (!isPaintingForPrint && table.getRowSorter() != null) {
            if (!horizontalTextPositionSet) {
                // There is a row sorter, and the developer hasn't
                // set a text position, change to leading.
                setHorizontalTextPosition(JLabel.LEADING);
            }
            java.util.List<? extends RowSorter.SortKey> sortKeys = table.getRowSorter().getSortKeys();
            if (sortKeys.size() > 0
                    && sortKeys.get(0).getColumn() == table.convertColumnIndexToModel(column)) {
                switch (sortKeys.get(0).getSortOrder()) {
                    case ASCENDING:
                        sortIcon = UIManager.getIcon("Table.ascendingSortIcon");
                        break;
                    case DESCENDING:
                        sortIcon = UIManager.getIcon("Table.descendingSortIcon");
                        break;
                    case UNSORTED:
                        sortIcon = UIManager.getIcon("Table.naturalSortIcon");
                        break;
                }
            }
        }
    }

    setText(value == null ? "" : value.toString());
    setIcon(sortIcon);

    Border border = null;
    if (hasFocus) {
        border = UIManager.getBorder("TableHeader.focusCellBorder");
    }
    if (border == null) {
        border = UIManager.getBorder("TableHeader.cellBorder");
    }
    setBorder(border);

    return this;
}
 
Example 12
Source File: SupportTableHeaderRenderer.java    From dsworkbench with Apache License 2.0 4 votes vote down vote up
@Override
public Component getTableCellRendererComponent(JTable table,
        Object value, boolean isSelected, boolean hasFocus,
        int row, int column) {
    Icon sortIcon = null;
    boolean isPaintingForPrint = false;

    if (table != null) {
        JTableHeader header = table.getTableHeader();
        if (header != null) {
            Color fgColor = null;
            Color bgColor = null;
            if (hasFocus) {
                fgColor = UIManager.getColor("TableHeader.focusCellForeground");
                bgColor = UIManager.getColor("TableHeader.focusCellBackground");
            }
            if (fgColor == null) {
                fgColor = header.getForeground();
            }
            if (bgColor == null) {
                bgColor = header.getBackground();
            }
            setForeground(fgColor);
            setFont(header.getFont());
            isPaintingForPrint = header.isPaintingForPrint();
        }

        if (!isPaintingForPrint && table.getRowSorter() != null) {
            if (!horizontalTextPositionSet) {
                // There is a row sorter, and the developer hasn't
                // set a text position, change to leading.
                setHorizontalTextPosition(JLabel.LEADING);
            }
            java.util.List<? extends RowSorter.SortKey> sortKeys = table.getRowSorter().getSortKeys();
            if (sortKeys.size() > 0
                    && sortKeys.get(0).getColumn() == table.convertColumnIndexToModel(column)) {
                switch (sortKeys.get(0).getSortOrder()) {
                    case ASCENDING:
                        sortIcon = UIManager.getIcon("Table.ascendingSortIcon");
                        break;
                    case DESCENDING:
                        sortIcon = UIManager.getIcon("Table.descendingSortIcon");
                        break;
                    case UNSORTED:
                        sortIcon = UIManager.getIcon("Table.naturalSortIcon");
                        break;
                }
            }
        }
    }

    SupportTableModel model = (SupportTableModel) table.getModel();

    ImageIcon icon = model.getColumnIcon((String) value);
    BufferedImage i = ImageUtils.createCompatibleBufferedImage(18, 18, BufferedImage.BITMASK);
    Graphics2D g2d = i.createGraphics();
    // setIcon(sortIcon);
    if (icon != null) {
        icon.paintIcon(this, g2d, 0, 0);
        setText("");
        if (sortIcon != null) {
            g2d.setColor(getBackground());
            g2d.fillRect(18 - sortIcon.getIconWidth() - 2, 18 - sortIcon.getIconHeight() - 2, sortIcon.getIconWidth() + 2, sortIcon.getIconHeight() + 2);
            sortIcon.paintIcon(this, g2d, 18 - sortIcon.getIconWidth() - 1, 18 - sortIcon.getIconHeight() - 1);
        }
        setIcon(new ImageIcon(i));
    } else {
        setIcon(sortIcon);
        setText(value == null ? "" : value.toString());
    }


    Border border = null;
    if (hasFocus) {
        border = UIManager.getBorder("TableHeader.focusCellBorder");
    }
    if (border == null) {
        border = UIManager.getBorder("TableHeader.cellBorder");
    }
    setBorder(border);

    return this;
}
 
Example 13
Source File: TroopTableHeaderRenderer.java    From dsworkbench with Apache License 2.0 4 votes vote down vote up
@Override
public Component getTableCellRendererComponent(JTable table,
        Object value, boolean isSelected, boolean hasFocus,
        int row, int column) {
    Icon sortIcon = null;
    boolean isPaintingForPrint = false;

    if (table != null) {
        JTableHeader header = table.getTableHeader();
        if (header != null) {
            Color fgColor = null;
            Color bgColor = null;
            if (hasFocus) {
                fgColor = UIManager.getColor("TableHeader.focusCellForeground");
                bgColor = UIManager.getColor("TableHeader.focusCellBackground");
            }
            if (fgColor == null) {
                fgColor = header.getForeground();
            }
            if (bgColor == null) {
                bgColor = header.getBackground();
            }
            setForeground(fgColor);
            setFont(header.getFont());
            isPaintingForPrint = header.isPaintingForPrint();
        }

        if (!isPaintingForPrint && table.getRowSorter() != null) {
            if (!horizontalTextPositionSet) {
                // There is a row sorter, and the developer hasn't
                // set a text position, change to leading.
                setHorizontalTextPosition(JLabel.LEADING);
            }
            java.util.List<? extends RowSorter.SortKey> sortKeys = table.getRowSorter().getSortKeys();
            if (sortKeys.size() > 0
                    && sortKeys.get(0).getColumn() == table.convertColumnIndexToModel(column)) {
                switch (sortKeys.get(0).getSortOrder()) {
                    case ASCENDING:
                        sortIcon = UIManager.getIcon("Table.ascendingSortIcon");
                        break;
                    case DESCENDING:
                        sortIcon = UIManager.getIcon("Table.descendingSortIcon");
                        break;
                    case UNSORTED:
                        sortIcon = UIManager.getIcon("Table.naturalSortIcon");
                        break;
                }
            }
        }
    }

    TroopsTableModel model = (TroopsTableModel) table.getModel();

    ImageIcon icon = model.getColumnIcon((String) value);
    BufferedImage i = ImageUtils.createCompatibleBufferedImage(18, 18, BufferedImage.BITMASK);
    Graphics2D g2d = i.createGraphics();
    // setIcon(sortIcon);
    if (icon != null) {
        icon.paintIcon(this, g2d, 0, 0);
        setText("");
        if (sortIcon != null) {
            g2d.setColor(getBackground());
            g2d.fillRect(18 - sortIcon.getIconWidth() - 2, 18 - sortIcon.getIconHeight() - 2, sortIcon.getIconWidth() + 2, sortIcon.getIconHeight() + 2);
            sortIcon.paintIcon(this, g2d, 18 - sortIcon.getIconWidth() - 1, 18 - sortIcon.getIconHeight() - 1);
        }
        setIcon(new ImageIcon(i));
    } else {
        setIcon(sortIcon);
        setText(value == null ? "" : value.toString());
    }


    Border border = null;
    if (hasFocus) {
        border = UIManager.getBorder("TableHeader.focusCellBorder");
    }
    if (border == null) {
        border = UIManager.getBorder("TableHeader.cellBorder");
    }
    setBorder(border);

    return this;
}
 
Example 14
Source File: SeaGlassTableHeaderUI.java    From seaglass with Apache License 2.0 4 votes vote down vote up
/**
 * @see com.seaglasslookandfeel.ui.SeaGlassTableHeaderUI$DefaultTableCellHeaderRenderer#getTableCellRendererComponent(javax.swing.JTable,
 *      java.lang.Object, boolean, boolean, int, int)
 */
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row,
        int column) {
    boolean hasRollover = false; // (column == getRolloverColumn());

    if (isSelected || hasRollover || hasFocus) {
        SeaGlassLookAndFeel.setSelectedUI((SeaGlassLabelUI) SeaGlassLookAndFeel.getUIOfType(getUI(), SeaGlassLabelUI.class),
                                          isSelected, hasFocus, table.isEnabled(), hasRollover);
    } else {
        SeaGlassLookAndFeel.resetSelectedUI();
    }

    // Stuff a variable into the client property of this renderer
    // indicating the sort order, so that different rendering can be
    // done for the header based on sorted state.
    RowSorter                                   rs       = table == null ? null : table.getRowSorter();
    java.util.List<? extends RowSorter.SortKey> sortKeys = rs == null ? null : rs.getSortKeys();

    if (sortKeys != null && sortKeys.size() > 0 && sortKeys.get(0).getColumn() == table.convertColumnIndexToModel(column)) {
        switch (sortKeys.get(0).getSortOrder()) {

        case ASCENDING:
            putClientProperty("Table.sortOrder", "ASCENDING");
            break;

        case DESCENDING:
            putClientProperty("Table.sortOrder", "DESCENDING");
            break;

        case UNSORTED:
            putClientProperty("Table.sortOrder", "UNSORTED");
            break;

        default:
            throw new AssertionError("Cannot happen");
        }
    } else {
        putClientProperty("Table.sortOrder", "UNSORTED");
    }

    super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

    return this;
}
 
Example 15
Source File: SeaGlassTableHeaderUI.java    From seaglass with Apache License 2.0 4 votes vote down vote up
/**
 * @see javax.swing.table.DefaultTableCellRenderer#getTableCellRendererComponent(javax.swing.JTable,
 *      java.lang.Object, boolean, boolean, int, int)
 */
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row,
        int column) {
    Icon sortIcon = null;

    boolean isPaintingForPrint = false;

    if (table != null) {
        JTableHeader header = table.getTableHeader();

        if (header != null) {
            Color fgColor = null;
            Color bgColor = null;

            if (hasFocus) {
                fgColor = DefaultLookup.getColor(this, ui, "TableHeader.focusCellForeground");
                bgColor = DefaultLookup.getColor(this, ui, "TableHeader.focusCellBackground");
            }

            if (fgColor == null) {
                fgColor = header.getForeground();
            }

            if (bgColor == null) {
                bgColor = header.getBackground();
            }

            setForeground(fgColor);
            setBackground(bgColor);

            setFont(header.getFont());

            isPaintingForPrint = header.isPaintingForPrint();
        }

        if (!isPaintingForPrint && table.getRowSorter() != null) {
            SortOrder sortOrder = getColumnSortOrder(table, column);

            if (sortOrder != null) {
                switch (sortOrder) {

                case ASCENDING:
                    sortIcon = DefaultLookup.getIcon(this, ui, "Table.ascendingSortIcon");
                    break;

                case DESCENDING:
                    sortIcon = DefaultLookup.getIcon(this, ui, "Table.descendingSortIcon");
                    break;

                case UNSORTED:
                    sortIcon = DefaultLookup.getIcon(this, ui, "Table.naturalSortIcon");
                    break;
                }
            }
        }
    }

    if (value instanceof Icon) {
        setText("");
        setIcon((Icon) value);
    } else if (value instanceof JLabel) {
        JLabel label = (JLabel) value;

        setText(label.getText());
        setIcon(label.getIcon());
        setHorizontalAlignment(label.getHorizontalAlignment());
        setHorizontalTextPosition(label.getHorizontalTextPosition());
        setVerticalAlignment(label.getVerticalAlignment());
        setVerticalTextPosition(label.getVerticalTextPosition());
        setToolTipText(label.getToolTipText());
        
    } else {
        setText(value == null ? "" : value.toString());
        setIcon(null);
    }

    sortArrow = sortIcon;

    Border border = null;

    if (hasFocus) {
        border = DefaultLookup.getBorder(this, ui, "TableHeader.focusCellBorder");
    }

    if (border == null) {
        border = DefaultLookup.getBorder(this, ui, "TableHeader.cellBorder");
    }

    setBorder(border);

    return this;
}