Revision 2611 org.gvsig.raster.wmts/trunk/org.gvsig.raster.wmts/org.gvsig.raster.wmts.app.wmtsclient/src/main/java/org/gvsig/raster/wmts/app/wmtsclient/gui/dialog/WMTSPropsDialog.java

View differences:

WMTSPropsDialog.java
23 23
package org.gvsig.raster.wmts.app.wmtsclient.gui.dialog;
24 24

  
25 25
import java.awt.BorderLayout;
26
import java.awt.event.ActionEvent;
27
import java.awt.event.ActionListener;
26
import java.util.ArrayList;
28 27
import java.util.HashMap;
28
import java.util.List;
29 29

  
30 30
import javax.swing.JOptionPane;
31 31
import javax.swing.JPanel;
......
34 34
import org.gvsig.andami.ui.mdiManager.IWindow;
35 35
import org.gvsig.andami.ui.mdiManager.WindowInfo;
36 36
import org.gvsig.app.gui.wizards.WizardListener;
37
import org.gvsig.fmap.dal.DataParameters;
37 38
import org.gvsig.fmap.dal.coverage.exception.ConnectException;
39
import org.gvsig.fmap.dal.coverage.store.parameter.RasterDataParameters;
40
import org.gvsig.fmap.dal.coverage.store.parameter.TileDataParameters;
41
import org.gvsig.fmap.dal.exception.InitializeException;
38 42
import org.gvsig.fmap.mapcontext.MapContext;
39 43
import org.gvsig.fmap.mapcontext.exceptions.LoadLayerException;
40 44
import org.gvsig.fmap.mapcontext.layers.FLayer;
41
import org.gvsig.fmap.mapcontext.layers.FLayers;
42 45
import org.gvsig.fmap.mapcontrol.MapControl;
43 46
import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
44 47
import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent;
45 48
import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener;
46 49
import org.gvsig.raster.swing.RasterSwingLibrary;
47 50
import org.gvsig.raster.util.CancelTaskImpl;
48
import org.gvsig.raster.wmts.app.wmtsclient.gui.panel.WMTSGUIInterface;
49
import org.gvsig.raster.wmts.app.wmtsclient.gui.panel.WMTSParamsPanel;
50 51
import org.gvsig.raster.wmts.app.wmtsclient.layer.FLyrWMTS;
52
import org.gvsig.raster.wmts.io.WMTSDataParameters;
51 53
import org.gvsig.raster.wmts.io.WMTSServerExplorer;
54
import org.gvsig.raster.wmts.swing.WMTSSwingLocator;
55
import org.gvsig.raster.wmts.swing.WMTSWizardListener;
56
import org.gvsig.raster.wmts.swing.WmtsGUI;
52 57

  
53 58

  
54 59
/**
......
61 66
	private FLyrWMTS                  fLayer                = null;
62 67
	private WindowInfo                m_ViewInfo            = null;
63 68
	private ButtonsPanel              buttonsPanel          = null;   
64
	private WMTSGUIInterface          wmtsGUIInterface      = null;
69
	private WmtsGUI                   wmtsGUIInterface      = null;
65 70
    private WMTSServerExplorer        explorer              = null;
71
    
72
    public class WizardListenerImpl implements WizardListener, WMTSWizardListener {
73
		public void wizardStateChanged(boolean finishable) {
74
			getButtonsPanel().getButton(ButtonsPanel.BUTTON_ACCEPT).setEnabled(finishable);
75
			getButtonsPanel().getButton(ButtonsPanel.BUTTON_APPLY).setEnabled(finishable);
76
		}
66 77

  
78
		public void error(Exception e) {
79
		}
80

  
81
		public void callStateChanged(boolean finishable) {
82
			wizardStateChanged(finishable);
83
		}
84
	}
85

  
86

  
67 87
    public WMTSPropsDialog() {
68 88
    	initialize(null);
69 89
    }
......
78 98

  
79 99
	private void initialize(FLyrWMTS layer) {
80 100
		HashMap<String, Object> hash = layer != null ? layer.getProperties() : null;
81
		wmtsGUIInterface = getParamsPanel(hash);
82
		wmtsGUIInterface.addWizardListener(new WizardListener(){
83
			public void wizardStateChanged(boolean finishable) {
84
				getButtonsPanel().getButton(ButtonsPanel.BUTTON_ACCEPT).setEnabled(finishable);
85
				getButtonsPanel().getButton(ButtonsPanel.BUTTON_APPLY).setEnabled(finishable);
86
			}
87

  
88
			public void error(Exception e) {
89
			}
90

  
91
        });
101
        wmtsGUIInterface = getParamsPanel(hash);
92 102
		setLayout(new BorderLayout());
93
        this.add(wmtsGUIInterface.getComponent(), BorderLayout.CENTER);
103
        this.add(wmtsGUIInterface, BorderLayout.CENTER);
94 104
        this.add(getButtonsPanel(), BorderLayout.SOUTH);
95 105
	}
96 106
	
......
137 147
	 *
138 148
	 * @return WMSParamsPanel
139 149
	 */
