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.data.TrackInfo;
14 * Generic chart component to form baseclass for map and profile charts
16 public abstract class GenericChart extends GenericDisplay implements MouseListener
18 protected Dimension MINIMUM_SIZE = new Dimension(200, 250);
19 protected static final int BORDER_WIDTH = 8;
22 private static final Color COLOR_BORDER_BG = Color.WHITE;
23 private static final Color COLOR_CHART_BG = Color.WHITE;
24 private static final Color COLOR_CHART_LINE = Color.BLACK;
25 private static final Color COLOR_NODATA_TEXT = Color.GRAY;
30 * @param inTrackInfo track info object
32 protected GenericChart(TrackInfo inTrackInfo)
38 * Override minimum size method to restrict map
40 public Dimension getMinimumSize()
46 * Override paint method to draw map
48 public void paint(Graphics g)
51 int width = getWidth();
52 int height = getHeight();
54 g.setColor(COLOR_BORDER_BG);
55 g.fillRect(0, 0, width, height);
56 if (width < 2*BORDER_WIDTH || height < 2*BORDER_WIDTH) return;
57 // blank graph area, with line border
58 g.setColor(COLOR_CHART_BG);
59 g.fillRect(BORDER_WIDTH, BORDER_WIDTH, width - 2*BORDER_WIDTH, height-2*BORDER_WIDTH);
60 g.setColor(COLOR_CHART_LINE);
61 g.drawRect(BORDER_WIDTH, BORDER_WIDTH, width - 2*BORDER_WIDTH, height-2*BORDER_WIDTH);
62 // Display message if no data to be displayed
63 if (_track == null || _track.getNumPoints() <= 0)
65 g.setColor(COLOR_NODATA_TEXT);
66 g.drawString(I18nManager.getText("display.nodata"), 50, height/2);
72 * Method to inform map that data has changed
74 public void dataUpdated(byte inUpdateType)
81 * mouse enter events ignored
83 public void mouseEntered(MouseEvent e)
87 * mouse exit events ignored
89 public void mouseExited(MouseEvent e)
93 * ignore mouse pressed for now too
95 public void mousePressed(MouseEvent e)
99 * and also ignore mouse released
101 public void mouseReleased(MouseEvent e)