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

History | View | Annotate | Download (2.71 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 final static String PROVIDER_NAME = "InsertPoint";
28

    
29
  private final static String PROVIDER_DESCRIPTION = "Inserts points on the view";
30

    
31
  private EditingServiceParameter point = new DefaultEditingServiceParameter(
32
      "Insert point", "Indicate a position of point", EditingServiceParameter.TYPE_POINT);
33

    
34
  private Point valuePoint;
35

    
36
  private FLyrVect layer;
37

    
38
  public InsertPointEditingProvider(ProviderServices services,
39
      DynObject parameters) {
40
    super(services);
41
    this.layer = (FLyrVect) parameters
42
        .getDynValue(EditingProviderFactory.LAYER_FIELD);
43
  }
44

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

    
48
  }
49

    
50
  public Geometry draw(Point mousePosition) {
51
    return null;
52
  }
53

    
54
  public void stop(){
55
    
56
  }
57

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

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

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

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

    
82
  public void finish() {
83
    Point geometry = createPoint(valuePoint.getX(), valuePoint.getY(),
84
        layer.getFeatureStore());
85
    ((EditingProviderServices) getProviderServices())
86
        .insertGeometryIntoFeatureStore(geometry, layer.getFeatureStore());
87
  }
88

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

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