]> gitweb.fperrin.net Git - GpsPrune.git/blob - tim/prune/gui/colour/ColourerCaretaker.java
Version 19, May 2018
[GpsPrune.git] / tim / prune / gui / colour / ColourerCaretaker.java
1 package tim.prune.gui.colour;
2
3 import tim.prune.App;
4 import tim.prune.DataSubscriber;
5
6 /**
7  * Caretaker of the current PointColourer, responsible for listening
8  * to data changes and updating the colourer
9  */
10 public class ColourerCaretaker implements DataSubscriber
11 {
12         /** App object for getting the track */
13         private App _app = null;
14         /** PointColourer object for passing details to */
15         private PointColourer _colourer = null;
16
17         /**
18          * Constructor
19          * @param inApp app object to use
20          */
21         public ColourerCaretaker(App inApp)
22         {
23                 _app = inApp;
24         }
25
26         /**
27          * @param inColourer current colourer object
28          */
29         public void setColourer(PointColourer inColourer)
30         {
31                 _colourer = inColourer;
32                 dataUpdated(ALL);
33         }
34
35         /**
36          * @return point colourer, or null
37          */
38         public PointColourer getColourer()
39         {
40                 return _colourer;
41         }
42
43         /**
44          * Data has been updated
45          */
46         public void dataUpdated(byte inUpdateType)
47         {
48                 if ((inUpdateType &
49                         (DataSubscriber.DATA_ADDED_OR_REMOVED | DataSubscriber.DATA_EDITED | DataSubscriber.UNITS_CHANGED)) > 0
50                         && _colourer != null)
51                 {
52                         _colourer.calculateColours(_app.getTrackInfo());
53                 }
54         }
55
56         /** Don't care about status */
57         public void actionCompleted(String inMessage) {}
58 }