140
	public WMTSGUIInterface getParamsPanel(HashMap<String, Object> info) {
150
	public WmtsGUI getParamsPanel(HashMap<String, Object> info) {
141 151
		if (info == null) {
142
			WMTSGUIInterface toc = new WMTSParamsPanel();
152
			WMTSWizardListener listener = new WizardListenerImpl();
153
			WmtsGUI toc = WMTSSwingLocator.getSwingManager().createMainWizard(listener);
143 154
			return toc;
144 155
		}
145 156

  
......
160 171
		}
161 172
		
162 173
		try {
163
			WMTSGUIInterface toc = new WMTSParamsPanel();
164
			((WMTSParamsPanel)toc).setWizardData(explorer);
174
			WmtsGUI toc = WMTSSwingLocator.getSwingManager().createMainWizard(null);
175
			toc.setWizardData(explorer);
165 176
			toc.updateSelectedInfo(info);
166 177
			return toc;
167 178
		} catch (Exception e) {
......
171 182
		return null;
172 183
	}
173 184

  
174
    @SuppressWarnings("unused")
175
	private class CommandListener implements ActionListener {
176

  
177
        /**
178
         * Creates a new ComandosListener object.
179
         *
180
         * @param lg DOCUMENT ME!
181
         */
182
        public CommandListener(WMTSPropsDialog tp) {
183
        }
184

  
185
		/* (non-Javadoc)
186
		 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
187
		 */
188
        public void actionPerformed(ActionEvent e) {
189
        	if (e.getActionCommand() == "CANCEL") {
190
        		close();
191
        	} else {
192
   				MapControl mapCtrl = null;
193

  
194
				IWindow[] w = PluginServices.getMDIManager().getAllWindows();
195
				for (int i = 0; i < w.length; i++) {
196
					if (w[i] instanceof org.gvsig.app.project.documents.view.gui.AbstractViewPanel) {
197
						MapContext mapContext = ((org.gvsig.app.project.documents.view.gui.AbstractViewPanel)w[i]).getMapControl().getMapContext();
198
						if(mapContext == fLayer.getMapContext())
199
							mapCtrl = ((org.gvsig.app.project.documents.view.gui.AbstractViewPanel)w[i]).getMapControl();
200
					}
201
				}
202
				
203
        		try {
204
        			FLayer[] layerList = wmtsGUIInterface.getLayers();
205
        			removeDuplicate(layerList, mapCtrl);
206
        			for (int i = 0; i < layerList.length; i++) {
207
        				mapCtrl.getMapContext().getLayers().addLayer(layerList[i]);
208
        			}
209
        			mapCtrl.getMapContext().invalidate();
210
        		} catch (LoadLayerException exc) {
211
        			exc.printStackTrace();
212
        		}
213
        	}
214
		}
215
    }
185
//    @SuppressWarnings("unused")
186
//	private class CommandListener implements ActionListener {
187
//
188
//        public CommandListener(WMTSPropsDialog tp) {
189
//        }
190
//
191
//        public void actionPerformed(ActionEvent e) {
192
//        	if (e.getActionCommand() == "CANCEL") {
193
//        		close();
194
//        	} else {
195
//   				MapControl mapCtrl = null;
196
//
197
//				IWindow[] w = PluginServices.getMDIManager().getAllWindows();
198
//				for (int i = 0; i < w.length; i++) {
199
//					if (w[i] instanceof org.gvsig.app.project.documents.view.gui.AbstractViewPanel) {
200
//						MapContext mapContext = ((org.gvsig.app.project.documents.view.gui.AbstractViewPanel)w[i]).getMapControl().getMapContext();
201
//						if(mapContext == fLayer.getMapContext())
202
//							mapCtrl = ((org.gvsig.app.project.documents.view.gui.AbstractViewPanel)w[i]).getMapControl();
203
//					}
204
//				}
205
//				
206
//        		try {
207
//        			FLayer[] layerList = wmtsGUIInterface.getLayers();
208
//        			removeDuplicate(layerList, mapCtrl);
209
//        			for (int i = 0; i < layerList.length; i++) {
210
//        				mapCtrl.getMapContext().getLayers().addLayer(layerList[i]);
211
//        			}
212
//        			mapCtrl.getMapContext().invalidate();
213
//        		} catch (LoadLayerException exc) {
214
//        			exc.printStackTrace();
215
//        		}
216
//        	}
217
//		}
218
//    }
216 219
    
217
    private void removeDuplicate(FLayer[] layerList, MapControl mapCtrl) {
218
    	FLayers lyrs = mapCtrl.getMapContext().getLayers();
219
    	for (int i = 0; i < lyrs.getLayersCount(); i++) {
220
			FLayer lyr = lyrs.getLayer(i);
221
			for (int j = 0; j < layerList.length; j++) {
222
				if(lyr.getName().compareTo(layerList[j].getName()) == 0) {
223
					lyrs.removeLayer(lyr);
224
				}
225
			}
226
		}
227
    }
220
//    private void removeDuplicate(FLayer[] layerList, MapControl mapCtrl) {
221
//    	FLayers lyrs = mapCtrl.getMapContext().getLayers();
222
//    	for (int i = 0; i < lyrs.getLayersCount(); i++) {
223
//			FLayer lyr = lyrs.getLayer(i);
224
//			for (int j = 0; j < layerList.length; j++) {
225
//				if(lyr.getName().compareTo(layerList[j].getName()) == 0) {
226
//					lyrs.removeLayer(lyr);
227
//				}
228
//			}
229
//		}
230
//    }
228 231
    
229 232
    
230 233
	public WindowInfo getWindowInfo() {
......
244 247
	public Object getWindowProfile() {
245 248
		return WindowInfo.DIALOG_PROFILE;
246 249
	}
250
	
251
	public List<FLyrWMTS> getLayerList(RasterDataParameters[] paramsList) throws LoadLayerException {
252
		List<FLyrWMTS> layerList = new ArrayList<FLyrWMTS>();
253
		for (int i = 0; i < paramsList.length; i++) {
254
			FLyrWMTS layer = new FLyrWMTS();
255
			layer.deleteCache(wmtsGUIInterface.getDeleteCache());
256
			try {
257
				layer.setParameters(paramsList[i]);
258
				String title = null;
259
				if(paramsList[i] instanceof WMTSDataParameters) {
260
					title = ((WMTSDataParameters) paramsList[i]).getLayer().getTitle();
261
				} else if(paramsList[i] instanceof TileDataParameters) {
262
					DataParameters p = ((TileDataParameters) paramsList[i]).getDataParameters();
263
					if(p instanceof WMTSDataParameters)
264
						title = ((WMTSDataParameters) p).getLayer().getTitle();
265
				}
266
				
267
				layer.setName(title);
268
				layer.setExplorer(explorer);
269
				layerList.add(layer);
270
			} catch (InitializeException e) {
271
				throw new LoadLayerException("Error initializating layer", e);
272
			}
273
		}
274
		return layerList;
275
	}
247 276

  
248 277
	public void actionButtonPressed(ButtonsPanelEvent e) {
249 278
		if(	e.getButton() == ButtonsPanel.BUTTON_APPLY || 
......
260 289
			}
261 290
			
262 291
    		try {
263
    			FLayer[] layerList = wmtsGUIInterface.getLayers();
264
    			if(layerList.length > 0 && layerList[0] != null) {
265
    				if(layerList[0] instanceof FLyrWMTS) {
266
    					mapCtrl.getMapContext().getLayers().removeLayer(fLayer);
267
    					mapCtrl.getMapContext().getLayers().addLayer(layerList[0]);
268
    					fLayer = (FLyrWMTS)layerList[0];
292
    			List<FLyrWMTS> layerList = getLayerList(wmtsGUIInterface.getDataParameters());
293
    			if(layerList.size() > 0 && layerList.get(0) != null) {
294
    				for (int i = 0; i < layerList.size(); i++) {
295
    					if(layerList.get(i) instanceof FLyrWMTS) {
296
    						mapCtrl.getMapContext().getLayers().removeLayer(fLayer);
297
    						mapCtrl.getMapContext().getLayers().addLayer(layerList.get(i));
298
    						fLayer = (FLyrWMTS)layerList.get(i);
299
    					}
269 300
    				}
270 301
    			}
271 302
    			//removeDuplicate(layerList, mapCtrl);
......
281 312
		}
282 313
	}
283 314

  
284
}  //  @jve:decl-index=0:visual-constraint="10,10"
315
} 

Also available in: Unified diff