X-Git-Url: http://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=src%2Ftim%2Fprune%2Fgui%2Fcolour%2FColourerCaretaker.java;fp=src%2Ftim%2Fprune%2Fgui%2Fcolour%2FColourerCaretaker.java;h=84f1553c4cf7e0e1e6abadef2a9d232b4264d28b;hp=0000000000000000000000000000000000000000;hb=ce6f2161b8596f7018d6a76bff79bc9e571f35fd;hpb=2d8cb72e84d5cc1089ce77baf1e34ea3ea2f8465 diff --git a/src/tim/prune/gui/colour/ColourerCaretaker.java b/src/tim/prune/gui/colour/ColourerCaretaker.java new file mode 100644 index 0000000..84f1553 --- /dev/null +++ b/src/tim/prune/gui/colour/ColourerCaretaker.java @@ -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) {} +}