Here is my Code I have a testclass contains a dualLIst and a button to sort elemnts of duallist. I have a duallist model which containd arrayList of Elements
- Code: Select all
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Collections;
import javax.swing.JButton;
import javax.swing.JDialog;
import com.jidesoft.list.DualList;
import com.jidesoft.swing.JideTitledBorder;
import com.jidesoft.swing.PartialEtchedBorder;
import com.jidesoft.swing.PartialSide;
public class TestDualList extends JDialog {
private DualList dualList;
private DualListModel dualListModel;
private JButton sort;
public TestDualList(){
init();
buildDialog();
}
private void buildDialog() {
add(dualList,BorderLayout.CENTER);
add(sort,BorderLayout.SOUTH);
setSize(200,200);
setVisible(true);
}
private void init() {
dualListModel=new DualListModel();
dualListModel.updateModel();
dualList=new DualList(dualListModel);
dualList.setSelectionMode(DualListModel.REMOVE_SELECTION);
dualList.setAllowDuplicates(false);
dualList.getOriginalListPane().setBorder(
new JideTitledBorder(new PartialEtchedBorder(
PartialEtchedBorder.LOWERED, PartialSide.NORTH),
"Available FIX Tags"));
dualList.getSelectedListPane().setBorder(
new JideTitledBorder(new PartialEtchedBorder(
PartialEtchedBorder.LOWERED, PartialSide.NORTH),
"Selected FIX Tags"));
// Make all the button invisible exceptt move right and left
dualList.setButtonVisible(DualList.COMMAND_MOVE_UP, false);
dualList.setButtonVisible(DualList.COMMAND_MOVE_DOWN, false);
dualList.setButtonVisible(DualList.COMMAND_MOVE_ALL_LEFT, false);
dualList.setButtonVisible(DualList.COMMAND_MOVE_ALL_RIGHT, false);
dualList.setButtonVisible(DualList.COMMAND_MOVE_TO_BOTTOM, false);
dualList.setButtonVisible(DualList.COMMAND_MOVE_TO_TOP, false);
sort=new JButton("Sort");
sort.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
dualListModel.sortByName();
}
});
}
public static void main(String args[]){
TestDualList list=new TestDualList();
}
}
Model class - Code: Select all
import java.util.ArrayList;
import java.util.Collections;
import com.jidesoft.list.AbstractDualListModel;
public class DualListModel extends AbstractDualListModel {
ArrayList<String> testElemnts = new ArrayList<String>();
@Override
public Object getElementAt(int index) {
return testElemnts.get(index);
}
@Override
public int getSize() {
return testElemnts.size();
}
public void sortByName() {
Collections.sort(testElemnts);
fireContentsChanged(this, 0, testElemnts.size());
}
public void updateModel(){
testElemnts.add("Ball");
testElemnts.add("Apple");
testElemnts.add("Cat");
testElemnts.add("Dog");
testElemnts.add("COW");
}
}
Testcase is like below
1) select ball from original list so that selected list contains ball
2) click on sort button
3) Now you will see Apple in the selected list(This happend because previously ball is in the index one and after sorting apple cames to index one)