Print

Print


Author: [log in to unmask]
Date: Fri Mar 27 11:16:54 2015
New Revision: 2597

Log:
Add access to global plotter list from PlotterRegistry.

Modified:
    java/trunk/monitoring-util/src/main/java/org/hps/monitoring/plotting/PlotterRegistry.java

Modified: java/trunk/monitoring-util/src/main/java/org/hps/monitoring/plotting/PlotterRegistry.java
 =============================================================================
--- java/trunk/monitoring-util/src/main/java/org/hps/monitoring/plotting/PlotterRegistry.java	(original)
+++ java/trunk/monitoring-util/src/main/java/org/hps/monitoring/plotting/PlotterRegistry.java	Fri Mar 27 11:16:54 2015
@@ -1,29 +1,35 @@
-/**
- * 
- */
 package org.hps.monitoring.plotting;
 
 import hep.aida.IPlotter;
 import hep.aida.IPlotterRegion;
 
+import java.util.Collection;
 import java.util.HashMap;
-import java.util.HashSet;
+import java.util.LinkedHashSet;
 import java.util.Map.Entry;
 import java.util.Set;
 
 /**
+ * This is a global registry of plotters used by the monitoring plot factory. 
  * @author Jeremy McCormick <[log in to unmask]>
- *
  */
 public class PlotterRegistry {
 
-    Set<IPlotter> plotters = new HashSet<IPlotter>();    
+    Set<IPlotter> plotters = new LinkedHashSet<IPlotter>();    
     HashMap<IPlotter, int[]> tabMap = new HashMap<IPlotter, int[]>();
     
+    /**
+     * Clear the list of plotters.
+     */
     public void clear() {
         plotters.clear();
     }
     
+    /**
+     * Find a plotter that contains the region object.
+     * @param region The plotter region object.
+     * @return The plotter that contains this region or null if none.
+     */
     public IPlotter find(IPlotterRegion region) {
         for (IPlotter plotter : plotters) {
             for (int i = 0; i < plotter.numberOfRegions(); i++) {
@@ -35,10 +41,23 @@
         return null;
     }
     
+    /**
+     * Register a plotter along with its tab indices.
+     * @param plotter The plotter to register.
+     * @param index1 The top tab index.
+     * @param index2 The sub-tab index.
+     */
     public void register(IPlotter plotter, int index1, int index2) {
         tabMap.put(plotter, new int[] { index1, index2 });
     }
     
+    /**
+     * Find a plotter by its tab indices e.g. those that are currently selected
+     * in an application.
+     * @param index1 The top tab index.
+     * @param index2 The sub-tab index.
+     * @return The plotter or null if none found.
+     */
     public IPlotter find(int index1, int index2) {
         for (Entry<IPlotter, int[]> entry : tabMap.entrySet()) {
             int[] indices = entry.getValue();
@@ -48,4 +67,12 @@
         }
         return null;
     }
+    
+    /**
+     * Get the current collection of plotters.
+     * @return The current collection of plotters.
+     */
+    public Collection<IPlotter> getPlotters() {
+        return plotters;
+    }
 }