Author: jm
Date: 2011-06-28 08:56:07 -0700 (Tue, 28 Jun 2011)
New Revision: 25960

Modified:
   
core3/filter-impl/trunk/src/main/java/org/cytoscape/filter/internal/filters/util/FilterUtil.java
   
core3/filter-impl/trunk/src/main/java/org/cytoscape/filter/internal/filters/view/FilterMainPanel.java
   
core3/filter-impl/trunk/src/main/java/org/cytoscape/filter/internal/filters/view/FilterSettingPanel.java
   
core3/filter-impl/trunk/src/main/java/org/cytoscape/filter/internal/filters/view/InteractionFilterPanel.java
   
core3/filter-impl/trunk/src/main/java/org/cytoscape/filter/internal/filters/view/TopoFilterPanel.java
   
core3/filter-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
   core3/filter-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
Log:
Fix for ticket #292: Synchronized row sets with view redrawing.

Modified: 
core3/filter-impl/trunk/src/main/java/org/cytoscape/filter/internal/filters/util/FilterUtil.java
===================================================================
--- 
core3/filter-impl/trunk/src/main/java/org/cytoscape/filter/internal/filters/util/FilterUtil.java
    2011-06-28 15:43:49 UTC (rev 25959)
+++ 
core3/filter-impl/trunk/src/main/java/org/cytoscape/filter/internal/filters/util/FilterUtil.java
    2011-06-28 15:56:07 UTC (rev 25960)
@@ -4,6 +4,7 @@
 import java.util.List;
 import java.util.Vector;
 
+import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.filter.internal.filters.CompositeFilter;
 import org.cytoscape.filter.internal.filters.FilterPlugin;
 import org.cytoscape.filter.internal.quickfind.util.QuickFind;
