|
JIDE 3.5.15 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.awt.Component java.awt.Container javax.swing.JComponent javax.swing.JPanel com.jidesoft.swing.JideSplitPane com.jidesoft.grid.DualTable
public class DualTable
DualTable
is a pane that contains two JTables and a bunch of buttons. The table on the left contains all
the rows. The table on the right contains the rows that are selected.
DualTable
uses DualListModel
which is the model of this component. With the help of
DualListModel, it provides three kinds of selection modes. This mode controls what to display in the right table when
rows are selected. DualListModel.REMOVE_SELECTION
mode means the left table will remove the rows if they are
selected to the right table. This mode can prevent user from selecting the selected row again if it is not allowed in
certain cases. DualListModel.DISABLE_SELECTION
mode means the selected rows will be shown as disabled. User
cannot select them anymore but they can still see them in the right table to show user a complete unchanged table.
DualListModel.KEEP_SELECTION
mode will not change the right table at all when rows are selected. This is the
only mode which can result duplicated rows to be selected. If that's what you want in your situation, this mode is
the one you should use. You could disable the duplicate selection option by invoking {link #setAllowDuplicates(false)}.
DualTable
also uses TableModelAdapter
to get some necessary information which
cannot be prvided by DualListModel
, such as column class, column count and column name.
DualTable
extends JideSplitPane
, which makes users conveniently resize the width of either table.
DualListModel
,
AbstractDualListModel
,
DefaultDualListModel
,
TableModelAdapter
,
ListTableModelAdapter
,
Serialized FormNested Class Summary |
---|
Nested classes/interfaces inherited from class com.jidesoft.swing.JideSplitPane |
---|
JideSplitPane.AccessibleJideSplitPane |
Nested classes/interfaces inherited from class javax.swing.JPanel |
---|
JPanel.AccessibleJPanel |
Nested classes/interfaces inherited from class javax.swing.JComponent |
---|
JComponent.AccessibleJComponent |
Nested classes/interfaces inherited from class java.awt.Container |
---|
Container.AccessibleAWTContainer |
Nested classes/interfaces inherited from class java.awt.Component |
---|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy |
Field Summary | |
---|---|
protected DualListModel |
_model
|
protected DefaultListModelWrapper |
_originalListModel
|
protected TableModel |
_originalTableModel
|
JComponent |
_originalTablePane
|
protected DefaultListModelWrapper |
_selectedListModel
|
protected TableModel |
_selectedTableModel
|
JComponent |
_selectedTablePane
|
protected TableModelAdapter |
_tableModelAdapter
|
String |
CLIENT_PROPERTY_ALWAYS_DISABLED
|
static String |
COMMAND_MOVE_ALL_LEFT
|
static String |
COMMAND_MOVE_ALL_RIGHT
|
static String |
COMMAND_MOVE_DOWN
|
static String |
COMMAND_MOVE_LEFT
|
static String |
COMMAND_MOVE_RIGHT
|
static String |
COMMAND_MOVE_TO_BOTTOM
|
static String |
COMMAND_MOVE_TO_TOP
|
static String |
COMMAND_MOVE_UP
|
Fields inherited from class javax.swing.JComponent |
---|
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW |
Fields inherited from class java.awt.Component |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
Fields inherited from interface java.awt.image.ImageObserver |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
Constructor Summary | |
---|---|
DualTable(DualListModel model,
TableModelAdapter tableModelAdapter)
Constructs a DualTable that displays the elements in the specified, non-null model. |
|
DualTable(List<?> listData,
TableModelAdapter tableModelAdapter)
Constructs a DualTable that displays the elements in the specified List . |
|
DualTable(Object[] listData,
TableModelAdapter tableModelAdapter)
Constructs a JList that displays the elements in the specified array. |
Method Summary | |
---|---|
protected void |
addButtonPanel(Container container,
Component buttonPanel)
Adds ButtonPanel to DualTable. |
void |
addSelectionInteval(int index0,
int index1)
Change the selection to be the set union of the current selection and the indices between index0 and index1 inclusive. |
void |
clearSelection()
Removes all the selections. |
protected AbstractButton |
createButton(Action action)
Creates the button. |
protected Container |
createButtonPanel()
|
protected JTable |
createTable(ListModel model,
boolean originalTable)
Creates the JList. |
protected ListTableModelAdapter |
createTableModel(ListModel model,
TableModelAdapter adapter,
boolean isOriginalTable)
Creates the table model. |
DualListModel |
getModel()
Gets the DualListModel. |
JTable |
getOriginalTable()
Get the original JList. |
JComponent |
getOriginalTablePane()
Gets the component containing the original JList. |
Dimension |
getPreferredSize()
|
protected String |
getResourceString(String key)
Gets the localized string from resource bundle. |
int[] |
getSelectedIndices()
Gets the selected indices. |
JTable |
getSelectedTable()
Get the selected JList. |
JComponent |
getSelectedTablePane()
Gets the component containing the selected JList. |
Object[] |
getSelectedValues()
Gets the selected values from the DualTable. |
int |
getSelectionMode()
Gets the selection mode from DualListModel. |
int[] |
getUnselectedIndices()
|
Object[] |
getUnselectedValues()
Returns the values that are not selected in DaulList |
protected void |
installKeyboardAction()
|
boolean |
isAllowDuplicates()
Get the flag if duplicate selection is allowed in the DualTable. |
boolean |
isButtonEnabled(String command)
Checks if the button is always disabled. |
boolean |
isButtonVisible(String command)
Checks if the button is visible. |
boolean |
isDoubleClickEnabled()
Gets the flag indicating if double click to select is enabled. |
boolean |
isSelectedIndex(int index)
Checks if the index is selected. |
boolean |
isSelectionEmpty()
Checks if there is any selection. |
void |
moveAllLeft()
Moves all items from the right list to the left list. |
void |
moveAllRight()
Moves all items from the left list to the right list. |
void |
moveDown()
Moves the selected items in the right list down by one. |
void |
moveLeft()
Moves the selected items in the right list to the left list. |
void |
moveRight()
Moves the selected items in the left list to the right list. |
void |
moveToBottom()
Moves the selected items in the right list to the bottom. |
void |
moveToTop()
Moves the selected items in the right list to the top. |
void |
moveUp()
Moves the selected items in the right list up by one. |
protected void |
performAction(String command)
Performs the action. |
void |
removeSelectionInteval(int index0,
int index1)
Change the selection to be the set difference of the current selection and the indices between index0 and index1 inclusive. |
void |
setAllowDuplicates(boolean allowDuplicates)
Set the flag if duplicate selection is allowed in the DualTable. |
void |
setButtonEnabled(String command,
boolean enabled)
Sets the button to always disabled. |
void |
setButtonVisible(String command,
boolean visible)
Sets the button visible or invisible. |
void |
setDoubleClickEnabled(boolean doubleClickEnabled)
Sets the flag indicating if double click to select is enabled. |
void |
setEnabled(boolean enabled)
|
void |
setModel(DualListModel model)
Sets the DualListModel. |
void |
setSelectionMode(int selectionMode)
Sets the selection mode to DualListModel . |
protected void |
setupTable(JTable table,
boolean originalTable)
Customizes the JList. |
Methods inherited from class javax.swing.JPanel |
---|
getUI, getUIClassID, paramString, setUI |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final String COMMAND_MOVE_LEFT
public static final String COMMAND_MOVE_RIGHT
public static final String COMMAND_MOVE_ALL_LEFT
public static final String COMMAND_MOVE_ALL_RIGHT
public static final String COMMAND_MOVE_UP
public static final String COMMAND_MOVE_DOWN
public static final String COMMAND_MOVE_TO_TOP
public static final String COMMAND_MOVE_TO_BOTTOM
protected DualListModel _model
protected TableModelAdapter _tableModelAdapter
public JComponent _originalTablePane
public JComponent _selectedTablePane
public final String CLIENT_PROPERTY_ALWAYS_DISABLED
protected DefaultListModelWrapper _selectedListModel
protected DefaultListModelWrapper _originalListModel
protected TableModel _selectedTableModel
protected TableModel _originalTableModel
Constructor Detail |
---|
public DualTable(Object[] listData, TableModelAdapter tableModelAdapter)
JList
that displays the elements in the specified array. This constructor just
delegates to the DualListModel
constructor.
listData
- the array of Objects to be loaded into the data _modeltableModelAdapter
- the table model adapterpublic DualTable(List<?> listData, TableModelAdapter tableModelAdapter)
DualTable
that displays the elements in the specified List
. This
constructor just delegates to the DualListModel
constructor.
listData
- the List
to be loaded into the data _modeltableModelAdapter
- the table model adapterpublic DualTable(DualListModel model, TableModelAdapter tableModelAdapter)
DualTable
that displays the elements in the specified, non-null
model. All
DualTable
constructors delegate to this one.
model
- the data model for this listtableModelAdapter
- the table model adapter
NullPointerException
- if model
is null
Method Detail |
---|
protected JTable createTable(ListModel model, boolean originalTable)
model
- the list modeloriginalTable
- true if the JList is for the original list. False if the JList is for the selected list.
protected ListTableModelAdapter createTableModel(ListModel model, TableModelAdapter adapter, boolean isOriginalTable)
model
- the list modeladapter
- the adapterisOriginalTable
- the flag indicating if this is for the original table or the selected table
protected void setupTable(JTable table, boolean originalTable)
table
- the JList. It could be either the original JList or the selected JList.originalTable
- true if the JList is for the original list. False if the JList is for the selected list.public JTable getOriginalTable()
public JTable getSelectedTable()
public JComponent getOriginalTablePane()
public JComponent getSelectedTablePane()
protected void addButtonPanel(Container container, Component buttonPanel)
container
- the container between the two JLists.buttonPanel
- the button panelpublic Dimension getPreferredSize()
getPreferredSize
in class JComponent
protected Container createButtonPanel()
protected AbstractButton createButton(Action action)
protected AbstractButton createButton(Action action) {
AbstractButton button = new JideButton(action);
action.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
if ("disabledIcon".equals(evt.getPropertyName())) {
button.setDisabledIcon((Icon) action.getValue("disabledIcon"));
}
}
});
button.setName("" + action.getValue(Action.ACTION_COMMAND_KEY));
button.setDisabledIcon((Icon) action.getValue("disabledIcon"));
button.setRequestFocusEnabled(false);
return button;
}
action
- the action for the button.
public void setEnabled(boolean enabled)
setEnabled
in class JComponent
public int[] getSelectedIndices()
DualListModel.getSelectedIndices()
public int[] getUnselectedIndices()
protected void installKeyboardAction()
public DualListModel getModel()
public void setModel(DualListModel model)
model
- a new DualListModel.public Object[] getSelectedValues()
public Object[] getUnselectedValues()
DaulList
public boolean isSelectedIndex(int index)
index
- the index.
public void clearSelection()
public void addSelectionInteval(int index0, int index1)
index0
- one end of the interval.index1
- other end of the intervalpublic void removeSelectionInteval(int index0, int index1)
index0
- one end of the interval.index1
- other end of the intervalpublic boolean isSelectionEmpty()
public int getSelectionMode()
DualListModel.getSelectionMode()
public void setSelectionMode(int selectionMode)
DualListModel
.
selectionMode
- the new selection mode.DualListModel.setSelectionMode(int)
public void setButtonVisible(String command, boolean visible)
command
- the name defined in DualTable. They are constants starting with "COMMAND_" such as
COMMAND_MOVE_LEFT.visible
- true to show the button and false to hide.public boolean isButtonVisible(String command)
command
- the name defined in DualTable. They are constants starting with "COMMAND_" such as
COMMAND_MOVE_LEFT.
public void setButtonEnabled(String command, boolean enabled)
command
- the name defined in DualTable. They are constants starting with "COMMAND_" such as
COMMAND_MOVE_LEFT.enabled
- false to always disable the button.public boolean isButtonEnabled(String command)
command
- the name defined in DualTable. They are constants starting with "COMMAND_" such as
COMMAND_MOVE_LEFT.
public void moveLeft()
public void moveRight()
public void moveAllLeft()
public void moveAllRight()
public void moveUp()
public void moveDown()
public void moveToTop()
public void moveToBottom()
public boolean isAllowDuplicates()
setAllowDuplicates(boolean)
public void setAllowDuplicates(boolean allowDuplicates)
getSelectionMode()
returns DualListModel.KEEP_SELECTION
By default the flag is true to keep the consistent behavior with DualList.
allowDuplicates
- the flagsetSelectionMode(int)
public boolean isDoubleClickEnabled()
setDoubleClickEnabled(boolean)
public void setDoubleClickEnabled(boolean doubleClickEnabled)
doubleClickEnabled
- the flagprotected String getResourceString(String key)
key
- the key
protected void performAction(String command)
command
- the command
|
JIDE 3.5.15 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |