Revision 207

View differences:

org.gvsig.busquedacatastral/tags/org.gvsig.busquedacatastral-1.0.2/pom.xml
1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2
 <modelVersion>4.0.0</modelVersion>
3
 <parent>
4
  <groupId>org.gvsig</groupId>
5
  <artifactId>org.gvsig.desktop</artifactId>
6
  <version>2.0.146</version>
7
 </parent>
8
 <artifactId>org.gvsig.busquedacatastral</artifactId>
9
 <version>1.0.2</version>
10
 <packaging>pom</packaging>
11
 <name>org.gvsig.busquedacatastral</name>
12
 <description>Busqueda catastral Plugin</description>
13

  
14
 <repositories>
15
  <repository>
16
   <id>gvsig-public-http-repository</id>
17
   <name>gvSIG maven public HTTP repository</name>
18
   <url>http://devel.gvsig.org/m2repo/j2se</url>
19
   <releases>
20
    <enabled>true</enabled>
21
    <updatePolicy>daily</updatePolicy>
22
    <checksumPolicy>warn</checksumPolicy>
23
   </releases>
24
   <snapshots>
25
    <enabled>true</enabled>
26
    <updatePolicy>daily</updatePolicy>
27
    <checksumPolicy>warn</checksumPolicy>
28
   </snapshots>
29
  </repository>
30
 </repositories>
31

  
32
 <url>dav:https://devel.gvsig.org/sites/${project.artifactId}/${project.version}</url>
33
 <scm>
34
  <connection>scm:svn:https://devel.gvsig.org/svn/gvsig-projects-pool/org.gvsig.busquedacatastral/tags/org.gvsig.busquedacatastral-1.0.2</connection>
35
  <developerConnection>scm:svn:https://devel.gvsig.org/svn/gvsig-projects-pool/org.gvsig.busquedacatastral/tags/org.gvsig.busquedacatastral-1.0.2</developerConnection>
36
  <url>https://devel.gvsig.org/redmine/projects/gvsig-projects-pool/repository/show/org.gvsig.busquedacatastral/tags/org.gvsig.busquedacatastral-1.0.2</url>
37
 </scm>
38

  
39
 <distributionManagement>
40
  <site>
41
   <id>gvsig-repository</id>
42
   <url>dav:https://devel.gvsig.org/sites/${project.artifactId}/${project.version}</url>
43
  </site>
44
 </distributionManagement>
45

  
46
 <build>
47
  <plugins>
48
   <plugin>
49
    <groupId>org.apache.maven.plugins</groupId>
50
    <artifactId>maven-release-plugin</artifactId>
51
    <configuration>
52
     <tagBase>https://devel.gvsig.org/svn/gvsig-projects-pool/${project.artifactId}/tags</tagBase>
53
    </configuration>
54
   </plugin>
55
  </plugins>
56
 </build>
57

  
58
 <dependencyManagement>
59
  <dependencies>
60
   <dependency>
61
    <groupId>org.gvsig</groupId>
62
    <artifactId>org.gvsig.busquedacatastral.app.mainplugin</artifactId>
63
    <version>${org.gvsig.busquedacatastral.version}</version>
64
   </dependency>
65
   <dependency>
66
    <groupId>org.gvsig</groupId>
67
    <artifactId>org.gvsig.busquedacatastral.lib.api</artifactId>
68
    <version>${org.gvsig.busquedacatastral.version}</version>
69
   </dependency>
70
   <dependency>
71
    <groupId>org.gvsig</groupId>
72
    <artifactId>org.gvsig.busquedacatastral.lib.impl</artifactId>
73
    <version>${org.gvsig.busquedacatastral.version}</version>
74
   </dependency>
75
   <dependency>
76
    <groupId>org.gvsig</groupId>
77
    <artifactId>org.gvsig.busquedacatastral.swing.api</artifactId>
78
    <version>${org.gvsig.busquedacatastral.version}</version>
79
   </dependency>
80
   <dependency>
81
    <groupId>org.gvsig</groupId>
82
    <artifactId>org.gvsig.busquedacatastral.swing.impl</artifactId>
83
    <version>${org.gvsig.busquedacatastral.version}</version>
84
   </dependency>
85

  
86
   <!--These dependencies are added to use the webservice and parse its response -->
87
   <dependency>
88
    <groupId>axis</groupId>
89
    <artifactId>axis-jaxrpc</artifactId>
90
    <version>1.4</version>
91
   </dependency>
92
   <dependency>
93
    <groupId>org.apache.axis</groupId>
94
    <artifactId>axis</artifactId>
95
    <version>1.4</version>
96
   </dependency>
97
   <dependency>
98
    <groupId>commons-logging</groupId>
99
    <artifactId>commons-logging</artifactId>
100
    <version>1.1.1</version>
101
   </dependency>
102
   <dependency>
103
    <groupId>commons-discovery</groupId>
104
    <artifactId>commons-discovery</artifactId>
105
    <version>0.4</version>
106
   </dependency>
107
   <dependency>
108
    <groupId>wsdl4j</groupId>
109
    <artifactId>wsdl4j</artifactId>
110
    <version>1.6.2</version>
111
   </dependency>
112

  
113
  </dependencies>
114
 </dependencyManagement>
115

  
116
 <modules>
117
  <module>org.gvsig.busquedacatastral.app</module>
118
  <module>org.gvsig.busquedacatastral.lib</module>
119
  <module>org.gvsig.busquedacatastral.swing</module>
120
 </modules>
121

  
122
 <properties>
123
  <org.gvsig.busquedacatastral.version>1.0.2</org.gvsig.busquedacatastral.version>
124
 </properties>
125
</project>
org.gvsig.busquedacatastral/tags/org.gvsig.busquedacatastral-1.0.2/org.gvsig.busquedacatastral.app/pom.xml
1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2
  <modelVersion>4.0.0</modelVersion>
3
  <parent>
4
    <groupId>org.gvsig</groupId>
5
    <artifactId>org.gvsig.busquedacatastral</artifactId>
6
    <version>1.0.2</version>
7
  </parent>
8
  <artifactId>org.gvsig.busquedacatastral.app</artifactId>
9
  <packaging>pom</packaging>
10
  <modules>
11
   <module>org.gvsig.busquedacatastral.app.mainplugin</module>
12
  </modules>
13
</project>
org.gvsig.busquedacatastral/tags/org.gvsig.busquedacatastral-1.0.2/org.gvsig.busquedacatastral.app/org.gvsig.busquedacatastral.app.mainplugin/src/main/assembly/gvsig-plugin-package.xml
1
<assembly>
2
  <id>gvsig-plugin-package</id>
3
  <formats>
4
    <format>zip</format>
5
  </formats>
6
  <baseDirectory>${project.artifactId}</baseDirectory>
7
  <includeBaseDirectory>true</includeBaseDirectory>
8
  <files>
9
    <file>
10
      <source>target/${project.artifactId}-${project.version}.jar</source>
11
      <outputDirectory>lib</outputDirectory>
12
    </file>
13
    <file>
14
      <source>target/package.info</source>
15
    </file>
16
  </files>
17

  
18
  <fileSets>
19
    <fileSet>
20
      <directory>src/main/resources-plugin</directory>
21
      <outputDirectory>.</outputDirectory>
22
    </fileSet>
23
  </fileSets>
24

  
25
  <dependencySets>
26
    <dependencySet>
27
      <useProjectArtifact>false</useProjectArtifact>
28
      <useTransitiveDependencies>false</useTransitiveDependencies>
29
      <outputDirectory>lib</outputDirectory>
30
      <includes>
31
        <include>org.gvsig:org.gvsig.busquedacatastral.lib.api</include>
32
        <include>org.gvsig:org.gvsig.busquedacatastral.lib.impl</include>
33
        <include>org.gvsig:org.gvsig.busquedacatastral.swing.api</include>
34
        <include>org.gvsig:org.gvsig.busquedacatastral.swing.impl</include>
35
        <include>axis:axis-jaxrpc</include>
36
        <include>org.apache.axis:axis</include>
37
        <include>commons-logging:commons-logging</include>
38
        <include>commons-discovery:commons-discovery</include>
39
        <include>wsdl4j:wsdl4j</include>
40
      </includes>
41
    </dependencySet>
42
  </dependencySets>
