X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;ds=sidebyside;f=tim%2Fprune%2Fgui%2Fcolour%2FColourerCaretaker.java;fp=tim%2Fprune%2Fgui%2Fcolour%2FColourerCaretaker.java;h=facbb26a7b9ac9cb5ad2023dcfd61439176646a5;hb=a6197ddcaac11c0b943183da7d46169742d024af;hp=0000000000000000000000000000000000000000;hpb=88f2c3647ed9e055090484f01a959d4581f85e7d;p=GpsPrune.git diff --git a/tim/prune/gui/colour/ColourerCaretaker.java b/tim/prune/gui/colour/ColourerCaretaker.java new file mode 100644 index 0000000..facbb26 --- /dev/null +++ b/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)) > 0 + && _colourer != null) + { + _colourer.calculateColours(_app.getTrackInfo()); + } + } + + /** Don't care about status */ + public void actionCompleted(String inMessage) {} +}