Author: kono
Date: 2012-06-22 16:04:41 -0700 (Fri, 22 Jun 2012)
New Revision: 29673

Modified:
   
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/tunables/ListMultipleHandler.java
Log:
fixes #1163 setSelected method works correctly.

Modified: 
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/tunables/ListMultipleHandler.java
===================================================================
--- 
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/tunables/ListMultipleHandler.java
   2012-06-22 23:03:25 UTC (rev 29672)
+++ 
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/tunables/ListMultipleHandler.java
   2012-06-22 23:04:41 UTC (rev 29673)
@@ -2,13 +2,13 @@
 
 
 import java.awt.BorderLayout;
+import java.awt.Dimension;
 import java.awt.Font;
 import java.lang.reflect.Field;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
-import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
-import java.util.Arrays;
 
 import javax.swing.BorderFactory;
 import javax.swing.JList;
@@ -73,6 +73,7 @@
 
                panel = new JPanel(new BorderLayout(GUIDefaults.hGap, 
GUIDefaults.vGap));
                JTextArea jta = new JTextArea(getDescription());
+               jta.setPreferredSize(new Dimension(120, 50));
                jta.setLineWrap(true);
                jta.setWrapStyleWord(true);
                jta.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
@@ -85,14 +86,32 @@
                itemsContainerList.setFont(new Font("sansserif",Font.PLAIN,11));
                
itemsContainerList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
                itemsContainerList.addListSelectionListener(this);
-
+               
+               // selected items
+               final List<T> selectedVals = 
listMultipleSelection.getSelectedValues();
+               final List<T> allValues = 
listMultipleSelection.getPossibleValues();
+               
+               final int[] selectedIdx = new int[selectedVals.size()];
+               int index = 0;
+               for(T selected: selectedVals) {
+                       for(int i = 0; i<allValues.size(); i++) {
+                               
if(itemsContainerList.getModel().getElementAt(i).equals(selected)) {
+                                       selectedIdx[index] = i;
+                                       index++;
+                               }
+                       }
+               }
+               itemsContainerList.setSelectedIndices(selectedIdx);
+               
                //use a JscrollPane to visualize the items
                JScrollPane scrollpane = new JScrollPane(itemsContainerList);
                panel.add(scrollpane,BorderLayout.CENTER);
        }
 
+       
+       @Override
        public void update(){
-               
+               // FIXME: implement this!
        }
        
        /**

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to