43

  
44
</assembly>
org.gvsig.busquedacatastral/tags/org.gvsig.busquedacatastral-1.0.2/org.gvsig.busquedacatastral.app/org.gvsig.busquedacatastral.app.mainplugin/src/main/java/org/gvsig/busquedacatastral/app/mainplugin/BusquedaCatastralExtension.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2016 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.busquedacatastral.app.mainplugin;
24

  
25
import java.awt.Color;
26
import java.awt.event.ActionEvent;
27
import java.awt.event.ActionListener;
28
import java.io.File;
29

  
30
import javax.swing.JOptionPane;
31

  
32
import org.apache.commons.lang3.StringUtils;
33
import org.cresques.cts.IProjection;
34
import org.gvsig.andami.IconThemeHelper;
35
import org.gvsig.andami.Utilities;
36
import org.gvsig.andami.plugins.Extension;
37
import org.gvsig.app.ApplicationLocator;
38
import org.gvsig.app.ApplicationManager;
39
import org.gvsig.app.project.documents.view.ViewDocument;
40
import org.gvsig.app.project.documents.view.gui.IView;
41
import org.gvsig.busquedacatastral.lib.api.BusquedaCatastralLocator;
42
import org.gvsig.busquedacatastral.lib.api.ReferenciaCatastral;
43
import org.gvsig.busquedacatastral.swing.api.BusquedaCatastralConsultaCatastralPanel;
44
import org.gvsig.busquedacatastral.swing.api.BusquedaCatastralSwingLocator;
45
import org.gvsig.busquedacatastral.swing.api.exceptions.BusquedaCatastralCreatingPanelException;
46
import org.gvsig.busquedacatastral.swing.api.exceptions.BusquedaCatastralObtainingDataException;
47
import org.gvsig.busquedacatastral.swing.api.exceptions.BusquedaCatastralObtainingPointException;
48
import org.gvsig.fmap.geom.Geometry;
49
import org.gvsig.fmap.geom.GeometryLocator;
50
import org.gvsig.fmap.geom.GeometryManager;
51
import org.gvsig.fmap.geom.primitive.Envelope;
52
import org.gvsig.fmap.geom.primitive.Point;
53
import org.gvsig.fmap.mapcontext.MapContext;
54
import org.gvsig.fmap.mapcontext.MapContextLocator;
55
import org.gvsig.fmap.mapcontext.ViewPort;
56
import org.gvsig.fmap.mapcontext.layers.vectorial.GraphicLayer;
57
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
58
import org.gvsig.fmap.mapcontext.rendering.symbols.SymbolManager;
59
import org.gvsig.symbology.SymbologyLocator;
60
import org.gvsig.symbology.SymbologyManager;
61
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.text.ISimpleTextSymbol;
62
import org.gvsig.tools.ToolsLocator;
63
import org.gvsig.tools.dynobject.DynObject;
64
import org.gvsig.tools.i18n.I18nManager;
65
import org.gvsig.tools.locator.LocatorException;
66
import org.gvsig.tools.swing.api.ToolsSwingLocator;
67
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
68
import org.slf4j.Logger;
69
import org.slf4j.LoggerFactory;
70

  
71

  
72

  
73
/**
74
 * Extension for catastral data searchs
75
 * @author dmartinez (dmartinez@disid.com)
76
 */
