Statistics
| Revision:

gvsig-vectorediting / org.gvsig.vectorediting / trunk / org.gvsig.vectorediting / org.gvsig.vectorediting.lib / org.gvsig.vectorediting.lib.prov / org.gvsig.vectorediting.lib.prov.insertpoint / src / main / java / org / gvsig / vectorediting / lib / prov / insertpoint / InsertPointEditingProvider.java @ 70

History | View | Annotate | Download (3.46 KB)

1
/*
2
 * Copyright 2014 DiSiD Technologies S.L.L. All rights reserved.
3
 *
4
 * Project  : DiSiD org.gvsig.vectorediting.lib.prov
5
 * SVN Id   : $Id$
6
 */
7
package org.gvsig.vectorediting.lib.prov.insertpoint;
8

    
9
import java.util.ArrayList;
10
import java.util.List;
11

    
12
import org.gvsig.fmap.dal.feature.FeatureStore;
13
import org.gvsig.fmap.geom.primitive.Point;
14
import org.gvsig.tools.ToolsLocator;
15
import org.gvsig.tools.dynobject.DynObject;
16
import org.gvsig.tools.i18n.I18nManager;
17
import org.gvsig.tools.service.spi.ProviderServices;
18
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
19
import org.gvsig.vectorediting.lib.api.EditingServiceParameter.TYPE;
20
import org.gvsig.vectorediting.lib.api.exceptions.DrawServiceException;
21
import org.gvsig.vectorediting.lib.api.exceptions.FinishServiceException;
22
import org.gvsig.vectorediting.lib.api.exceptions.InvalidEntryException;
23
import org.gvsig.vectorediting.lib.api.exceptions.StartServiceException;
24
import org.gvsig.vectorediting.lib.spi.AbstractEditingProvider;
25
import org.gvsig.vectorediting.lib.spi.DefaultDrawingStatus;
26
import org.gvsig.vectorediting.lib.spi.DefaultEditingServiceParameter;
27
import org.gvsig.vectorediting.lib.spi.EditingProvider;
28
import org.gvsig.vectorediting.lib.spi.EditingProviderFactory;
29
import org.gvsig.vectorediting.lib.spi.EditingProviderServices;
30

    
31
public class InsertPointEditingProvider extends AbstractEditingProvider
32
    implements EditingProvider {
33

    
34
  private EditingProviderServices editingProviderServices = (EditingProviderServices) getProviderServices();
35
  
36
  private I18nManager i18nManager = ToolsLocator.getI18nManager();
37

    
38
  private EditingServiceParameter point = new DefaultEditingServiceParameter(
39
      "Insert point", i18nManager.getTranslation("indicate_new_point"), TYPE.POSITION);
40

    
41
  private Point valuePoint;
42

    
43
  private FeatureStore featureStore;
44

    
45
  public InsertPointEditingProvider(ProviderServices services,
46
      DynObject parameters) {
47
    super(services);
48
    this.featureStore = (FeatureStore) parameters
49
        .getDynValue(EditingProviderFactory.FEATURE_STORE_FIELD);
50
  }
51

    
52
  public void setProviderServices(ProviderServices services) {
53
    // TODO Auto-generated method stub
54

    
55
  }
56

    
57
  public DefaultDrawingStatus draw(Point mousePosition)
58
      throws DrawServiceException {
59
    return null;
60
  }
61

    
62
  public void stop(){
63

    
64
  }
65

    
66
  private boolean isValidValue(EditingServiceParameter param, Object value) {
67
    return (value instanceof Point) ? true : false;
68
  }
69

    
70
  public EditingServiceParameter next() {
71
    if (valuePoint == null) {
72
      return this.point;
73
    }
74
    return null;
75
  }
76

    
77
  public List<EditingServiceParameter> getParameters() {
78
    List<EditingServiceParameter> list = new ArrayList<EditingServiceParameter>();
79
    list.add(point);
80
    return list;
81
  }
82

    
83
  public void value(Object value) throws InvalidEntryException {
84
    EditingServiceParameter param = next();
85
    if (isValidValue(param, value)) {
86
      this.valuePoint = (Point) value;
87
    }
88
    else{
89
      throw new InvalidEntryException(null);
90
    }
91
  }
92

    
93
  public void finish() throws FinishServiceException {
94
    try{
95
      Point geometry = editingProviderServices.createPoint(valuePoint.getX(),
96
          valuePoint.getY(), featureStore);
97
      editingProviderServices.insertGeometryIntoFeatureStore(geometry,
98
          featureStore);
99
    } catch(Exception e){
100
      // TODO
101
    }
102
  }
103

    
104
  public void start() throws StartServiceException {
105
    this.valuePoint = null;
106
  }
107

    
108
  public String getName() {
109
    return InsertPointEditingProviderFactory.PROVIDER_NAME;
110
  }
111
}