Revision 37891 branches/v2_0_0_prep/libraries/org.gvsig.newlayer/org.gvsig.newlayer.lib/org.gvsig.newlayer.lib.impl/src/main/java/org/gvsig/newlayer/impl/DefaultNewLayerService.java

View differences:

DefaultNewLayerService.java
43 43
import org.gvsig.newlayer.NewLayerProviderFactory;
44 44
import org.gvsig.newlayer.NewLayerService;
45 45
import org.gvsig.newlayer.NewLayerServiceException;
46
import org.gvsig.tools.service.ServiceException;
46 47

  
47 48
/**
48 49
 * Default {@link NewLayerService} implementation.
......
59 60
    private MapContext mapContext;
60 61

  
61 62
    /**
62
     * {@link DefaultNewLayerService} constructor 
63

  
63
     * {@link DefaultNewLayerService} constructor
64 64
     */
65
    public DefaultNewLayerService(NewLayerManager manager , MapContext mapContext) { 
65
    public DefaultNewLayerService(NewLayerManager manager, MapContext mapContext) {
66 66
        this.newLayerManager = manager;
67 67
        this.mapContext = mapContext;
68 68
    }
69 69

  
70
    public NewLayerProvider getProvider(){
71
		return provider;
70
    public NewLayerProvider getProvider() {
71
        return provider;
72 72
    }
73
    
74
	public void createLayer()
75
			throws NewLayerServiceException {
76
		try {
77
			this.getExplorer().add(this.getStoreName(), this.getNewStoreParameters(), true);
78
		} catch (DataException e) {
79
			throw new CantCreateNewLayerException(e);
80
		}
81
	}
82
	
83
	public void loadLayer() throws NewLayerServiceException {
84
		try {
85
			String storeName = this.getStoreName();
86
			NewFeatureStoreParameters storeParameters = this.getNewStoreParameters();
87
			DataManager dataManager=DALLocator.getDataManager();
88
			DataStore store = dataManager.openStore(storeName, storeParameters);
89
			String layerName = store.getName();
90 73

  
91
			MapContextManager mapContextManager = MapContextLocator.getMapContextManager();
92
			FLayer lyr = mapContextManager.createLayer(layerName, store);
93
			lyr.setActive(true);
94
			lyr.setVisible(true);
95
			mapContext.getLayers().addLayer(lyr);
74
    public void createLayer() throws NewLayerServiceException {
75
        try {
76
            this.getExplorer().add(this.getStoreName(),
77
                this.getNewStoreParameters(), true);
78
        } catch (DataException e) {
79
            throw new CantCreateNewLayerException(e);
80
        }
81
    }
96 82

  
97
			lyr.dispose();
98
		} catch (DataException e) {
99
			throw new CantOpenStoreException(e);
100
		} catch (ValidateDataParametersException e) {
101
			throw new CantOpenStoreException(e);
102
		} catch (LoadLayerException e) {
103
			throw new CantLoadNewLayerException(e);
104
		}
83
    public void loadLayer() throws NewLayerServiceException {
84
        try {
85
            String storeName = this.getStoreName();
86
            NewFeatureStoreParameters storeParameters =
87
                this.getNewStoreParameters();
88
            DataManager dataManager = DALLocator.getDataManager();
89
            DataStore store = dataManager.openStore(storeName, storeParameters);
90
            String layerName = store.getName();
105 91

  
106
	}
92
            MapContextManager mapContextManager =
93
                MapContextLocator.getMapContextManager();
94
            FLayer lyr = mapContextManager.createLayer(layerName, store);
95
            lyr.setActive(true);
96
            lyr.setVisible(true);
97
            mapContext.getLayers().addLayer(lyr);
107 98

  
108
	
109
	public class CantCreateNewLayerException extends NewLayerServiceException {
110
		/**
99
            lyr.dispose();
100
        } catch (DataException e) {
101
            throw new CantOpenStoreException(e);
102
        } catch (ValidateDataParametersException e) {
103
            throw new CantOpenStoreException(e);
104
        } catch (LoadLayerException e) {
105
            throw new CantLoadNewLayerException(e);
106
        }
107

  
108
    }
109

  
110
    public class CantCreateNewLayerException extends NewLayerServiceException {
111

  
112
        /**
111 113
		 * 
112 114
		 */
113
		private static final long serialVersionUID = 4208215791054246118L;
115
        private static final long serialVersionUID = 4208215791054246118L;
114 116

  
115
		public CantCreateNewLayerException(Throwable cause) {
116
			super("Can't create the layer", cause, "_cant_create_the_layer", serialVersionUID);
117
		}
118
	}
117
        public CantCreateNewLayerException(Throwable cause) {
118
            super("Can't create the layer", cause, "_cant_create_the_layer",
119
                serialVersionUID);
120
        }
121
    }
119 122

  
120
	public class CantOpenStoreException extends NewLayerServiceException {
123
    public class CantOpenStoreException extends NewLayerServiceException {
121 124

  
122
		/**
125
        /**
123 126
		 * 
124 127
		 */
125
		private static final long serialVersionUID = -2245228621032918630L;
128
        private static final long serialVersionUID = -2245228621032918630L;
126 129

  
127
		public CantOpenStoreException(Throwable cause) {
128
			super("Can't open store", cause, "_cant_open_store", serialVersionUID);
129
		}
130
	}
130
        public CantOpenStoreException(Throwable cause) {
131
            super("Can't open store", cause, "_cant_open_store",
132
                serialVersionUID);
133
        }
134
    }
131 135

  
132
	public class CantLoadNewLayerException extends NewLayerServiceException {
136
    public class CantLoadNewLayerException extends NewLayerServiceException {
133 137

  
134
		/**
138
        /**
135 139
		 * 
136 140
		 */
137
		private static final long serialVersionUID = -1711950651766745963L;
141
        private static final long serialVersionUID = -1711950651766745963L;
138 142

  
139
		public CantLoadNewLayerException(Throwable cause) {
140
			super("Can't load the new layer", cause, "_cant_load_the_new_layer", serialVersionUID);
141
		}
142
	}
143
        public CantLoadNewLayerException(Throwable cause) {
144
            super("Can't load the new layer", cause,
145
                "_cant_load_the_new_layer", serialVersionUID);
146
        }
147
    }
143 148

  
144
	public void setType(String type) {
145
		List<NewLayerProviderFactory> providers = this.newLayerManager.getProviders(NewLayerManager.STORETYPE.ANY);
146
		Iterator<NewLayerProviderFactory> it = providers.iterator();
147
		while (it.hasNext()) {
148
			NewLayerProviderFactory newLayerProviderFactory = it.next();
149
			if (newLayerProviderFactory.getName().equalsIgnoreCase(type)){
150
				this.type = newLayerProviderFactory;
151
				this.provider = newLayerProviderFactory.create(this);
152
				return;
153
			}
154
		}
155
		throw new IllegalArgumentException(type);
156
	}
149
    public void setType(String type) {
150
        try {
151
            setProviderFactory(this.newLayerManager
152
                .getNewLayerProviderFactory(type));
153
        } catch (ServiceException e) {
154
            throw new RuntimeException(e);
155
        }
156
    }
157 157

  
158
	public DataServerExplorer getExplorer() {
159
		return getProvider().getExplorer();
160
	}
158
    public DataServerExplorer getExplorer() {
159
        return getProvider().getExplorer();
160
    }
161 161

  
162
	public String getStoreName() {
163
		return getProvider().getStoreName();
164
	}
162
    public String getStoreName() {
163
        return getProvider().getStoreName();
164
    }
165 165

  
166
	public EditableFeatureType getFeatureType() {
167
		return getProvider().getFeatureType();
168
	}
166
    public EditableFeatureType getFeatureType() {
167
        return getProvider().getFeatureType();
168
    }
169 169

  
170
	public NewFeatureStoreParameters getNewStoreParameters() {
171
		return getProvider().getNewStoreParameters();
172
	}
170
    public NewFeatureStoreParameters getNewStoreParameters() {
171
        return getProvider().getNewStoreParameters();
172
    }
173 173

  
174
	public List<String> getTypes() {
175
		List<String> types = new ArrayList<String>();
176
		List<NewLayerProviderFactory> providers = this.newLayerManager.getProviders(NewLayerManager.STORETYPE.ANY);
177
		Iterator<NewLayerProviderFactory> it = providers.iterator();
178
		while (it.hasNext()) {
179
			NewLayerProviderFactory newLayerProviderFactory = it.next();
180
			types.add(newLayerProviderFactory.getName());
181
		}
182
		return types;
183
	}
174
    public List<String> getTypes() {
175
        List<String> types = new ArrayList<String>();
176
        List<NewLayerProviderFactory> providers = getProviderFactories();
177
        Iterator<NewLayerProviderFactory> it = providers.iterator();
178
        while (it.hasNext()) {
179
            NewLayerProviderFactory newLayerProviderFactory = it.next();
180
            types.add(newLayerProviderFactory.getName());
181
        }
182
        return types;
183
    }
184 184

  
185
	public String getType() {
186
		return this.type.getName();
187
	}
185
    public String getType() {
186
        return this.type.getName();
187
    }
188 188

  
189
	public void addLayerToView(boolean b) {
190
		this.addLayerToView = b;
191
	}
189
    public void addLayerToView(boolean b) {
190
        this.addLayerToView = b;
191
    }
192 192

  
193
	public MapContext getMapContext() {
194
		return mapContext;
195
	}
193
    public MapContext getMapContext() {
194
        return mapContext;
195
    }
196 196

  
197
    public void setProviderFactory(NewLayerProviderFactory type) {
198
        this.type = type;
199
        this.provider = type.create(this);
200
    }
201

  
202
    public NewLayerProviderFactory getProviderFactory() {
203
        return type;
204
    }
205

  
206
    public List<NewLayerProviderFactory> getProviderFactories() {
207

  
208
        List<NewLayerProviderFactory> providers =
209
            new ArrayList<NewLayerProviderFactory>(
210
                this.newLayerManager
211
                    .getProviders(NewLayerManager.STORETYPE.ANY));
212

  
213
        for (Iterator<NewLayerProviderFactory> iterator = providers.iterator(); iterator
214
            .hasNext();) {
215
            NewLayerProviderFactory newLayerProviderFactory = iterator.next();
216
            if (!newLayerProviderFactory.isEnabled()) {
217
                iterator.remove();
218
            }
219
        }
220

  
221
        return providers;
222
    }
223

  
197 224
}

Also available in: Unified diff