Revision 28833

View differences:

branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/FeatureTransformExtension.java
31 31

  
32 32
import org.gvsig.AppGvSigLocator;
33 33
import org.gvsig.app.daltransform.gui.FeatureTransformSelectionAction;
34
import org.gvsig.app.daltransform.gui.FeatureTransformWizardModel;
34 35
import org.gvsig.app.daltransform.gui.LoadLayerWizard;
35 36
import org.gvsig.app.daltransform.gui.SelectDataStoreWizard;
36 37
import org.gvsig.app.daltransform.gui.SelectTransformParamsWizard;
......
55 56
		WizardAndami wizard = new WizardAndami(
56 57
				PluginServices.getIconTheme().get("feature-transform"));
57 58
		wizard.setSize(HEIGHT, WIDTH);
58
		//Adding the panels
59
		wizard.getWizardComponents().addWizardPanel(
60
				new SelectTransformWizard(wizard.getWizardComponents()));
61
		wizard.getWizardComponents().addWizardPanel(
62
				new SelectDataStoreWizard(wizard.getWizardComponents()));
63
		wizard.getWizardComponents().addWizardPanel(
64
				new SelectTransformParamsWizard(wizard.getWizardComponents()));
65
		wizard.getWizardComponents().addWizardPanel(
66
				new LoadLayerWizard(wizard.getWizardComponents()));
67 59
		wizard.getWizardComponents().getFinishButton().setEnabled(false);
68 60
		wizard.getWindowInfo().setTitle(PluginServices.getText(this, "transform_wizard"));
69
		wizard.getWizardComponents().setFinishAction(new FeatureTransformSelectionAction(wizard));
61
		FeatureTransformWizardModel featureTransformWizardModel = new FeatureTransformWizardModel(wizard);
62
		wizard.getWizardComponents().setFinishAction(new FeatureTransformSelectionAction(featureTransformWizardModel));
70 63
		PluginServices.getMDIManager().addWindow(wizard);
71 64
	}	
72 65

  
branches/v2_0_0_prep/applications/appgvSIG/src/org/gvsig/app/daltransform/FeatureTransformManager.java
32 32
import org.gvsig.app.daltransform.gui.FeatureTransformGui;
33 33

  
34 34
/**
35
 * This singleton provides a centralized access to register 
36
 * feature transformations. 
37
 *
35 38
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
36 39
 */
37 40
public interface FeatureTransformManager {
38 41
	
42
	/**
43
	 * Register a feature transformation
44
	 * @param name
45
	 * The name used to register the transformation
46
	 * @param featureTransformGui
47
	 * The class that contains the relationship between a transformation
48
	 * and its user interface. This class has to be an instance of
49
	 * {@link FeatureTransformGui}
50
	 */
39 51
	public void registerFeatureTransform(String name, Class featureTransformGui);
40 52
	
53
	/**
54
	 * Returns a list of the registered feature transformations
55
	 * @return
56
	 */
41 57
	public ArrayList<FeatureTransformGui> getFeatureTransforms();
42 58
	
43 59
}
branches/v2_0_0_prep/applications/appgvSIG/src/org/gvsig/app/daltransform/gui/LoadLayerWizard.java
40 40
import javax.swing.JTextArea;
41 41

  
42 42
import jwizardcomponent.JWizardComponents;
43
import jwizardcomponent.JWizardPanel;
44 43

  
45 44
import org.gvsig.fmap.dal.DataTypes;
46 45
import org.gvsig.fmap.dal.exception.DataException;
......
63 62
/**
64 63
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
65 64
 */
