]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - src/tim/prune/gui/colour/ColourerCaretaker.java
Moved source into separate src directory due to popular request
[GpsPrune.git] / src / tim / prune / gui / colour / ColourerCaretaker.java
diff --git a/src/tim/prune/gui/colour/ColourerCaretaker.java b/src/tim/prune/gui/colour/ColourerCaretaker.java
new file mode 100644 (file)
index 0000000..84f1553
--- /dev/null
@@ -0,0 +1,58 @@
+package tim.prune.gui.colour;
+
+import tim.prune.App;
+import tim.prune.DataSubscriber;
+
+/**
+ * Caretaker of the current PointColourer, responsible for listening
+ * to data changes and updating the colourer
+ */
+public class ColourerCaretaker implements DataSubscriber
+{
+       /** App object for getting the track */
+       private App _app = null;
+       /** PointColourer object for passing details to */
+       private PointColourer _colourer = null;
+
+       /**
+        * Constructor
+        * @param inApp app object to use
+        */
+       public ColourerCaretaker(App inApp)
+       {
+               _app = inApp;
+       }
+
+       /**
+        * @param inColourer current colourer object
+        */
+       public void setColourer(PointColourer inColourer)
+       {
+               _colourer = inColourer;
+               dataUpdated(ALL);
+       }
+
+       /**
+        * @return point colourer, or null
+        */
+       public PointColourer getColourer()
+       {
+               return _colourer;
+       }
+
+       /**
+        * Data has been updated
+        */
+       public void dataUpdated(byte inUpdateType)
+       {
+               if ((inUpdateType &
+                       (DataSubscriber.DATA_ADDED_OR_REMOVED | DataSubscriber.DATA_EDITED | DataSubscriber.UNITS_CHANGED)) > 0
+                       && _colourer != null)
+               {
+                       _colourer.calculateColours(_app.getTrackInfo());
+               }
+       }
+
+       /** Don't care about status */
+       public void actionCompleted(String inMessage) {}
+}