Revision 28434 branches/v2_0_0_prep/extensions/extCatalog/src/org/gvsig/catalog/CatalogClientExtension.java

View differences:

CatalogClientExtension.java
75 75
	private static final Logger logger = LoggerFactory.getLogger(CatalogClientExtension.class);
76 76
	public static final String CATALOGLAYERS = "CatalogLayers";
77 77
	private CatalogLibrary catalogLibrary = null;
78
	
78

  
79 79
	/* (non-Javadoc)
80
     * @see com.iver.andami.plugins.Extension#inicializar()
81
     */
82
    public void initialize() {
83
    	catalogLibrary = new CatalogDataStoreLibrary();
84
    	catalogLibrary.initialize();
85
    	
86
    	ExtensionPointManager extensionPointManager = ToolsLocator
80
	 * @see com.iver.andami.plugins.Extension#inicializar()
81
	 */
82
	public void initialize() {
83
		catalogLibrary = new CatalogDataStoreLibrary();
84
		catalogLibrary.initialize();
85

  
86
		ExtensionPointManager extensionPointManager = ToolsLocator
87 87
		.getExtensionPointManager();
88 88
		extensionPointManager.add(CATALOGLAYERS, "List of possible layers that can be loaded from a catalog");
89
        registerIcons();
90
    }
91
    
92
    private void registerIcons(){
93
    	PluginServices.getIconTheme().registerDefault(
89
		registerIcons();
90
	}
91

  
92
	private void registerIcons(){
93
		PluginServices.getIconTheme().registerDefault(
94 94
				"catalog-search",
95 95
				this.getClass().getClassLoader().getResource("images/SearchButton.png")
96
			);
97
    }
98
    
99
    /*
100
     * (non-Javadoc)
101
     * @see com.iver.andami.plugins.Extension#postInitialize()
102
     */
103
    public void postInitialize(){
104
    	catalogLibrary.postInitialize();   
105
    	
106
    	//Initialazing the layer loaders
107
    	CatalogManager catalogManager = CatalogLocator.getCatalogManager();
108
    	catalogManager.addLayerLoader(Resource.WMS, WMSLayerLoader.class);
109
    	catalogManager.addLayerLoader(Resource.POSTGIS, PostgisLayerLoader.class);
110
    	catalogManager.addLayerLoader(Resource.WCS, WCSLayerLoader.class);
111
    	catalogManager.addLayerLoader(Resource.WEBSITE, LinkLoader.class);
112
    	catalogManager.addLayerLoader(Resource.DOWNLOAD, LinkLoader.class);
113
    	catalogManager.addLayerLoader(Resource.WFS, WFSLayerLoader.class);
114
    	catalogManager.addLayerLoader(Resource.ARCIMS_IMAGE, ARCIMSLayerLoader.class);
115
    	catalogManager.addLayerLoader(Resource.ARCIMS_VECTORIAL, ARCIMSLayerLoader.class);
116
    }
96
		);
97
		PluginServices.getIconTheme().registerDefault(
98
				"catalog-up",
99
				this.getClass().getClassLoader().getResource("images/up.png")
100
		);
101
		PluginServices.getIconTheme().registerDefault(
102
				"catalog-down",
103
				this.getClass().getClassLoader().getResource("images/down.png")
104
		);
105
		PluginServices.getIconTheme().registerDefault(
106
				"catalog-record",
107
				this.getClass().getClassLoader().getResource("images/IcoRecord.png")
108
		);
109
		PluginServices.getIconTheme().registerDefault(
110
				"catalog-no-image",
111
				this.getClass().getClassLoader().getResource("images/no_image.png")
112
		);
113
		PluginServices.getIconTheme().registerDefault(
114
				"catalog-properties",
115
				this.getClass().getClassLoader().getResource("images/serverProperties.png")
116
		);
117
	}
117 118

  
118
    /* (non-Javadoc)
119
     * @see com.iver.andami.plugins.Extension#execute(java.lang.String)
120
     */
121
    public void execute(String actionCommand) {
122
    	actionConnectDialogStart();
123
    }
119
	/*
120
	 * (non-Javadoc)
121
	 * @see com.iver.andami.plugins.Extension#postInitialize()
122
	 */
