4 import java.awt.Dimension;
5 import java.awt.Graphics;
6 import java.awt.event.MouseEvent;
7 import java.awt.event.MouseListener;
9 import tim.prune.I18nManager;
10 import tim.prune.config.ColourScheme;
11 import tim.prune.config.Config;
12 import tim.prune.data.TrackInfo;
16 * Generic chart component to form baseclass for map and profile charts
18 public abstract class GenericChart extends GenericDisplay implements MouseListener
20 protected Dimension MINIMUM_SIZE = new Dimension(200, 250);
21 protected static final int BORDER_WIDTH = 8;
24 private static final Color COLOR_NODATA_TEXT = Color.GRAY;
29 * @param inTrackInfo track info object
31 protected GenericChart(TrackInfo inTrackInfo)
37 * Override minimum size method to restrict map
39 public Dimension getMinimumSize()
45 * Override paint method to draw map
46 * @param inG graphics object
48 public void paint(Graphics inG)
51 int width = getWidth();
52 int height = getHeight();
54 ColourScheme colourScheme = Config.getColourScheme();
55 final Color borderColour = colourScheme.getColour(ColourScheme.IDX_BORDERS);
56 final Color backgroundColour = colourScheme.getColour(ColourScheme.IDX_BACKGROUND);
57 final Color insideColour = backgroundColour;
59 inG.setColor(backgroundColour);
60 inG.fillRect(0, 0, width, height);
61 if (width < 2*BORDER_WIDTH || height < 2*BORDER_WIDTH) return;
62 // blank graph area, with line border
63 inG.setColor(insideColour);
64 inG.fillRect(BORDER_WIDTH, BORDER_WIDTH, width - 2*BORDER_WIDTH, height-2*BORDER_WIDTH);
65 // Display message if no data to be displayed
66 if (_track == null || _track.getNumPoints() <= 0)
68 inG.setColor(COLOR_NODATA_TEXT);
69 inG.drawString(I18nManager.getText("display.nodata"), 50, height/2);
72 inG.setColor(borderColour);
73 inG.drawRect(BORDER_WIDTH, BORDER_WIDTH, width - 2*BORDER_WIDTH, height-2*BORDER_WIDTH);
79 * Method to inform map that data has changed
81 public void dataUpdated(byte inUpdateType)
88 * mouse enter events ignored
90 public void mouseEntered(MouseEvent e)
94 * mouse exit events ignored
96 public void mouseExited(MouseEvent e)
100 * ignore mouse pressed for now too
102 public void mousePressed(MouseEvent e)
106 * and also ignore mouse released
108 public void mouseReleased(MouseEvent e)