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.circle2P / src / main / java / org / gvsig / vectorediting / lib / prov / circle2P / Circle2PEditingProvider.java @ 45

History | View | Annotate | Download (3.21 KB)

1
/*
2
 * Copyright 2014 DiSiD Technologies S.L.L. All rights reserved.
3
 *
4
 * Project  : DiSiD org.gvsig.vectorediting.lib.prov.circle2P
5
 * SVN Id   : $Id$
6
 */
7
package org.gvsig.vectorediting.lib.prov.circle2P;
8

    
9
import java.util.ArrayList;
10
import java.util.HashMap;
11
import java.util.List;
12
import java.util.Map;
13

    
14
import org.gvsig.fmap.dal.feature.FeatureStore;
15
import org.gvsig.fmap.geom.Geometry;
16
import org.gvsig.fmap.geom.primitive.Circle;
17
import org.gvsig.fmap.geom.primitive.Point;
18
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
19
import org.gvsig.tools.dynobject.DynObject;
20
import org.gvsig.tools.service.spi.ProviderServices;
21
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
22
import org.gvsig.vectorediting.lib.api.EditingServiceParameter.TYPE;
23
import org.gvsig.vectorediting.lib.spi.AbstractEditingProvider;
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 Circle2PEditingProvider extends AbstractEditingProvider implements
30
    EditingProvider {
31

    
32
  private EditingServiceParameter center = new DefaultEditingServiceParameter(
33
      "Center", "Center position of circle", TYPE.POSITION);
34

    
35
  private EditingServiceParameter radius = new DefaultEditingServiceParameter(
36
      "Radius", "Radius position of circle", TYPE.POSITION);
37

    
38
  private Map<EditingServiceParameter, Object> values;
39

    
40
  private FeatureStore featureStore;
41

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

    
49
  public Geometry draw(Point mousePosition) {
50
    if (values.get(center) != null) {
51
      Point centerPoint = (Point) values.get(center);
52
      return createCircle(centerPoint, mousePosition, featureStore);
53
    }
54

    
55
    return null;
56

    
57
  }
58

    
59
  public EditingServiceParameter next() {
60
    if (values.get(center) == null) {
61
      return this.center;
62
    }
63
    else if (values.get(radius) == null) {
64
      return this.radius;
65
    }
66
    return null;
67
  }
68

    
69
  public void stop(){
70

    
71
  }
72

    
73
  public boolean isValidValue(EditingServiceParameter param, Object value) {
74
    return true;
75
  }
76

    
77
  public List<EditingServiceParameter> getParameters() {
78
    List<EditingServiceParameter> list = new ArrayList<EditingServiceParameter>();
79
    list.add(center);
80
    list.add(radius);
81
    return list;
82
  }
83

    
84
  public void value(Object value) {
85
    EditingServiceParameter param = next();
86
    if (isValidValue(param, value)) {
87
      values.put(param, value);
88
    }
89
  }
90

    
91
  public void finish() {
92
    Point centerPoint = (Point) values.get(center);
93
    Point radiusPoint = (Point) values.get(radius);
94
    Circle geometry = createCircle(centerPoint, radiusPoint,
95
        featureStore);
96
    ((EditingProviderServices) getProviderServices())
97
        .insertGeometryIntoFeatureStore(geometry, featureStore);
98

    
99
  }
100

    
101
  public void start() {
102
    this.values = new HashMap<EditingServiceParameter, Object>();
103
  }
104

    
105
  public String getName() {
106
    return Circle2PEditingProviderFactory.PROVIDER_NAME;
107
  }
108

    
109
}