77
public class BusquedaCatastralExtension extends Extension {
78
	private Logger              logger           = LoggerFactory.getLogger(BusquedaCatastralExtension.class);
79

  
80
	private static final String CACHEFOLDERNAME="BusquedaCatastral";
81

  
82
	public static final String SHOW_POINT_BUSQUEDACATASTRAL_ID = "ShowPointBusquedaCatastral";
83

  
84
	public void initialize() {
85
	    IconThemeHelper.registerIcon(null, "view-navigation-busqueda-catastral", this);
86
	    BusquedaCatastralLocator.getManager().setCacheFolder(new File(Utilities.TEMPDIRECTORYPATH, CACHEFOLDERNAME));
87
	}
88

  
89
	public void postInitialize() {
90

  
91
	}
92

  
93
	public void execute(String actionCommand) {
94
	    final WindowManager winManager = ToolsSwingLocator.getWindowManager();
95
	    final I18nManager i18nManager = ToolsLocator.getI18nManager();
96

  
97
	    if (StringUtils.equalsIgnoreCase(actionCommand, "busqueda-catastral")) {
98
	        //Create GUI to query catastro
99
	        BusquedaCatastralConsultaCatastralPanel panel;
100
            try {
101
                panel = BusquedaCatastralSwingLocator.getManager().createConsultaCatastralPanel();
102
            } catch (BusquedaCatastralCreatingPanelException
103
                | LocatorException e) {
104
                logger.error("Error creating panel", e);
105
                JOptionPane.showMessageDialog(
106
                    null,
107
                    new StringBuilder().append(i18nManager.getTranslation("_error_creating_panel"))
108
                        .append(":").append(e.getLocalizedMessage()),
109
                    i18nManager.getTranslation("error"), JOptionPane.ERROR_MESSAGE);
110
                return;
111
            }
112
            panel.addActionListener(new ActionListener() {
113

  
114
                public void actionPerformed(ActionEvent event) {
115
                    BusquedaCatastralConsultaCatastralPanel panel = (BusquedaCatastralConsultaCatastralPanel) event.getSource();
116
                    if (panel.isSelectedAction(BusquedaCatastralConsultaCatastralPanel.PanelAction.CANCEL)) {
117
                        return;
118
                    }else if(panel.isSelectedAction(BusquedaCatastralConsultaCatastralPanel.PanelAction.FOCUSTOPOINT)){
119
                        Point selectedPoint;
120
                        ReferenciaCatastral selectedRefCatastral;
121
                        try {
122
                            selectedPoint = panel.getPoint(getActiveViewProjection());
123
                            selectedRefCatastral=panel.getSelectedReferenciaCatastral();
124
                        } catch (BusquedaCatastralObtainingPointException e) {
125
                            logger.error("Error obtaining point", e);
126
                            JOptionPane.showMessageDialog(
127
                                null,
128
                                new StringBuilder().append(i18nManager.getTranslation("_error_obtaining_point"))
129
                                    .append(":").append(e.getLocalizedMessage()),
130
                                i18nManager.getTranslation("error"), JOptionPane.ERROR_MESSAGE);
131
                            return;
132
                        }
133
                        focusToPoint(selectedPoint);
134
                        showPoint(selectedPoint,selectedRefCatastral.getRC());
135
                    }else if(panel.isSelectedAction(BusquedaCatastralConsultaCatastralPanel.PanelAction.DELETEPOINTS)){
136
                        deletePoints();
137
                    }else if(panel.isSelectedAction(BusquedaCatastralConsultaCatastralPanel.PanelAction.SHOWDATA)){
138
                        try {
139
                            DynObject datosCatastrales=panel.getDatosCatastrales();
140
                        } catch (BusquedaCatastralObtainingDataException e) {
141
                            logger.error("Error obtaining datos catastrales", e);
142
                            JOptionPane.showMessageDialog(
143
                                null,
144
                                new StringBuilder().append(i18nManager.getTranslation("_error_obtaining_data"))
145
                                    .append(":").append(e.getLocalizedMessage()),
146
                                i18nManager.getTranslation("error"), JOptionPane.ERROR_MESSAGE);
147
                            return;
148
                        }
149
                        //TODO Mostrar los datos obtenidos
150
                    }
151
                }
152
            });
153

  
154
            winManager.showWindow(panel.asJComponent(), i18nManager.getTranslation("_busqueda_catastral"),
155
                WindowManager.MODE.WINDOW);
156

  
157
	    }
158
	}
159

  
160

  
161

  
162
	public boolean isEnabled() {
163
	  //It needs an active view with a valid viewport
164
	    IView view = getActiveView();
165
        if (view != null) {
166
            ViewPort viewPort = view.getMapControl().getViewPort();
167
            Envelope viewPortEnvelope = viewPort.getEnvelope();
168
            if(viewPortEnvelope == null || viewPortEnvelope.isEmpty()){
169
                return false;
170
            }
171
            return true;
172
        }
173
        return false;
174
	}
175

  
176
	public boolean isVisible() {
177
	    //It needs an active view
178
	    IView view = getActiveView();
179
        if (view != null) {
180
            return true;
181
        }
182
        return false;
183
	}
184

  
185

  
186
    private IView getActiveView() {
187
        ApplicationManager application = ApplicationLocator.getManager();
188
        IView view = (IView) application.getActiveComponent(ViewDocument.class);
189
        return view;
190
    }
191

  
192
    private IProjection getActiveViewProjection(){
193
        if (getActiveView()!=null){
194
            return getActiveView().getMapControl().getViewPort().getProjection();
195
        }else{
196
            return null;
197
        }
198
    }
199

  
200
    /**
201
     * Focus the view centered in a selected Point
202
     * @param focusPoint
203
     */
204
    private void focusToPoint(Point focusPoint){
205
        IView activeView = getActiveView();
206
        if (activeView!=null){
207
            ViewPort viewPort =activeView.getMapControl().getViewPort();
208
            MapContext mapContext = activeView.getMapControl().getMapContext();
209
            Envelope envelope = viewPort.getAdjustedEnvelope();
210
            envelope.centerTo(focusPoint);
211
            mapContext.zoomToEnvelope(envelope);
212
        }
213
    }
214

  
215

  
216
    /**
217
     * Show the m in the point p on the graphicLayer
218
     *
219
     * @param m
220
     * @param ct
221
     */
222
    private void showPoint(Point p, String refCatastral) {
223
        IView activeView = getActiveView();
224
        if (activeView!=null){
225
            ViewPort viewPort =activeView.getMapControl().getViewPort();
226
            MapContext mapContext = activeView.getMapControl().getMapContext();
227
            GraphicLayer graphics = mapContext.getGraphicsLayer();
228
            GeometryManager geomManager = GeometryLocator.getGeometryManager();
229
            SymbolManager symbolManager = MapContextLocator.getSymbolManager();
230

  
231
            ISymbol markerSymbol = symbolManager.createSymbol(Geometry.TYPES.POINT, Color.RED);
232
            ISimpleTextSymbol textSymbol = getTextSymbol();
233
            textSymbol.setColor(Color.RED);
234
            textSymbol.setText(refCatastral);
235
            int idMarkerSymbol = graphics.addSymbol(markerSymbol);
236
            int idTextSymbol = graphics.addSymbol(textSymbol);
237
            Point clonedPoint = (Point) p.cloneGeometry();
238
            graphics.addGraphic(SHOW_POINT_BUSQUEDACATASTRAL_ID, clonedPoint, idTextSymbol);
239
            graphics.addGraphic(SHOW_POINT_BUSQUEDACATASTRAL_ID, clonedPoint, idMarkerSymbol);
240
            mapContext.invalidate();
241
        }
242
    }
243

  
244
    /*
245
     * Creates a text symbol to be used
246
     */
247
    private ISimpleTextSymbol getTextSymbol(){
248
        SymbologyManager symbologyManager = SymbologyLocator.getSymbologyManager();
249
        ISimpleTextSymbol textSymbol = symbologyManager.createSimpleTextSymbol();
250
        textSymbol.setFontSize(10);
251
        return textSymbol;
252
    }
253

  
254
    private void deletePoints(){
255
        IView activeView = getActiveView();
256
        if (activeView!=null){
257
            ViewPort viewPort =activeView.getMapControl().getViewPort();
258
            MapContext mapContext = activeView.getMapControl().getMapContext();
259
            GraphicLayer graphics = mapContext.getGraphicsLayer();
260
            graphics.removeGraphics(SHOW_POINT_BUSQUEDACATASTRAL_ID);
261
            mapContext.invalidate();
262
        }
263

  
264
    }
265

  
266
}
org.gvsig.busquedacatastral/tags/org.gvsig.busquedacatastral-1.0.2/org.gvsig.busquedacatastral.app/org.gvsig.busquedacatastral.app.mainplugin/src/main/resources-plugin/i18n/text.properties
1
#Translations for language [es]
2
#Mon Feb 26 16:06:24 CET 2007
3
#\u00e1 \u00e9 \u00ed \u00f3 \u00fa
4
_busqueda_catastral=B\u00fasqueda Catastral
5
_busqueda_municipios=B\u00fasqueda Municipios
6
_busqueda_vias=B\u00fasqueda V\u00edas
7
_busqueda_numeros=B\u00fasqueda N\u00fameros
8

  
9
_BusquedaCatastralGettingParametersException=Error obteniendo los par\u00e1metros
10
_BusquedaCatastralGettingDataException=Error obteniendo los datos solicitados
11
_BusquedaCatastralInvalidSRSException=El SRS usado no es v\u00e1lido para el catastro
12
_BusquedaCatastralCreatingPanelException=Error creando el panel
13
_BusquedaCatastralObtainingPointException=Error obteniendo el punto requerido
14
_BusquedaCatastralObtainingDataException=Error obteniendo los datos requeridos
15
_error_getting_parameters=Error en los par\u00e1metros introducidos
16
_error_needed_parameters=Falta par\u00e1metro necesario
17
_error_invalid_query=La consulta no es v\u00e1lida
18
_error_obtaining_data=Error obteniendo los datos
19
_error_creating_panel=Error creando el panel
20
_error_obtaining_point=Error obteniendo el punto
21
_error_getting_municipios=Error obteniendo los municipios
22
_error_getting_vias=Error obteniendo las v\u00edas
23
_error_getting_numeros=Error obteniendo los n\u00fameros
24
_numero_not_found_for_parameters=No se ha encontrado ning\u00fan n\u00famero para los par\u00e1metros indicados
25

  
26
_error_obtaining_catastro_webservice=Error obteniendo el servicio web del catastro
27
_error_reading_response_from_ws=Error leyendo la respuesta dada por el webservice
28
_no_hay_municipio_seleccionado=Debe de seleccionar un municipio.
29
_no_hay_via_seleccionada=Debe de seleccionar una v\u00eda.
30
_no_hay_numero_seleccionado=Debe de seleccionar un n\u00famero
31
_error_getting_feature_store=Error obteniendo almac\u00e9n de datos
32
_error_reading_feature_store=Error leyendo almac\u00e9n de datos
33
_error_getting_cache_file=Error obteniendo fichero de la cache
34
_error_borrando_cache=Error borrando la cache
35
_error_provincia_not_informed=Falta el campo Provincia
36
_error_municipio_not_informed=Falta el campo Municipio
37
_error_tipo_parcela_not_informed=Debe indicar el tipo de parcela
38
_error_tipo_via_not_informed=Falta el campo tipo de via
39
_error_via_not_informed=Falta el campo Via
40
_error_numero_not_informed=Falta el N\u00famero
41
_error_poligono_not_informed=Falta el Pol\u00edgono
42
_error_parcela_not_informed=Falta la Parcela
43
_error_rc_not_informed=Falta la referencia catastral
44
_error_refCatastral_not_informed=Referencia catastral no v\u00e1lida
45
_error_tipo_query_not_informed=Falta el tipo de consulta
46
_error_SRS=Error SRS no correcto
47
_error_creando_panel_busqueda_catastral=Se ha producido un error intentando crear el panel de B\u00fasqueda Catastral
48
_error_creando_panel_vias=Se ha producido un error intentando crear el panel de B\u00fasqueda V\u00edas
49
_error_creando_panel_municipios=Se ha producido un error intentando crear el panel de B\u00fasqueda Municipios
50
_cache_delete_ok=Cach\u00e9 borrada correctamente
51
_no_se_han_encontrado_resultados_para_estos_datos=No se han encontrado resultados para los datos indicados
52
_error_couldnt_get_coords=No se han encontrado coordenadas para esta referencia
53
_error_obteniendo_el_punto_para_ref_catastral=No se han encontrado coordenadas para la referencia
54
_errors_found_by_ws=El servicio web ha encontrado errores
55
_error_reprojecting_point=Se ha producido un error intentado reproyectar el punto a la vista seleccionada
56

  
57
_proyeccion_no_valida_se_usara_valor_por_defecto=Proyecci\u00f3n no admitida por el catastro. Se usar\u00e1 la proyecci\u00f3n por defecto
58
_provincia_vacia_en_busqueda_municipios=Provincia vac\u00eda en panel de b\u00fasqueda de municipios
59
_provincia_vacia_en_busqueda_vias=Provincia vac\u00eda en panel de b\u00fasqueda de v\u00edas
60
_municipio_vacio_en_busqueda_vias=Municipio vac\u00edo en panel de b\u00fasqueda de v\u00edas
61
_provincia_vacia_en_busqueda_numeros=Provincia vac\u00eda en panel de b\u00fasqueda de n\u00fameros
62
_municipio_vacio_en_busqueda_numeros=Municipio vac\u00edo en panel de b\u00fasqueda de n\u00fameros
63
_via_vacia_en_busqueda_numeros=V\u00eda vac\u00edo en panel de b\u00fasqueda de n\u00fameros
64

  
65
_referencia_catastral=Referencia Catastral
66
_localizacion=Localizaci\u00f3n
67
_provincia=Provincia
68
_municipio=Municipio
69
_municipios=Municipios
70
_urbanos=Urbanos
71
_via=Via
72
_vias=Vias
73
_numero=N\u00famero
74
_numeros=N\u00fameros
75
_bloque=Bloque
76
_escalera=Escalera
77
_planta=Planta
78
_puerta=Puerta
79
_rusticos=R\u00fasticos
80
_poligono=Pol\u00edgono
81
_parcela=Parcela
82
_borrar_cache=Borrar cach\u00e9
83
_buscar=Buscar
84
_ver_datos=Ver datos
85
_localizar=Localizar
86
_cancelar=Cancelar
87
_aceptar=Aceptar
88
_desde=Desde
89
_hasta=Hasta
90
_km=Km
91
_paraje=Paraje
92
_borrar_puntos=Borrar Puntos
93
_loading_data=Cargando datos
94

  
org.gvsig.busquedacatastral/tags/org.gvsig.busquedacatastral-1.0.2/org.gvsig.busquedacatastral.app/org.gvsig.busquedacatastral.app.mainplugin/src/main/resources-plugin/i18n/text_en.properties
1
#Translations for language [en]
2
#Tue Jun 05 16:07:12 CEST 2007
3
_busqueda_catastral=Cadastral Search
4
_busqueda_municipios=Municipality Search
5
_busqueda_vias=Street Search
6
_busqueda_numeros=Number Search
7

  
8
_BusquedaCatastralGettingParametersException=Error getting parameters
9
_BusquedaCatastralGettingDataException=Error getting data
10
_BusquedaCatastralInvalidSRSException=SRS not valid for cadastre
11
_BusquedaCatastralCreatingPanelException=Error creating panel
12
_BusquedaCatastralObtainingPointException=Error getting point
13
_BusquedaCatastralObtainingDataException=Error getting data
14
_error_getting_parameters=Error getting parameters
15
_error_needed_parameters=Needed parameter
16
_error_invalid_query=Invalid query
17
_error_obtaining_data=Error getting data
18
_error_creating_panel=Error creating panel
19
_error_obtaining_point=Error getting point
20
_error_getting_municipios=Error getting municipalities
21
_error_getting_vias=Error getting streets
22
_error_getting_numeros=Error getting numbers
23
_numero_not_found_for_parameters=Number not found
24

  
25
_error_obtaining_catastro_webservice=Error getting cadastre webservice
26
_error_reading_response_from_ws=Error reding webservice response
27
_no_hay_municipio_seleccionado=A municipality must be selected
28
_no_hay_via_seleccionada=A street must be selected
29
_no_hay_numero_seleccionado=A number must be selected
30
_error_getting_feature_store=Error getting data store
31
_error_reading_feature_store=Error reading feature store
32
_error_getting_cache_file=Error getting cache file
33
_error_borrando_cache=Error deleting cache
34
_error_provincia_not_informed=Province not informed
35
_error_municipio_not_informed=Municipality not informed
36
_error_tipo_parcela_not_informed=Smallholding type not informed
37
_error_tipo_via_not_informed=Street type not informed
38
_error_via_not_informed=Street not informed
39
_error_numero_not_informed=Number not informed
40
_error_poligono_not_informed=Zone not informed
41
_error_parcela_not_informed=Smallholding not informed
42
_error_rc_not_informed=Cadastral reference not informed
43
_error_refCatastral_not_informed=Cadastral reference not valid
44
_error_tipo_query_not_informed=Query type not informed
45
_error_SRS=Invalid SRS
46
_error_creando_panel_busqueda_catastral=Error creating Cadastral Search Panel
47
_error_creando_panel_vias=Error creating Street Search Panel
48
_error_creando_panel_municipios=Error creating Municipality Search Panel
49
_cache_delete_ok=Cache deleted correctly
50
_no_se_han_encontrado_resultados_para_estos_datos=There is not data for these parameters
51
_error_couldnt_get_coords=Coordinates not found for this reference
52
_error_obteniendo_el_punto_para_ref_catastral=Coordinates not found for this reference
53
_errors_found_by_ws=Webservice has found errors
54
_error_reprojecting_point=Error reprojecting point
55

  
56
_proyeccion_no_valida_se_usara_valor_por_defecto=Projection not valid for Cadastre. Default projection will be used
57
_provincia_vacia_en_busqueda_municipios=Empty Province in Municipality Search Panel
58
_provincia_vacia_en_busqueda_vias=Empty Province in Street Search Panel
59
_municipio_vacio_en_busqueda_vias=Empty Municipality in Street Search Panel
60
_provincia_vacia_en_busqueda_numeros=Empty Province in Numbers Search Panel
61
_municipio_vacio_en_busqueda_numeros=Empty Municipality in Numbers Search Panel
62
_via_vacia_en_busqueda_numeros=Empty Street in Numbers Search Panel
63

  
64
_referencia_catastral=Cadastral reference
65
_localizacion=Location
66
_provincia=Province
67
_municipio=Municipality
68
_municipios=Municipalities
69
_urbanos=Urban
70
_via=Street
71
_vias=Streets
72
_numero=Number
73
_numeros=Numbers
74
_bloque=Block
75
_escalera=Stair
76
_planta=Floor
77
_puerta=Door
78
_rusticos=Rustic
79
_poligono=Zone
80
_parcela=Smallholding
81
_borrar_cache=Delete Cache
82
_buscar=Search
83
_ver_datos=View Data
84
_localizar=Locate
85
_cancelar=Cancel
86
_aceptar=Accept
87
_desde=From
88
_hasta=To
89
_km=Km
90
_paraje=Setting
91
_borrar_puntos=Delete points
92
_loading_data=Loading Data
org.gvsig.busquedacatastral/tags/org.gvsig.busquedacatastral-1.0.2/org.gvsig.busquedacatastral.app/org.gvsig.busquedacatastral.app.mainplugin/src/main/resources-plugin/config.xml
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<plugin-config>
3
	<depends plugin-name="org.gvsig.app.mainplugin" />