@@ -19,7 +20,7 @@
 public class FilterUtil {
                
        // do selection on given network
-       public static void doSelection(CompositeFilter pFilter, 
CyApplicationManager applicationManager) {
+       public static void doSelection(CompositeFilter pFilter, 
CyApplicationManager applicationManager, CyEventHelper eventHelper) {
                //System.out.println("Entering FilterUtil.doSelection() ...");
                
 //             // TODO: What do we do about CyInit*?
@@ -81,6 +82,8 @@
                        }
                        SelectUtil.setSelectedEdgeState(passedEdges, true);
                }
+               
+               eventHelper.flushPayloadEvents();
                applicationManager.getCurrentNetworkView().updateView();
                
 //             // TODO: What do we do about CyInit*?

Modified: 
core3/filter-impl/trunk/src/main/java/org/cytoscape/filter/internal/filters/view/FilterMainPanel.java
===================================================================
--- 
core3/filter-impl/trunk/src/main/java/org/cytoscape/filter/internal/filters/view/FilterMainPanel.java
       2011-06-28 15:43:49 UTC (rev 25959)
+++ 
core3/filter-impl/trunk/src/main/java/org/cytoscape/filter/internal/filters/view/FilterMainPanel.java
       2011-06-28 15:56:07 UTC (rev 25960)
@@ -68,6 +68,7 @@
 import javax.swing.SwingUtilities;
 import javax.swing.table.DefaultTableModel;
 
+import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.filter.internal.filters.CompositeFilter;
 import org.cytoscape.filter.internal.filters.EdgeInteractionFilter;
 import org.cytoscape.filter.internal.filters.FilterPlugin;
@@ -150,13 +151,14 @@
        private final CyNetworkManager networkManager;
        
        private final CyServiceRegistrar serviceRegistrar;
+       private final CyEventHelper eventHelper;
        
        public FilterMainPanel(CyApplicationManager applicationManager, 
FilterPlugin filterPlugin, 
-               CyNetworkManager networkManager,
-                        final CyServiceRegistrar serviceRegistrar) {
+               CyNetworkManager networkManager, final CyServiceRegistrar 
serviceRegistrar, CyEventHelper eventHelper) {
                this.applicationManager = applicationManager;
                this.filterPlugin = filterPlugin;
                this.networkManager = networkManager;
+               this.eventHelper = eventHelper;
                
                this.serviceRegistrar = serviceRegistrar;
                
@@ -434,7 +436,7 @@
                currentFilterSettingPanel = next;
                
                if (currentFilterSettingPanel == null || 
currentFilterSettingPanel.hasNullIndexChildFilter()) {
-                       currentFilterSettingPanel = new 
FilterSettingPanel(this, pNewFilter, applicationManager, filterPlugin);
+                       currentFilterSettingPanel = new 
FilterSettingPanel(this, pNewFilter, applicationManager, filterPlugin, 
eventHelper);
                        //Update the HashMap
                        filter2SettingPanelMap.put(pNewFilter, 
currentFilterSettingPanel);                      
                }
@@ -871,7 +873,7 @@
                                                                
                                // If network size is greater than pre-defined 
threshold, don't apply it automatically 
                                if (FilterUtil.isDynamicFilter(selectedFilter)) 
{
-                                       FilterUtil.doSelection(selectedFilter, 
applicationManager);                                     
+                                       FilterUtil.doSelection(selectedFilter, 
applicationManager, eventHelper);
                                }
                                
                                refreshAttributeCMB();
@@ -912,7 +914,7 @@
                                //System.out.println("\tThe Filter to apply is 
\n" + cmbSelectFilter.getSelectedItem().toString()+"\n");
                                CompositeFilter theFilterToApply = 
(CompositeFilter) cmbSelectFilter.getSelectedItem();
                                
theFilterToApply.setNetwork(applicationManager.getCurrentNetwork());
-                               FilterUtil.doSelection(theFilterToApply, 
applicationManager);
+                               FilterUtil.doSelection(theFilterToApply, 
applicationManager, eventHelper);
                        }
                        if (_btn == btnAddFilterWidget) {
                                //btnAddFilterWidget is clicked!
@@ -1183,7 +1185,7 @@
                
                Vector<CompositeFilter> allFilterVect = 
filterPlugin.getAllFilterVect();
                allFilterVect.add(newFilter);
-               FilterSettingPanel newFilterSettingPanel = new 
FilterSettingPanel(this, newFilter, applicationManager, filterPlugin);
+               FilterSettingPanel newFilterSettingPanel = new 
FilterSettingPanel(this, newFilter, applicationManager, filterPlugin, 
eventHelper);
                filter2SettingPanelMap.put(newFilter, newFilterSettingPanel);
                
                // set the new filter in the combobox selected
@@ -1272,7 +1274,7 @@
                
                Vector<CompositeFilter> allFilterVect = 
filterPlugin.getAllFilterVect();
                allFilterVect.add(newFilter);
-               FilterSettingPanel newFilterSettingPanel = new 
FilterSettingPanel(this, newFilter, applicationManager, filterPlugin);
+               FilterSettingPanel newFilterSettingPanel = new 
FilterSettingPanel(this, newFilter, applicationManager, filterPlugin, 
eventHelper);
                filter2SettingPanelMap.put(newFilter, newFilterSettingPanel);
 
                // set the new filter in the combobox selected

Modified: 
core3/filter-impl/trunk/src/main/java/org/cytoscape/filter/internal/filters/view/FilterSettingPanel.java
===================================================================
--- 
core3/filter-impl/trunk/src/main/java/org/cytoscape/filter/internal/filters/view/FilterSettingPanel.java
    2011-06-28 15:43:49 UTC (rev 25959)
+++ 
core3/filter-impl/trunk/src/main/java/org/cytoscape/filter/internal/filters/view/FilterSettingPanel.java
    2011-06-28 15:56:07 UTC (rev 25960)
@@ -62,6 +62,7 @@
 import javax.swing.event.MouseInputAdapter;
 import javax.swing.text.JTextComponent;
 
+import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.filter.internal.filters.AtomicFilter;
 import org.cytoscape.filter.internal.filters.CompositeFilter;
 import org.cytoscape.filter.internal.filters.CyFilter;
@@ -111,9 +112,12 @@
        private InteractionFilterPanel interactionPanel = null;
        private final Logger logger;
        private final CyApplicationManager applicationManager;
+       private final CyEventHelper eventHelper;
        
-       public FilterSettingPanel(FilterMainPanel pParent, Object pFilterObj, 
CyApplicationManager applicationManager, FilterPlugin filterPlugin) {
+       public FilterSettingPanel(FilterMainPanel pParent, Object pFilterObj, 
CyApplicationManager applicationManager, FilterPlugin filterPlugin, 
CyEventHelper eventHelper) {
                this.applicationManager = applicationManager;
+               this.eventHelper = eventHelper;
+               
                logger = LoggerFactory.getLogger(getClass());
                theFilter = (CompositeFilter) pFilterObj;
         setName(theFilter.getName());
@@ -137,7 +141,7 @@
                gridBagConstraints.weightx = 1.0;
 
                        pnlCustomSettings.removeAll();
-                       topoPanel = new 
TopoFilterPanel((TopologyFilter)theFilter, applicationManager, filterPlugin);
+                       topoPanel = new 
TopoFilterPanel((TopologyFilter)theFilter, applicationManager, filterPlugin, 
eventHelper);
                        pnlCustomSettings.add(topoPanel, gridBagConstraints);
                        //topoPanel.addParentPanelListener(); // Update 
passFilterCOM when shown
                        topoPanel.addParentPanelListener(this); // Update 
passFilterCOM when shown
@@ -162,7 +166,7 @@
                gridBagConstraints.weightx = 1.0;
 
                        pnlCustomSettings.removeAll();
-                       interactionPanel = new 
InteractionFilterPanel((InteractionFilter)theFilter, applicationManager, 
filterPlugin);
+                       interactionPanel = new 
InteractionFilterPanel((InteractionFilter)theFilter, applicationManager, 
filterPlugin, eventHelper);
                        pnlCustomSettings.add(interactionPanel, 
gridBagConstraints);
                        //interactionPanel.addParentPanelListener(); // Update 
passFilterCOM when shown
                        interactionPanel.addParentPanelListener(this); // 
Update passFilterCOM when shown
@@ -457,7 +461,7 @@
                                        
                                        //Update the selection on screen
                                        
theFilter.setNetwork(applicationManager.getCurrentNetwork());
-                                       FilterUtil.doSelection(theFilter, 
applicationManager);                                  
+                                       FilterUtil.doSelection(theFilter, 
applicationManager, eventHelper);
                                }
                        }
                }
@@ -573,27 +577,20 @@
        }
        
        //user Clicked CheckBox_Not left-side of the child filter
