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

History | View | Annotate | Download (2.59 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.geom.Geometry;
13
import org.gvsig.fmap.geom.primitive.Point;
14
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
15
import org.gvsig.tools.dynobject.DynObject;
16
import org.gvsig.tools.service.spi.ProviderServices;
17
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
18
import org.gvsig.vectorediting.lib.spi.AbstractEditingProvider;
19
import org.gvsig.vectorediting.lib.spi.DefaultEditingServiceParameter;
20
import org.gvsig.vectorediting.lib.spi.EditingProvider;
21
import org.gvsig.vectorediting.lib.spi.EditingProviderFactory;
22
import org.gvsig.vectorediting.lib.spi.EditingProviderServices;
23

    
24
public class InsertPointEditingProvider extends AbstractEditingProvider
25
    implements EditingProvider {
26

    
27
  private EditingServiceParameter point = new DefaultEditingServiceParameter(
28
      "Insert point", "Indicate a position of point", EditingServiceParameter.TYPE_POINT);
29

    
30
  private Point valuePoint;
31

    
32
  private FLyrVect layer;
33

    
34
  public InsertPointEditingProvider(ProviderServices services,
35
      DynObject parameters) {
36
    super(services);
37
    this.layer = (FLyrVect) parameters
38
        .getDynValue(EditingProviderFactory.LAYER_FIELD);
39
  }
40

    
41
  public void setProviderServices(ProviderServices services) {
42
    // TODO Auto-generated method stub
43

    
44
  }
45

    
46
  public Geometry draw(Point mousePosition) {
47
    return null;
48
  }
49

    
50
  public void stop(){
51

    
52
  }
53

    
54
  private boolean isValidValue(EditingServiceParameter param, Object value) {
55
    return (value instanceof Point) ? true : false;
56
  }
57

    
58
  public EditingServiceParameter next() {
59
    if (valuePoint == null) {
60
      return this.point;
61
    }
62
    return null;
63
  }
64

    
65
  public List<EditingServiceParameter> getParameters() {
66
    List<EditingServiceParameter> list = new ArrayList<EditingServiceParameter>();
67
    list.add(point);
68
    return list;
69
  }
70

    
71
  public void value(Object value) {
72
    EditingServiceParameter param = next();
73
    if (isValidValue(param, value)) {
74
      this.valuePoint = (Point) value;
75
    }
76
  }
77

    
78
  public void finish() {
79
    Point geometry = createPoint(valuePoint.getX(), valuePoint.getY(),
80
        layer.getFeatureStore());
81
    ((EditingProviderServices) getProviderServices())
82
        .insertGeometryIntoFeatureStore(geometry, layer.getFeatureStore());
83
  }
84

    
85
  public void start() {
86
    this.valuePoint = null;
87
  }
88

    
89
  public String getName() {
90
    return InsertPointEditingProviderFactory.PROVIDER_NAME;
91
  }
92
}