4
	<libraries library-dir="lib"/>
5
	<resourceBundle name="text"/>
6
	<extensions>
7
		<extension class-name="org.gvsig.busquedacatastral.app.mainplugin.BusquedaCatastralExtension"
8
			description="Search by catastral info"
9
			active="true"
10
			priority="1">
11
   <action name="busqueda-catastral" label="_busqueda_catastral" tooltip="_busqueda_catastral"
12
        position="650101000" action-command="busqueda-catastral" icon="view-navigation-busqueda-catastral"
13
        accelerator="" />
14
      <menu text="View/Navigation/_busqueda_catastral" name="busqueda-catastral" />
15
      <tool-bar name="_busqueda_catastral" position="650101000">
16
        <action-tool name="busqueda-catastral" />
17
      </tool-bar>
18

  
19
		</extension>
20

  
21
	</extensions>
22
</plugin-config>
org.gvsig.busquedacatastral/tags/org.gvsig.busquedacatastral-1.0.2/org.gvsig.busquedacatastral.app/org.gvsig.busquedacatastral.app.mainplugin/pom.xml
1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2
 <modelVersion>4.0.0</modelVersion>
3
 <parent>
4
  <groupId>org.gvsig</groupId>
5
  <artifactId>org.gvsig.busquedacatastral.app</artifactId>
6
  <version>1.0.2</version>
7
 </parent>
8
 <artifactId>org.gvsig.busquedacatastral.app.mainplugin</artifactId>
9
 <name>${project.artifactId}</name>
10

  
11
 <dependencies>
12
  <dependency>
13
   <groupId>org.gvsig</groupId>
14
   <artifactId>org.gvsig.busquedacatastral.lib.api</artifactId>
15
  </dependency>
16
  <dependency>
17
   <groupId>org.gvsig</groupId>
18
   <artifactId>org.gvsig.busquedacatastral.lib.impl</artifactId>
19
  </dependency>
20
  <dependency>
21
   <groupId>org.gvsig</groupId>
22
   <artifactId>org.gvsig.busquedacatastral.swing.api</artifactId>
23
  </dependency>
24
  <dependency>
25
   <groupId>org.gvsig</groupId>
26
   <artifactId>org.gvsig.busquedacatastral.swing.impl</artifactId>
27
  </dependency>
28
  <dependency>
29
   <groupId>org.gvsig</groupId>
30
   <artifactId>org.gvsig.app.mainplugin</artifactId>
31
   <scope>compile</scope>
32
  </dependency>
33

  
34
  <!--These dependencies are added to use the webservice and parse its response -->
35
  <dependency>
36
   <groupId>axis</groupId>
37
   <artifactId>axis-jaxrpc</artifactId>
38
   <scope>compile</scope>
39
  </dependency>
40
  <dependency>
41
   <groupId>org.apache.axis</groupId>
