Author: kono
Date: 2012-03-02 11:06:33 -0800 (Fri, 02 Mar 2012)
New Revision: 28413

Removed:
   
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/quickfind/util/QuickFindFactory.java
Modified:
   
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/CyActivator.java
   
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/model/NumericFilter.java
   
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/model/StringFilter.java
   
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/util/FilterUtil.java
   
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/view/FilterIndexingTask.java
   
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/view/FilterIndexingTaskFactory.java
   
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/view/FilterMainPanel.java
   
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/view/FilterSettingPanel.java
   
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/quickfind/app/QuickFindApp.java
   
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/quickfind/util/QuickFindImpl.java
   
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/quickfind/view/QuickFindConfigDialog.java
   
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/read/filter/FilterReader.java
Log:
Singleton instance of QuickFind is now injected through CyActivator.

Modified: 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/CyActivator.java
===================================================================
--- 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/CyActivator.java
   2012-03-02 18:04:24 UTC (rev 28412)
+++ 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/CyActivator.java
   2012-03-02 19:06:33 UTC (rev 28413)
@@ -16,6 +16,8 @@
 import org.cytoscape.filter.internal.filters.view.FilterMainPanel;
 import org.cytoscape.filter.internal.gui.FilterCytoPanelComponent;
 import org.cytoscape.filter.internal.quickfind.app.QuickFindApp;
+import org.cytoscape.filter.internal.quickfind.util.QuickFind;
+import org.cytoscape.filter.internal.quickfind.util.QuickFindImpl;
 import org.cytoscape.filter.internal.read.filter.FilterReader;
 import org.cytoscape.filter.internal.write.filter.FilterWriter;
 import org.cytoscape.model.CyNetworkManager;
@@ -38,6 +40,9 @@
                TaskManager taskManagerServiceRef = 
getService(bc,TaskManager.class);
                CyApplicationConfiguration cyApplicationConfigurationServiceRef 
= getService(bc,CyApplicationConfiguration.class);
                CyVersion cytoscapeVersionService = 
getService(bc,CyVersion.class);
+               
+               // Singleton of QuickFind
+               final QuickFind quickFind = new QuickFindImpl();
 
                ServicesUtil.cySwingApplicationServiceRef = 
cySwingApplicationServiceRef;
                ServicesUtil.cyApplicationManagerServiceRef = 
cyApplicationManagerServiceRef;
@@ -49,14 +54,14 @@
                ServicesUtil.cytoscapeVersionService = cytoscapeVersionService;
                ServicesUtil.cyApplicationConfigurationServiceRef = 
cyApplicationConfigurationServiceRef;
                
-               final FilterReader filterReader = new FilterReader();
+               final FilterReader filterReader = new FilterReader(quickFind);
                final FilterWriter filterWriter = new FilterWriter();
                FilterModelLocator filtersModelLocator = new 
FilterModelLocator();
                
                FilterApp filterApp = new FilterApp(filterReader, filterWriter, 
filtersModelLocator);
-               QuickFindApp quickFindApp = new 
QuickFindApp(cyApplicationManagerServiceRef,cyNetworkViewManagerServiceRef,cySwingApplicationServiceRef,cyNetworkManagerServiceRef);
+               QuickFindApp quickFindApp = new QuickFindApp(quickFind, 
cyApplicationManagerServiceRef, cyNetworkManagerServiceRef);
                
-               FilterMainPanel filterMainPanel = new 
FilterMainPanel(filtersModelLocator,cyApplicationManagerServiceRef,cyNetworkManagerServiceRef,cyEventHelperServiceRef,taskManagerServiceRef);
+               FilterMainPanel filterMainPanel = new 
FilterMainPanel(quickFind, 
filtersModelLocator,cyApplicationManagerServiceRef,cyNetworkManagerServiceRef,cyEventHelperServiceRef,taskManagerServiceRef);
                FilterCytoPanelComponent filterCytoPanelComponent = new 
FilterCytoPanelComponent(filterMainPanel);
                FilterMenuItemAction filterAction = new 
FilterMenuItemAction(cySwingApplicationServiceRef,filterMainPanel);
                                

Modified: 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/model/NumericFilter.java
===================================================================
--- 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/model/NumericFilter.java
   2012-03-02 18:04:24 UTC (rev 28412)
+++ 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/model/NumericFilter.java
   2012-03-02 19:06:33 UTC (rev 28413)
