Copyright © 2011 Citra Technologies. All Rights Reserved.

com.citra.table.group
Class LevelColumnFilterHeaderModel

java.lang.Object
  extended by com.citra.filter.tree.TreeFilterHeaderModel
      extended by com.citra.filter.tree.PopupTreeFilterHeaderModel
          extended by com.citra.table.group.LevelColumnFilterHeaderModel
All Implemented Interfaces:
FilterHeaderCallback

public class LevelColumnFilterHeaderModel
extends PopupTreeFilterHeaderModel

LevelColumnFilterHeaderModel is a FilterHeaderModel that can be used for filtering each level of a TreeTableColumnModel. One way of using it would be to create a FilterTableHeader with an empty table and add the header to a container, somewhere in your application.

For example:

AdvancedJTable t = new AdvancedJTable();
FilterTableHeader header = (FilterTableHeader) t.getTableHeader();

LevelColumnFilterHeaderModel pfh = new LevelColumnFilterHeaderModel();
pfh.setTableHeader(header);
DefaultFilterTreeTableModel ftm = new DefaultFilterTreeTableModel(treeColumnModel);
pfh.setModel(ftm);
pfh.setLevelCount(3);
pfh.setLevelValue(0, "Year");
pfh.setLevelValue(1, "Month");
pfh.setLevelValue(2, "Week");

scroller.setCorner(scroller.UPPER_LEFT_CORNER, header);
((AdvancedJTable) table).getTableRowHeader().setColumnWidth(header.getPreferredSize().width);


Field Summary
protected  int levelCount
          the number of stacked columns
protected  boolean synchFilters
          variable that determines whether level with node filters are kept in synch
 
Fields inherited from class com.citra.filter.tree.PopupTreeFilterHeaderModel
ARROW_LEFT, ARROW_RIGHT, arrowMode, box, defaultHeaderCursor, filteredColor, unfilteredColor
 
Fields inherited from class com.citra.filter.tree.TreeFilterHeaderModel
ALL_VALUES_MODE, autoCreateAllFilters, columnShowing, defaultFiltersByColumnClass, dynamicFilterTreeTableModel, filterHeader, filterMode, filterTreeTableModel, mapper, PROGRESSIVE_MODE, removeOnInvisible
 
Constructor Summary
LevelColumnFilterHeaderModel()
          Constructs a LevelColumnFilterHeaderModel.
 
Method Summary
protected  ColumnFilterMapper createFilterMapper()
          This will return a custom ColumnFilterMapper.
 int getLevelCount()
          Determines the number of stacked columns that will be shown.
 boolean getSynchWithNodeFilters()
          Determines whether the header model will synch its level filters with the node filters.
 boolean hasFilter(int modelIndex)
          The supplied modelIndex in this subclass refers to the column level.
 void setColumnShowing(int column)
          Sets the column for which the user requested a filter to appear.
 void setLevelCount(int levelCount)
          Determines the number of stacked columns that will be shown.
 void setLevelValue(int level, Object value)
          Convenience method for setting the header value of a column, based on its level.
 void setModel(FilterTreeTableModel ftm)
          Assigns the filter tree table model that will be used to provide the filtering.
 void setSynchWithNodeFilters(boolean synchFilters)
          Determines whether the header model will synch its level filters with the node filters.
 void setTableHeader(FilterTableHeader header)
          Associates a header that will be used for displaying a visual representation of a filter on columns.
 
Methods inherited from class com.citra.filter.tree.PopupTreeFilterHeaderModel
createDefaultFilterRenderer, createFilterWrapper, getArrowMode, getComboBox, getDefaultHeaderCursor, getFilteredColor, getUnfilteredColor, popupWillShow, removeFromTable, removeRenderer, setArrowMode, setDefaultHeaderCursor, setFilteredColor, setRenderer, setUnfilteredColor, shouldProcessEvent, updateUI
 
Methods inherited from class com.citra.filter.tree.TreeFilterHeaderModel
attachToTable, attachToTable, createDefaultFilters, createTableHeader, getAutoCreateAllFilters, getColumnShowing, getDefaultFilter, getFilter, getFilterMapper, getFilterMode, getRemoveOnInvisible, getTableHeader, hasFilterControl, hasFilterControl, inferColumnClass, removeFilter, removeFilterControlFromColumn, removeFilterControlFromColumns, setAutoCreateAllFilters, setDefaultFilter, setFilterControlInColumn, setFilterControlInColumns, setFilterMapper, setFilterMode, setModel, setRemoveOnInvisible
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

levelCount

protected int levelCount
the number of stacked columns


synchFilters

protected boolean synchFilters
variable that determines whether level with node filters are kept in synch

Constructor Detail

LevelColumnFilterHeaderModel

public LevelColumnFilterHeaderModel()
Constructs a LevelColumnFilterHeaderModel.

Method Detail

createFilterMapper

protected ColumnFilterMapper createFilterMapper()
This will return a custom ColumnFilterMapper.

This will return a DefaultColumnFilterMapper.

Creates a new instance of the column filter mapper that will be used to install and uninstall the filters.

Overrides:
createFilterMapper in class PopupTreeFilterHeaderModel
Returns:
a new instance of the column filter mapper object.

getLevelCount

public int getLevelCount()
Determines the number of stacked columns that will be shown.

Returns:
the number of stacked columns

hasFilter

public boolean hasFilter(int modelIndex)
The supplied modelIndex in this subclass refers to the column level. Determines whether a column has a filter installed.

Overrides:
hasFilter in class TreeFilterHeaderModel
Parameters:
modelIndex - the model index of the column
Returns:
true if the column with modelIndex has a filter installed, false otherwise

setColumnShowing

public void setColumnShowing(int column)
Sets the column for which the user requested a filter to appear.

Overrides:
setColumnShowing in class TreeFilterHeaderModel
Parameters:
column - the model index of the column showing filter expressions

setLevelCount

public void setLevelCount(int levelCount)
Determines the number of stacked columns that will be shown.

Parameters:
levelCount - the number of stacked columns

setSynchWithNodeFilters

public void setSynchWithNodeFilters(boolean synchFilters)
Determines whether the header model will synch its level filters with the node filters.

Parameters:
synchFilters - true if level filters with node filters are synchronized, false otherwise

getSynchWithNodeFilters

public boolean getSynchWithNodeFilters()
Determines whether the header model will synch its level filters with the node filters.

Returns:
true if level filters with node filters are synchronized, false otherwise

setLevelValue

public void setLevelValue(int level,
                          Object value)
Convenience method for setting the header value of a column, based on its level. This method will throw an IllegalArgumentException if the column at the specified level does not exist.

Parameters:
level - the level of the column
value - the column's header value

setModel

public void setModel(FilterTreeTableModel ftm)
Assigns the filter tree table model that will be used to provide the filtering.

Overrides:
setModel in class TreeFilterHeaderModel
Parameters:
ftm - the new filter tree table model to assign.

setTableHeader

public void setTableHeader(FilterTableHeader header)
Associates a header that will be used for displaying a visual representation of a filter on columns.

Overrides:
setTableHeader in class PopupTreeFilterHeaderModel
Parameters:
header - the new header to assign

Copyright © 2011 Citra Technologies. All Rights Reserved.