annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/chart/ChartOutputTab.java @ 8856:5e38e2924c07 3.2.x

Fix code style.
author Tom Gottfried <tom@intevation.de>
date Thu, 18 Jan 2018 20:12:01 +0100
parents 4c99b8783e1d
children 05405292a7ca
rev   line source
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
6 * documentation coming with Dive4Elements River for details.
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
9 package org.dive4elements.river.client.client.ui.chart;
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import com.google.gwt.core.client.GWT;
538
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
12 import com.google.gwt.user.client.rpc.AsyncCallback;
610
ea2191b1299d #170 Changed the DOM manipulation while zoom and drag operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 561
diff changeset
13 import com.smartgwt.client.types.Overflow;
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 import com.smartgwt.client.widgets.Canvas;
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 import com.smartgwt.client.widgets.Img;
2983
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 2936
diff changeset
16 import com.smartgwt.client.widgets.events.ResizedEvent;
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 2936
diff changeset
17 import com.smartgwt.client.widgets.events.ResizedHandler;
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 import com.smartgwt.client.widgets.layout.HLayout;
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 import com.smartgwt.client.widgets.layout.VLayout;
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
21 import org.dive4elements.river.client.client.Config;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
22 import org.dive4elements.river.client.client.event.OutputParameterChangeEvent;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
23 import org.dive4elements.river.client.client.event.OutputParameterChangeHandler;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
24 import org.dive4elements.river.client.client.event.PanEvent;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
25 import org.dive4elements.river.client.client.event.PanHandler;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
26 import org.dive4elements.river.client.client.event.RedrawRequestEvent;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
27 import org.dive4elements.river.client.client.event.RedrawRequestEvent.Type;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
28 import org.dive4elements.river.client.client.event.RedrawRequestHandler;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
29 import org.dive4elements.river.client.client.event.ZoomEvent;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
30 import org.dive4elements.river.client.client.event.ZoomHandler;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
31 import org.dive4elements.river.client.client.services.ChartInfoService;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
32 import org.dive4elements.river.client.client.services.ChartInfoServiceAsync;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
33 import org.dive4elements.river.client.client.ui.CollectionView;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
34 import org.dive4elements.river.client.client.ui.OutputTab;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
35 import org.dive4elements.river.client.shared.Transform2D;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
36 import org.dive4elements.river.client.shared.model.Axis;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
37 import org.dive4elements.river.client.shared.model.ChartInfo;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
38 import org.dive4elements.river.client.shared.model.Collection;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
39 import org.dive4elements.river.client.shared.model.OutputMode;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
40 import org.dive4elements.river.client.shared.model.ZoomObj;
2983
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 2936
diff changeset
41
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 2936
diff changeset
42 import java.util.Date;
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 2936
diff changeset
43 import java.util.HashMap;
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 2936
diff changeset
44 import java.util.Map;
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 2936
diff changeset
45 import java.util.Stack;
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 /**
4037
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3717
diff changeset
49 * Tab representing and showing one Chart-output (diagram).
1545
2f0150f21e77 Added basic UI to enter manual points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1474
diff changeset
50 *
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 */
531
c17c593f8732 The chart in the ChartOutputTab is refreshed when there occur any changes in the chart theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 527
diff changeset
53 public class ChartOutputTab
c17c593f8732 The chart in the ChartOutputTab is refreshed when there occur any changes in the chart theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 527
diff changeset
54 extends OutputTab
855
2c48d75c4ab7 Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 779
diff changeset
55 implements ResizedHandler,
2c48d75c4ab7 Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 779
diff changeset
56 OutputParameterChangeHandler,
2c48d75c4ab7 Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 779
diff changeset
57 ZoomHandler,
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 855
diff changeset
58 PanHandler,
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 855
diff changeset
59 RedrawRequestHandler
531
c17c593f8732 The chart in the ChartOutputTab is refreshed when there occur any changes in the chart theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 527
diff changeset
60 {
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61 public static final int DEFAULT_CHART_WIDTH = 600;
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62 public static final int DEFAULT_CHART_HEIGHT = 500;
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63
3717
3b4cef59836a KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents: 3694
diff changeset
64 public static final int THEMEPANEL_MIN_WIDTH = 250;
527
902609b5cc79 Added a navigation panel to the bottom of the theme control panel to move themes up/down (function not implemented yet).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 523
diff changeset
65
855
2c48d75c4ab7 Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 779
diff changeset
66 /** The service that is used to fetch chart information. */
538
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
67 protected ChartInfoServiceAsync info = GWT.create(ChartInfoService.class);
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
68
552
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
69 /** The ChartInfo object that provides information about the current
855
2c48d75c4ab7 Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 779
diff changeset
70 * chart. */
552
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
71 protected ChartInfo chartInfo;
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
72
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7137
diff changeset
73 /** Transformer used to transform image pixels into chart (data)
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7137
diff changeset
74 * coordinates. */
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
75 protected Transform2D[] transformer;
538
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
76
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
77 /** The collection view.*/
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
78 protected CollectionView view;
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
79
1579
637481aeae43 javadoc
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
80 /** The ThemePanel to expose control over themes (facettes). */
911
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 859
diff changeset
81 protected ChartThemePanel ctp;
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 859
diff changeset
82
855
2c48d75c4ab7 Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 779
diff changeset
83 /** The canvas that wraps the chart toolbar. */
2936
a805118fffa6 Fixed zooming in navigatable charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2542
diff changeset
84 protected ChartToolbar tbarPanel;
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85
855
2c48d75c4ab7 Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 779
diff changeset
86 /** The canvas that wraps the theme editor. */
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87 protected Canvas left;
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88
855
2c48d75c4ab7 Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 779
diff changeset
89 /** The canvas that wraps the chart. */
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
90 protected Canvas right;
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91
610
ea2191b1299d #170 Changed the DOM manipulation while zoom and drag operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 561
diff changeset
92 protected Img chart;
ea2191b1299d #170 Changed the DOM manipulation while zoom and drag operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 561
diff changeset
93
855
2c48d75c4ab7 Minor cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 779
diff changeset
94 /** Chart zoom options. */
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
95 protected int[] xrange;
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
96 protected int[] yrange;
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
97
1579
637481aeae43 javadoc
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1555
diff changeset
98 /** Stack of ZoomObj to allow 'redo last zoom'-kind of actions. */
1280
66192d170c79 Bugfix: #179 and #198 Zoom-out will no longer work with a factor but with stacked chart extents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 911
diff changeset
99 protected Stack<ZoomObj> zoomStack;
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
100 protected Number[] zoom;
542
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
101
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
102
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 /**
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104 * The default constructor to create a new ChartOutputTab.
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105 *
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106 * @param title The title of this tab.
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107 * @param collection The Collection which this chart belongs to.
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
108 * @param mode The OutputMode.
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 855
diff changeset
109 * @param collectionView The shown collection.
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110 */
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
111 public ChartOutputTab(
615
ba1b27b7d282 Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 612
diff changeset
112 String title,
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
113 Collection collection,
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
114 OutputMode mode,
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
115 CollectionView collectionView
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
116 ){
1364
9981ba2ee13a Display the datacage button in the map toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1344
diff changeset
117 super(title, collection, collectionView, mode);
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
118
538
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
119 view = collectionView;
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
120 left = new Canvas();
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
121 right = new Canvas();
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
122 xrange = new int[2];
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
123 yrange = new int[2];
1280
66192d170c79 Bugfix: #179 and #198 Zoom-out will no longer work with a factor but with stacked chart extents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 911
diff changeset
124 zoomStack = new Stack<ZoomObj>();
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
125
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
126 zoom = new Number[] {
3694
0a277b041770 Improved panning in TimeseriesCharts (issue715).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3547
diff changeset
127 new Double(0), new Double(1),
0a277b041770 Improved panning in TimeseriesCharts (issue715).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3547
diff changeset
128 new Double(0), new Double(1) };
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
129
3532
69fdeca46f7a ThemePanel are now resizable (fix for #750)
Christian Lins <christian.lins@intevation.de>
parents: 3371
diff changeset
130 left.setBorder("1px solid gray");
527
902609b5cc79 Added a navigation panel to the bottom of the theme control panel to move themes up/down (function not implemented yet).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 523
diff changeset
131 left.setWidth(THEMEPANEL_MIN_WIDTH);
902609b5cc79 Added a navigation panel to the bottom of the theme control panel to move themes up/down (function not implemented yet).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 523
diff changeset
132 left.setMinWidth(THEMEPANEL_MIN_WIDTH);
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
133 right.setWidth("*");
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
134
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
135 VLayout vLayout = new VLayout();
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
136 vLayout.setMembersMargin(2);
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
137
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
138 HLayout hLayout = new HLayout();
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
139 hLayout.setWidth100();
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140 hLayout.setHeight100();
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
141 hLayout.setMembersMargin(10);
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
142
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
143 hLayout.addMember(left);
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
144 hLayout.addMember(right);
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
145
3370
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
146 ctp = createThemePanel(mode, collectionView);
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
147 if (ctp != null) {
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
148 ctp.addRedrawRequestHandler(this);
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
149 ctp.addOutputParameterChangeHandler(this);
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
150 left.addChild(ctp);
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 855
diff changeset
151 }
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 855
diff changeset
152 else {
3370
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
153 left.setVisible(false);
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 855
diff changeset
154 }
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 855
diff changeset
155
610
ea2191b1299d #170 Changed the DOM manipulation while zoom and drag operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 561
diff changeset
156 chart = createChartImg();
ea2191b1299d #170 Changed the DOM manipulation while zoom and drag operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 561
diff changeset
157 right.addChild(chart);
ea2191b1299d #170 Changed the DOM manipulation while zoom and drag operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 561
diff changeset
158 right.setOverflow(Overflow.HIDDEN);
3547
8a16ff3b9a7f Removed trailing whitespace
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3534
diff changeset
159
3532
69fdeca46f7a ThemePanel are now resizable (fix for #750)
Christian Lins <christian.lins@intevation.de>
parents: 3371
diff changeset
160 left.setShowResizeBar(true);
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
161
3370
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
162 tbarPanel = createChartToolbar(this);
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
163 vLayout.addMember(tbarPanel);
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
164 vLayout.addMember(hLayout);
3717
3b4cef59836a KMSpinner refactoring
Christian Lins <christian.lins@intevation.de>
parents: 3694
diff changeset
165 vLayout.setOverflow(Overflow.HIDDEN);
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
166
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
167 setPane(vLayout);
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
168
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
169 right.addResizedHandler(this);
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
170 }
3371
b6575b8c8db0 Removed superfluous imports and trailinh whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3370
diff changeset
171
b6575b8c8db0 Removed superfluous imports and trailinh whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3370
diff changeset
172
3370
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
173 public ChartThemePanel createThemePanel(
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
174 OutputMode mode, CollectionView view
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
175 ) {
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
176 // Output "cross_section" needs slightly modified ThemePanel
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
177 // (with action buttons).
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
178 if (mode.getName().equals("cross_section")) {
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
179 return new CrossSectionChartThemePanel(mode, view);
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
180 }
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
181 else {
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
182 return new ChartThemePanel(mode, view);
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
183 }
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
184 }
3371
b6575b8c8db0 Removed superfluous imports and trailinh whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3370
diff changeset
185
b6575b8c8db0 Removed superfluous imports and trailinh whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3370
diff changeset
186
3370
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
187 public ChartToolbar createChartToolbar(ChartOutputTab tab) {
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
188 return new ChartToolbar(tab);
08b2472111aa New implementation of OverviewOutputTab which has a minimalistic chart toolbar and no chart theme panel. The overview image is fetched as single image from server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3347
diff changeset
189 }
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
190
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
191
2983
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 2936
diff changeset
192 public void toggleThemePanel() {
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 2936
diff changeset
193 this.left.setVisible(!left.isVisible());
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 2936
diff changeset
194 }
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 2936
diff changeset
195
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 2936
diff changeset
196
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
197 /**
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
198 * This method is called after the chart panel has resized. It removes the
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
199 * chart - if existing - and requests a new one with adjusted size.
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
200 *
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
201 * @param event The resize event.
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
202 */
2983
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 2936
diff changeset
203 @Override
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
204 public void onResized(ResizedEvent event) {
531
c17c593f8732 The chart in the ChartOutputTab is refreshed when there occur any changes in the chart theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 527
diff changeset
205 updateChartPanel();
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
206 updateChartInfo();
531
c17c593f8732 The chart in the ChartOutputTab is refreshed when there occur any changes in the chart theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 527
diff changeset
207 }
c17c593f8732 The chart in the ChartOutputTab is refreshed when there occur any changes in the chart theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 527
diff changeset
208
c17c593f8732 The chart in the ChartOutputTab is refreshed when there occur any changes in the chart theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 527
diff changeset
209
1550
9bf1ffd53dfb Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1545
diff changeset
210 /** For RESET type of events, just reset the ranges, otherwise do a
9bf1ffd53dfb Cosmetics, docs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1545
diff changeset
211 * complete refresh of panel, info and collection. */
2983
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 2936
diff changeset
212 @Override
911
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 859
diff changeset
213 public void onRedrawRequest(RedrawRequestEvent event) {
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 859
diff changeset
214 if (event.getType() == Type.RESET) {
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 859
diff changeset
215 resetRanges();
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 859
diff changeset
216 }
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 859
diff changeset
217 else {
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 859
diff changeset
218 ctp.updateCollection();
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 859
diff changeset
219 updateChartPanel();
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 859
diff changeset
220 updateChartInfo();
4668357b255e #259 Refresh charts after loading new Themes / Artifacts from Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 859
diff changeset
221 }
858
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 855
diff changeset
222 }
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 855
diff changeset
223
9f07f67f60a5 Subclassed ChartThemePanel, trigger redraws of Chart when interaction with
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 855
diff changeset
224
531
c17c593f8732 The chart in the ChartOutputTab is refreshed when there occur any changes in the chart theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 527
diff changeset
225 /**
c17c593f8732 The chart in the ChartOutputTab is refreshed when there occur any changes in the chart theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 527
diff changeset
226 * Listens to change event in the chart them panel and updates chart after
c17c593f8732 The chart in the ChartOutputTab is refreshed when there occur any changes in the chart theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 527
diff changeset
227 * receiving such an event.
c17c593f8732 The chart in the ChartOutputTab is refreshed when there occur any changes in the chart theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 527
diff changeset
228 *
c17c593f8732 The chart in the ChartOutputTab is refreshed when there occur any changes in the chart theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 527
diff changeset
229 * @param event The OutputParameterChangeEvent.
c17c593f8732 The chart in the ChartOutputTab is refreshed when there occur any changes in the chart theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 527
diff changeset
230 */
2983
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 2936
diff changeset
231 @Override
531
c17c593f8732 The chart in the ChartOutputTab is refreshed when there occur any changes in the chart theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 527
diff changeset
232 public void onOutputParameterChanged(OutputParameterChangeEvent event) {
2477
936e3e6cd9b9 Issue 502.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2391
diff changeset
233 updateChartInfo();
531
c17c593f8732 The chart in the ChartOutputTab is refreshed when there occur any changes in the chart theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 527
diff changeset
234 updateChartPanel();
c17c593f8732 The chart in the ChartOutputTab is refreshed when there occur any changes in the chart theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 527
diff changeset
235 }
c17c593f8732 The chart in the ChartOutputTab is refreshed when there occur any changes in the chart theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 527
diff changeset
236
c17c593f8732 The chart in the ChartOutputTab is refreshed when there occur any changes in the chart theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 527
diff changeset
237
538
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
238 /**
541
ed29599e06e5 Added the ChartOutputTab as ZoomHandler for the ZoomboxControl - no zooming is done yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 538
diff changeset
239 * Listens to zoom events and refreshes the current chart in such case.
ed29599e06e5 Added the ChartOutputTab as ZoomHandler for the ZoomboxControl - no zooming is done yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 538
diff changeset
240 *
ed29599e06e5 Added the ChartOutputTab as ZoomHandler for the ZoomboxControl - no zooming is done yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 538
diff changeset
241 * @param evt The ZoomEvent that stores the coordinates for zooming.
ed29599e06e5 Added the ChartOutputTab as ZoomHandler for the ZoomboxControl - no zooming is done yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 538
diff changeset
242 */
2983
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 2936
diff changeset
243 @Override
541
ed29599e06e5 Added the ChartOutputTab as ZoomHandler for the ZoomboxControl - no zooming is done yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 538
diff changeset
244 public void onZoom(ZoomEvent evt) {
1280
66192d170c79 Bugfix: #179 and #198 Zoom-out will no longer work with a factor but with stacked chart extents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 911
diff changeset
245 zoomStack.push(new ZoomObj(zoom[0], zoom[1], zoom[2], zoom[3]));
66192d170c79 Bugfix: #179 and #198 Zoom-out will no longer work with a factor but with stacked chart extents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 911
diff changeset
246
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
247 xrange[0] = evt.getStartX();
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
248 xrange[1] = evt.getEndX();
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
249 yrange[0] = evt.getStartY();
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
250 yrange[1] = evt.getEndY();
541
ed29599e06e5 Added the ChartOutputTab as ZoomHandler for the ZoomboxControl - no zooming is done yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 538
diff changeset
251
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
252 xrange[0] = xrange[0] < xrange[1] ? xrange[0] : xrange[1];
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
253 yrange[0] = yrange[0] < yrange[1] ? yrange[0] : yrange[1];
541
ed29599e06e5 Added the ChartOutputTab as ZoomHandler for the ZoomboxControl - no zooming is done yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 538
diff changeset
254
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
255 translateCoordinates();
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
256
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
257 updateChartInfo();
542
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
258 updateChartPanel();
541
ed29599e06e5 Added the ChartOutputTab as ZoomHandler for the ZoomboxControl - no zooming is done yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 538
diff changeset
259 }
ed29599e06e5 Added the ChartOutputTab as ZoomHandler for the ZoomboxControl - no zooming is done yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 538
diff changeset
260
ed29599e06e5 Added the ChartOutputTab as ZoomHandler for the ZoomboxControl - no zooming is done yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 538
diff changeset
261
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
262 protected Number[] translateCoordinates() {
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
263 if (xrange == null || (xrange[0] == 0 && xrange[1] == 0)) {
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
264 zoom[0] = 0d;
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
265 zoom[1] = 1d;
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
266 }
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
267 else {
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
268 translateXCoordinates();
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
269 }
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
270
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
271 if (yrange == null || (yrange[0] == 0 && yrange[1] == 0)) {
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
272 zoom[2] = 0d;
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
273 zoom[3] = 1d;
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
274 }
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
275 else {
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
276 translateYCoordinates();
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
277 }
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
278
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
279 return zoom;
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
280 }
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
281
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
282
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
283 protected void translateXCoordinates() {
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
284 Axis xAxis = chartInfo.getXAxis(0);
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
285
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
286 Number xmin = xAxis.getMin();
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
287 Number xmax = xAxis.getMax();
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
288 Number xRange = subtract(xmax, xmin);
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
289
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
290 Transform2D transformer = getTransformer(0);
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
291
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
292 double[] start = transformer.transform(xrange[0], yrange[0]);
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
293 double[] end = transformer.transform(xrange[1], yrange[1]);
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
294
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
295 zoom[0] = divide(subtract(start[0], xmin), xRange);
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
296 zoom[1] = divide(subtract(end[0], xmin), xRange);
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
297 }
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
298
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
299
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
300 protected void translateYCoordinates() {
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
301 Axis yAxis = chartInfo.getYAxis(0);
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
302
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
303 Number ymin = yAxis.getMin();
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
304 Number ymax = yAxis.getMax();
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
305 Number yRange = subtract(ymax, ymin);
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
306
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
307 Transform2D transformer = getTransformer(0);
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
308
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
309 double[] start = transformer.transform(xrange[0], yrange[0]);
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
310 double[] end = transformer.transform(xrange[1], yrange[1]);
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
311
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
312 zoom[2] = divide(subtract(start[1], ymin), yRange);
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
313 zoom[3] = divide(subtract(end[1], ymin), yRange);
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
314 }
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
315
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
316
2983
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 2936
diff changeset
317 @Override
552
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
318 public void onPan(PanEvent event) {
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
319 if (chartInfo == null) {
555
33b86f5b1168 Don't crash if there is no transformer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 552
diff changeset
320 return;
33b86f5b1168 Don't crash if there is no transformer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 552
diff changeset
321 }
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
322
552
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
323 int[] start = event.getStartPos();
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
324 int[] end = event.getEndPos();
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
325
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
326 Transform2D t = getTransformer();
552
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
327
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
328 double[] ts = t.transform(start[0], start[1]);
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
329 double[] tt = t.transform(end[0], end[1]);
552
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
330
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
331 double diffX = ts[0] - tt[0];
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
332 double diffY = ts[1] - tt[1];
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
333
552
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
334 Axis xAxis = chartInfo.getXAxis(0);
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
335 Axis yAxis = chartInfo.getYAxis(0);
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
336
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
337 Number[] x = panAxis(xAxis, diffX);
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
338 Number[] y = panAxis(yAxis, diffY);
552
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
339
3694
0a277b041770 Improved panning in TimeseriesCharts (issue715).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3547
diff changeset
340 // Set the zoom coordinates.
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
341 zoom[0] = x[0];
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
342 zoom[1] = x[1];
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
343 zoom[2] = y[0];
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
344 zoom[3] = y[1];
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
345
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
346 updateChartInfo();
552
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
347 updateChartPanel();
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
348 }
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
349
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
350
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
351 protected Number[] panAxis(Axis axis, double diff) {
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
352 Number min = axis.getFrom();
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
353 Number max = axis.getTo();
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
354
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
355 min = add(min, diff);
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
356 max = add(max, diff);
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
357
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
358 return computeZoom(axis, min, max);
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
359 }
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
360
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
361
543
9c2cf4811a7d Added a control to reset the zoom of a chart. In addition, the zoom buttons are displayed as ImgButtons now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 542
diff changeset
362 public void resetRanges() {
1281
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
363 zoomStack.push(new ZoomObj(zoom[0], zoom[1], zoom[2], zoom[3]));
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
364
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
365 zoom[0] = 0d;
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
366 zoom[1] = 1d;
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
367 zoom[2] = 0d;
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
368 zoom[3] = 1d;
543
9c2cf4811a7d Added a control to reset the zoom of a chart. In addition, the zoom buttons are displayed as ImgButtons now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 542
diff changeset
369
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
370 updateChartInfo();
543
9c2cf4811a7d Added a control to reset the zoom of a chart. In addition, the zoom buttons are displayed as ImgButtons now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 542
diff changeset
371 updateChartPanel();
9c2cf4811a7d Added a control to reset the zoom of a chart. In addition, the zoom buttons are displayed as ImgButtons now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 542
diff changeset
372 }
9c2cf4811a7d Added a control to reset the zoom of a chart. In addition, the zoom buttons are displayed as ImgButtons now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 542
diff changeset
373
9c2cf4811a7d Added a control to reset the zoom of a chart. In addition, the zoom buttons are displayed as ImgButtons now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 542
diff changeset
374
541
ed29599e06e5 Added the ChartOutputTab as ZoomHandler for the ZoomboxControl - no zooming is done yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 538
diff changeset
375 /**
1281
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
376 * This method zooms the current chart out by a given <i>factor</i>.
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
377 *
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
378 * @param factor The factor should be between 0-100.
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
379 */
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
380 public void zoomOut(int factor) {
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
381 if (factor < 0 || factor > 100 || chartInfo == null) {
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
382 return;
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
383 }
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
384
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
385 zoomStack.push(new ZoomObj(zoom[0], zoom[1], zoom[2], zoom[3]));
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
386
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
387 Axis xAxis = chartInfo.getXAxis(0);
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
388 Axis yAxis = chartInfo.getYAxis(0);
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
389
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
390 Number[] x = zoomAxis(xAxis, factor);
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
391 Number[] y = zoomAxis(yAxis, factor);
1281
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
392
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
393 zoom[0] = x[0];
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
394 zoom[1] = x[1];
1282
3904519ec161 Bugfix: #179 Repaired broken zoom-out-by-factor function for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1281
diff changeset
395 zoom[2] = y[0];
1281
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
396 zoom[3] = y[1];
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
397
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
398 updateChartInfo();
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
399 updateChartPanel();
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
400 }
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
401
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
402
4782c0ce9cec Re-added the function to zoom-out charts by a given factor (10%).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1280
diff changeset
403 /**
2542
c48e3df12c4a Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2477
diff changeset
404 * This method is used to zoom out. Zooming out is realized with a stacked
1280
66192d170c79 Bugfix: #179 and #198 Zoom-out will no longer work with a factor but with stacked chart extents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 911
diff changeset
405 * logic. Initially, you cannot zoom out. For each time you start a zoom-in
66192d170c79 Bugfix: #179 and #198 Zoom-out will no longer work with a factor but with stacked chart extents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 911
diff changeset
406 * action, the extent of the chart is stored and pushed onto a stack. A
2542
c48e3df12c4a Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2477
diff changeset
407 * zoom-out will now lead you to the last extent that is popped from stack.
544
0f4095a522ab Added a zoom-out control to the chart toolbar which zooms 10% of the current ranges out.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 543
diff changeset
408 */
1280
66192d170c79 Bugfix: #179 and #198 Zoom-out will no longer work with a factor but with stacked chart extents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 911
diff changeset
409 public void zoomOut() {
66192d170c79 Bugfix: #179 and #198 Zoom-out will no longer work with a factor but with stacked chart extents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 911
diff changeset
410 if (!zoomStack.empty()) {
66192d170c79 Bugfix: #179 and #198 Zoom-out will no longer work with a factor but with stacked chart extents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 911
diff changeset
411 zoom = zoomStack.pop().getZoom();
548
aff225e07720 Repaired broken zoom-out control.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 544
diff changeset
412
1280
66192d170c79 Bugfix: #179 and #198 Zoom-out will no longer work with a factor but with stacked chart extents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 911
diff changeset
413 updateChartInfo();
66192d170c79 Bugfix: #179 and #198 Zoom-out will no longer work with a factor but with stacked chart extents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 911
diff changeset
414 updateChartPanel();
66192d170c79 Bugfix: #179 and #198 Zoom-out will no longer work with a factor but with stacked chart extents.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 911
diff changeset
415 }
544
0f4095a522ab Added a zoom-out control to the chart toolbar which zooms 10% of the current ranges out.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 543
diff changeset
416 }
0f4095a522ab Added a zoom-out control to the chart toolbar which zooms 10% of the current ranges out.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 543
diff changeset
417
0f4095a522ab Added a zoom-out control to the chart toolbar which zooms 10% of the current ranges out.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 543
diff changeset
418
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
419 public Number[] zoomAxis(Axis axis, int factor) {
1282
3904519ec161 Bugfix: #179 Repaired broken zoom-out-by-factor function for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1281
diff changeset
420 GWT.log("Prepare Axis for zooming (factor: " + factor + ")");
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
421
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
422 Number min = axis.getMin();
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
423 Number max = axis.getMax();
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7137
diff changeset
424 Number range = isBigger(max, min)
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7137
diff changeset
425 ? subtract(max, min)
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 7137
diff changeset
426 : subtract(min, max);
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
427
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
428 Number curFrom = axis.getFrom();
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
429 Number curTo = axis.getTo();
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
430
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
431 Number diff = isBigger(curTo, curFrom)
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
432 ? subtract(curTo, curFrom)
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
433 : subtract(curFrom, curTo);
1282
3904519ec161 Bugfix: #179 Repaired broken zoom-out-by-factor function for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1281
diff changeset
434
3904519ec161 Bugfix: #179 Repaired broken zoom-out-by-factor function for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1281
diff changeset
435 GWT.log(" max from : " + min);
3904519ec161 Bugfix: #179 Repaired broken zoom-out-by-factor function for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1281
diff changeset
436 GWT.log(" max to : " + max);
3904519ec161 Bugfix: #179 Repaired broken zoom-out-by-factor function for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1281
diff changeset
437 GWT.log(" max range : " + range);
3904519ec161 Bugfix: #179 Repaired broken zoom-out-by-factor function for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1281
diff changeset
438 GWT.log(" current from: " + curFrom);
3904519ec161 Bugfix: #179 Repaired broken zoom-out-by-factor function for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1281
diff changeset
439 GWT.log(" current to : " + curTo);
3904519ec161 Bugfix: #179 Repaired broken zoom-out-by-factor function for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1281
diff changeset
440 GWT.log(" current diff: " + diff);
3904519ec161 Bugfix: #179 Repaired broken zoom-out-by-factor function for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1281
diff changeset
441
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
442 Number newFrom = subtract(curFrom, divide(multi(diff, factor), 100));
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
443 Number newTo = add(curTo, divide(multi(diff, factor), 100));
1282
3904519ec161 Bugfix: #179 Repaired broken zoom-out-by-factor function for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1281
diff changeset
444
3904519ec161 Bugfix: #179 Repaired broken zoom-out-by-factor function for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1281
diff changeset
445 GWT.log(" new from: " + newFrom);
3904519ec161 Bugfix: #179 Repaired broken zoom-out-by-factor function for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1281
diff changeset
446 GWT.log(" new to : " + newTo);
3904519ec161 Bugfix: #179 Repaired broken zoom-out-by-factor function for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1281
diff changeset
447
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
448 return new Number[] {
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
449 divide(subtract(newFrom, min), range),
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
450 divide(subtract(newTo, min), range)
1282
3904519ec161 Bugfix: #179 Repaired broken zoom-out-by-factor function for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1281
diff changeset
451 };
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
452 }
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
453
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
454
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
455 public static Number[] computeZoom(Axis axis, Number min, Number max) {
3694
0a277b041770 Improved panning in TimeseriesCharts (issue715).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3547
diff changeset
456 Number[] hereZoom = new Number[2];
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
457
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
458 Number absMin = axis.getMin();
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
459 Number absMax = axis.getMax();
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
460 Number diff = isBigger(absMax, absMin)
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
461 ? subtract(absMax, absMin)
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
462 : subtract(absMin, absMax);
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
463
3694
0a277b041770 Improved panning in TimeseriesCharts (issue715).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3547
diff changeset
464 hereZoom[0] = divide(subtract(min, absMin), diff);
0a277b041770 Improved panning in TimeseriesCharts (issue715).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3547
diff changeset
465 hereZoom[1] = divide(subtract(max, absMin), diff);
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
466
3694
0a277b041770 Improved panning in TimeseriesCharts (issue715).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3547
diff changeset
467 return hereZoom;
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
468 }
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
469
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
470
1551
cfe88143ee89 Display edited manual points next time the point editor is opened.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1550
diff changeset
471 /** Get Collection from ChartThemePanel. .*/
cfe88143ee89 Display edited manual points next time the point editor is opened.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1550
diff changeset
472 public Collection getCtpCollection() {
cfe88143ee89 Display edited manual points next time the point editor is opened.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1550
diff changeset
473 return this.ctp.getCollection();
cfe88143ee89 Display edited manual points next time the point editor is opened.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1550
diff changeset
474 }
cfe88143ee89 Display edited manual points next time the point editor is opened.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1550
diff changeset
475
cfe88143ee89 Display edited manual points next time the point editor is opened.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1550
diff changeset
476
544
0f4095a522ab Added a zoom-out control to the chart toolbar which zooms 10% of the current ranges out.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 543
diff changeset
477 /**
538
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
478 * Updates the Transform2D object using the chart info service.
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
479 */
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
480 public void updateChartInfo() {
538
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
481 Config config = Config.getInstance();
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
482 String locale = config.getLocale();
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
483
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
484 info.getChartInfo(
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
485 view.getCollection(),
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
486 locale,
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
487 mode.getName(),
549
e74bf6bfeeb6 Use the same code to create the attribute document for the chart creation in ChartOutputService and ChartInfoService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 548
diff changeset
488 getChartAttributes(),
552
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
489 new AsyncCallback<ChartInfo>() {
2983
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 2936
diff changeset
490 @Override
538
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
491 public void onFailure(Throwable caught) {
610
ea2191b1299d #170 Changed the DOM manipulation while zoom and drag operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 561
diff changeset
492 GWT.log("ChartInfo ERROR: " + caught.getMessage());
538
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
493 }
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
494
2983
725470fc57d2 Add "Manage themes" button to ChartToolbar and MapToolbar.
Christian Lins <christian.lins@intevation.de>
parents: 2936
diff changeset
495 @Override
552
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
496 public void onSuccess(ChartInfo chartInfo) {
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
497 setChartInfo(chartInfo);
538
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
498 }
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
499 });
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
500 }
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
501
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
502
531
c17c593f8732 The chart in the ChartOutputTab is refreshed when there occur any changes in the chart theme panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 527
diff changeset
503 public void updateChartPanel() {
610
ea2191b1299d #170 Changed the DOM manipulation while zoom and drag operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 561
diff changeset
504 int w = right.getWidth();
ea2191b1299d #170 Changed the DOM manipulation while zoom and drag operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 561
diff changeset
505 int h = right.getHeight();
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
506
610
ea2191b1299d #170 Changed the DOM manipulation while zoom and drag operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 561
diff changeset
507 chart.setSrc(getImgUrl(w, h));
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
508 }
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
509
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
510
542
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
511 /**
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
512 * Returns the existing chart panel.
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
513 *
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
514 * @return the existing chart panel.
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
515 */
534
e08777967bad Added a first implementation of a MousePositionPanel - work is not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 533
diff changeset
516 public Canvas getChartPanel() {
610
ea2191b1299d #170 Changed the DOM manipulation while zoom and drag operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 561
diff changeset
517 return right;
ea2191b1299d #170 Changed the DOM manipulation while zoom and drag operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 561
diff changeset
518 }
538
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
519
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
520
4037
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3717
diff changeset
521 /** Access the Canvas holding the rendered Chart. */
610
ea2191b1299d #170 Changed the DOM manipulation while zoom and drag operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 561
diff changeset
522 public Canvas getChartImg() {
ea2191b1299d #170 Changed the DOM manipulation while zoom and drag operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 561
diff changeset
523 return chart;
538
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
524 }
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
525
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
526
4037
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3717
diff changeset
527 /** Get associated ChartInfo object. */
552
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
528 public ChartInfo getChartInfo() {
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
529 return chartInfo;
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
530 }
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
531
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
532
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
533 protected void setChartInfo(ChartInfo chartInfo) {
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
534 this.chartInfo = chartInfo;
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
535 }
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
536
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
537
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
538 public Transform2D getTransformer() {
4037
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3717
diff changeset
539 return getTransformer(0);
552
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
540 }
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
541
6050d49eaba3 Adapted the ChartInfoService to return more information about charts than before. In addition, the PanControl is added to the chart toolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 549
diff changeset
542
538
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
543 /**
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
544 * Returns the Transform2D object used to transform image coordinates into
4037
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3717
diff changeset
545 * chart (data) coordinates.
538
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
546 *
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
547 * @param pos The index of a specific transformer.
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
548 *
538
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
549 * @return the Transform2D object.
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
550 */
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
551 public Transform2D getTransformer(int pos) {
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
552 if (chartInfo == null) {
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
553 return null;
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
554 }
538
75df57220104 Adapted the MousePositionPanel to use the Transform2D object for computing the chart coordinates from image coordinates.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 534
diff changeset
555
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
556 return chartInfo.getTransformer(pos);
534
e08777967bad Added a first implementation of a MousePositionPanel - work is not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 533
diff changeset
557 }
e08777967bad Added a first implementation of a MousePositionPanel - work is not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 533
diff changeset
558
e08777967bad Added a first implementation of a MousePositionPanel - work is not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 533
diff changeset
559
542
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
560 /**
2542
c48e3df12c4a Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2477
diff changeset
561 * Returns the Transform2D count.
2477
936e3e6cd9b9 Issue 502.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2391
diff changeset
562 *
936e3e6cd9b9 Issue 502.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2391
diff changeset
563 * @return the Transformer2D count
936e3e6cd9b9 Issue 502.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2391
diff changeset
564 */
936e3e6cd9b9 Issue 502.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2391
diff changeset
565 public int getTransformerCount() {
936e3e6cd9b9 Issue 502.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2391
diff changeset
566 if (chartInfo == null) {
936e3e6cd9b9 Issue 502.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2391
diff changeset
567 return 0;
936e3e6cd9b9 Issue 502.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2391
diff changeset
568 }
936e3e6cd9b9 Issue 502.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2391
diff changeset
569
936e3e6cd9b9 Issue 502.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2391
diff changeset
570 return chartInfo.getTransformerCount();
936e3e6cd9b9 Issue 502.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2391
diff changeset
571 }
936e3e6cd9b9 Issue 502.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2391
diff changeset
572
936e3e6cd9b9 Issue 502.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2391
diff changeset
573
936e3e6cd9b9 Issue 502.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2391
diff changeset
574 /**
542
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
575 * Creates a new chart panel with default size.
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
576 *
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
577 * @return the created chart panel.
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
578 */
610
ea2191b1299d #170 Changed the DOM manipulation while zoom and drag operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 561
diff changeset
579 protected Img createChartImg() {
ea2191b1299d #170 Changed the DOM manipulation while zoom and drag operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 561
diff changeset
580 return createChartImg(DEFAULT_CHART_WIDTH, DEFAULT_CHART_HEIGHT);
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
581 }
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
582
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
583
542
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
584 /**
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
585 * Creates a new chart panel with specified width and height.
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
586 *
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
587 * @param width The width for the chart panel.
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
588 * @param height The height for the chart panel.
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
589 *
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
590 * @return the created chart panel.
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
591 */
610
ea2191b1299d #170 Changed the DOM manipulation while zoom and drag operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 561
diff changeset
592 protected Img createChartImg(int width, int height) {
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
593 Img chart = getChartImg(width, height);
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
594 chart.setWidth100();
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
595 chart.setHeight100();
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
596
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
597 return chart;
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
598 }
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
599
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
600
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
601 /**
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
602 * Builds the chart image and returns it.
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
603 *
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
604 * @param width The chart width.
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
605 * @param height The chart height.
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
606 *
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
607 * @return the chart image.
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
608 */
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
609 protected Img getChartImg(int width, int height) {
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
610 return new Img(getImgUrl(width, height));
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
611 }
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
612
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
613
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
614 /**
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
615 * Builds the URL that points to the chart image.
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
616 *
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
617 * @param width The width of the requested chart.
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
618 * @param height The height of the requested chart.
542
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
619 * @param xr Optional x range (used for zooming).
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
620 * @param yr Optional y range (used for zooming).
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
621 *
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
622 * @return the URL to the chart image.
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
623 */
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
624 protected String getImgUrl(int width, int height) {
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
625 Config config = Config.getInstance();
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
626
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
627 String imgUrl = GWT.getModuleBaseURL();
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
628 imgUrl += "chart";
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
629 imgUrl += "?uuid=" + collection.identifier();
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
630 imgUrl += "&type=" + mode.getName();
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
631 imgUrl += "&locale=" + config.getLocale();
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
632 imgUrl += "&timestamp=" + new Date().getTime();
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
633 imgUrl += "&width=" + Integer.toString(width);
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
634 imgUrl += "&height=" + Integer.toString(height);
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
635
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
636 Number[] zoom = getZoomValues();
542
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
637
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
638 if (zoom != null) {
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
639 if (zoom[0].intValue() != 0 || zoom[1].intValue() != 1) {
612
e59f2569558e Zoom-to-max-extent will zoom to the initial chart range now (without zoom values given).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 611
diff changeset
640 // a zoom range of 0-1 means displaying the whole range. In such
e59f2569558e Zoom-to-max-extent will zoom to the initial chart range now (without zoom values given).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 611
diff changeset
641 // case we don't need to zoom.
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
642 imgUrl += "&minx=" + zoom[0];
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
643 imgUrl += "&maxx=" + zoom[1];
612
e59f2569558e Zoom-to-max-extent will zoom to the initial chart range now (without zoom values given).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 611
diff changeset
644 }
2391
3c8ae5605a51 Picked rev 4059,4071,4072,4073 from trunk.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1597
diff changeset
645
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
646 if (zoom[2].intValue() != 0 || zoom[3].intValue() != 1) {
612
e59f2569558e Zoom-to-max-extent will zoom to the initial chart range now (without zoom values given).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 611
diff changeset
647 // a zoom range of 0-1 means displaying the whole range. In such
e59f2569558e Zoom-to-max-extent will zoom to the initial chart range now (without zoom values given).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 611
diff changeset
648 // case we don't need to zoom.
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
649 imgUrl += "&miny=" + zoom[2];
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
650 imgUrl += "&maxy=" + zoom[3];
612
e59f2569558e Zoom-to-max-extent will zoom to the initial chart range now (without zoom values given).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 611
diff changeset
651 }
542
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
652 }
7c57149e8715 Append the x and y ranges determined after zooming with the ZoomboxControl to the attribute document used for the chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 541
diff changeset
653
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
654 return imgUrl;
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
655 }
549
e74bf6bfeeb6 Use the same code to create the attribute document for the chart creation in ChartOutputService and ChartInfoService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 548
diff changeset
656
e74bf6bfeeb6 Use the same code to create the attribute document for the chart creation in ChartOutputService and ChartInfoService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 548
diff changeset
657
7137
4c99b8783e1d issue971: Prepare client to include encoding in download url.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
658 /** Get link to export image in given dimension, format and encoding. */
4c99b8783e1d issue971: Prepare client to include encoding in download url.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
659 public String getExportUrl(
4c99b8783e1d issue971: Prepare client to include encoding in download url.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
660 int width, int height, String format, String encoding) {
4c99b8783e1d issue971: Prepare client to include encoding in download url.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
661 String url = getImgUrl(width, height);
4c99b8783e1d issue971: Prepare client to include encoding in download url.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
662 url += "&format=" + format;
4c99b8783e1d issue971: Prepare client to include encoding in download url.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
663 url += "&export=true";
4c99b8783e1d issue971: Prepare client to include encoding in download url.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
664 url += "&encoding=" + encoding;
4c99b8783e1d issue971: Prepare client to include encoding in download url.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
665
4c99b8783e1d issue971: Prepare client to include encoding in download url.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
666 return url;
4c99b8783e1d issue971: Prepare client to include encoding in download url.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
667 }
4c99b8783e1d issue971: Prepare client to include encoding in download url.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
668
4c99b8783e1d issue971: Prepare client to include encoding in download url.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5993
diff changeset
669
2542
c48e3df12c4a Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2477
diff changeset
670 /** Get link to export image in given dimension and format. */
1344
51d4b51a51ed Added icons to export chart as PNG, PDF and SVG to the ChartToolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1287
diff changeset
671 public String getExportUrl(int width, int height, String format) {
51d4b51a51ed Added icons to export chart as PNG, PDF and SVG to the ChartToolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1287
diff changeset
672 String url = getImgUrl(width, height);
51d4b51a51ed Added icons to export chart as PNG, PDF and SVG to the ChartToolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1287
diff changeset
673 url += "&format=" + format;
51d4b51a51ed Added icons to export chart as PNG, PDF and SVG to the ChartToolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1287
diff changeset
674 url += "&export=true";
51d4b51a51ed Added icons to export chart as PNG, PDF and SVG to the ChartToolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1287
diff changeset
675
51d4b51a51ed Added icons to export chart as PNG, PDF and SVG to the ChartToolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1287
diff changeset
676 return url;
51d4b51a51ed Added icons to export chart as PNG, PDF and SVG to the ChartToolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1287
diff changeset
677 }
51d4b51a51ed Added icons to export chart as PNG, PDF and SVG to the ChartToolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1287
diff changeset
678
51d4b51a51ed Added icons to export chart as PNG, PDF and SVG to the ChartToolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1287
diff changeset
679
2936
a805118fffa6 Fixed zooming in navigatable charts.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2542
diff changeset
680 public Map <String, String> getChartAttributes() {
549
e74bf6bfeeb6 Use the same code to create the attribute document for the chart creation in ChartOutputService and ChartInfoService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 548
diff changeset
681 Map<String, String> attr = new HashMap<String, String>();
e74bf6bfeeb6 Use the same code to create the attribute document for the chart creation in ChartOutputService and ChartInfoService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 548
diff changeset
682
e74bf6bfeeb6 Use the same code to create the attribute document for the chart creation in ChartOutputService and ChartInfoService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 548
diff changeset
683 Canvas chart = getChartPanel();
1453
e8aec81af22b Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1425
diff changeset
684 attr.put("width", chart.getWidth().toString());
549
e74bf6bfeeb6 Use the same code to create the attribute document for the chart creation in ChartOutputService and ChartInfoService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 548
diff changeset
685 attr.put("height", chart.getHeight().toString());
e74bf6bfeeb6 Use the same code to create the attribute document for the chart creation in ChartOutputService and ChartInfoService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 548
diff changeset
686
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
687 Number[] zoom = getZoomValues();
549
e74bf6bfeeb6 Use the same code to create the attribute document for the chart creation in ChartOutputService and ChartInfoService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 548
diff changeset
688
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
689 if (zoom != null) {
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
690 if (zoom[0].intValue() != 0 || zoom[1].intValue() != 1) {
612
e59f2569558e Zoom-to-max-extent will zoom to the initial chart range now (without zoom values given).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 611
diff changeset
691 // a zoom range of 0-1 means displaying the whole range. In such
e59f2569558e Zoom-to-max-extent will zoom to the initial chart range now (without zoom values given).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 611
diff changeset
692 // case we don't need to zoom.
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
693 attr.put("minx", zoom[0].toString());
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
694 attr.put("maxx", zoom[1].toString());
612
e59f2569558e Zoom-to-max-extent will zoom to the initial chart range now (without zoom values given).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 611
diff changeset
695 }
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
696 if (zoom[2].intValue() != 0 || zoom[3].intValue() != 1) {
612
e59f2569558e Zoom-to-max-extent will zoom to the initial chart range now (without zoom values given).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 611
diff changeset
697 // a zoom range of 0-1 means displaying the whole range. In such
e59f2569558e Zoom-to-max-extent will zoom to the initial chart range now (without zoom values given).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 611
diff changeset
698 // case we don't need to zoom.
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
699 attr.put("miny", zoom[2].toString());
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
700 attr.put("maxy", zoom[3].toString());
612
e59f2569558e Zoom-to-max-extent will zoom to the initial chart range now (without zoom values given).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 611
diff changeset
701 }
549
e74bf6bfeeb6 Use the same code to create the attribute document for the chart creation in ChartOutputService and ChartInfoService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 548
diff changeset
702 }
e74bf6bfeeb6 Use the same code to create the attribute document for the chart creation in ChartOutputService and ChartInfoService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 548
diff changeset
703
e74bf6bfeeb6 Use the same code to create the attribute document for the chart creation in ChartOutputService and ChartInfoService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 548
diff changeset
704 return attr;
e74bf6bfeeb6 Use the same code to create the attribute document for the chart creation in ChartOutputService and ChartInfoService.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 548
diff changeset
705 }
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
706
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
707
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
708 protected Number[] getZoomValues() {
561
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
709 return zoom;
460b8e0f0563 Parse the min/max axes ranges for the ChartInfo and modified the zoom and pan actions to match the current server implementation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 555
diff changeset
710 }
1545
2f0150f21e77 Added basic UI to enter manual points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1474
diff changeset
711
2f0150f21e77 Added basic UI to enter manual points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1474
diff changeset
712
2f0150f21e77 Added basic UI to enter manual points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1474
diff changeset
713 /** Return the 'parent' CollectionView. */
2f0150f21e77 Added basic UI to enter manual points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1474
diff changeset
714 public CollectionView getView() {
2f0150f21e77 Added basic UI to enter manual points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1474
diff changeset
715 return this.view;
2f0150f21e77 Added basic UI to enter manual points.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1474
diff changeset
716 }
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
717
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
718
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
719 public static Number subtract(Number left, Number right) {
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
720 if (left instanceof Double) {
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
721 return new Double(left.doubleValue() - right.doubleValue());
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
722 }
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
723 else if (left instanceof Long) {
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
724 return new Long(left.longValue() - right.longValue());
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
725 }
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
726 else {
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
727 return new Integer(left.intValue() - right.intValue());
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
728 }
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
729 }
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
730
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
731
3694
0a277b041770 Improved panning in TimeseriesCharts (issue715).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3547
diff changeset
732 /** Add two numbers, casting to Type of param left. */
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
733 public static Number add(Number left, Number right) {
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
734 if (left instanceof Double) {
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
735 return new Double(left.doubleValue() + right.doubleValue());
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
736 }
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
737 else if (left instanceof Long) {
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
738 return new Long(left.longValue() + right.longValue());
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
739 }
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
740 else {
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
741 return new Integer(left.intValue() + right.intValue());
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
742 }
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
743 }
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
744
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
745
3694
0a277b041770 Improved panning in TimeseriesCharts (issue715).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3547
diff changeset
746 /** Divde left by right. Note that Long will be casted to double. */
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
747 public static Number divide(Number left, Number right) {
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
748 if (left instanceof Double) {
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
749 return new Double(left.doubleValue() / right.doubleValue());
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
750 }
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
751 else if (left instanceof Long) {
3694
0a277b041770 Improved panning in TimeseriesCharts (issue715).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3547
diff changeset
752 return new Double(left.doubleValue() / right.doubleValue());
1597
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
753 }
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
754 else {
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
755 return new Integer(left.intValue() / right.intValue());
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
756 }
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
757 }
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
758
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
759
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
760 public static Number multi(Number left, Number right) {
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
761 if (left instanceof Double) {
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
762 return new Double(left.doubleValue() * right.doubleValue());
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
763 }
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
764 else if (left instanceof Long) {
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
765 return new Long(left.longValue() * right.longValue());
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
766 }
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
767 else {
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
768 return new Integer(left.intValue() * right.intValue());
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
769 }
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
770 }
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
771
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
772
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
773 public static boolean isBigger(Number left, Number right) {
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
774 if (left instanceof Double) {
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
775 return left.doubleValue() > right.doubleValue();
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
776 }
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
777 else if (left instanceof Long) {
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
778 return left.longValue() > right.longValue();
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
779 }
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
780 else {
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
781 return left.intValue() > right.intValue();
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
782 }
8bbaa0d173cf Save zoom parameters as Number; added new Axis types NumberAxis and DateAxis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1579
diff changeset
783 }
521
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
784 }
fc60822e9c89 Added a new package 'chart' that should be the place where chart relevant classes should be stored. Moved ChartOutputTab into that package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
785 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org