| javax.swing.JTable org.netbeans.swing.outline.Outline
Outline | final public class Outline extends JTable (Code) | | An Outline, or tree-table component. Takes an instance of OutlineModel,
an interface which merges TreeModel and TableModel.
Simplest usage:
- Create a standard tree model for the tree node portion of the outline.
- Implement RowModel. RowModel is a subset of TableModel - it is passed
the value in column 0 of the Outline and a column index, and returns the
value in the column in question.
- Pass the TreeModel and the RowModel to
DefaultOutlineModel.createModel()
This will generate an instance of DefaultOutlineModel which will use the
TreeModel for the rows/tree column content, and use the RowModel to provide
the additional table columns.
It is also useful to provide an implementation of RenderDataProvider
to supply icons and affect text display of cells - this covers most of the
needs for which it is necessary to write a custom cell renderer in JTable/JTree.
Example usage:
Assume FileTreeModel is a model which, given a root directory, will
expose the files and folders underneath it. We will implement a
RowModel to expose the file size and date, and a RenderDataProvider which
will use a gray color for uneditable files and expose the full file path as
a tooltip. Assume the class this is implemented in is a
JPanel subclass or other Swing container.
XXX todo: clean up formatting & edit for style
public void initComponents() {
setLayout (new BorderLayout());
TreeModel treeMdl = new FileTreeModel (someDirectory);
OutlineModel mdl = DefaultOutlineModel.createOutlineModel(treeMdl,
new FileRowModel(), true);
outline = new Outline();
outline.setRenderDataProvider(new FileDataProvider());
outline.setRootVisible (true);
outline.setModel (mdl);
add (outline, BorderLayout.CENTER);
}
private class FileRowModel implements RowModel {
public Class getColumnClass(int column) {
switch (column) {
case 0 : return Date.class;
case 1 : return Long.class;
default : assert false;
}
return null;
}
public int getColumnCount() {
return 2;
}
public String getColumnName(int column) {
return column == 0 ? "Date" : "Size";
}
public Object getValueFor(Object node, int column) {
File f = (File) node;
switch (column) {
case 0 : return new Date (f.lastModified());
case 1 : return new Long (f.length());
default : assert false;
}
return null;
}
public boolean isCellEditable(Object node, int column) {
return false;
}
public void setValueFor(Object node, int column, Object value) {
//do nothing, nothing is editable
}
}
private class FileDataProvider implements RenderDataProvider {
public java.awt.Color getBackground(Object o) {
return null;
}
public String getDisplayName(Object o) {
return ((File) o).getName();
}
public java.awt.Color getForeground(Object o) {
File f = (File) o;
if (!f.isDirectory() && !f.canWrite()) {
return UIManager.getColor ("controlShadow");
}
return null;
}
public javax.swing.Icon getIcon(Object o) {
return null;
}
public String getTooltipText(Object o) {
return ((File) o).getAbsolutePath();
}
public boolean isHtmlDisplayName(Object o) {
return false;
}
}
author: Tim Boudreau |
Outline | public Outline()(Code) | | Creates a new instance of Outline
|
expandPath | public void expandPath(TreePath path)(Code) | | Expand a tree path
|
getCellRenderer | public TableCellRenderer getCellRenderer(int row, int column)(Code) | | Always returns the default renderer for Object.class for the tree column
|
getClosestPathForLocation | public TreePath getClosestPathForLocation(int x, int y)(Code) | | |
getLayoutCache | AbstractLayoutCache getLayoutCache()(Code) | | Get the layout cache which manages layout data for the Outline.
Under no circumstances directly call the methods on the
layout cache which change the expanded state - such changes will not
be propagated into the table model, and will leave the model and
its layout in inconsistent states. Any calls that affect expanded
state must go through getTreePathSupport() .
|
getOutlineModel | public OutlineModel getOutlineModel()(Code) | | Convenience getter for the TableModel as an instance of
OutlineModel. If no OutlineModel has been set, returns null.
|
getRenderDataProvider | public RenderDataProvider getRenderDataProvider()(Code) | | Get the RenderDataProvider which is providing text, icons and tooltips
for items in the tree column. The default property for this value is
null, in which case standard JTable/JTree object -> icon/string
conventions are used
|
getTreePathSupport | TreePathSupport getTreePathSupport()(Code) | | Get the TreePathSupport object which manages path expansion for this
Outline.
|
isRootVisible | public boolean isRootVisible()(Code) | | Is the tree root visible. Default value is true.
|
isTreeColumnIndex | boolean isTreeColumnIndex(int column)(Code) | | |
setModel | public void setModel(TableModel mdl)(Code) | | Overridden to throw an exception if the passed model is not an instance
of OutlineModel (with the exception of calls from the
superclass constructor)
|
setRenderDataProvider | public void setRenderDataProvider(RenderDataProvider provider)(Code) | | Set the RenderDataProvider which will provide text, icons and tooltips
for items in the tree column. The default is null. If null,
the data displayed will be generated in the standard JTable/JTree way -
calling toString() on objects in the tree model and
using the look and feel's default tree folder and tree leaf icons.
|
setRootVisible | public void setRootVisible(boolean val)(Code) | | Set whether or not the root is visible
|
setRowHeight | public void setRowHeight(int val)(Code) | | Overridden to pass the fixed row height to the tree layout cache
|
Methods inherited from javax.swing.JTable | public void addColumn(TableColumn aColumn)(Code)(Java Doc) public void addColumnSelectionInterval(int index0, int index1)(Code)(Java Doc) public void addNotify()(Code)(Java Doc) public void addRowSelectionInterval(int index0, int index1)(Code)(Java Doc) public void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend)(Code)(Java Doc) public void clearSelection()(Code)(Java Doc) public void columnAdded(TableColumnModelEvent e)(Code)(Java Doc) public int columnAtPoint(Point point)(Code)(Java Doc) public void columnMarginChanged(ChangeEvent e)(Code)(Java Doc) public void columnMoved(TableColumnModelEvent e)(Code)(Java Doc) public void columnRemoved(TableColumnModelEvent e)(Code)(Java Doc) public void columnSelectionChanged(ListSelectionEvent e)(Code)(Java Doc) protected void configureEnclosingScrollPane()(Code)(Java Doc) public int convertColumnIndexToModel(int viewColumnIndex)(Code)(Java Doc) public int convertColumnIndexToView(int modelColumnIndex)(Code)(Java Doc) public int convertRowIndexToModel(int viewRowIndex)(Code)(Java Doc) public int convertRowIndexToView(int modelRowIndex)(Code)(Java Doc) protected TableColumnModel createDefaultColumnModel()(Code)(Java Doc) public void createDefaultColumnsFromModel()(Code)(Java Doc) protected TableModel createDefaultDataModel()(Code)(Java Doc) protected void createDefaultEditors()(Code)(Java Doc) protected void createDefaultRenderers()(Code)(Java Doc) protected ListSelectionModel createDefaultSelectionModel()(Code)(Java Doc) protected JTableHeader createDefaultTableHeader()(Code)(Java Doc) public static JScrollPane createScrollPaneForTable(JTable aTable)(Code)(Java Doc) public void doLayout()(Code)(Java Doc) public boolean editCellAt(int row, int column)(Code)(Java Doc) public boolean editCellAt(int row, int column, EventObject e)(Code)(Java Doc) public void editingCanceled(ChangeEvent e)(Code)(Java Doc) public void editingStopped(ChangeEvent e)(Code)(Java Doc) public AccessibleContext getAccessibleContext()(Code)(Java Doc) public boolean getAutoCreateColumnsFromModel()(Code)(Java Doc) public boolean getAutoCreateRowSorter()(Code)(Java Doc) public int getAutoResizeMode()(Code)(Java Doc) public TableCellEditor getCellEditor()(Code)(Java Doc) public TableCellEditor getCellEditor(int row, int column)(Code)(Java Doc) public Rectangle getCellRect(int row, int column, boolean includeSpacing)(Code)(Java Doc) public TableCellRenderer getCellRenderer(int row, int column)(Code)(Java Doc) public boolean getCellSelectionEnabled()(Code)(Java Doc) public TableColumn getColumn(Object identifier)(Code)(Java Doc) public Class> getColumnClass(int column)(Code)(Java Doc) public int getColumnCount()(Code)(Java Doc) public TableColumnModel getColumnModel()(Code)(Java Doc) public String getColumnName(int column)(Code)(Java Doc) public boolean getColumnSelectionAllowed()(Code)(Java Doc) public TableCellEditor getDefaultEditor(Class> columnClass)(Code)(Java Doc) public TableCellRenderer getDefaultRenderer(Class> columnClass)(Code)(Java Doc) public boolean getDragEnabled()(Code)(Java Doc) final public DropLocation getDropLocation()(Code)(Java Doc) final public DropMode getDropMode()(Code)(Java Doc) public int getEditingColumn()(Code)(Java Doc) public int getEditingRow()(Code)(Java Doc) public Component getEditorComponent()(Code)(Java Doc) public boolean getFillsViewportHeight()(Code)(Java Doc) public Color getGridColor()(Code)(Java Doc) public Dimension getIntercellSpacing()(Code)(Java Doc) public TableModel getModel()(Code)(Java Doc) public Dimension getPreferredScrollableViewportSize()(Code)(Java Doc) public Printable getPrintable(PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat)(Code)(Java Doc) public int getRowCount()(Code)(Java Doc) public int getRowHeight()(Code)(Java Doc) public int getRowHeight(int row)(Code)(Java Doc) public int getRowMargin()(Code)(Java Doc) public boolean getRowSelectionAllowed()(Code)(Java Doc) public RowSorter<? extends TableModel> getRowSorter()(Code)(Java Doc) public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)(Code)(Java Doc) public boolean getScrollableTracksViewportHeight()(Code)(Java Doc) public boolean getScrollableTracksViewportWidth()(Code)(Java Doc) public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)(Code)(Java Doc) public int getSelectedColumn()(Code)(Java Doc) public int getSelectedColumnCount()(Code)(Java Doc) public int[] getSelectedColumns()(Code)(Java Doc) public int getSelectedRow()(Code)(Java Doc) public int getSelectedRowCount()(Code)(Java Doc) public int[] getSelectedRows()(Code)(Java Doc) public Color getSelectionBackground()(Code)(Java Doc) public Color getSelectionForeground()(Code)(Java Doc) public ListSelectionModel getSelectionModel()(Code)(Java Doc) public boolean getShowHorizontalLines()(Code)(Java Doc) public boolean getShowVerticalLines()(Code)(Java Doc) public boolean getSurrendersFocusOnKeystroke()(Code)(Java Doc) public JTableHeader getTableHeader()(Code)(Java Doc) public String getToolTipText(MouseEvent event)(Code)(Java Doc) public TableUI getUI()(Code)(Java Doc) public String getUIClassID()(Code)(Java Doc) public boolean getUpdateSelectionOnSort()(Code)(Java Doc) public Object getValueAt(int row, int column)(Code)(Java Doc) protected void initializeLocalVars()(Code)(Java Doc) public boolean isCellEditable(int row, int column)(Code)(Java Doc) public boolean isCellSelected(int row, int column)(Code)(Java Doc) public boolean isColumnSelected(int column)(Code)(Java Doc) public boolean isEditing()(Code)(Java Doc) public boolean isRowSelected(int row)(Code)(Java Doc) public void moveColumn(int column, int targetColumn)(Code)(Java Doc) protected String paramString()(Code)(Java Doc) public Component prepareEditor(TableCellEditor editor, int row, int column)(Code)(Java Doc) public Component prepareRenderer(TableCellRenderer renderer, int row, int column)(Code)(Java Doc) public boolean print() throws PrinterException(Code)(Java Doc) public boolean print(PrintMode printMode) throws PrinterException(Code)(Java Doc) public boolean print(PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat) throws PrinterException(Code)(Java Doc) public boolean print(PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintRequestAttributeSet attr, boolean interactive) throws PrinterException, HeadlessException(Code)(Java Doc) public boolean print(PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintRequestAttributeSet attr, boolean interactive, PrintService service) throws PrinterException, HeadlessException(Code)(Java Doc) protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed)(Code)(Java Doc) public void removeColumn(TableColumn aColumn)(Code)(Java Doc) public void removeColumnSelectionInterval(int index0, int index1)(Code)(Java Doc) public void removeEditor()(Code)(Java Doc) public void removeNotify()(Code)(Java Doc) public void removeRowSelectionInterval(int index0, int index1)(Code)(Java Doc) protected void resizeAndRepaint()(Code)(Java Doc) public int rowAtPoint(Point point)(Code)(Java Doc) public void selectAll()(Code)(Java Doc) public void setAutoCreateColumnsFromModel(boolean autoCreateColumnsFromModel)(Code)(Java Doc) public void setAutoCreateRowSorter(boolean autoCreateRowSorter)(Code)(Java Doc) public void setAutoResizeMode(int mode)(Code)(Java Doc) public void setCellEditor(TableCellEditor anEditor)(Code)(Java Doc) public void setCellSelectionEnabled(boolean cellSelectionEnabled)(Code)(Java Doc) public void setColumnModel(TableColumnModel columnModel)(Code)(Java Doc) public void setColumnSelectionAllowed(boolean columnSelectionAllowed)(Code)(Java Doc) public void setColumnSelectionInterval(int index0, int index1)(Code)(Java Doc) public void setDefaultEditor(Class> columnClass, TableCellEditor editor)(Code)(Java Doc) public void setDefaultRenderer(Class> columnClass, TableCellRenderer renderer)(Code)(Java Doc) public void setDragEnabled(boolean b)(Code)(Java Doc) final public void setDropMode(DropMode dropMode)(Code)(Java Doc) public void setEditingColumn(int aColumn)(Code)(Java Doc) public void setEditingRow(int aRow)(Code)(Java Doc) public void setFillsViewportHeight(boolean fillsViewportHeight)(Code)(Java Doc) public void setGridColor(Color gridColor)(Code)(Java Doc) public void setIntercellSpacing(Dimension intercellSpacing)(Code)(Java Doc) public void setModel(TableModel dataModel)(Code)(Java Doc) public void setPreferredScrollableViewportSize(Dimension size)(Code)(Java Doc) public void setRowHeight(int rowHeight)(Code)(Java Doc) public void setRowHeight(int row, int rowHeight)(Code)(Java Doc) public void setRowMargin(int rowMargin)(Code)(Java Doc) public void setRowSelectionAllowed(boolean rowSelectionAllowed)(Code)(Java Doc) public void setRowSelectionInterval(int index0, int index1)(Code)(Java Doc) public void setRowSorter(RowSorter<? extends TableModel> sorter)(Code)(Java Doc) public void setSelectionBackground(Color selectionBackground)(Code)(Java Doc) public void setSelectionForeground(Color selectionForeground)(Code)(Java Doc) public void setSelectionMode(int selectionMode)(Code)(Java Doc) public void setSelectionModel(ListSelectionModel newModel)(Code)(Java Doc) public void setShowGrid(boolean showGrid)(Code)(Java Doc) public void setShowHorizontalLines(boolean showHorizontalLines)(Code)(Java Doc) public void setShowVerticalLines(boolean showVerticalLines)(Code)(Java Doc) public void setSurrendersFocusOnKeystroke(boolean surrendersFocusOnKeystroke)(Code)(Java Doc) public void setTableHeader(JTableHeader tableHeader)(Code)(Java Doc) public void setUI(TableUI ui)(Code)(Java Doc) public void setUpdateSelectionOnSort(boolean update)(Code)(Java Doc) public void setValueAt(Object aValue, int row, int column)(Code)(Java Doc) public void sizeColumnsToFit(boolean lastColumnOnly)(Code)(Java Doc) public void sizeColumnsToFit(int resizingColumn)(Code)(Java Doc) public void sorterChanged(RowSorterEvent e)(Code)(Java Doc) public void tableChanged(TableModelEvent e)(Code)(Java Doc) protected void unconfigureEnclosingScrollPane()(Code)(Java Doc) public void updateUI()(Code)(Java Doc) public void valueChanged(ListSelectionEvent e)(Code)(Java Doc)
|
|
|