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.