-       private void updateNegationStatus(MouseEvent e) {
-               // Determine the child index in theFilter, 
-               // then update the negation value for that child filter
-               Object _actionObject = e.getSource();
+       private void updateNegationStatus(JCheckBox _chk) {
+               int widgetGridY = (new Integer(_chk.getName())).intValue();
+               int childIndex =widgetGridY/2;
                
-               if (_actionObject instanceof JCheckBox) {
-                       JCheckBox _chk = (JCheckBox) _actionObject;
-                       int widgetGridY = (new 
Integer(_chk.getName())).intValue();
-                       int childIndex =widgetGridY/2;
-                       
-                       CyFilter childFilter = 
theFilter.getChildren().get(childIndex);
-                       if (childFilter instanceof CompositeFilter) {
-                               CompositeFilter tmpFilter = 
(CompositeFilter)childFilter;
-                               theFilter.setNotTable(tmpFilter, new 
Boolean(_chk.isSelected()));
-                       }
-                       else { // it is an AtomiCFilter
-                               childFilter.setNegation(_chk.isSelected());     
                        
-                       }
-                       //Update the selection on screen
-                       doSelection();
+               CyFilter childFilter = theFilter.getChildren().get(childIndex);
+               if (childFilter instanceof CompositeFilter) {
+                       CompositeFilter tmpFilter = 
(CompositeFilter)childFilter;
+                       theFilter.setNotTable(tmpFilter, new 
Boolean(_chk.isSelected()));
                }
+               else { // it is an AtomiCFilter
+                       childFilter.setNegation(_chk.isSelected());             
                
+               }
+               //Update the selection on screen
+               doSelection();
        }
        
        
@@ -635,15 +632,16 @@
         pnlCustomSettings.add(theLabel_col0, gridBagConstraints);
        
                //Col 1 ---> chk box -- NOT
-        JCheckBox chkNot = new JCheckBox("Not");
+        final JCheckBox chkNot = new JCheckBox("Not");
         chkNot.setName(Integer.toString(pGridY));
         chkNot.setSelected(pFilter.getNegation());
-        chkNot.addMouseListener(
-                new MouseAdapter() {
-                    public void mouseClicked(MouseEvent e) {           
-                       updateNegationStatus(e);
-                    }
-                }
+        chkNot.addActionListener(
+                       new ActionListener() {
+                                       @Override
+                                       public void actionPerformed(ActionEvent 
e) {
+                                               updateNegationStatus(chkNot);
+                                       }
+                               }
             );
 
         gridBagConstraints = new java.awt.GridBagConstraints();
@@ -791,7 +789,7 @@
        private void doSelection() {
                // If network size is greater than pre-defined threshold, don't 
apply theFilter automatically 
                if (FilterUtil.isDynamicFilter(theFilter)) {
-                       FilterUtil.doSelection(theFilter, applicationManager);  
                
+                       FilterUtil.doSelection(theFilter, applicationManager, 
eventHelper);
                }               
        }
        

Modified: 
core3/filter-impl/trunk/src/main/java/org/cytoscape/filter/internal/filters/view/InteractionFilterPanel.java
===================================================================
--- 
core3/filter-impl/trunk/src/main/java/org/cytoscape/filter/internal/filters/view/InteractionFilterPanel.java
        2011-06-28 15:43:49 UTC (rev 25959)
+++ 
core3/filter-impl/trunk/src/main/java/org/cytoscape/filter/internal/filters/view/InteractionFilterPanel.java
        2011-06-28 15:56:07 UTC (rev 25960)
@@ -49,6 +49,7 @@
 import javax.swing.JPanel;
 import javax.swing.ListCellRenderer;
 
+import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.filter.internal.filters.CompositeFilter;
 import org.cytoscape.filter.internal.filters.EdgeInteractionFilter;
 import org.cytoscape.filter.internal.filters.FilterPlugin;
@@ -64,11 +65,13 @@
        private final InteractionFilter theFilter;
        private final CyApplicationManager applicationManager;
        private final FilterPlugin filterPlugin;
+       private final CyEventHelper eventHelper;
 
     /** Creates new form InteractionFilterPanel */
-    public InteractionFilterPanel(InteractionFilter pFilter, 
CyApplicationManager applicationManager, FilterPlugin filterPlugin) {
+    public InteractionFilterPanel(InteractionFilter pFilter, 
CyApplicationManager applicationManager, FilterPlugin filterPlugin, 
CyEventHelper eventHelper) {
        this.applicationManager = applicationManager;
        this.filterPlugin = filterPlugin;
+       this.eventHelper = eventHelper;
        theFilter = pFilter;
         setName(theFilter.getName());
        
@@ -200,7 +203,7 @@
                
                // If network size is less than pre-defined threshold, apply 
theFilter automatically 
                if (FilterUtil.isDynamicFilter(theFilter)) {
-                       FilterUtil.doSelection(theFilter, applicationManager);  
                                
+                       FilterUtil.doSelection(theFilter, applicationManager, 
eventHelper);
                }
        }
 

Modified: 
core3/filter-impl/trunk/src/main/java/org/cytoscape/filter/internal/filters/view/TopoFilterPanel.java
===================================================================
--- 
core3/filter-impl/trunk/src/main/java/org/cytoscape/filter/internal/filters/view/TopoFilterPanel.java
       2011-06-28 15:43:49 UTC (rev 25959)
+++ 
core3/filter-impl/trunk/src/main/java/org/cytoscape/filter/internal/filters/view/TopoFilterPanel.java
       2011-06-28 15:56:07 UTC (rev 25960)
@@ -53,6 +53,7 @@
 import javax.swing.JTextField;
 import javax.swing.ListCellRenderer;
 
+import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.filter.internal.filters.CompositeFilter;
 import org.cytoscape.filter.internal.filters.FilterPlugin;
 import org.cytoscape.filter.internal.filters.TopologyFilter;
@@ -71,11 +72,15 @@
        private final TopologyFilter theFilter;
        private final CyApplicationManager applicationManager;
        private final FilterPlugin filterPlugin;
+       private final CyEventHelper eventHelper;
  
-    /** Creates new form TopoFilterPanel */
-    public TopoFilterPanel(TopologyFilter pFilter, CyApplicationManager 
applicationManager, FilterPlugin filterPlugin) {
+    /** Creates new form TopoFilterPanel 
+     * @param eventHelper */
+    public TopoFilterPanel(TopologyFilter pFilter, CyApplicationManager 
applicationManager, FilterPlugin filterPlugin, CyEventHelper eventHelper) {
        this.applicationManager = applicationManager;
        this.filterPlugin = filterPlugin;
+       this.eventHelper = eventHelper;
+       
        theFilter = pFilter;
         setName(theFilter.getName());
         initComponents();
@@ -191,7 +196,7 @@
 
                        // If network size is less than pre-defined threshold, 
apply theFilter automatically 
                        if (FilterUtil.isDynamicFilter(theFilter)) {
-                               FilterUtil.doSelection(theFilter, 
applicationManager);                                  
+                               FilterUtil.doSelection(theFilter, 
applicationManager, eventHelper);
                        }
                }
        }

Modified: 
core3/filter-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
===================================================================
--- 
core3/filter-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
  2011-06-28 15:43:49 UTC (rev 25959)
+++ 
core3/filter-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
  2011-06-28 15:56:07 UTC (rev 25960)
@@ -19,6 +19,8 @@
 
     <osgi:reference id="cyServiceRegistrarServiceRef" 
interface="org.cytoscape.service.util.CyServiceRegistrar" />
 
+       <osgi:reference id="cyEventHelperServiceRef" 
interface="org.cytoscape.event.CyEventHelper"/>
+       
        <osgi:service id="filterCytoPanelComponentService" 
ref="filterCytoPanelComponent"
                   
interface="org.cytoscape.application.swing.CytoPanelComponent"/>
 

Modified: 
core3/filter-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
===================================================================
--- 
core3/filter-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml   
    2011-06-28 15:43:49 UTC (rev 25959)
+++ 
core3/filter-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml   
    2011-06-28 15:56:07 UTC (rev 25960)
@@ -27,6 +27,7 @@
                <constructor-arg ref="filterPlugin" />
                <constructor-arg ref="cyNetworkManagerServiceRef" />
                <constructor-arg ref="cyServiceRegistrarServiceRef" />
+               <constructor-arg ref="cyEventHelperServiceRef" />
        </bean>
 
        <bean id="filterCytoPanelComponent"

-- 
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