123
	public void postInitialize(){
124
		catalogLibrary.postInitialize();   
124 125

  
125
    /**
126
     * DOCUMENT ME!
127
     */
128
    private void actionConnectDialogStart() {
129
        System.out.println("Bot?n Cliente de metadatos pulsado");
130
        restoreServerList();
126
		//Initialazing the layer loaders
127
		CatalogManager catalogManager = CatalogLocator.getCatalogManager();
128
		catalogManager.addLayerLoader(Resource.WMS, WMSLayerLoader.class);
129
		catalogManager.addLayerLoader(Resource.POSTGIS, PostgisLayerLoader.class);
130
		catalogManager.addLayerLoader(Resource.WCS, WCSLayerLoader.class);
131
		catalogManager.addLayerLoader(Resource.WEBSITE, LinkLoader.class);
132
		catalogManager.addLayerLoader(Resource.DOWNLOAD, LinkLoader.class);
133
		catalogManager.addLayerLoader(Resource.WFS, WFSLayerLoader.class);
134
		catalogManager.addLayerLoader(Resource.ARCIMS_IMAGE, ARCIMSLayerLoader.class);
135
		catalogManager.addLayerLoader(Resource.ARCIMS_VECTORIAL, ARCIMSLayerLoader.class);
136
	}
131 137

  
132
        ConnectDialog connectDialog = new ConnectDialog();
133
        PluginServices.getMDIManager().addWindow(connectDialog);
134
    }
138
	/* (non-Javadoc)
139
	 * @see com.iver.andami.plugins.Extension#execute(java.lang.String)
140
	 */
141
	public void execute(String actionCommand) {
142
		actionConnectDialogStart();
143
	}
135 144

  
136
    /**
137
     * It restores a server list. If this list does't exist it create  a server
138
     * list by default.
139
     */
140
    private void restoreServerList() {
141
        ServerDataPersistence persistence = new ServerDataPersistence(this,ServerData.SERVER_TYPE_CATALOG);
142
        
143
        ServerData[] servers = persistence.getArrayOfServerData();
144
        
145
        boolean found = false;
146
        for (int i=0 ; i<servers.length ; i++){
147
            if (servers[i].getServiceType().equals(ServerData.SERVER_TYPE_CATALOG)){
148
                found = true;
149
            }
150
        }       
151
        
152
        if (!found){
153
             if (servers.length == 0){
154
                servers = getDefaultServers();
155
            }else{
156
                ServerData[] newServers = new ServerData[servers.length + getDefaultServers().length ];
157
                System.arraycopy(servers, 0, newServers, 0, servers.length);
158
                System.arraycopy(getDefaultServers(), 0, newServers, servers.length, getDefaultServers().length);
159
                servers = newServers;
160
            }
161
            persistence.setArrayOfServerData(servers);
162
        }
163
         
164
        
165
        for (int i = 0; i < servers.length; i++) {
166
            if (servers[i].getServiceType().equals(ServerData.SERVER_TYPE_CATALOG)){
167
                ConnectDialog.addServer(servers[i]);
168
            }
169
        }
170
        
171
        
172
    }
145
	/**
146
	 * DOCUMENT ME!
147
	 */
148
	private void actionConnectDialogStart() {
149
		System.out.println("Bot?n Cliente de metadatos pulsado");
150
		restoreServerList();
173 151

  
174
    /**
175
     * It creates a server list by default
176
     *
177
     * @return
178
     */
179
    private ServerData[] getDefaultServers() {
180
    	ServerData[] servers = new ServerData[4];
181
        Calendar cal = new GregorianCalendar();
182
        Date date = cal.getTime();
152
		ConnectDialog connectDialog = new ConnectDialog();
153
		PluginServices.getMDIManager().addWindow(connectDialog);
154
	}
183 155

  
184
        
185
        servers[0] = new ServerData("http://delta.icc.es/indicio/csw", date, date, ServerData.SERVER_TYPE_CATALOG, ServerData.SERVER_SUBTYPE_CATALOG_CSW);
186
        servers[1] = new ServerData("mapas.euitto.upm.es:2100", date, date, ServerData.SERVER_TYPE_CATALOG, ServerData.SERVER_SUBTYPE_CATALOG_Z3950);
187
        servers[2] = new ServerData("193.43.36.137:2100", date, date, ServerData.SERVER_TYPE_CATALOG, ServerData.SERVER_SUBTYPE_CATALOG_Z3950);
188
        servers[3] = new ServerData("http://idee.unizar.es/SRW/servlet/search/ExplainSOAP",date,date,ServerData.SERVER_TYPE_CATALOG,ServerData.SERVER_SUBTYPE_CATALOG_SRW);
189
        return servers;
190
    }
