/[schmitzm]/trunk/src/skrueger/geotools/MapView.java
ViewVC logotype

Contents of /trunk/src/skrueger/geotools/MapView.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 164 - (show annotations)
Tue Jun 23 16:06:23 2009 UTC (15 years, 8 months ago) by alfonx
File size: 6514 byte(s)
* GP's MapComposer has a new button to store the ratio of legend and map. it can also be stored as the default for all maps.
1 package skrueger.geotools;
2
3 import java.awt.BorderLayout;
4 import java.awt.Window;
5
6 import javax.swing.BorderFactory;
7 import javax.swing.JComponent;
8 import javax.swing.JPanel;
9 import javax.swing.JSplitPane;
10
11 import org.apache.log4j.Logger;
12 import org.geotools.renderer.lite.StreamingRenderer;
13
14 import schmitzm.geotools.gui.GeoMapPane;
15 import schmitzm.geotools.gui.JMapPane;
16 import schmitzm.geotools.gui.MapContextControlPane;
17 import schmitzm.geotools.gui.MapPaneStatusBar;
18 import schmitzm.geotools.styling.ColorMapManager;
19
20 /**
21 * Achtung! Dieser code ist verwuestet
22 * TODO DOKU und initialize schöner machen. SK
23 */
24 public class MapView extends JPanel {
25 private static final Logger LOGGER = Logger.getLogger(MapView.class);
26
27 private final JSplitPane splitPane = new JSplitPane(
28 JSplitPane.HORIZONTAL_SPLIT);
29
30 protected MapPaneStatusBar statusBar = null;
31
32 /**
33 * Komponente, in der die Karten, der Massstab und das Koordinaten-Raster
34 * dargestellt werden.
35 */
36
37 /**
38 * SK: 21.6.09: ShapeFileRenderer is supposed to be about 5x faster on
39 * ShapeFiles. The ShapeFileRenderer falls back to the
40 * StreamingRenderer.
41 */
42 // Old code:
43 // protected final GeoMapPane geoMapPane = new GeoMapPane(null,null,null,null, new StreamingRenderer());
44
45 // New Code uses Streaming renderer.
46 protected final GeoMapPane geoMapPane = new GeoMapPane(null,null,null,null, new StreamingRenderer());
47
48 private MapPaneToolBar jToolBar;
49
50 /**
51 * Creates a new {@link MapView}. A {@link MapView} is a combination of a
52 * {@link GeoMapPane}, a {@link MapContextManagerInterface} on the left,
53 * and some buttons floating over the {@link JMapPane}
54 */
55 public MapView(Window parentGui, MapPaneToolBar toolBar) {
56 super(new BorderLayout());
57 // Call initialize() by yourself afterwards.
58 // Needed because variables for the overwritten methods
59 // are not yet set.
60 getGeoMapPane().getMapPane().setWaitCursorComponent(parentGui);
61 if ( toolBar == null )
62 toolBar = new MapPaneToolBar(getMapPane());
63 jToolBar = toolBar;
64 }
65
66 /**
67 * Creates a new {@link MapView}. A {@link MapView} is a combination of a
68 * {@link GeoMapPane}, a {@link MapContextManagerInterface} on the left,
69 * and some buttons floating over the {@link JMapPane}
70 */
71 public MapView(Window parentGui) {
72 this(parentGui, null);
73 }
74
75 /**
76 * This routine creates the main components of the GUI: The left Side and the map on the right side.<br/>
77 * Calls #getSidePanel() which can be overwritten (call super!).<br/>
78 *
79 * This method initialized the variables {@link #statusBar} and {@link #splitPane}
80 *
81 * @see #adjustSizeOfGeoMapPane()
82 */
83 public void initialize() {
84 // horizontales SplitPane initialisieren
85
86 // Status-Line to show Coordinates and Rastervalues.
87 statusBar = new MapPaneStatusBar(getGeoMapPane()
88 .getMapPane());
89 statusBar.setBorder(BorderFactory.createCompoundBorder(BorderFactory
90 .createLoweredBevelBorder(), BorderFactory.createEmptyBorder(2,
91 5, 2, 5)));
92 this.add(statusBar, BorderLayout.SOUTH);
93
94
95 /**
96 * The layout of the split pane can be configured in the atlas.
97 */
98 getSplitPane().setDividerSize(5);
99 getSplitPane().setDividerLocation(-1);
100
101 getSplitPane().setResizeWeight(0.0);
102 getSplitPane().add(getSidePane());
103
104 /***********************************************************************
105 * To the right side we now add a JPanel that consists of a toolbar and
106 * a gmp
107 */
108 JPanel newRight = new JPanel(new BorderLayout());
109 newRight.add(getToolBar(), BorderLayout.NORTH);
110 newRight.add(getGeoMapPane(), BorderLayout.CENTER);
111 getSplitPane().add(newRight);
112
113 this.add(getSplitPane(), BorderLayout.CENTER);
114 }
115
116 /**
117 * Returns the tool bar which controls the active mouse actions on the map.
118 * @return
119 */
120 public MapPaneToolBar getToolBar() {
121 return jToolBar;
122 }
123
124 /**
125 * Returns the split pane which divides the layer list from the map panel.
126 */
127 public JSplitPane getSplitPane() {
128 return splitPane;
129 }
130
131
132 /**
133 * Sets the active tool.
134 * Simply calls {@link MapPaneToolBar#setSelectedTool(Integer)}.
135 * @param tool
136 * One of {@link #TOOL_INFO}, {@link #TOOL_PAN} .. constants
137 */
138 public void setSelectedTool(Integer tool) {
139 jToolBar.setSelectedTool(tool);
140 }
141
142 /**
143 * Sets whether a tool is activated or not.
144 * Simply calls {@link MapPaneToolBar#setButtonEnabled(int, boolean, boolean)}.
145 * @param tool tool ID
146 * @param enabled if {@code true} the tool becomes available
147 * @param hideOnDisable if {@code true} the button is also hidden if
148 * {@code enabled} is {@code false}
149 */
150 public void setToolEnabled(Integer tool, boolean enabled, boolean hideOnDisable) {
151 jToolBar.setButtonEnabled(tool,enabled,hideOnDisable);
152 }
153
154 /**
155 * Sets the activation for all tools.
156 * Simply calls {@link MapPaneToolBar#setAllToolsEnabled(boolean, boolean)}.
157 * @param enabled if {@code true} all tool becomes available
158 * @param hideOnDisable if {@code true} the buttons are also hidden if
159 * {@code enabled} is {@code false}
160 */
161 public void setAllToolsEnabled(boolean enabled, boolean hideOnDisable) {
162 jToolBar.setAllToolsEnabled(enabled, hideOnDisable);
163 }
164
165 /**
166 * Checks whether a tool is activated.
167 * Simply calls {@link MapPaneToolBar#isButtonEnabled(Integer)}.
168 * @param tool tool ID
169 * @return {@code false} if an unknown ID is specified
170 */
171 public boolean isToolEnabled(Integer tool) {
172 return jToolBar.isButtonEnabled(tool);
173 }
174
175 /**
176 * called by initialize() to fill the left of the XULUMapView Supposed to be
177 * overwritten by AtlasMapView or DesignMapView
178 */
179 public JComponent getSidePane() {
180 return new MapContextControlPane(getGeoMapPane().getMapPane(),
181 new ColorMapManager());
182 }
183
184 /**
185 * Liefert die Status-Zeile, in der die Koordinaten und Raster-Werte
186 * angezeigt werden.
187 */
188 public MapPaneStatusBar getStatusBar() {
189 return this.statusBar;
190 }
191
192 /**
193 * Liefert den Karten-Bereich der Komponente.
194 */
195 public final JMapPane getMapPane() {
196 return getGeoMapPane().getMapPane();
197 }
198
199 public GeoMapPane getGeoMapPane() {
200 return geoMapPane;
201 }
202
203 public int getSelectedTool() {
204 return jToolBar.getSelectedTool();
205 }
206
207 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26