@@ -52,16 +52,12 @@
 public class NumericFilter<T extends Number> extends AtomicFilter {
 
        private T lowBound, highBound;
+       private final QuickFind quickFind;
 
-       public NumericFilter() {
+       public NumericFilter(final QuickFind quickFind) {
+               this.quickFind = quickFind;
        }
 
-       public NumericFilter(String pCtrlAttri, int pIndexType, NumberIndex 
pIndex) {
-               controllingAttribute = pCtrlAttri;
-               index_type = pIndexType;
-               quickFind_index = pIndex;
-       }
-
        public boolean passesFilter(Object obj) {
                return false;
        }
@@ -111,7 +107,7 @@
                
                //If quickFind_index does not exist, build the Index
                //if (quickFind_index == null) {
-               quickFind_index = 
FilterUtil.getQuickFindIndex(controllingAttribute, network, index_type);
+               quickFind_index = FilterUtil.getQuickFindIndex(quickFind, 
controllingAttribute, network, index_type);
                //}
 
                //System.out.println(" NumberFilter.apply(): objectCount = " + 
objectCount);

Modified: 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/model/StringFilter.java
===================================================================
--- 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/model/StringFilter.java
    2012-03-02 18:04:24 UTC (rev 28412)
+++ 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/model/StringFilter.java
    2012-03-02 19:06:33 UTC (rev 28413)
@@ -53,26 +53,19 @@
 public class StringFilter extends AtomicFilter {
 
        private String searchStr = null;
+       private final QuickFind quickFind;
 
-       //---------------------------------------//
-       // Constructor
-       //----------------------------------------//
-
        /**
         * Creates a new StringPatternFilter object.
         *
         * @param desc  DOCUMENT ME!
         */
        
-       public StringFilter() {
+       public StringFilter(final QuickFind quickFind) {
                super();
+               this.quickFind = quickFind;
        }
        
-       public StringFilter(String pCtrlAttri, int pIndexType, TextIndex 
pIndex) {
-               controllingAttribute = pCtrlAttri;
-               index_type = pIndexType;
-               quickFind_index = pIndex;
-       }
        
        public String getSearchStr() {
                return searchStr;
@@ -121,7 +114,7 @@
                
                //If quickFind_index does not exist, build the Index
                //if (quickFind_index == null) {
-               quickFind_index = 
FilterUtil.getQuickFindIndex(controllingAttribute, network, index_type);
+               quickFind_index = FilterUtil.getQuickFindIndex(quickFind, 
controllingAttribute, network, index_type);
                //}
                
                TextIndex theIndex = (TextIndex) quickFind_index;

Modified: 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/util/FilterUtil.java
===================================================================
--- 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/util/FilterUtil.java
       2012-03-02 18:04:24 UTC (rev 28412)
+++ 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/util/FilterUtil.java
       2012-03-02 19:06:33 UTC (rev 28413)
@@ -6,7 +6,6 @@
 import org.cytoscape.application.CyApplicationManager;
 import org.cytoscape.filter.internal.filters.model.CompositeFilter;
 import org.cytoscape.filter.internal.quickfind.util.QuickFind;
-import org.cytoscape.filter.internal.quickfind.util.QuickFindFactory;
 import org.cytoscape.filter.internal.quickfind.util.TaskMonitorBase;
 import org.cytoscape.filter.internal.widgets.autocomplete.index.GenericIndex;
 import org.cytoscape.model.CyEdge;
@@ -105,8 +104,7 @@
        }
        
        
-       public static GenericIndex getQuickFindIndex(String pCtrlAttribute, 
CyNetwork pNetwork, int pIndexType) {
-               final QuickFind quickFind = 
QuickFindFactory.getGlobalQuickFindInstance();
+       public static GenericIndex getQuickFindIndex(final QuickFind quickFind, 
String pCtrlAttribute, CyNetwork pNetwork, int pIndexType) {
                quickFind.reindexNetwork(pNetwork, pIndexType, pCtrlAttribute, 
new TaskMonitorBase());
                
                return quickFind.getIndex(pNetwork);            

Modified: 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/view/FilterIndexingTask.java
===================================================================
--- 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/view/FilterIndexingTask.java
       2012-03-02 18:04:24 UTC (rev 28412)
+++ 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/view/FilterIndexingTask.java
       2012-03-02 19:06:33 UTC (rev 28413)
@@ -24,31 +24,29 @@
   You should have received a copy of the GNU Lesser General Public License
   along with this library; if not, write to the Free Software Foundation,
   Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
-*/
+ */
 package org.cytoscape.filter.internal.filters.view;
 
-
 import org.cytoscape.filter.internal.quickfind.util.QuickFind;
-import org.cytoscape.filter.internal.quickfind.util.QuickFindFactory;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.work.AbstractTask;
 import org.cytoscape.work.TaskMonitor;
 
-
 final class FilterIndexingTask extends AbstractTask {
        private final CyNetwork network;
+       private final QuickFind quickFind;
 
-       FilterIndexingTask(final CyNetwork network) {
+       FilterIndexingTask(final QuickFind quickFind, final CyNetwork network) {
                this.network = network;
+               this.quickFind = quickFind;
        }
 
        @Override
        public void run(final TaskMonitor taskMonitor) throws Exception {
                taskMonitor.setTitle("Indexing Network Data");
-long start = System.currentTimeMillis();
-               final QuickFind quickFind = 
QuickFindFactory.getGlobalQuickFindInstance();
+               long start = System.currentTimeMillis();
                quickFind.addNetwork(network, taskMonitor);
-long end = System.currentTimeMillis();
-System.err.println("+++++++++++++++ addNetwork() took " + (end-start) + "ms");
+               long end = System.currentTimeMillis();
+               System.err.println("+++++++++++++++ addNetwork() took " + (end 
- start) + "ms");
        }
 }

Modified: 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/view/FilterIndexingTaskFactory.java
===================================================================
--- 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/view/FilterIndexingTaskFactory.java
        2012-03-02 18:04:24 UTC (rev 28412)
+++ 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/view/FilterIndexingTaskFactory.java
        2012-03-02 19:06:33 UTC (rev 28413)
@@ -28,6 +28,7 @@
 package org.cytoscape.filter.internal.filters.view;
 
 
+import org.cytoscape.filter.internal.quickfind.util.QuickFind;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.work.TaskFactory;
 import org.cytoscape.work.TaskIterator;
@@ -35,9 +36,11 @@
 
 final class FilterIndexingTaskFactory implements TaskFactory {
        private final CyNetwork network;
+       private final QuickFind quickFind;
 
-       FilterIndexingTaskFactory(final CyNetwork network) {
+       FilterIndexingTaskFactory(final QuickFind quickFind, final CyNetwork 
network) {
                this.network = network;
+               this.quickFind = quickFind;
        }
 
        /** @return an iterator returning a sequence of <code>Task</code>s.
@@ -46,6 +49,6 @@
         */
        @Override
        public TaskIterator createTaskIterator() {
-               return new TaskIterator(new FilterIndexingTask(network));
+               return new TaskIterator(new FilterIndexingTask(quickFind, 
network));
        }
 }

Modified: 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/view/FilterMainPanel.java
===================================================================
--- 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/view/FilterMainPanel.java
  2012-03-02 18:04:24 UTC (rev 28412)
+++ 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/view/FilterMainPanel.java
  2012-03-02 19:06:33 UTC (rev 28413)
@@ -83,6 +83,7 @@
 import 
org.cytoscape.filter.internal.filters.util.WidestStringComboBoxPopupMenuListener;
 import org.cytoscape.filter.internal.filters.util.WidestStringProvider;
 import org.cytoscape.filter.internal.quickfind.util.CyAttributesUtil;
+import org.cytoscape.filter.internal.quickfind.util.QuickFind;
 import org.cytoscape.model.CyColumn;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkManager;
@@ -115,6 +116,8 @@
        // String constants used for separator entries in the attribute combobox
        private static final String filtersSeparator = "-- Filters --";
        private static final String attributesSeperator = "-- Attributes --";
+       
+       private final QuickFind quickFind;
 
        private static JPopupMenu optionMenu;
 
@@ -149,7 +152,7 @@
        private final CyEventHelper eventHelper;
        private final TaskManager taskManager;
        
-       public FilterMainPanel(final FilterModelLocator modelLocator,
+       public FilterMainPanel(final QuickFind quickFind, final 
FilterModelLocator modelLocator,
                                                   final CyApplicationManager 
applicationManager,
                               final CyNetworkManager networkManager,
                               final CyEventHelper eventHelper,
@@ -159,6 +162,7 @@
                this.networkManager     = networkManager;
                this.eventHelper        = eventHelper;
                this.taskManager        = taskManager;
+               this.quickFind = quickFind;
                
                modelLocator.addListener(this);
 
@@ -452,7 +456,7 @@
                currentFilterSettingPanel = next;
                
                if (currentFilterSettingPanel == null || 
currentFilterSettingPanel.hasNullIndexChildFilter()) {
-                       currentFilterSettingPanel = new 
FilterSettingPanel(this, pNewFilter, modelLocator, applicationManager,
+                       currentFilterSettingPanel = new 
FilterSettingPanel(quickFind, this, pNewFilter, modelLocator, 
applicationManager,
                                        eventHelper);
                        //Update the HashMap
                        filter2SettingPanelMap.put(pNewFilter, 
currentFilterSettingPanel);                      
@@ -547,7 +551,7 @@
                        return;
 
                final CyNetwork network = currentView.getModel();
-               taskManager.execute(new FilterIndexingTaskFactory(network));
+               taskManager.execute(new FilterIndexingTaskFactory(quickFind, 
network));
 
                updateCMBAttributes();
        }
@@ -1179,7 +1183,7 @@
                
                Vector<CompositeFilter> allFilters = modelLocator.getFilters();
                allFilters.add(newFilter);
-               FilterSettingPanel newFilterSettingPanel = new 
FilterSettingPanel(this, newFilter, modelLocator,
+               FilterSettingPanel newFilterSettingPanel = new 
FilterSettingPanel(quickFind, this, newFilter, modelLocator,
                                applicationManager, eventHelper);
                filter2SettingPanelMap.put(newFilter, newFilterSettingPanel);
                
@@ -1258,7 +1262,7 @@
                newFilter.setNetwork(applicationManager.getCurrentNetwork());
                modelLocator.addFilter(newFilter);
                
-               FilterSettingPanel newFilterSettingPanel = new 
FilterSettingPanel(this, newFilter, modelLocator,
+               FilterSettingPanel newFilterSettingPanel = new 
FilterSettingPanel(quickFind, this, newFilter, modelLocator,
                                applicationManager, eventHelper);
                filter2SettingPanelMap.put(newFilter, newFilterSettingPanel);
 

Modified: 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/view/FilterSettingPanel.java
===================================================================
--- 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/view/FilterSettingPanel.java
       2012-03-02 18:04:24 UTC (rev 28412)
+++ 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/view/FilterSettingPanel.java
       2012-03-02 19:06:33 UTC (rev 28413)
@@ -77,7 +77,6 @@
 import org.cytoscape.filter.internal.prefuse.data.query.NumberRangeModel;
 import org.cytoscape.filter.internal.prefuse.util.ui.JRangeSlider;
 import org.cytoscape.filter.internal.quickfind.util.QuickFind;
-import org.cytoscape.filter.internal.quickfind.util.QuickFindFactory;
 import org.cytoscape.filter.internal.quickfind.util.TaskMonitorBase;
 import org.cytoscape.filter.internal.widgets.autocomplete.index.GenericIndex;
 import org.cytoscape.filter.internal.widgets.autocomplete.index.Hit;
@@ -112,15 +111,18 @@
        private final CyApplicationManager applicationManager;
        private final CyEventHelper eventHelper;
        
+       private final QuickFind quickFind;
+       
        private static final Logger logger = 
LoggerFactory.getLogger(FilterSettingPanel.class);
        
-       public FilterSettingPanel(final FilterMainPanel pParent,
+       public FilterSettingPanel(final QuickFind quickFind, final 
FilterMainPanel pParent,
                                                          final Object 
pFilterObj,
                                                          final 
FilterModelLocator modelLocator,
                                                          final 
CyApplicationManager applicationManager,
                                                          final CyEventHelper 
eventHelper) {
                this.applicationManager = applicationManager;
                this.eventHelper = eventHelper;
+               this.quickFind = quickFind;
 
                theFilter = (CompositeFilter) pFilterObj;
         setName(theFilter.getName());
@@ -499,7 +501,6 @@
        private AtomicFilter getAtomicFilterFromStr(String pCtrlAttribute, int 
pIndexType) {
                AtomicFilter retFilter = null;
                
-               final QuickFind quickFind = 
QuickFindFactory.getGlobalQuickFindInstance();
                //quickFind.addNetwork(cyNetwork, new TaskMonitorBase());
                //index_by_UniqueIdentification = (TextIndex) 
quickFind.getIndex(cyNetwork);
                
@@ -520,7 +521,7 @@
                
                if ((attributeType == Integer.class)
                                ||(attributeType == Double.class)) {
-                               retFilter = new NumericFilter();
+                               retFilter = new NumericFilter(quickFind);
                                
retFilter.setControllingAttribute(pCtrlAttribute);
                                retFilter.setIndexType(pIndexType);             
 
@@ -529,7 +530,7 @@
                                
retFilter.setIndex(quickFind.getIndex(cyNetwork));
                                
                } else if ((attributeType == String.class||(attributeType == 
List.class||(attributeType == Boolean.class)))) {
-                               retFilter = new StringFilter(); 
+                               retFilter = new StringFilter(quickFind);        
                                
retFilter.setControllingAttribute(pCtrlAttribute);
                                retFilter.setIndexType(pIndexType);
                                
@@ -943,7 +944,6 @@
        
        
        private TextIndex createTextIndex(StringFilter pFilter) {
-               final QuickFind quickFind = 
QuickFindFactory.getGlobalQuickFindInstance();
                CyNetwork cyNetwork = applicationManager.getCurrentNetwork();
                quickFind.reindexNetwork(cyNetwork, pFilter.getIndexType(),
                                pFilter.getControllingAttribute(), new 
TaskMonitorBase());
@@ -952,7 +952,6 @@
        
        
        private NumberIndex createNumberIndex(NumericFilter pNumericFilter) {
-               final QuickFind quickFind = 
QuickFindFactory.getGlobalQuickFindInstance();                                  
    
                currentNetwork = applicationManager.getCurrentNetwork();
 
                if (currentNetwork == null)

Modified: 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/quickfind/app/QuickFindApp.java
===================================================================
--- 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/quickfind/app/QuickFindApp.java
    2012-03-02 18:04:24 UTC (rev 28412)
+++ 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/quickfind/app/QuickFindApp.java
    2012-03-02 19:06:33 UTC (rev 28413)
@@ -39,12 +39,10 @@
 import javax.swing.event.ChangeListener;
 
 import org.cytoscape.application.CyApplicationManager;
-import org.cytoscape.application.swing.CySwingApplication;
 import org.cytoscape.filter.internal.filters.util.SelectUtil;
 import org.cytoscape.filter.internal.filters.util.VisualPropertyUtil;
 import org.cytoscape.filter.internal.prefuse.data.query.NumberRangeModel;
 import org.cytoscape.filter.internal.quickfind.util.QuickFind;
-import org.cytoscape.filter.internal.quickfind.util.QuickFindFactory;
 import org.cytoscape.filter.internal.quickfind.util.QuickFindListener;
 import org.cytoscape.filter.internal.quickfind.util.TaskMonitorBase;
 import org.cytoscape.filter.internal.widgets.autocomplete.index.GenericIndex;
@@ -69,7 +67,6 @@
 import org.cytoscape.model.events.RemovedNodesEvent;
 import org.cytoscape.model.events.RemovedNodesListener;
 import org.cytoscape.view.model.CyNetworkView;
-import org.cytoscape.view.model.CyNetworkViewManager;
 import org.cytoscape.view.model.View;
 import org.cytoscape.view.model.VisualLexicon;
 import org.cytoscape.view.model.events.NetworkViewAboutToBeDestroyedEvent;
@@ -90,25 +87,20 @@
                                        NetworkAboutToBeDestroyedListener,
                                        NetworkViewAboutToBeDestroyedListener
 {
-       static final int REINDEX_THRESHOLD = 1000;
+       private static final int REINDEX_THRESHOLD = 1000;
+       
+       private final QuickFind quickFind;
+       
        private final CyApplicationManager applicationManager;
-       private final CyNetworkViewManager viewManager;
-       private final CySwingApplication application;
        private final CyNetworkManager networkManager;
        private static final int NODE_SIZE_MULTIPLER = 10;
 
-       /**
-        * Constructor.
-        */
-       public QuickFindApp(final CyApplicationManager applicationManager,
-                              final CyNetworkViewManager viewManager,
-                              final CySwingApplication application,
-                              final CyNetworkManager networkManager)
-       {
+       
+       public QuickFindApp(final QuickFind quickFind, final 
CyApplicationManager applicationManager, final CyNetworkManager networkManager) 
{
                this.applicationManager = applicationManager;
-               this.viewManager = viewManager;
-               this.application = application;
                this.networkManager = networkManager;
+               this.quickFind = quickFind;
+               
                initListeners();
        }
 
@@ -116,7 +108,6 @@
         * Initializes All Cytoscape Listeners.
         */
        private void initListeners() {
-        QuickFind quickFind = QuickFindFactory.getGlobalQuickFindInstance();
                quickFind.addQuickFindListener(this);
        }
 
@@ -126,7 +117,6 @@
         * line, and the network is already loaded prior to any apps being 
loaded
         */
        private void initIndex() {
-               final QuickFind quickFind = 
QuickFindFactory.getGlobalQuickFindInstance();
 
                //  If a network already exists within Cytoscape, index it
                final CyNetwork cyNetwork = 
applicationManager.getCurrentNetwork();
@@ -144,9 +134,8 @@
        
        @Override
        public void handleEvent(NetworkViewAboutToBeDestroyedEvent e) {
-               final QuickFind quickFind = 
QuickFindFactory.getGlobalQuickFindInstance();
-               CyNetworkView networkView = e.getNetworkView();
-               CyNetwork cyNetwork = networkView.getModel();
+               final CyNetworkView networkView = e.getNetworkView();
+               final CyNetwork cyNetwork = networkView.getModel();
                quickFind.removeNetwork(cyNetwork);
        }
 
@@ -200,7 +189,6 @@
                //  Fit Selected Content
                SwingUtilities.invokeLater(new Runnable() {
                                public void run() {
-                                       QuickFind quickFind = 
QuickFindFactory.getGlobalQuickFindInstance();
                                        final CyNetwork cyNetwork = 
applicationManager.getCurrentNetwork();
                                        CyNetworkView networkView = 
applicationManager.getCurrentNetworkView();
                                        GenericIndex index = 
quickFind.getIndex(cyNetwork);
@@ -268,7 +256,6 @@
         */
        public void onUserRangeSelection(CyNetwork network, Number lowValue, 
Number highValue) {
                try {
-                       QuickFind quickFind = 
QuickFindFactory.getGlobalQuickFindInstance();
                        GenericIndex index = quickFind.getIndex(network);
                        NumberIndex numberIndex = (NumberIndex) index;
                        final List rangeList = numberIndex.getRange(lowValue, 
highValue);
@@ -377,11 +364,9 @@
        }
 
        private void handleNetworkModified(final CyNetwork cyNetwork) {
-               if (!networkManager.networkExists(cyNetwork.getSUID())) {
+               if (!networkManager.networkExists(cyNetwork.getSUID()))
                        return;
-               }
                
-               final QuickFind quickFind = 
QuickFindFactory.getGlobalQuickFindInstance();
                if (cyNetwork.getNodeList() != null) {
                        // this network may not have been added to quick find - 
                        // this can happen if an empty network was added
@@ -418,7 +403,10 @@
  *
  * @author Ethan Cerami.
  */
-class UserSelectionListener implements ActionListener {
+final class UserSelectionListener implements ActionListener {
+       
+       private final QuickFind quickFind;
+       
        private final TextIndexComboBox comboBox;
        private final CyApplicationManager applicationManager;
 
@@ -427,9 +415,10 @@
         *
         * @param comboBox TextIndexComboBox.
         */
-       public UserSelectionListener(TextIndexComboBox comboBox, 
CyApplicationManager applicationManager) {
+       public UserSelectionListener(final QuickFind quickFind, 
TextIndexComboBox comboBox, CyApplicationManager applicationManager) {
                this.comboBox = comboBox;
                this.applicationManager = applicationManager;
+               this.quickFind = quickFind;
        }
 
        /**
@@ -445,7 +434,6 @@
                Object o = comboBox.getSelectedItem();
 
                if ((o != null) && o instanceof Hit) {
-                       QuickFind quickFind = 
QuickFindFactory.getGlobalQuickFindInstance();
                        Hit hit = (Hit) comboBox.getSelectedItem();
                        quickFind.selectHit(currentNetwork, hit);
                }
@@ -459,6 +447,8 @@
  * @author Ethan Cerami.
  */
 class RangeSelectionListener implements ChangeListener {
+       
+       private final QuickFind quickFind;
        private final JRangeSliderExtended slider;
        private final CyApplicationManager applicationManager;
 
@@ -467,9 +457,10 @@
         *
         * @param slider JRangeSliderExtended Object.
         */
-       public RangeSelectionListener(JRangeSliderExtended slider, 
CyApplicationManager applicationManager) {
+       public RangeSelectionListener(final QuickFind quickFind, 
JRangeSliderExtended slider, CyApplicationManager applicationManager) {
                this.slider = slider;
                this.applicationManager = applicationManager;
+               this.quickFind = quickFind;
        }
 
        /**
@@ -478,7 +469,6 @@
         * @param e ChangeEvent Object.
         */
        public void stateChanged(ChangeEvent e) {
-               QuickFind quickFind = 
QuickFindFactory.getGlobalQuickFindInstance();
                final CyNetwork cyNetwork = 
applicationManager.getCurrentNetwork();
                GenericIndex index = quickFind.getIndex(cyNetwork);
                NumberRangeModel model = (NumberRangeModel) slider.getModel();

Deleted: 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/quickfind/util/QuickFindFactory.java
===================================================================
--- 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/quickfind/util/QuickFindFactory.java
       2012-03-02 18:04:24 UTC (rev 28412)
+++ 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/quickfind/util/QuickFindFactory.java
       2012-03-02 19:06:33 UTC (rev 28413)
@@ -1,61 +0,0 @@
-
-/*
- Copyright (c) 2006, 2007, The Cytoscape Consortium (www.cytoscape.org)
-
- The Cytoscape Consortium is:
- - Institute for Systems Biology
- - University of California San Diego
- - Memorial Sloan-Kettering Cancer Center
- - Institut Pasteur
- - Agilent Technologies
-
- This library is free software; you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as published
- by the Free Software Foundation; either version 2.1 of the License, or
- any later version.
-
- This library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF
- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  The software and
- documentation provided hereunder is on an "as is" basis, and the
- Institute for Systems Biology and the Whitehead Institute
- have no obligations to provide maintenance, support,
- updates, enhancements or modifications.  In no event shall the
- Institute for Systems Biology and the Whitehead Institute
- be liable to any party for direct, indirect, special,
- incidental or consequential damages, including lost profits, arising
- out of the use of this software and its documentation, even if the
- Institute for Systems Biology and the Whitehead Institute
- have been advised of the possibility of such damage.  See
- the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this library; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
-*/
-
-package org.cytoscape.filter.internal.quickfind.util;
-
-
-
-/**
- * Factory for Creating QuickFind Classes.
- *
- * @author Ethan Cerami.
- */
-public class QuickFindFactory {
-       private static QuickFind quickFind;
-
-       /**
-        * Gets instance of Global QuickFind Singleton.
-        *
-        * @return Global QuickFind Class.
-        */
-       public static QuickFind getGlobalQuickFindInstance() {
-               if (quickFind == null) {
-                       quickFind = new QuickFindImpl();
-               }
-
-               return quickFind;
-       }
-}

Modified: 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/quickfind/util/QuickFindImpl.java
===================================================================
--- 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/quickfind/util/QuickFindImpl.java
  2012-03-02 18:04:24 UTC (rev 28412)
+++ 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/quickfind/util/QuickFindImpl.java
  2012-03-02 19:06:33 UTC (rev 28413)
@@ -30,9 +30,9 @@
 
 import java.util.ArrayList;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.Iterator;
-import java.util.Map.Entry;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 import org.cytoscape.filter.internal.widgets.autocomplete.index.GenericIndex;
 import org.cytoscape.filter.internal.widgets.autocomplete.index.Hit;
@@ -53,21 +53,13 @@
  *
  * @author Ethan Cerami.
  */
-class QuickFindImpl implements QuickFind {
+public class QuickFindImpl implements QuickFind {
        private ArrayList listenerList = new ArrayList();
-       private HashMap networkMap = new HashMap();
+       private Map<CyNetwork, GenericIndex> networkMap = new 
ConcurrentHashMap<CyNetwork, GenericIndex>();
        private int maxProgress;
        private int currentProgress;
        private static final boolean OUTPUT_PERFORMANCE_STATS = false;
 
-       /**
-        * Creates a new QuickFindImpl object.
-        *
-        * @param nodeAttributes  DOCUMENT ME!
-        * @param edgeAttributes  DOCUMENT ME!
-        */
-       public QuickFindImpl() {
-       }
 
        /**
         *  DOCUMENT ME!
@@ -156,11 +148,7 @@
                return true;
        }
 
-       /**
-        *  DOCUMENT ME!
-        *
-        * @param network DOCUMENT ME!
-        */
+       
        public synchronized void removeNetwork(CyNetwork network) {
                networkMap.remove(networkMap);
 
@@ -171,31 +159,15 @@
                }
        }
 
-       /**
-        *  DOCUMENT ME!
-        *
-        * @param network DOCUMENT ME!
-        *
-        * @return  DOCUMENT ME!
-        */
-       public synchronized GenericIndex getIndex(CyNetwork network) {
-               return (GenericIndex) networkMap.get(network);  
+       @Override
+       public GenericIndex getIndex(final CyNetwork network) {
+               return networkMap.get(network); 
        }
 
-       /**
-        *  DOCUMENT ME!
-        *
-        * @param cyNetwork DOCUMENT ME!
-        * @param indexType DOCUMENT ME!
-        * @param controllingAttribute DOCUMENT ME!
-        * @param taskMonitor DOCUMENT ME!
-        *
-        * @return  DOCUMENT ME!
-        */
-       public synchronized GenericIndex reindexNetwork(CyNetwork cyNetwork, 
int indexType,
-                                                       String 
controllingAttribute,
-                                                       TaskMonitor taskMonitor)
-       {
+
+       @Override
+       public synchronized GenericIndex reindexNetwork(CyNetwork cyNetwork, 
int indexType, String controllingAttribute,
+                       TaskMonitor taskMonitor) {
                // If all the values for the controllingAttribute are NULL, 
return null
                CyTable table;
                if (indexType == QuickFind.INDEX_NODES) {

Modified: 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/quickfind/view/QuickFindConfigDialog.java
===================================================================
--- 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/quickfind/view/QuickFindConfigDialog.java
  2012-03-02 18:04:24 UTC (rev 28412)
+++ 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/quickfind/view/QuickFindConfigDialog.java
  2012-03-02 19:06:33 UTC (rev 28413)
@@ -67,7 +67,6 @@
 import org.cytoscape.filter.internal.filters.util.VisualPropertyUtil;
 import org.cytoscape.filter.internal.quickfind.util.CyAttributesUtil;
 import org.cytoscape.filter.internal.quickfind.util.QuickFind;
-import org.cytoscape.filter.internal.quickfind.util.QuickFindFactory;
 import org.cytoscape.filter.internal.widgets.autocomplete.index.GenericIndex;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyTableEntry;
@@ -138,19 +137,18 @@
 
        private final CyApplicationManager applicationManager;
 
-       private final CySwingApplication application;
-
+       private final QuickFind quickFind;
+       
        /**
         * Constructor.
         */
-       public QuickFindConfigDialog(CyApplicationManager applicationManager, 
CySwingApplication application) {
+       public QuickFindConfigDialog(final QuickFind quickFind, 
CyApplicationManager applicationManager, CySwingApplication application) {
                this.applicationManager = applicationManager;
-               this.application = application;
+               this.quickFind = quickFind;
                
                //  Initialize, based on currently selected network
                currentNetwork = applicationManager.getCurrentNetwork();
 
-               QuickFind quickFind = 
QuickFindFactory.getGlobalQuickFindInstance();
                currentIndex = quickFind.getIndex(currentNetwork);
                indexType = currentIndex.getIndexType();
 
@@ -253,7 +251,7 @@
                                        QuickFindConfigDialog.this.dispose();
 
                                        String newAttribute = (String) 
attributeComboBox.getSelectedItem();
-                                       ReindexQuickFind task = new 
ReindexQuickFind(currentNetwork, indexType,
+                                       ReindexQuickFind task = new 
ReindexQuickFind(quickFind, currentNetwork, indexType,
                                                                                
     newAttribute);
                                        
 //                                     // TODO: Port this later
@@ -586,6 +584,9 @@
  * @author Ethan Cerami.
  */
 class ReindexQuickFind implements Task {
+       
+       private final QuickFind quickFind;
+       
        private String newAttributeKey;
        private CyNetwork cyNetwork;
        private int indexType;
@@ -596,17 +597,17 @@
         * @param indexType       Index Type.
         * @param newAttributeKey New Attribute Key for Indexing.
         */
-       ReindexQuickFind(CyNetwork cyNetwork, int indexType, String 
newAttributeKey) {
+       ReindexQuickFind(final QuickFind quickFind, CyNetwork cyNetwork, int 
indexType, String newAttributeKey) {
                this.cyNetwork = cyNetwork;
                this.indexType = indexType;
                this.newAttributeKey = newAttributeKey;
+               this.quickFind = quickFind;
        }
 
        /**
         * Executes Task:  Reindex.
         */
        public void run(TaskMonitor taskMonitor) {
-               QuickFind quickFind = 
QuickFindFactory.getGlobalQuickFindInstance();
                quickFind.reindexNetwork(cyNetwork, indexType, newAttributeKey, 
taskMonitor);
        }
 

Modified: 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/read/filter/FilterReader.java
===================================================================
--- 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/read/filter/FilterReader.java
      2012-03-02 18:04:24 UTC (rev 28412)
+++ 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/read/filter/FilterReader.java
      2012-03-02 19:06:33 UTC (rev 28413)
@@ -24,6 +24,7 @@
 import org.cytoscape.filter.internal.filters.model.TopologyFilter;
 import org.cytoscape.filter.internal.filters.util.FilterUtil;
 import org.cytoscape.filter.internal.filters.util.ServicesUtil;
+import org.cytoscape.filter.internal.quickfind.util.QuickFind;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -31,7 +32,12 @@
 public final class FilterReader {
        private static final Logger logger = 
LoggerFactory.getLogger(FilterReader.class);
 
+       private final QuickFind quickFind;
        
+       public FilterReader(final QuickFind quickFind) {
+               this.quickFind = quickFind;
+       }
+       
        public Collection<CompositeFilter> read(final File file) {
                Collection<CompositeFilter> filters = null;
                InputStream is = null;
@@ -198,7 +204,7 @@
                                String _stringFilterValue = line.substring(13);
                                String[] _values = 
_stringFilterValue.split(":");
                                // controllingAttribute+":" + negation+ 
":"+searchStr+":"+index_type;
-                               StringFilter _strFilter = new StringFilter();
+                               StringFilter _strFilter = new 
StringFilter(quickFind);
                                _strFilter.setParent(retFilter);
                                _strFilter.setControllingAttribute(_values[0]);
                                _strFilter.setNegation((new 
Boolean(_values[1])).booleanValue());
@@ -225,7 +231,7 @@
                                }
 
                                if (dataType.equalsIgnoreCase("double")) {
-                                       NumericFilter<Double> _numFilter = new 
NumericFilter<Double>();
+                                       NumericFilter<Double> _numFilter = new 
NumericFilter<Double>(quickFind);
                                        _numFilter.setParent(retFilter);
                                        
_numFilter.setControllingAttribute(_values[0]);
                                        _numFilter.setNegation((new 
Boolean(_values[1])).booleanValue());
@@ -234,7 +240,7 @@
                                        _numFilter.setIndexType((new 
Integer(_values[4])).intValue());
                                        retFilter.addChild(_numFilter);
                                } else { // dataType = "int"
-                                       NumericFilter<Integer> _numFilter = new 
NumericFilter<Integer>();
+                                       NumericFilter<Integer> _numFilter = new 
NumericFilter<Integer>(quickFind);
                                        _numFilter.setParent(retFilter);
                                        
_numFilter.setControllingAttribute(_values[0]);
                                        _numFilter.setNegation((new 
Boolean(_values[1])).booleanValue());

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