annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/PanControl.java @ 551:13c7f90917fc

Added a PanControl to pan charts. flys-client/trunk@2064 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 07 Jun 2011 13:07:27 +0000
parents
children c5fc3fa02edb
rev   line source
551
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui.chart;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 import java.util.ArrayList;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4 import java.util.List;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6 import com.google.gwt.core.client.GWT;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8 import com.smartgwt.client.types.Overflow;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9 import com.smartgwt.client.types.SelectionType;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10 import com.smartgwt.client.widgets.Canvas;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import com.smartgwt.client.widgets.ImgButton;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12 import com.smartgwt.client.widgets.events.MouseDownEvent;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import com.smartgwt.client.widgets.events.MouseDownHandler;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 import com.smartgwt.client.widgets.events.MouseMoveEvent;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 import com.smartgwt.client.widgets.events.MouseMoveHandler;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 import com.smartgwt.client.widgets.events.MouseOutEvent;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17 import com.smartgwt.client.widgets.events.MouseOutHandler;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 import com.smartgwt.client.widgets.events.MouseUpEvent;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 import com.smartgwt.client.widgets.events.MouseUpHandler;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 import de.intevation.flys.client.client.event.HasPanHandlers;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 import de.intevation.flys.client.client.event.PanEvent;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 import de.intevation.flys.client.client.event.PanHandler;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 /**
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28 */
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29 public class PanControl
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 extends ImgButton
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 implements MouseDownHandler, MouseMoveHandler, MouseUpHandler,
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 MouseOutHandler, HasPanHandlers
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 {
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 protected ChartOutputTab chartTab;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 protected List<PanHandler> handlers;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 protected int[] start;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39 protected int[] end;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42 public PanControl(ChartOutputTab chartTab, String imageUrl) {
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 super();
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45 this.chartTab = chartTab;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 this.handlers = new ArrayList<PanHandler>();
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 this.start = new int[] { -1, -1 };
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 this.end = new int[] { -1, -1 };
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50 String baseUrl = GWT.getHostPageBaseURL();
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 setSrc(baseUrl + imageUrl);
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 setActionType(SelectionType.CHECKBOX);
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53 setSize(20);
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54 setShowRollOver(false);
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55 setSelected(false);
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57 chartTab.getChartPanel().addMouseDownHandler(this);
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 chartTab.getChartPanel().addMouseMoveHandler(this);
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59 chartTab.getChartPanel().addMouseUpHandler(this);
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60 chartTab.getChartPanel().addMouseOutHandler(this);
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61 }
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 /**
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 * Method used to register a new PanHandler.
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 *
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 * @param handler A new PanHandler.
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 */
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 public void addPanHandler(PanHandler handler) {
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70 if (handler != null) {
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 handlers.add(handler);
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 }
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73 }
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76 /**
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 * This event starts the dragging operation if the control is activated.
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78 *
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 * @param event The mouse down event which contains the start coordinates.
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 */
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 public void onMouseDown(MouseDownEvent event) {
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 if (!isSelected()) {
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 return;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 }
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86 Canvas parent = chartTab.getChartPanel().getParentElement();
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87 parent.setOverflow(Overflow.HIDDEN);
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89 start[0] = event.getX();
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
90 start[1] = event.getY();
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92 end[0] = start[0];
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93 end[1] = start[1];
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
94 }
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97 /**
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98 * This event is used to reposition the chart image based on the current
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99 * drag operation.
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100 *
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101 * @param event The move event which contains the new coordinates to update
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
102 * the chart image position.
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 */
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104 public void onMouseMove(MouseMoveEvent event) {
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105 if (!isSelected() || start[0] == -1 || start[1] == -1) {
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106 return;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107 }
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
108
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
109 int x = event.getX() - end[0];
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110 int y = event.getY() - end[1];
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
111
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
112 end[0] = end[0] + x;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
113 end[1] = end[1] + y;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
114
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
115 Canvas c = chartTab.getChartPanel();
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
116 c.moveBy(x, y);
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
117 }
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
118
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
119
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
120 /**
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
121 * This event stops the dragging operation and fires a DragEnd event to the
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
122 * registered listeners.
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
123 *
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
124 * @param event The mouse up event which contains the end coordinates.
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
125 */
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
126 public void onMouseUp(MouseUpEvent event) {
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127 if (!isSelected()) {
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
128 return;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
129 }
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
130
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
131 end[0] = event.getX();
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
132 end[1] = event.getY();
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
133
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
134 Canvas parent = chartTab.getChartPanel().getParentElement();
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
135 parent.setOverflow(Overflow.AUTO);
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
136
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
137 fireOnPan();
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
138
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
139 start[0] = -1;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140 start[1] = -1;
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
141 }
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
142
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
143
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
144 /**
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
145 * This event is used to cancel the current dragging operation.
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
146 *
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
147 * @param event The mouse out event.
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
148 */
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
149 public void onMouseOut(MouseOutEvent event) {
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
150 // TODO Cancel dragging if mouse pointer leaves chart area
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
151 }
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
152
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
153
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
154 /**
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
155 * A pan event is fired to inform the registered listeners about a pan
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
156 * operation has finished.
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
157 */
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
158 protected void fireOnPan() {
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
159 PanEvent event = new PanEvent(start, end);
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
160
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
161 for (PanHandler handler: handlers) {
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
162 handler.onPan(event);
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
163 }
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
164 }
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
165 }
13c7f90917fc Added a PanControl to pan charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
166 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org