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

History | View | Annotate | Download (2.97 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.exception.DataException;
13
import org.gvsig.fmap.dal.feature.FeatureStore;
14
import org.gvsig.fmap.geom.Geometry;
15
import org.gvsig.fmap.geom.exception.CreateGeometryException;
16
import org.gvsig.fmap.geom.primitive.Point;
17
import org.gvsig.tools.dynobject.DynObject;
18
import org.gvsig.tools.exception.BaseException;
19
import org.gvsig.tools.service.spi.ProviderServices;
20
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
21
import org.gvsig.vectorediting.lib.api.EditingServiceParameter.TYPE;
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 EditingServiceParameter point = new DefaultEditingServiceParameter(
33
      "Insert point", "Indicate a position of point", TYPE.POSITION);
34

    
35
  private Point valuePoint;
36

    
37
  private FeatureStore featureStore;
38

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

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

    
49
  }
50

    
51
  public DefaultDrawingStatus draw(Point mousePosition) throws BaseException{
52
    return null;
53
  }
54

    
55
  public void stop(){
56

    
57
  }
58

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

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

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

    
76
  public void value(Object value) {
77
    EditingServiceParameter param = next();
78
    if (isValidValue(param, value)) {
79
      this.valuePoint = (Point) value;
80
    }
81
  }
82

    
83
  public void finish() throws CreateGeometryException, DataException {
84
    Point geometry = ((EditingProviderServices) getProviderServices()).createPoint(valuePoint.getX(), valuePoint.getY(), featureStore);
85
    ((EditingProviderServices) getProviderServices())
86
        .insertGeometryIntoFeatureStore(geometry, featureStore);
87
  }
88

    
89
  public void start() {
90
    this.valuePoint = null;
91
  }
92

    
93
  public String getName() {
94
    return InsertPointEditingProviderFactory.PROVIDER_NAME;
95
  }
96
}