42
   <artifactId>axis</artifactId>
43
   <scope>compile</scope>
44
  </dependency>
45
  <dependency>
46
   <groupId>commons-logging</groupId>
47
   <artifactId>commons-logging</artifactId>
48
   <scope>compile</scope>
49
  </dependency>
50
  <dependency>
51
   <groupId>commons-discovery</groupId>
52
   <artifactId>commons-discovery</artifactId>
53
   <scope>compile</scope>
54
  </dependency>
55
  <dependency>
56
   <groupId>wsdl4j</groupId>
57
   <artifactId>wsdl4j</artifactId>
58
   <scope>compile</scope>
59
  </dependency>
60

  
61

  
62
 </dependencies>
63

  
64
 <properties>
65
  <!-- Package info property values -->
66
  <gvsig.package.info.state>testing</gvsig.package.info.state>
67
  <gvsig.package.info.dependencies>required: org.gvsig.app.mainplugin -ge
68
   2.1.0-A</gvsig.package.info.dependencies>
69
  <gvsig.package.info.official>true</gvsig.package.info.official>
70
  <gvsig.package.info.name>Tools: Buscador Catastro (Spain)"</gvsig.package.info.name>
71
  <gvsig.package.info.description>Searchs for catastro info</gvsig.package.info.description>
72
  <gvsig.package.info.categories>Remote Services,Catastro</gvsig.package.info.categories>
73
  <gvsig.package.info.javaVM>j1_8</gvsig.package.info.javaVM>
74
  <gvsig.package.info.poolURL>https://devel.gvsig.org/download/projects/gvsig-busquedacatastral/pool</gvsig.package.info.poolURL>
75
 </properties>
76
</project>
org.gvsig.busquedacatastral/tags/org.gvsig.busquedacatastral-1.0.2/org.gvsig.busquedacatastral.app/org.gvsig.busquedacatastral.app.mainplugin/buildNumber.properties
1
#Thu Sep 15 08:50:47 CEST 2016
2
buildNumber=5
org.gvsig.busquedacatastral/tags/org.gvsig.busquedacatastral-1.0.2/org.gvsig.busquedacatastral.lib/org.gvsig.busquedacatastral.lib.impl/pom.xml
1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2
 <modelVersion>4.0.0</modelVersion>
3
 <parent>
4
  <groupId>org.gvsig</groupId>
5
  <artifactId>org.gvsig.busquedacatastral.lib</artifactId>
6
  <version>1.0.2</version>
7
 </parent>
8
 <artifactId>org.gvsig.busquedacatastral.lib.impl</artifactId>
9
 <name>${project.artifactId}</name>
10

  
11
 <dependencies>
12
  <dependency>
13
   <groupId>org.gvsig</groupId>
14
   <artifactId>org.gvsig.busquedacatastral.lib.api</artifactId>
15
   <scope>compile</scope>
16
  </dependency>
17
  <dependency>
18
   <groupId>org.gvsig</groupId>
19
   <artifactId>org.gvsig.fmap.geometry.api</artifactId>
20
   <scope>compile</scope>
21
  </dependency>
22
  <dependency>
23
   <groupId>org.gvsig</groupId>
24
   <artifactId>org.gvsig.fmap.dal.api</artifactId>
25
   <scope>compile</scope>
26
  </dependency>
27
  <dependency>
28
   <groupId>org.gvsig</groupId>
29
   <artifactId>org.gvsig.fmap.dal.file.lib</artifactId>
30
   <scope>compile</scope>
31
  </dependency>
32

  
33
  <!--These dependencies are added to use the webservice and parse its response -->
34
  <dependency>
35
   <groupId>axis</groupId>
36
   <artifactId>axis-jaxrpc</artifactId>
37
   <scope>compile</scope>
38
  </dependency>
39
  <dependency>
40
   <groupId>org.apache.axis</groupId>
41
   <artifactId>axis</artifactId>
42
   <scope>compile</scope>
43
  </dependency>
44
  <dependency>
45
   <groupId>commons-logging</groupId>
46
   <artifactId>commons-logging</artifactId>
47
   <scope>compile</scope>
48
  </dependency>
49
  <dependency>
50
   <groupId>commons-discovery</groupId>
51
   <artifactId>commons-discovery</artifactId>
52
   <scope>compile</scope>
53
  </dependency>
54
  <dependency>
55
   <groupId>wsdl4j</groupId>
56
   <artifactId>wsdl4j</artifactId>
57
   <scope>compile</scope>
58
  </dependency>
59

  
60
 </dependencies>