66
public class LoadLayerWizard  extends JWizardPanel implements ItemListener{
65
public class LoadLayerWizard  extends FeatureTransformWizard implements ItemListener{
67 66
	private static final Logger logger = LoggerFactory.getLogger(LoadLayerWizard.class);
68 67
	private JCheckBox loadLayerCb = null;
69 68
	private JScrollPane messageScroll = null;
......
78 77
	/**
79 78
	 * @param wizardComponents
80 79
	 */
81
	public LoadLayerWizard(JWizardComponents wizardComponents) {
82
		super(wizardComponents);	
80
	public LoadLayerWizard(FeatureTransformWizardModel featureTransformWizardModel) {
81
		super(featureTransformWizardModel);	
83 82
		initComponents();
84 83
		initLabels();	
85 84
		addViews();
......
172 171
	public void update() {
173 172
		JWizardComponents components = getWizardComponents();
174 173
		//Gets the selected transformation
175
		SelectTransformWizard transformWizard = (SelectTransformWizard)components.getWizardPanel(0);
176
		FeatureTransformGui featureTransformGui = 
177
			transformWizard.getSelectedFeatureTransformGui();
174
		FeatureTransformGui featureTransformGui = getSelectedFeatureTransformGui();
175
		
178 176
		//Gets the selected FeatureStore
179
		SelectDataStoreWizard dataStoreWizard = (SelectDataStoreWizard)components.getWizardPanel(1);
180
		FeatureStore featureStore = dataStoreWizard.getSelectedFeatureStore();
177
		FeatureStore featureStore = getSelectedFeatureStore();
178
		
181 179
		//Apply the transformation
182 180
		try {
183 181
			transform = featureTransformGui.createFeatureStoreTransform(featureStore);
184
			if (dataStoreWizard.isSelectedFeatureStoreLoaded()){
182
			if (isSelectedFeatureStoreLoaded()){
185 183
				updateGuiForLayer(transform);
186 184
			}else{
187 185
				updateGuiForTable(transform);
branches/v2_0_0_prep/applications/appgvSIG/src/org/gvsig/app/daltransform/gui/SelectTransformParamsWizard.java
30 30
import java.awt.BorderLayout;
31 31

  
32 32
import jwizardcomponent.JWizardComponents;
33
import jwizardcomponent.JWizardPanel;
34 33

  
35 34
import org.gvsig.fmap.dal.exception.DataException;
36 35
import org.gvsig.fmap.dal.feature.FeatureStore;
......
42 41
/**
43 42
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
44 43
 */
45
public class SelectTransformParamsWizard extends JWizardPanel{
44
public class SelectTransformParamsWizard extends FeatureTransformWizard{
46 45
	private static final Logger logger = LoggerFactory.getLogger(SelectTransformParamsWizard.class);
47 46
	
48 47
	/**
49 48
	 * @param wizardComponents
50 49
	 */
51
	public SelectTransformParamsWizard(JWizardComponents wizardComponents) {
52
		super(wizardComponents);
50
	public SelectTransformParamsWizard(FeatureTransformWizardModel featureTransformWizardModel) {
51
		super(featureTransformWizardModel);
53 52
		setLayout(new BorderLayout());
54 53
		setBorder(javax.swing.BorderFactory.createTitledBorder(PluginServices.getText(this, "transform_parameters")));
55 54
	}
......
60 59
	public void update() {
61 60
		JWizardComponents components = this.getWizardComponents();
62 61
		//Gets the selected transformation
63
		SelectTransformWizard transformWizard = (SelectTransformWizard)components.getWizardPanel(0);
64
		FeatureTransformGui featureTransformGui = 
65
			transformWizard.getSelectedFeatureTransformGui();
62
		FeatureTransformGui featureTransformGui = getSelectedFeatureTransformGui();
63
		
66 64
		//Gets the selected FeatureStore
67
		SelectDataStoreWizard dataStoreWizard = (SelectDataStoreWizard)components.getWizardPanel(1);
68
		FeatureStore featureStore = dataStoreWizard.getSelectedFeatureStore();
65
		FeatureStore featureStore = getSelectedFeatureStore();
66
		
69 67
		//Adding the form
70 68
		if (featureTransformGui != null){
71 69
			removeAll();
branches/v2_0_0_prep/applications/appgvSIG/src/org/gvsig/app/daltransform/gui/SelectDataStoreWizard.java
33 33
import javax.swing.JList;
34 34
import javax.swing.JScrollPane;
35 35

  
36
import jwizardcomponent.JWizardComponents;
37
import jwizardcomponent.JWizardPanel;
38

  
39 36
import org.gvsig.fmap.dal.exception.ReadException;
40 37
import org.gvsig.fmap.dal.feature.FeatureStore;
41 38
import org.gvsig.fmap.mapcontext.layers.FLayer;
......
55 52
/**
56 53
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
57 54
 */
58
public class SelectDataStoreWizard extends JWizardPanel{
55
public class SelectDataStoreWizard extends FeatureTransformWizard{
59 56
	private static final long serialVersionUID = -1841990357325903449L;
60 57
	private static final Logger logger = LoggerFactory.getLogger(SelectDataStoreWizard.class);
61 58
	private JList dataStoreList;
......
64 61
	/**
65 62
	 * @param wizardComponents
66 63
	 */
67
	public SelectDataStoreWizard(JWizardComponents wizardComponents) {
68
		super(wizardComponents);
64
	public SelectDataStoreWizard(FeatureTransformWizardModel featureTransformWizardModel) {
65
		super(featureTransformWizardModel);
69 66
		initComponents();
70 67
		initLabels();
71 68
		addDataStores();
branches/v2_0_0_prep/applications/appgvSIG/src/org/gvsig/app/daltransform/gui/FeatureTransformWizard.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
* 
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
* 
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
* 
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
* MA  02110-1301, USA.
20
* 
21
*/
22

  
23
/*
24
* AUTHORS (In addition to CIT):
25
* 2009 {Iver T.I.}   {Task}
26
*/
27
 
28
package org.gvsig.app.daltransform.gui;
29

  
30
import jwizardcomponent.JWizardPanel;
31

  
32
import org.gvsig.fmap.dal.feature.FeatureStore;
33
import org.gvsig.fmap.dal.feature.FeatureStoreTransform;
34
import org.gvsig.fmap.mapcontext.MapContext;
35

  
36
/**
37
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
38
 */
39
public class FeatureTransformWizard extends JWizardPanel{
40
	private FeatureTransformWizardModel featureTransformWizardModel = null;
41

  
42
	/**
43
	 * @param featureTransformWizardModel
44
	 */
45
	public FeatureTransformWizard(
46
			FeatureTransformWizardModel featureTransformWizardModel) {
47
		super(featureTransformWizardModel.getWizard().getWizardComponents());
48
		this.featureTransformWizardModel = featureTransformWizardModel;
49
	}
50
	
51
	public FeatureTransformGui getSelectedFeatureTransformGui(){
52
		return featureTransformWizardModel.getSelectedFeatureTransformGui();
53
	}
54
	
55
	public FeatureStore getSelectedFeatureStore(){
56
		 return featureTransformWizardModel.getSelectedFeatureStore();
57
	}
58
	
59
	public FeatureStoreTransform getTransform(){
60
		 return featureTransformWizardModel.getTransform();
61
	}	
62
	
63
	public boolean isLayerLoaded(){
64
		return featureTransformWizardModel.isLayerLoaded();
65
	}
66
	
67
	public MapContext getMapContext(){
68
		return featureTransformWizardModel.getMapContext();
69
	}
70

  
71
	public boolean isSelectedFeatureStoreLoaded(){
72
		return featureTransformWizardModel.isSelectedFeatureStoreLoaded();
73
	}
74
}
75

  
0 76

  
branches/v2_0_0_prep/applications/appgvSIG/src/org/gvsig/app/daltransform/gui/FeatureTransformWizardModel.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 * 
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 * 
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 * 
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
 * MA  02110-1301, USA.
20
 * 
21
 */
22

  
23
/*
24
 * AUTHORS (In addition to CIT):
25
 * 2009 {Iver T.I.}   {Task}
26
 */
27

  
28
package org.gvsig.app.daltransform.gui;
29

  
30
import org.gvsig.fmap.dal.feature.FeatureStore;
31
import org.gvsig.fmap.dal.feature.FeatureStoreTransform;
32
import org.gvsig.fmap.mapcontext.MapContext;
33

  
34
import com.iver.andami.ui.wizard.WizardAndami;
35

  
36
/**
37
 * This class contains all the panels that are displayed 
38
 * in the wizard to apply a feature transformation.
39
 * 
40
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
41
 */
42
public class FeatureTransformWizardModel {
43
	private WizardAndami wizard = null;
44
	private SelectTransformWizard selectTransformWizard = null;
45
	private SelectDataStoreWizard selectDataStoreWizard = null;
46
	private SelectTransformParamsWizard selectTransformParamsWizard = null;
47
	private LoadLayerWizard loadLayerWizard = null;
48
	
49
	/**
50
	 * @param wizard
51
	 */
52
	public FeatureTransformWizardModel(WizardAndami wizard) {
53
		super();
54
		this.wizard = wizard;
55
		initialize();
56
	}
57

  
58
	private void initialize(){	
59
		selectTransformWizard = new SelectTransformWizard(this);
60
		selectDataStoreWizard = new SelectDataStoreWizard(this);
61
		selectTransformParamsWizard = new SelectTransformParamsWizard(this);
62
		loadLayerWizard = new LoadLayerWizard(this);		
63
		wizard.getWizardComponents().addWizardPanel(
64
				selectTransformWizard);
65
		wizard.getWizardComponents().addWizardPanel(
66
				selectDataStoreWizard);
67
		wizard.getWizardComponents().addWizardPanel(
68
				selectTransformParamsWizard);
69
		wizard.getWizardComponents().addWizardPanel(
70
				loadLayerWizard);
71
	}
72
	
73
	public FeatureTransformGui getSelectedFeatureTransformGui(){
74
		return selectTransformWizard.getSelectedFeatureTransformGui();
75
	}
76
	
77
	public FeatureStore getSelectedFeatureStore(){
78
		 return selectDataStoreWizard.getSelectedFeatureStore();
79
	}
80
	
81
	public FeatureStoreTransform getTransform(){
82
		 return loadLayerWizard.getTransform();
83
	}	
84
	
85
	public boolean isLayerLoaded(){
86
		return loadLayerWizard.isLayerLoaded();
87
	}
88
	
89
	public MapContext getMapContext(){
90
		return loadLayerWizard.getMapContext();
91
	}
92
	
93
	/**
94
	 * @return the wizard
95
	 */
96
	public WizardAndami getWizard() {
97
		return wizard;
98
	}
99

  
100
	/**
101
	 * @return the selectTransformWizard
102
	 */
103
	public SelectTransformWizard getSelectTransformWizard() {
104
		return selectTransformWizard;
105
	}
106

  
107
	/**
108
	 * @return the selectDataStoreWizard
109
	 */
110
	public SelectDataStoreWizard getSelectDataStoreWizard() {
111
		return selectDataStoreWizard;
112
	}
113

  
114
	/**
115
	 * @return the selectTransformParamsWizard
116
	 */
117
	public SelectTransformParamsWizard getSelectTransformParamsWizard() {
118
		return selectTransformParamsWizard;
119
	}
120

  
121
	/**
122
	 * @return the loadLayerWizard
123
	 */
124
	public LoadLayerWizard getLoadLayerWizard() {
125
		return loadLayerWizard;
126
	}
127
	
128
	/**
129
	 * @return the selected feature store
130
	 */
131
	public boolean isSelectedFeatureStoreLoaded(){
132
		return selectDataStoreWizard.isSelectedFeatureStoreLoaded();
133
	}
134
}
135

  
0 136

  
branches/v2_0_0_prep/applications/appgvSIG/src/org/gvsig/app/daltransform/gui/FeatureTransformSelectionAction.java
28 28
package org.gvsig.app.daltransform.gui;
29 29

  
30 30
import jwizardcomponent.FinishAction;
31
import jwizardcomponent.JWizardComponents;
32 31

  
33 32
import org.gvsig.fmap.dal.exception.DataException;
34 33
import org.gvsig.fmap.dal.feature.FeatureStore;
......
40 39
import org.slf4j.LoggerFactory;
41 40

  
42 41
import com.iver.andami.PluginServices;
43
import com.iver.andami.ui.wizard.WizardAndami;
44 42

  
45 43
/**
46 44
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
47 45
 */
48 46
public class FeatureTransformSelectionAction extends FinishAction{
49 47
	private static final Logger logger = LoggerFactory.getLogger(FeatureTransformSelectionAction.class);
50
	private WizardAndami wizard = null;
48
	private FeatureTransformWizardModel featureTransformWizardModel = null;
51 49
	
52
	public FeatureTransformSelectionAction(WizardAndami wizard) {
53
		super(wizard.getWizardComponents());		
54
		this.wizard = wizard;
50
	public FeatureTransformSelectionAction(FeatureTransformWizardModel featureTransformWizardModel) {
51
		super(featureTransformWizardModel.getWizard().getWizardComponents());		
52
		this.featureTransformWizardModel = featureTransformWizardModel;
55 53
	}
56 54

  
57 55
	/* (non-Javadoc)
58 56
	 * @see jwizardcomponent.Action#performAction()
59 57
	 */
60
	public void performAction() {
61
		JWizardComponents components = wizard.getWizardComponents();
58
	public void performAction() {		
62 59
		//Gets the selected transformation
63
		SelectTransformWizard transformWizard = (SelectTransformWizard)components.getWizardPanel(0);
64
		FeatureTransformGui featureTransformGui = 
65
			transformWizard.getSelectedFeatureTransformGui();
60
		FeatureTransformGui featureTransformGui = featureTransformWizardModel.getSelectedFeatureTransformGui();
61
			
66 62
		//Gets the selected FeatureStore
67
		SelectDataStoreWizard dataStoreWizard = (SelectDataStoreWizard)components.getWizardPanel(1);
68
		FeatureStore featureStore = dataStoreWizard.getSelectedFeatureStore();
63
		FeatureStore featureStore = featureTransformWizardModel.getSelectedFeatureStore();
64
		
69 65
		//Gets the transform
70
		LoadLayerWizard loadLayerWizard = (LoadLayerWizard)components.getWizardPanel(3);
71
		FeatureStoreTransform featureStoreTransform = loadLayerWizard.getTransform();
66
		FeatureStoreTransform featureStoreTransform = featureTransformWizardModel.getTransform();
72 67
		
73 68
		//Apply the transformation
74 69
		try {
75 70
			featureStore.getTransforms().add(featureStoreTransform);
76 71
			//Create and load a new layer...
77
			if (loadLayerWizard.isLayerLoaded()){
72
			if (featureTransformWizardModel.isLayerLoaded()){
78 73
				FLayer layer = LayerFactory.getInstance().createLayer(featureTransformGui.toString(),
79 74
						featureStore);
80
				loadLayerWizard.getMapContext().getLayers().addLayer(layer);
75
				featureTransformWizardModel.getMapContext().getLayers().addLayer(layer);
81 76
			}
82 77
		} catch (DataException e) {
83 78
			logger.error("Error creating the transformation", e);
......
85 80
			logger.error("Error loading the layer", e);
86 81
		}
87 82
		//Closing the window
88
		PluginServices.getMDIManager().closeWindow(wizard);
83
		PluginServices.getMDIManager().closeWindow(featureTransformWizardModel.getWizard());
89 84
	}
90 85

  
91 86
}
branches/v2_0_0_prep/applications/appgvSIG/src/org/gvsig/app/daltransform/gui/FeatureTransformGui.java
34 34
import org.gvsig.fmap.dal.feature.FeatureStoreTransform;
35 35

  
36 36
/**
37
 * This interface is used to establish a relationship between 
38
 * feature transformations and their user interfaces. 
39
 * 
37 40
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
38 41
 */
39 42
public interface FeatureTransformGui {
40 43
    
41
	
44
	/**
45
	 * Creates a feature transformation from a feature store. The
46
	 * class that implements this interface can create a transformation
47
	 * using this feature store and all the parameters that the user has
48
	 * selected. All these parameters must be known by this class
49
	 * @param featureStore
50
	 * The selected feature store
51
	 * @return
52
	 * The transformation
53
	 * @throws DataException
54
	 */
42 55
	public FeatureStoreTransform createFeatureStoreTransform(FeatureStore featureStore) throws DataException;
43 56
		
57
	/**
58
	 * This method is called when the specific panel for this transformation
59
	 * is loaded. This class can refresh the panel using the
60
	 * selected feature store
61
	 * @param featureStore
62
	 * The selected feature store
63
	 * @throws DataException
64
	 */
44 65
	public void updateGui(FeatureStore featureStore) throws DataException;
45 66
	
67
	/**
68
	 * @return the specific panel for a concrete transformation
69
	 */
46 70
	public JPanel getPanel();
47 71

  
72
	/**
73
	 * @return the name that is displayed in the feature transformation
74
	 * list
75
	 */
48 76
	public String toString();
49 77
	
78
	/**
79
	 * @return a description of the feature transformation
80
	 */
50 81
	public String getDescription();
51 82
}
52 83

  
branches/v2_0_0_prep/applications/appgvSIG/src/org/gvsig/app/daltransform/gui/SelectTransformWizard.java
36 36
import javax.swing.event.ListSelectionEvent;
37 37
import javax.swing.event.ListSelectionListener;
38 38

  
39
import jwizardcomponent.JWizardComponents;
40
import jwizardcomponent.JWizardPanel;
41

  
42 39
import org.gvsig.AppGvSigLocator;
43 40
import org.gvsig.app.daltransform.FeatureTransformManager;
44 41

  
......
47 44
/**
48 45
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
49 46
 */
50
public class SelectTransformWizard extends JWizardPanel implements ListSelectionListener{
47
public class SelectTransformWizard extends FeatureTransformWizard implements ListSelectionListener{
51 48
	private JList transformList;
52 49
	private JScrollPane transformScrollPane;
53 50
	private JScrollPane descriptionScrollPane;
......
56 53
	/**
57 54
	 * @param wizardComponents
58 55
	 */
59
	public SelectTransformWizard(JWizardComponents wizardComponents) {
60
		super(wizardComponents);	
56
	public SelectTransformWizard(FeatureTransformWizardModel featureTransformWizardModel) {
57
		super(featureTransformWizardModel);	
61 58
		initComponents();
62 59
		initLabels();
63 60
		addTransforms();

Also available in: Unified diff