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

History | View | Annotate | Download (3.2 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.spi.AbstractEditingProvider;
22
import org.gvsig.vectorediting.lib.spi.DefaultDrawingStatus;
23
import org.gvsig.vectorediting.lib.spi.DefaultEditingServiceParameter;
24
import org.gvsig.vectorediting.lib.spi.EditingProvider;
25
import org.gvsig.vectorediting.lib.spi.EditingProviderFactory;
26
import org.gvsig.vectorediting.lib.spi.EditingProviderServices;
27

    
28
public class InsertPointEditingProvider extends AbstractEditingProvider
29
    implements EditingProvider {
30

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

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

    
36
  private Point valuePoint;
37

    
38
  private FeatureStore featureStore;
39

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

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

    
50
  }
51

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

    
57
  public void stop() {
58

    
59
  }
60

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

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

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

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

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

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

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