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 @ 63

History | View | Annotate | Download (3.3 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.dynobject.DynObject;
15
import org.gvsig.tools.service.spi.ProviderServices;
16
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
17
import org.gvsig.vectorediting.lib.api.EditingServiceParameter.TYPE;
18
import org.gvsig.vectorediting.lib.api.exceptions.DrawServiceException;
19
import org.gvsig.vectorediting.lib.api.exceptions.FinishServiceException;
20
import org.gvsig.vectorediting.lib.api.exceptions.InvalidEntryException;
21
import org.gvsig.vectorediting.lib.api.exceptions.StartServiceException;
22
import org.gvsig.vectorediting.lib.spi.AbstractEditingProvider;
23
import org.gvsig.vectorediting.lib.spi.DefaultDrawingStatus;
24
import org.gvsig.vectorediting.lib.spi.DefaultEditingServiceParameter;
25
import org.gvsig.vectorediting.lib.spi.EditingProvider;
26
import org.gvsig.vectorediting.lib.spi.EditingProviderFactory;
27
import org.gvsig.vectorediting.lib.spi.EditingProviderServices;
28

    
29
public class InsertPointEditingProvider extends AbstractEditingProvider
30
    implements EditingProvider {
31

    
32
  private EditingProviderServices editingProviderServices = (EditingProviderServices) getProviderServices();
33

    
34
  private EditingServiceParameter point = new DefaultEditingServiceParameter(
35
      "Insert point", "Indicate a position of point", TYPE.POSITION);
36

    
37
  private Point valuePoint;
38

    
39
  private FeatureStore featureStore;
40

    
41
  public InsertPointEditingProvider(ProviderServices services,
42
      DynObject parameters) {
43
    super(services);
44
    this.featureStore = (FeatureStore) parameters
45
        .getDynValue(EditingProviderFactory.FEATURE_STORE_FIELD);
46
  }
47

    
48
  public void setProviderServices(ProviderServices services) {
49
    // TODO Auto-generated method stub
50

    
51
  }
52

    
53
  public DefaultDrawingStatus draw(Point mousePosition)
54
      throws DrawServiceException {
55
    return null;
56
  }
57

    
58
  public void stop(){
59

    
60
  }
61

    
62
  private boolean isValidValue(EditingServiceParameter param, Object value) {
63
    return (value instanceof Point) ? true : false;
64
  }
65

    
66
  public EditingServiceParameter next() {
67
    if (valuePoint == null) {
68
      return this.point;
69
    }
70
    return null;
71
  }
72

    
73
  public List<EditingServiceParameter> getParameters() {
74
    List<EditingServiceParameter> list = new ArrayList<EditingServiceParameter>();
75
    list.add(point);
76
    return list;
77
  }
78

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

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

    
100
  public void start() throws StartServiceException {
101
    this.valuePoint = null;
102
  }
103

    
104
  public String getName() {
105
    return InsertPointEditingProviderFactory.PROVIDER_NAME;
106
  }
107
}