Statistics
| Revision:

root / branches / v2_0_0_prep / extensions / org.gvsig.daltransform.app.mainplugin / src / main / java / org / gvsig / daltransform / impl / DefaultDataTransformManager.java @ 36000

History | View | Annotate | Download (5.75 KB)

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.daltransform.impl;
29

    
30
import java.util.ArrayList;
31
import java.util.Iterator;
32
import java.util.List;
33

    
34
import org.slf4j.Logger;
35
import org.slf4j.LoggerFactory;
36

    
37
import org.gvsig.daltransform.CreateWizardException;
38
import org.gvsig.daltransform.DataTransformManager;
39
import org.gvsig.daltransform.NotRegisteredTransformException;
40
import org.gvsig.daltransform.swing.DataTransformGui;
41
import org.gvsig.daltransform.swing.DataTransformWizard;
42
import org.gvsig.daltransform.swing.JDataTransformList;
43
import org.gvsig.daltransform.swing.JDialogDataTransformList;
44
import org.gvsig.daltransform.swing.impl.DefaultJDataTransformList;
45
import org.gvsig.daltransform.swing.impl.DefaultJDialogDataTransformList;
46
import org.gvsig.fmap.dal.feature.FeatureStore;
47
import org.gvsig.tools.ToolsLocator;
48
import org.gvsig.tools.extensionpoint.ExtensionPoint;
49
import org.gvsig.tools.extensionpoint.ExtensionPointManager;
50

    
51
/**
52
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
53
 */
54
public class DefaultDataTransformManager implements DataTransformManager{
55
        private static final String TRANSFORM_GUI_EXTENSION_POINT = "TransformGuiExtensionPoint";
56
        private static final String TRANSFORM_WIZARD_EXTENSION_POINT = "TransformWizardExtensionPoint";
57
        private static final String TRANSFORM_WIZARD_NAME = "Wizard";
58
        private static final Logger logger = LoggerFactory.getLogger(DefaultDataTransformManager.class);
59
        private ExtensionPointManager extensionPoints = ToolsLocator.getExtensionPointManager();
60
        
61
        /*
62
         * (non-Javadoc)
63
         * @see org.gvsig.feature.transform.FeatureTransformManager#registerFeatureTransform(java.lang.String, java.lang.Class)
64
         */
65
        public void registerDataTransform(String name,
66
                        Class<?> featureTransformPage) {
67
                if (!DataTransformGui.class.isAssignableFrom(featureTransformPage)) {
68
                        throw new IllegalArgumentException(featureTransformPage.getName()
69
                                        + " must implement the DataTransformGui interface");
70
                }
71
                
72
                ExtensionPoint extensionPoint = extensionPoints.add(TRANSFORM_GUI_EXTENSION_POINT, "");
73
                extensionPoint.append(name, name, featureTransformPage);
74
        }
75

    
76
        /*
77
         * (non-Javadoc)
78
         * @see org.gvsig.feature.transform.FeatureTransformManager#getFeatureTransforms()
79
         */
80
        @SuppressWarnings("unchecked")
81
    public List<DataTransformGui> getDataTransforms() {
82
                List<DataTransformGui> transformArray = new ArrayList<DataTransformGui>();
83
                
84
                ExtensionPoint ep = extensionPoints.add(TRANSFORM_GUI_EXTENSION_POINT);
85
                Iterator<ExtensionPoint.Extension> iterator = ep.iterator();
86
                while (iterator.hasNext()) {
87
                        try {                                
88
                                transformArray.add((DataTransformGui)((ExtensionPoint.Extension) iterator
89
                                                .next()).create());                                
90
                        } catch (Exception e) {
91
                                logger.error("Error creating a FeatureTranformationGui", e);
92
                        } 
93
                }
94
                return transformArray;
95
        }
96

    
97
        /*
98
         * (non-Javadoc)
99
         * @see org.gvsig.app.daltransform.DataTransformManager#createWizard()
100
         */
101
        public DataTransformWizard createWizard() throws CreateWizardException {
102
                ExtensionPoint ep = extensionPoints.add(TRANSFORM_WIZARD_EXTENSION_POINT);
103
                try {
104
                        return (DataTransformWizard)ep.create(TRANSFORM_WIZARD_NAME);                        
105
                } catch (Exception e) {
106
                        throw new CreateWizardException(e);
107
                }        
108
        }
109

    
110
        /* (non-Javadoc)
111
         * @see org.gvsig.app.daltransform.DataTransformManager#registerDataTransformWizard(java.lang.String, java.lang.Class)
112
         */
113
        public void registerDataTransformWizard(Class<?> dataTransformWizard) {
114
                if (!DataTransformWizard.class.isAssignableFrom(dataTransformWizard)) {
115
                        throw new IllegalArgumentException(dataTransformWizard.getName()
116
                                        + " must implement the DataTransformWizard interface");
117
                }
118
                
119
                ExtensionPoint extensionPoint = extensionPoints.add(TRANSFORM_WIZARD_EXTENSION_POINT, "");
120
                extensionPoint.append(TRANSFORM_WIZARD_NAME, "", dataTransformWizard);
121
        }
122

    
123
        /* (non-Javadoc)
124
         * @see org.gvsig.app.daltransform.DataTransformManager#createWizard(java.lang.String)
125
         */
126
        public DataTransformWizard createWizard(String transformName)
127
                        throws CreateWizardException {
128
                ExtensionPoint ep = extensionPoints.add(TRANSFORM_GUI_EXTENSION_POINT);
129
                try {
130
                        Object obj = ep.create(transformName);
131
                        if (obj == null){
132
                                throw new NotRegisteredTransformException(transformName);
133
                        }
134
                        DataTransformGui dataTransformGui = (DataTransformGui)obj;
135
                        DataTransformWizard wizard = createWizard();
136
                        wizard.setDataTransformGui(dataTransformGui);
137
                        return wizard;
138
                } catch (Exception e) {
139
                        throw new CreateWizardException(e);
140
                }                 
141
        }
142
        
143
    public JDataTransformList createJDataTransformList(FeatureStore featureStore) {
144
        return new DefaultJDataTransformList(featureStore);
145
    }
146

    
147
    public JDialogDataTransformList createJDialogDataTransformList() {
148
        return new DefaultJDialogDataTransformList();
149
    }
150

    
151
//    public JDialogDataTransformList createJDialogDataTransformList(
152
//        FeatureStore featureStore) {
153
//        return new DefaultJDialogDataTransformList(featureStore);
154
//    }
155
}
156