156
	/**
157
	 * It restores a server list. If this list does't exist it create  a server
158
	 * list by default.
159
	 */
160
	private void restoreServerList() {
161
		ServerDataPersistence persistence = new ServerDataPersistence(this,ServerData.SERVER_TYPE_CATALOG);
191 162

  
192
    /* (non-Javadoc)
193
     * @see com.iver.andami.plugins.Extension#isEnabled()
194
     */
195
    public boolean isEnabled() {
196
        return true;
197
    }
163
		ServerData[] servers = persistence.getArrayOfServerData();
198 164

  
199
    /* (non-Javadoc)
200
     * @see com.iver.andami.plugins.Extension#isVisible()
201
     */
202
    public boolean isVisible() {
203
        com.iver.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager()
204
                                                             .getActiveWindow();
165
		boolean found = false;
166
		for (int i=0 ; i<servers.length ; i++){
167
			if (servers[i].getServiceType().equals(ServerData.SERVER_TYPE_CATALOG)){
168
				found = true;
169
			}
170
		}       
205 171

  
206
        if (f == null) {
207
            return false;
208
        }
172
		if (!found){
173
			if (servers.length == 0){
174
				servers = getDefaultServers();
175
			}else{
176
				ServerData[] newServers = new ServerData[servers.length + getDefaultServers().length ];
177
				System.arraycopy(servers, 0, newServers, 0, servers.length);
178
				System.arraycopy(getDefaultServers(), 0, newServers, servers.length, getDefaultServers().length);
179
				servers = newServers;
180
			}
181
			persistence.setArrayOfServerData(servers);
182
		}
209 183

  
210
        return (f instanceof BaseView);
211
    }
184

  
185
		for (int i = 0; i < servers.length; i++) {
186
			if (servers[i].getServiceType().equals(ServerData.SERVER_TYPE_CATALOG)){
187
				ConnectDialog.addServer(servers[i]);
188
			}
189
		}
190

  
191

  
192
	}
193

  
194
	/**
195
	 * It creates a server list by default
196
	 *
197
	 * @return
198
	 */
199
	private ServerData[] getDefaultServers() {
200
		ServerData[] servers = new ServerData[4];
201
		Calendar cal = new GregorianCalendar();
202
		Date date = cal.getTime();
203

  
204

  
205
		servers[0] = new ServerData("http://delta.icc.es/indicio/csw", date, date, ServerData.SERVER_TYPE_CATALOG, ServerData.SERVER_SUBTYPE_CATALOG_CSW);
206
		servers[1] = new ServerData("mapas.euitto.upm.es:2100", date, date, ServerData.SERVER_TYPE_CATALOG, ServerData.SERVER_SUBTYPE_CATALOG_Z3950);
207
		servers[2] = new ServerData("193.43.36.137:2100", date, date, ServerData.SERVER_TYPE_CATALOG, ServerData.SERVER_SUBTYPE_CATALOG_Z3950);
208
		servers[3] = new ServerData("http://idee.unizar.es/SRW/servlet/search/ExplainSOAP",date,date,ServerData.SERVER_TYPE_CATALOG,ServerData.SERVER_SUBTYPE_CATALOG_SRW);
209
		return servers;
210
	}
211

  
212
	/* (non-Javadoc)
213
	 * @see com.iver.andami.plugins.Extension#isEnabled()
214
	 */
215
	public boolean isEnabled() {
216
		return true;
217
	}
218

  
219
	/* (non-Javadoc)
220
	 * @see com.iver.andami.plugins.Extension#isVisible()
221
	 */
222
	public boolean isVisible() {
223
		com.iver.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager()
224
		.getActiveWindow();
225

  
226
		if (f == null) {
227
			return false;
228
		}
229

  
230
		return (f instanceof BaseView);
231
	}
212 232
}

Also available in: Unified diff