gvsig-3d / 2.1 / trunk / org.gvsig.view3d / org.gvsig.view3d.swing / org.gvsig.view3d.swing.impl / src / main / java / org / gvsig / view3d / swing / impl / properties / layer / DefaultLayerProperties3DPanel.java @ 486
History | View | Annotate | Download (8.01 KB)
1 |
package org.gvsig.view3d.swing.impl.properties.layer; |
---|---|
2 |
|
3 |
import java.awt.event.ActionEvent; |
4 |
import java.awt.event.ActionListener; |
5 |
import java.util.Iterator; |
6 |
|
7 |
import javax.swing.JComboBox; |
8 |
|
9 |
import org.gvsig.fmap.dal.exception.DataException; |
10 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
11 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
12 |
import org.gvsig.fmap.dal.feature.FeatureType; |
13 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
14 |
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
15 |
import org.gvsig.tools.ToolsLocator; |
16 |
import org.gvsig.tools.i18n.I18nManager; |
17 |
import org.gvsig.view3d.lib.api.View3DLocator; |
18 |
import org.gvsig.view3d.lib.api.View3DManager; |
19 |
import org.gvsig.view3d.lib.api.properties.LayerProperties3D; |
20 |
import org.gvsig.view3d.lib.api.properties.VectorialLayerProperties3D; |
21 |
import org.slf4j.Logger; |
22 |
import org.slf4j.LoggerFactory; |
23 |
|
24 |
public class DefaultLayerProperties3DPanel extends |
25 |
AbstractLayerProperties3DPanel { |
26 |
|
27 |
private static final Logger LOG = LoggerFactory |
28 |
.getLogger(DefaultLayerProperties3DPanel.class); |
29 |
|
30 |
private static final long serialVersionUID = -9087506154366633837L; |
31 |
|
32 |
private FLayer layer = null; |
33 |
private LayerProperties3D layerProperties;
|
34 |
|
35 |
public DefaultLayerProperties3DPanel(FLayer theLayer) {
|
36 |
super();
|
37 |
this.layer = theLayer;
|
38 |
|
39 |
View3DManager manager = View3DLocator.getManager(); |
40 |
this.layerProperties = manager.getLayerProperties(theLayer);
|
41 |
|
42 |
getLoadModesComboBox().addActionListener(new ActionListener() { |
43 |
|
44 |
public void actionPerformed(ActionEvent e) { |
45 |
@SuppressWarnings("rawtypes") |
46 |
JComboBox combo = (JComboBox) e.getSource(); |
47 |
String selectedItem = (String) combo.getSelectedItem(); |
48 |
update(selectedItem); |
49 |
} |
50 |
}); |
51 |
|
52 |
fillPanel(); |
53 |
} |
54 |
|
55 |
private void fillPanel() { |
56 |
fillLoadModes(); |
57 |
fillDetailLevels(); |
58 |
fillLevelZeroResolution(); |
59 |
fillTileSize(); |
60 |
fillElevationFields(); |
61 |
fillElevationUnits(); |
62 |
fillNoDataValue(); |
63 |
} |
64 |
|
65 |
private void fillNoDataValue() { |
66 |
getNoDataField().setText( |
67 |
String.valueOf(layerProperties.getNoDataValue()));
|
68 |
|
69 |
} |
70 |
|
71 |
private void fillElevationUnits() { |
72 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
73 |
String elevationUnits = layerProperties.getElevationUnits();
|
74 |
|
75 |
if (i18nManager.getTranslation("meters").equalsIgnoreCase( |
76 |
elevationUnits)) { |
77 |
getUnitsComboBox().setSelectedItem( |
78 |
i18nManager.getTranslation("meters"));
|
79 |
} else if (i18nManager.getTranslation("Pies").equalsIgnoreCase( |
80 |
elevationUnits)) { |
81 |
getUnitsComboBox().setSelectedItem( |
82 |
i18nManager.getTranslation("Pies"));
|
83 |
} |
84 |
|
85 |
} |
86 |
|
87 |
private void fillTileSize() { |
88 |
int width = layerProperties.getTileWidth();
|
89 |
int height = layerProperties.getTileHeight();
|
90 |
|
91 |
getWidthField().setText(String.valueOf(width));
|
92 |
getHeightField().setText(String.valueOf(height));
|
93 |
} |
94 |
|
95 |
private void fillLevelZeroResolution() { |
96 |
getLezelZeroSlider().setValue( |
97 |
(int) layerProperties.getLevelZeroResolutionMultiplier());
|
98 |
} |
99 |
|
100 |
private void fillDetailLevels() { |
101 |
int minLevel = layerProperties.getMinLevel();
|
102 |
int maxLevel = layerProperties.getMaxLevel();
|
103 |
|
104 |
getMaxTextField().setText(String.valueOf(maxLevel));
|
105 |
getMinTextField().setText(String.valueOf(minLevel));
|
106 |
} |
107 |
|
108 |
@SuppressWarnings("rawtypes") |
109 |
private void fillElevationFields() { |
110 |
|
111 |
if (this.layer == null) { |
112 |
return;
|
113 |
} |
114 |
|
115 |
if (getFieldComboBox().getItemCount() > 0) { |
116 |
getFieldComboBox().removeAllItems(); |
117 |
} |
118 |
|
119 |
if (this.layer instanceof FLyrVect) { |
120 |
FLyrVect vectorialLayer = (FLyrVect) layer; |
121 |
FeatureStore featureStore = vectorialLayer.getFeatureStore(); |
122 |
try {
|
123 |
FeatureType featureType = featureStore.getDefaultFeatureType(); |
124 |
Iterator it = featureType.iterator();
|
125 |
while (it.hasNext()) {
|
126 |
FeatureAttributeDescriptor attribute = |
127 |
(FeatureAttributeDescriptor) it.next(); |
128 |
getFieldComboBox().addItem(attribute.getName()); |
129 |
} |
130 |
|
131 |
} catch (DataException e) {
|
132 |
LOG.error("Can't get defautl feature type of {}",
|
133 |
layer.getName(), e); |
134 |
getFieldComboBox().setVisible(false);
|
135 |
return;
|
136 |
} |
137 |
|
138 |
if (layerProperties instanceof VectorialLayerProperties3D) { |
139 |
VectorialLayerProperties3D vectorialProperties = |
140 |
(VectorialLayerProperties3D) layerProperties; |
141 |
String elevationField = vectorialProperties.getElevationField();
|
142 |
getFieldComboBox().setSelectedItem(elevationField); |
143 |
} |
144 |
} else {
|
145 |
getFieldLabel().setVisible(false);
|
146 |
getFieldComboBox().setVisible(false);
|
147 |
} |
148 |
} |
149 |
|
150 |
private void fillLoadModes() { |
151 |
|
152 |
if (this.layer == null) { |
153 |
return;
|
154 |
} |
155 |
|
156 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
157 |
JComboBox<String> loadModesComboBox = getLoadModesComboBox(); |
158 |
|
159 |
if (loadModesComboBox.getItemCount() > 0) { |
160 |
loadModesComboBox.removeAllItems(); |
161 |
} |
162 |
|
163 |
if (this.layer instanceof FLyrVect |
164 |
&& layerProperties instanceof VectorialLayerProperties3D) {
|
165 |
loadModesComboBox.addItem(i18nManager |
166 |
.getTranslation("rasterized_vectorial"));
|
167 |
} else {
|
168 |
loadModesComboBox.addItem(i18nManager |
169 |
.getTranslation("raster_image"));
|
170 |
} |
171 |
loadModesComboBox.addItem(i18nManager.getTranslation("elevation"));
|
172 |
|
173 |
if (layerProperties.getElevation()) {
|
174 |
loadModesComboBox.setSelectedItem(i18nManager |
175 |
.getTranslation("elevation"));
|
176 |
} else {
|
177 |
|
178 |
if (layerProperties instanceof VectorialLayerProperties3D) { |
179 |
loadModesComboBox.setSelectedItem(i18nManager |
180 |
.getTranslation("rasterized_vectorial"));
|
181 |
} else {
|
182 |
loadModesComboBox.setSelectedItem(i18nManager |
183 |
.getTranslation("raster_image"));
|
184 |
} |
185 |
} |
186 |
} |
187 |
|
188 |
public FLayer getLayer() {
|
189 |
return layer;
|
190 |
} |
191 |
|
192 |
private void update(String loadMode) { |
193 |
|
194 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
195 |
if (loadMode.equalsIgnoreCase(i18nManager
|
196 |
.getTranslation("rasterized_vectorial"))
|
197 |
|| loadMode.equalsIgnoreCase(i18nManager |
198 |
.getTranslation("raster_image"))) {
|
199 |
enableComponents(getElevationPanel(), false);
|
200 |
} else if (loadMode.equalsIgnoreCase(i18nManager |
201 |
.getTranslation("elevation"))) {
|
202 |
enableComponents(getElevationPanel(), true);
|
203 |
} |
204 |
} |
205 |
|
206 |
public void setLayer(FLayer theLayer) { |
207 |
this.layer = theLayer;
|
208 |
|
209 |
fillPanel(); |
210 |
} |
211 |
|
212 |
public String getElevationField() { |
213 |
return (String) getFieldComboBox().getSelectedItem(); |
214 |
} |
215 |
|
216 |
public String getElevationUnits() { |
217 |
return (String) getUnitsComboBox().getSelectedItem(); |
218 |
} |
219 |
|
220 |
public int getMaxLevel() { |
221 |
String value = getMaxTextField().getText();
|
222 |
return Integer.valueOf(value); |
223 |
} |
224 |
|
225 |
public int getMinLevel() { |
226 |
String value = getMinTextField().getText();
|
227 |
return Integer.valueOf(value); |
228 |
} |
229 |
|
230 |
public double getNoDataValue() { |
231 |
String value = getNoDataField().getText();
|
232 |
return Double.valueOf(value); |
233 |
} |
234 |
|
235 |
public int getResolutionMultiplier() { |
236 |
return getLezelZeroSlider().getValue();
|
237 |
} |
238 |
|
239 |
public int getTileHeight() { |
240 |
String value = getHeightField().getText();
|
241 |
return Integer.valueOf(value); |
242 |
} |
243 |
|
244 |
public int getTileWidth() { |
245 |
String value = getWidthField().getText();
|
246 |
return Integer.valueOf(value); |
247 |
} |
248 |
|
249 |
public String getLoadMode() { |
250 |
return (String) getLoadModesComboBox().getSelectedItem(); |
251 |
} |
252 |
} |