61
</project>
org.gvsig.busquedacatastral/tags/org.gvsig.busquedacatastral-1.0.2/org.gvsig.busquedacatastral.lib/org.gvsig.busquedacatastral.lib.impl/src/main/java/org/gvsig/busquedacatastral/lib/impl/NumerosFactory.java
1
package org.gvsig.busquedacatastral.lib.impl;
2

  
3
import java.io.ByteArrayInputStream;
4
import java.io.File;
5
import java.io.InputStream;
6
import java.rmi.RemoteException;
7
import java.util.ArrayList;
8
import java.util.HashSet;
9
import java.util.List;
10
import java.util.Set;
11

  
12
import javax.xml.bind.JAXBContext;
13
import javax.xml.bind.Unmarshaller;
14

  
15
import org.apache.axis.message.MessageElement;
16
import org.apache.commons.lang3.StringUtils;
17
import org.gvsig.busquedacatastral.lib.api.BusquedaCatastralManager;
18
import org.gvsig.busquedacatastral.lib.api.QueryCatastral;
19
import org.gvsig.busquedacatastral.lib.api.exceptions.BusquedaCatastralGettingParamsException;
20
import org.gvsig.busquedacatastral.lib.impl.ws.classes.CallejeroWSResponse;
21
import org.gvsig.busquedacatastral.lib.impl.ws.classes.MunicipiosWSResponse;
22
import org.gvsig.busquedacatastral.lib.impl.ws.classes.cxf.Callejero;
23
import org.gvsig.busquedacatastral.lib.impl.ws.classes.cxf.ConsultaCallejero;
24
import org.gvsig.busquedacatastral.lib.impl.ws.classes.cxf.ConsultaMunicipieror;
25
import org.gvsig.busquedacatastral.lib.impl.ws.classes.cxf.ConsultaNumereror;
26
import org.gvsig.busquedacatastral.lib.impl.ws.classes.cxf.Df;
27
import org.gvsig.busquedacatastral.lib.impl.ws.classes.cxf.Muni;
28
import org.gvsig.busquedacatastral.lib.impl.ws.classes.cxf.Municipiero;
29
import org.gvsig.busquedacatastral.lib.impl.ws.classes.cxf.Numereror;
30
import org.gvsig.busquedacatastral.lib.impl.ws.classes.cxf.Nump;
31
import org.gvsig.fmap.dal.DataTypes;
32
import org.gvsig.fmap.dal.exception.DataException;
33
import org.gvsig.fmap.dal.feature.EditableFeature;
34
import org.gvsig.fmap.dal.feature.EditableFeatureType;
35
import org.gvsig.fmap.dal.feature.FeatureStore;
36
import org.gvsig.tools.ToolsLocator;
37
import org.gvsig.tools.dynobject.DynObject;
38
import org.gvsig.tools.exception.BaseException;
39
import org.gvsig.tools.i18n.I18nManager;
40
import org.slf4j.Logger;
41
import org.slf4j.LoggerFactory;
42

  
43
public class NumerosFactory extends WSObjectsFactory{
44

  
45
    private static final Logger logger = LoggerFactory
46
        .getLogger(NumerosFactory.class);
47

  
48

  
49
    public NumerosFactory(BusquedaCatastralManager manager){
50
        super(manager);
51
    }
52

  
53
    private QueryCatastral query;
54
    private String ini;
55
    private String fin;
56

  
57
    public List<String> getNumeros(QueryCatastral query, String ini, String fin) throws BusquedaCatastralGettingParamsException{
58
        if (query==null||query.getProvincia()==null){
59
            logger.error("Provincia no informada");
60
            I18nManager i18nManager = ToolsLocator.getI18nManager();
61
            throw new BusquedaCatastralGettingParamsException(i18nManager.getTranslation("_error_provincia_not_informed"), null);
62
        }
63
        if (query.getMunicipio()==null){
64
            logger.error("Municipio no informado");
65
            I18nManager i18nManager = ToolsLocator.getI18nManager();
66
            throw new BusquedaCatastralGettingParamsException(i18nManager.getTranslation("_error_municipio_not_informed"), null);
67
        }
68
        if (query.getTipoVia()==null){
69
            logger.error("Tipo Via no informado");
70
            I18nManager i18nManager = ToolsLocator.getI18nManager();
71
            throw new BusquedaCatastralGettingParamsException(i18nManager.getTranslation("_error_tipo_via_not_informed"), null);
72
        }
73
        if (query.getVia()==null){
74
            logger.error("Via no informado");
75
            I18nManager i18nManager = ToolsLocator.getI18nManager();
76
            throw new BusquedaCatastralGettingParamsException(i18nManager.getTranslation("_error_via_not_informed"), null);
77
        }
78
        if (StringUtils.isEmpty(ini) && StringUtils.isEmpty(fin)){
79
            logger.error("Numeros no informado");
80
            I18nManager i18nManager = ToolsLocator.getI18nManager();
81
            throw new BusquedaCatastralGettingParamsException(i18nManager.getTranslation("_error_numero_not_informed"), null);
82
        }
83
        this.query=query;
84
        this.ini=ini;
85
        this.fin=fin;
86
        Set<String> numeros=getNumeros(ini,fin);
87
        Set<String> results = new HashSet<>();
88
        for (String numero:numeros){
89

  
90
            Set<String> consulta=null;
91
            try {
92
                consulta = consultaNumerero(numero);
93
            } catch (Exception e) {
94
                //Do nothing; It is possible that there is not a given number in the interval
95
                //So no exception is thrown.
96
                logger.warn("No se ha podido encontar el n?mero: "+numero, e);
97
            }
98

  
99
            if (consulta!=null){
100
                results.addAll(consulta);
101
            }
102
        }
103
        if (results==null || results.isEmpty()){
104
            logger.error("No se ha encontrado ningun numero");
105
            I18nManager i18nManager = ToolsLocator.getI18nManager();
106
            throw new BusquedaCatastralGettingParamsException(i18nManager.getTranslation("_numero_not_found_for_parameters"), null);
107
        }
108
        return new ArrayList<String>(results);
109
    }
110

  
111
    private Set<String> getNumeros(String ini,String fin){
112
        Set<String> numeros = new HashSet<>();
113
        if (StringUtils.isNotEmpty(ini) && StringUtils.isNotEmpty(fin)){
114
            numeros.add(ini);
115
            numeros.add(fin);
116
            try {
117
                int numIni=Integer.valueOf(ini);
118
                int numFin=Integer.valueOf(fin);
119
                if (numIni<numFin){
120
                    for (int i=numIni+1;i<numFin;i++){
121
                        numeros.add(String.valueOf(i));
122
                    }
123
                }
124
            } catch (NumberFormatException e) {
125
                // Do nothing
126
            }
127
        }else{
128
            if (StringUtils.isNotEmpty(ini)){
129
                numeros.add(ini);
130
            }else if (StringUtils.isNotEmpty(fin)){
131
                numeros.add(fin);
132
            }
133
        }
134
        return numeros;
135
    }
136

  
137
    private Set<String> consultaNumerero(String numero) throws BusquedaCatastralGettingParamsException{
138
        try {
139
            DynObject provincia=query.getProvincia();
140
            DynObject municipio=query.getMunicipio();
141
            DynObject via=query.getVia();
142
            String nombreProvincia=(String) provincia.getDynValue(BusquedaCatastralManager.CAMPO_PROVINCIA_NOMBRE);
143
            String nombreMunicipio=(String) municipio.getDynValue(BusquedaCatastralManager.CAMPO_MUNICIPIO_NOMBRE);
144
            String tipoViaAbrev=query.getTipoVia().getAbrev();
145
            String nombreVia=(String)via.getDynValue(BusquedaCatastralManager.CAMPO_VIA_NOMBRE);
146

  
147
            CallejeroWSResponse callejeroResponse = getCatastroWS().
148
                 obtenerNumerero(nombreProvincia, nombreMunicipio, tipoViaAbrev, nombreVia, numero);
149
            if (callejeroResponse!=null){
150
                MessageElement[] any = callejeroResponse.get_any();
151
                MessageElement me=any[0];
152
                JAXBContext jaxbContext = JAXBContext.newInstance(ConsultaNumereror.class);
153

  
154
                Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
155
                InputStream input = new ByteArrayInputStream(me.getAsString().getBytes());
156
                ConsultaNumereror cn = (ConsultaNumereror) jaxbUnmarshaller.unmarshal(input);
157

  
158
                if (cn!=null && cn.getLerr()!=null){
159
                    webserviceErrors(cn.getLerr().getErr());
160
                }
161

  
162
                Numereror numerero = cn.getNumerero();
163
                return numereroToListString(numerero);
164
            }else{
165
                logger.error("Webservice response is empty");
166
                I18nManager i18nManager = ToolsLocator.getI18nManager();
167
                throw new BusquedaCatastralGettingParamsException(i18nManager.getTranslation("_error_reading_response_from_ws"),null);
168
            }
169

  
170
        } catch (RemoteException e) {
171
            logger.error("Error accesing webservice",e);
172
            I18nManager i18nManager = ToolsLocator.getI18nManager();
173
            throw new BusquedaCatastralGettingParamsException(i18nManager.getTranslation("_error_obtaining_catastro_webservice"), e);
174
        } catch (Exception e) {
175
            logger.error("Error marshalling response from webservice",e);
176
            I18nManager i18nManager = ToolsLocator.getI18nManager();
177
            throw new BusquedaCatastralGettingParamsException(i18nManager.getTranslation("_error_reading_response_from_ws"), e);
178
        }
179

  
180
    }
181

  
182
    private Set<String> numereroToListString(Numereror numerero){
183
        if (numerero==null){
184
            return null;
185
        }
186
        Set<String> numeros=new HashSet<>();
187
        for (Nump nump:numerero.getNump()){
188
            String num = nump.getNum().getPnp();
189
            numeros.add(num);
190
        }
191
        return numeros;
192
    }
193

  
194
    @Override
195
    protected void defineType(EditableFeatureType type)
196
        throws BusquedaCatastralGettingParamsException {
197
        // Do Nothing
198

  
199
    }
200

  
201
    @Override
202
    protected void writeFileData(FeatureStore featureStore)
203
        throws BusquedaCatastralGettingParamsException, DataException {
204
      // Do Nothing
205

  
206
    }
207

  
208
    @Override
209
    protected String getExpressionQuery() {
210
     // Do Nothing
211
        return null;
212
    }
213

  
214

  
215
}
org.gvsig.busquedacatastral/tags/org.gvsig.busquedacatastral-1.0.2/org.gvsig.busquedacatastral.lib/org.gvsig.busquedacatastral.lib.impl/src/main/java/org/gvsig/busquedacatastral/lib/impl/PointFactory.java
1
package org.gvsig.busquedacatastral.lib.impl;
2

  
3
import java.io.ByteArrayInputStream;
4
import java.io.InputStream;
5
import java.rmi.RemoteException;
6
import java.util.List;
7

  
8
import javax.xml.bind.JAXBContext;
9
import javax.xml.bind.Unmarshaller;
10
import javax.xml.rpc.ServiceException;
11

  
12
import org.apache.axis.message.MessageElement;
13
import org.apache.commons.lang3.StringUtils;
14
import org.gvsig.busquedacatastral.lib.api.ReferenciaCatastral;
15
import org.gvsig.busquedacatastral.lib.api.SRSCatastro;
16
import org.gvsig.busquedacatastral.lib.api.exceptions.BusquedaCatastralGettingDataException;
17
import org.gvsig.busquedacatastral.lib.api.exceptions.BusquedaCatastralGettingParamsException;
18
import org.gvsig.busquedacatastral.lib.api.exceptions.BusquedaCatastralInvalidSRSException;
19
import org.gvsig.busquedacatastral.lib.impl.ws.OVCCoordenadasLocator;
20
import org.gvsig.busquedacatastral.lib.impl.ws.OVCCoordenadasSoap;
21
import org.gvsig.busquedacatastral.lib.impl.ws.classes.Consulta_Coordenadas;
22
import org.gvsig.busquedacatastral.lib.impl.ws.classes.cxf.ConsultaCoord;
23
import org.gvsig.busquedacatastral.lib.impl.ws.classes.cxf.Coord;
24
import org.gvsig.busquedacatastral.lib.impl.ws.classes.cxf.Coords;
25
import org.gvsig.busquedacatastral.lib.impl.ws.classes.cxf.Err;
26
import org.gvsig.fmap.geom.Geometry;
27
import org.gvsig.fmap.geom.GeometryLocator;
28
import org.gvsig.fmap.geom.exception.CreateGeometryException;
29
import org.gvsig.fmap.geom.primitive.Point;
30
import org.gvsig.tools.ToolsLocator;
31
import org.gvsig.tools.i18n.I18nManager;
32
import org.gvsig.tools.locator.LocatorException;
33
import org.slf4j.Logger;
34
import org.slf4j.LoggerFactory;
35

  
36
public class PointFactory {
37

  
38
    private static final Logger logger = LoggerFactory
39
        .getLogger(PointFactory.class);
40

  
41
    public Point getPoint(String referenciacatastral, SRSCatastro srs)
42
        throws BusquedaCatastralGettingDataException, BusquedaCatastralInvalidSRSException {
43

  
44
        if (StringUtils.isEmpty(referenciacatastral)){
45
            logger.error("Referencia Catastral no valida");
46
            I18nManager i18nManager = ToolsLocator.getI18nManager();
47
            throw new BusquedaCatastralGettingDataException(i18nManager.getTranslation("_error_refCatastral_not_informed"), null);
48
        }else if (srs==null){
49
            logger.error("SRS de catastro no valido");
50
            I18nManager i18nManager = ToolsLocator.getI18nManager();
51
            throw new BusquedaCatastralInvalidSRSException(i18nManager.getTranslation("_error_SRS"), null);
52
        }else{
53
            Coords coords=getCoords(referenciacatastral,srs);
54
            if (coords!=null){
55
                return getPointFromCoords(coords);
56
            }else{
57
                logger.error("No se pudieron encontrar las coordenadas para la RC: "+referenciacatastral);
58
                I18nManager i18nManager = ToolsLocator.getI18nManager();
59
                throw new BusquedaCatastralGettingDataException(i18nManager.getTranslation("_error_couldnt_get_coords"), null);
60
            }
61

  
62
        }
63
    }
64

  
65

  
66
    public Point getPoint(ReferenciaCatastral referenciacatastral, SRSCatastro srs)
67
        throws BusquedaCatastralGettingDataException, BusquedaCatastralInvalidSRSException {
68
        if (referenciacatastral==null){
69
            logger.error("Referencia Catastral no valida");
70
            I18nManager i18nManager = ToolsLocator.getI18nManager();
71
            throw new BusquedaCatastralGettingDataException(i18nManager.getTranslation("_error_refCatastral_not_informed"), null);
72
        }else{
73
            return getPoint(referenciacatastral.getRCParcial(),srs);
74
        }
75
    }
76

  
77
    private Point getPointFromCoords(Coords coords){
78
        double x;
79
        double y;
80
        for (Coord coord:coords.getCoord()){
81
            x=Double.valueOf(coord.getGeo().getXcen());
82
            y=Double.valueOf(coord.getGeo().getYcen());
83
            Point point=null;
84
            try {
85
                point= GeometryLocator.getGeometryManager().createPoint(x, y, Geometry.SUBTYPES.GEOM2D);
86
            } catch (CreateGeometryException | LocatorException e) {
87
                logger.error("Error getting center point "+e.getMessage());
88
            }
89
            return point;
90
        }
91
        return null;
92
    }
93

  
94
    private OVCCoordenadasSoap getCoordenadasWS() throws BusquedaCatastralGettingDataException{
95
        try {
96
            OVCCoordenadasLocator locator=
97
                new OVCCoordenadasLocator();
98
            OVCCoordenadasSoap coordenadasWS =
99
                locator.getOVCCoordenadasSoap();
100
            return coordenadasWS;
101
        } catch (ServiceException e) {
102
            logger.error("Error obtaining webservice",e);
103
            I18nManager i18nManager = ToolsLocator.getI18nManager();
104
            throw new BusquedaCatastralGettingDataException(i18nManager.getTranslation("_error_obtaining_catastro_webservice"), e);
105
        }
106

  
107
    }
108

  
109

  
110

  
111
    private Coords getCoords(String rc,SRSCatastro srs) throws BusquedaCatastralGettingDataException{
112
        try {
113
              Consulta_Coordenadas consultaCoord = getCoordenadasWS().consulta_CPMRC("", "", srs.getCod(), rc);
114

  
115
            if (consultaCoord!=null){
116
                MessageElement[] any = consultaCoord.get_any();
117
                MessageElement me=any[0];
118
                JAXBContext jaxbContext = JAXBContext.newInstance(ConsultaCoord.class);
119

  
120
                Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
121
                InputStream input = new ByteArrayInputStream(me.getAsString().getBytes());
122
                ConsultaCoord ccord = (ConsultaCoord) jaxbUnmarshaller.unmarshal(input);
123

  
124
                if (ccord!=null && ccord.getLerr()!=null){
125
                    webserviceErrors(ccord.getLerr().getErr());
126
                }
127

  
128
                return ccord.getCoordenadas();
129
            }else{
130
                logger.error("Webservice response is empty");
131
                I18nManager i18nManager = ToolsLocator.getI18nManager();
132
                throw new BusquedaCatastralGettingDataException(i18nManager.getTranslation("_error_reading_response_from_ws"),null);
133
            }
134

  
135
        } catch (RemoteException e) {
136
            logger.error("Error accesing webservice",e);
137
            I18nManager i18nManager = ToolsLocator.getI18nManager();
138
            throw new BusquedaCatastralGettingDataException(i18nManager.getTranslation("_error_obtaining_catastro_webservice"), e);
139
        } catch (Exception e) {
140
            logger.error("Error marshalling response from webservice",e);
141
            I18nManager i18nManager = ToolsLocator.getI18nManager();
142
            throw new BusquedaCatastralGettingDataException(i18nManager.getTranslation("_error_reading_response_from_ws"), e);
143
        }
144

  
145
    }
146

  
147
    private void webserviceErrors(List<Err>errores) throws BusquedaCatastralGettingParamsException{
148
        if (errores!=null && !errores.isEmpty()){
149
            StringBuilder descErrores=new StringBuilder();
150
            I18nManager i18nManager = ToolsLocator.getI18nManager();
151
            descErrores.append(i18nManager.getTranslation("_errors_found_by_ws")+":");
152
            for (Err error:errores){
153
                descErrores.append("\n"+error.getDes());
154
                logger.error(descErrores.toString());
155
                throw new BusquedaCatastralGettingParamsException(descErrores.toString(), null);
156
            }
157
        }
158
    }
159

  
160

  
161
}
org.gvsig.busquedacatastral/tags/org.gvsig.busquedacatastral-1.0.2/org.gvsig.busquedacatastral.lib/org.gvsig.busquedacatastral.lib.impl/src/main/java/org/gvsig/busquedacatastral/lib/impl/DefaultBusquedaCatastralLibrary.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2016 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.busquedacatastral.lib.impl;
24

  
25
import org.gvsig.busquedacatastral.lib.api.BusquedaCatastralLibrary;
26
import org.gvsig.busquedacatastral.lib.api.BusquedaCatastralLocator;
27
import org.gvsig.tools.library.AbstractLibrary;
28
import org.gvsig.tools.library.LibraryException;
29

  
30

  
31
/**
32
 * Defines library for busqueda catastral
33
 * @author daniel
34
 *
35
 */
