|
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.list.DualList
public class DualList
DualList
is a pane that contains two JLists and a bunch of buttons. The list on the left contains all
the items. The list on the right contains the items that are selected.
DualList
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 list when
items are selected. DualListModel.REMOVE_SELECTION
mode means the left list will remove the items if they are
selected to the right list. This mode can prevent user from selecting the selected item again if it is not allowed in
certain cases. DualListModel.DISABLE_SELECTION
mode means the selected items will be shown as disabled. User
cannot select them anymore but they can still see them in the right list to show user a complete unchanged list.
DualListModel.KEEP_SELECTION
mode will not change the right list at all when items are selected. This is the
only mode which can result duplicated items 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)}.
DualList
extends JideSplitPane
, which makes users conveniently resize the width of either list.
DualListModel
,
AbstractDualListModel
,
DefaultDualListModel
,
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
|
JComponent |
_originalListPane
|
protected DefaultListModelWrapper |
_selectedListModel
|
JComponent |
_selectedListPane
|
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 | |
---|---|
DualList()
Constructs a JList with an empty _model. |
|
DualList(DualListModel model)
Constructs a DualList that displays the elements in the specified, non-null model. |
|
DualList(List<?> listData)
Constructs a DualList that displays the elements in the specified List . |
|
DualList(Object[] listData)
Constructs a JList that displays the elements in the specified array. |
Method Summary | |
---|---|
protected void |
addButtonPanel(Container container,
Component buttonPanel)
Adds ButtonPanel to DualList. |
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 JList |
createList(ListModel model,
boolean originalList)
Creates the JList. |
ListCellRenderer |
getCellRenderer()
Gets the list cell renderer for the left list. |
ListCellRenderer |
getDisabledCellRenderer()
Returns the disabled cell renderer. |
DualListModel |
getModel()
Gets the DualListModel. |
JList |
getOriginalList()
Get the original JList. |
JComponent |
getOriginalListPane()
Gets the component containing the original JList. |
Dimension |
getPreferredSize()
|
protected String |
getResourceString(String key)
Gets the localized string from resource bundle. |
ListCellRenderer |
getSelectedCellRenderer()
Gets the list cell renderer for the right list. |
int[] |
getSelectedIndices()
Gets the selected indices. |
JList |
getSelectedList()
Get the selected JList. |
JComponent |
getSelectedListPane()
Gets the component containing the selected JList. |
Object[] |
getSelectedValues()
Gets the selected values from the DualList. |
int |
getSelectionMode()
Gets the selection mode from DualListModel. |
int[] |
getUnselectedIndices()
|
Object[] |
getUnselectedValues()
Returns the values that are not selected in DaulList |
int |
getVisibleRowCount()
Returns the value of the visibleRowCount from the list. |
protected void |
installKeyboardAction()
Registered keyboard actions for the original and selected lists. |
boolean |
isAllowDuplicates()
Get the flag if duplicate selection is allowed in the DualList. |
boolean |
isButtonEnabled(String command)
Checks if the button is always disabled. |
boolean |
isButtonPanelVisible()
Deprecated. Replaced by isMiddleButtonPanelVisible() |
boolean |
isButtonVisible(String command)
Checks if the button is visible. |
boolean |
isDoubleClickEnabled()
Gets the flag indicating if double click to select is enabled. |
boolean |
isMiddleButtonPanelVisible()
Get the visibility of the middle button panel. |
boolean |
isRightButtonPanelVisible()
Get the visibility of the right button panel. |
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 DualList. |
void |
setButtonEnabled(String command,
boolean enabled)
Sets the button to always disabled. |
void |
setButtonPanelVisible(boolean buttonPanelVisible)
Deprecated. Replaced by setMiddleButtonPanelVisible(boolean) |
void |
setButtonVisible(String command,
boolean visible)
Sets the button visible or invisible. |
void |
setCellRenderer(ListCellRenderer cellRenderer)
Sets the list cell renderer for the list on the left. |
void |
setDisabledCellRenderer(ListCellRenderer disabledCellRenderer)
Sets the disabled cell renderer. |
void |
setDoubleClickEnabled(boolean doubleClickEnabled)
Sets the flag indicating if double click to select is enabled. |
void |
setEnabled(boolean enabled)
|
void |
setMiddleButtonPanelVisible(boolean middleButtonPanelVisible)
Set the visibility of the middle button panel. |
void |
setModel(DualListModel model)
Sets the DualListModel. |
void |
setRightButtonPanelVisible(boolean middleButtonPanelVisible)
Set the visibility of the right button panel. |
void |
setSelectedCellRenderer(ListCellRenderer selectedCellRenderer)
Sets the list cell renderer for the list on the right. |
void |
setSelectionMode(int selectionMode)
Sets the selection mode to DualListModel . |
protected void |
setupList(JList list,
boolean originalList)
Customizes the JList. |
void |
setVisibleRowCount(int visibleRowCount)
Sets the visible row count in the two lists. |
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
public JComponent _originalListPane
public JComponent _selectedListPane
public final String CLIENT_PROPERTY_ALWAYS_DISABLED
protected DefaultListModelWrapper _selectedListModel
protected DefaultListModelWrapper _originalListModel
Constructor Detail |
---|
public DualList()
JList
with an empty _model.
public DualList(Object[] listData)
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 _modelpublic DualList(List<?> listData)
DualList
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 _modelpublic DualList(DualListModel model)
DualList
that displays the elements in the specified, non-null
model. All
DualList
constructors delegate to this one.
model
- the data model for this list
NullPointerException
- if model
is null
Method Detail |
---|
protected JList createList(ListModel model, boolean originalList)
model
- the list modeloriginalList
- true if the JList is for the original list. False if the JList is for the selected list.
protected void setupList(JList list, boolean originalList)
list
- the JList. It could be either the original JList or the selected JList.originalList
- true if the JList is for the original list. False if the JList is for the selected list.public JList getOriginalList()
public JList getSelectedList()
public JComponent getOriginalListPane()
public JComponent getSelectedListPane()
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 DualList. 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 DualList. They are constants starting with "COMMAND_" such as
COMMAND_MOVE_LEFT.
public void setButtonEnabled(String command, boolean enabled)
command
- the name defined in DualList. 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 DualList. They are constants starting with "COMMAND_" such as
COMMAND_MOVE_LEFT.
@Deprecated public void setButtonPanelVisible(boolean buttonPanelVisible)
setMiddleButtonPanelVisible(boolean)
buttonPanelVisible
- the visibility@Deprecated public boolean isButtonPanelVisible()
isMiddleButtonPanelVisible()
public void setMiddleButtonPanelVisible(boolean middleButtonPanelVisible)
middleButtonPanelVisible
- the visibilitypublic boolean isMiddleButtonPanelVisible()
public void setRightButtonPanelVisible(boolean middleButtonPanelVisible)
middleButtonPanelVisible
- the visibilitypublic boolean isRightButtonPanelVisible()
public ListCellRenderer getCellRenderer()
public void setCellRenderer(ListCellRenderer cellRenderer)
setSelectedCellRenderer(javax.swing.ListCellRenderer)
is never called, the same renderer will be used for the list on the right too.
cellRenderer
- the new list cell rendererpublic ListCellRenderer getSelectedCellRenderer()
getCellRenderer()
.
public void setSelectedCellRenderer(ListCellRenderer selectedCellRenderer)
selectedCellRenderer
- the new list cell rendererpublic ListCellRenderer getDisabledCellRenderer()
public void setDisabledCellRenderer(ListCellRenderer disabledCellRenderer)
disabledCellRenderer
- the new disabled cell renderer.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 void setVisibleRowCount(int visibleRowCount)
visibleRowCount
- an integer specifying the preferred number of rows to display without requiring scrollingpublic int getVisibleRowCount()
visibleRowCount
from the list.
visibleRowCount
property.setVisibleRowCount(int)
public boolean isAllowDuplicates()
setAllowDuplicates(boolean)
public void setAllowDuplicates(boolean allowDuplicates)
getSelectionMode()
returns DualListModel.KEEP_SELECTION
By default the flag is true to keep original behavior.
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 |