36
public class DefaultBusquedaCatastralLibrary  extends AbstractLibrary{
37
    @Override
38
    public void doRegistration() {
39
        registerAsImplementationOf(BusquedaCatastralLibrary.class);
40
    }
41

  
42
    @Override
43
    protected void doInitialize() throws LibraryException {
44
        BusquedaCatastralLocator.registerManager(DefaultBusquedaCatastralManager.class);
45
    }
46

  
47
    @Override
48
    protected void doPostInitialize() throws LibraryException {
49
        //Do nothing
50
    }
51
}
org.gvsig.busquedacatastral/tags/org.gvsig.busquedacatastral-1.0.2/org.gvsig.busquedacatastral.lib/org.gvsig.busquedacatastral.lib.impl/src/main/java/org/gvsig/busquedacatastral/lib/impl/Main.java
1
package org.gvsig.busquedacatastral.lib.impl;
2
import java.io.ByteArrayInputStream;
3
import java.io.InputStream;
4
import java.rmi.RemoteException;
5

  
6
import javax.xml.bind.JAXBContext;
7
import javax.xml.bind.JAXBException;
8
import javax.xml.bind.Unmarshaller;
9
import javax.xml.rpc.ServiceException;
10

  
11
import org.apache.axis.message.MessageElement;
12
import org.gvsig.busquedacatastral.lib.impl.ws.CallejeroCatastroWSLocator;
13
import org.gvsig.busquedacatastral.lib.impl.ws.CallejeroCatastroWSSoap;
14
import org.gvsig.busquedacatastral.lib.impl.ws.classes.MunicipiosWSResponse;
15
import org.gvsig.busquedacatastral.lib.impl.ws.classes.ProvinciasWSResponse;
16
import org.gvsig.busquedacatastral.lib.impl.ws.classes.cxf.ConsultaMunicipieror;
17
import org.gvsig.busquedacatastral.lib.impl.ws.classes.cxf.ConsultaProvincieror;
18
import org.gvsig.busquedacatastral.lib.impl.ws.classes.cxf.ObjectFactory;
19

  
20

  
21
/*
22
 * Copyright 2016 DiSiD Technologies S.L.L. All rights reserved.
23
 *
24
 * Project  : DiSiD WebServiceProject
25
 * SVN Id   : $Id$
26
 */
27

  
28
public class Main {
29

  
30
    public static void main(String[] args)  {
31
        try {
32
            CallejeroCatastroWSLocator locator=
33
                new CallejeroCatastroWSLocator();
34
            CallejeroCatastroWSSoap callejeroWS =
35
                locator.getCallejeroCatastroSoap();
36
            ProvinciasWSResponse provincias = callejeroWS.obtenerProvincias();
37

  
38
            ObjectFactory objfactory=new ObjectFactory();
39
            if (provincias!=null){
40
                MessageElement[] any = provincias.get_any();
41
                MessageElement me=any[0];
42
                JAXBContext jaxbContext = JAXBContext.newInstance(ConsultaProvincieror.class);
43

  
44
                Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
45
                InputStream input = new ByteArrayInputStream(me.getAsString().getBytes());
46
                ConsultaProvincieror cp = (ConsultaProvincieror) jaxbUnmarshaller.unmarshal(input);
47
                cp.getProvinciero();
48
            }
49
            MunicipiosWSResponse municipios = callejeroWS.obtenerMunicipios("VALENCIA", "");
50
            if (municipios!=null){
51
                MessageElement[] any = municipios.get_any();
52
                MessageElement me=any[0];
53
                JAXBContext jaxbContext = JAXBContext.newInstance(ConsultaMunicipieror.class);
54

  
55
                Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
56
                InputStream input = new ByteArrayInputStream(me.getAsString().getBytes());
57
                ConsultaMunicipieror cm = (ConsultaMunicipieror) jaxbUnmarshaller.unmarshal(input);
58
                cm.getMunicipiero();
59
            }
60

  
61

  
62
        } catch (ServiceException e) {
63
            // TODO Auto-generated catch block
64
            e.printStackTrace();
65
        } catch (RemoteException e) {
66
            // TODO Auto-generated catch block
67
            e.printStackTrace();
68
        } catch (JAXBException e) {
69
            // TODO Auto-generated catch block
70
            e.printStackTrace();
71
        } catch (Exception e) {
72
            // TODO Auto-generated catch block
73
            e.printStackTrace();
74
        }
75

  
76

  
77

  
78
    }
79

  
80
}
org.gvsig.busquedacatastral/tags/org.gvsig.busquedacatastral-1.0.2/org.gvsig.busquedacatastral.lib/org.gvsig.busquedacatastral.lib.impl/src/main/java/org/gvsig/busquedacatastral/lib/impl/ProvinciasFactory.java
1
package org.gvsig.busquedacatastral.lib.impl;
2

  
3
import java.io.ByteArrayInputStream;
4
import java.io.File;
5
import java.io.IOException;
6
import java.io.InputStream;
7
import java.rmi.RemoteException;
8
import java.util.List;
9

  
10
import javax.xml.bind.JAXBContext;
11
import javax.xml.bind.Unmarshaller;
12

  
13
import org.apache.axis.message.MessageElement;
14
import org.apache.commons.lang3.StringUtils;
15
import org.gvsig.busquedacatastral.lib.api.BusquedaCatastralManager;
16
import org.gvsig.busquedacatastral.lib.api.exceptions.BusquedaCatastralGettingParamsException;
17
import org.gvsig.busquedacatastral.lib.impl.ws.classes.ProvinciasWSResponse;
18
import org.gvsig.busquedacatastral.lib.impl.ws.classes.cxf.ConsultaProvincieror;
19
import org.gvsig.busquedacatastral.lib.impl.ws.classes.cxf.Err;
20
import org.gvsig.busquedacatastral.lib.impl.ws.classes.cxf.Prov;
21
import org.gvsig.busquedacatastral.lib.impl.ws.classes.cxf.Provinciero;
22
import org.gvsig.fmap.dal.DataTypes;
23
import org.gvsig.fmap.dal.exception.DataException;
24
import org.gvsig.fmap.dal.feature.EditableFeature;
25
import org.gvsig.fmap.dal.feature.EditableFeatureType;
26
import org.gvsig.fmap.dal.feature.FeatureStore;
27
import org.gvsig.tools.ToolsLocator;
28
import org.gvsig.tools.dynobject.DynObject;
29
import org.gvsig.tools.exception.BaseException;
30
import org.gvsig.tools.i18n.I18nManager;
31
import org.slf4j.Logger;
32
import org.slf4j.LoggerFactory;
33

  
34
public class ProvinciasFactory extends WSObjectsFactory{
35

  
36
    private static final Logger logger = LoggerFactory
37
        .getLogger(ProvinciasFactory.class);
38

  
39
    private final static String PROVINCIAS_FILENAME="provincias.dbf";
40

  
41

  
42
    public ProvinciasFactory(BusquedaCatastralManager manager){
43
        super(manager);
44
    }
45

  
46
    private Provinciero provinciero=null;
47
    public  List<DynObject> getProvincias() throws BusquedaCatastralGettingParamsException{
48
        //TODO
49
        //1.-Ver si existe fichero en tmp
50
        //2.- Si no existe
51
        //  2.1.- consulta web para obtener provinciero
52
        //  2.2.- generar archivo a partir de provinciero
53
        //3.-Leer fichero con listado de provincias
54
        //  3.1.- Por cada registro en provincia, construir un DynObject
55
        //4.-Devolver listado de DynObject
56

  
57
        File provinciasFile=null;
58

  
59
        try {
60
            provinciasFile = new File(manager.getCacheFolder(),PROVINCIAS_FILENAME);
61
            if (!provinciasFile.exists()){
62
                createDBF(provinciasFile);
63
            }
64
            return this.getListFromDBF(provinciasFile);
65
        } catch ( BaseException e) {
66
            logger.warn("Error getting provincias from file '"+provinciasFile.getAbsolutePath()+"'.",e);
67
            throw new BusquedaCatastralGettingParamsException(e);
68
        }
69
    }
70

  
71

  
72
    @Override
73
    protected void defineType(EditableFeatureType type) throws BusquedaCatastralGettingParamsException {
74
        provinciero=getProvinciero();
75
        int maxNombre=0;
76
        int maxCodigo=0;
77
        for(Prov prov:provinciero.getProv()){
78
            if(StringUtils.isNotEmpty(prov.getNp()) && prov.getNp().length()>maxNombre){
79
                maxNombre=prov.getNp().length();
80
            }
81
            if(StringUtils.isNotEmpty(prov.getCpine()) && prov.getCpine().length()>maxCodigo){
82
                maxCodigo=prov.getCpine().length();
83
            }
84
        }
85
        type.add(BusquedaCatastralManager.CAMPO_PROVINCIA_NOMBRE, DataTypes.STRING,
86
            maxNombre);
87
        type.add(BusquedaCatastralManager.CAMPO_PROVINCIA_CODIGO, DataTypes.STRING,
88
            maxCodigo);
89
    }
90

  
91
    @Override
92
    protected void writeFileData(FeatureStore featureStore) throws BusquedaCatastralGettingParamsException, DataException {
93
        provinciero=getProvinciero();
94
        for(Prov prov:provinciero.getProv()){
95
            EditableFeature ef;
96
            ef = featureStore.createNewFeature().getEditable();
97
            ef.set(BusquedaCatastralManager.CAMPO_PROVINCIA_NOMBRE, prov.getNp());
98
            ef.set(BusquedaCatastralManager.CAMPO_PROVINCIA_CODIGO, prov.getCpine());
99
            featureStore.insert(ef);
100
        }
101
        provinciero = null;
102
    }
103

  
104
    private Provinciero getProvinciero() throws BusquedaCatastralGettingParamsException{
105
        if( provinciero == null ) {
106
            try {
107
                ProvinciasWSResponse provincias = getCatastroWS().obtenerProvincias();
108
                if (provincias!=null){
109
                    MessageElement[] any = provincias.get_any();
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff