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

History | View | Annotate | Download (3.5 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.awt.geom.Point2D;
10
import java.util.HashMap;
11
import java.util.List;
12
import java.util.Map;
13

    
14
import org.gvsig.fmap.geom.Geometry;
15
import org.gvsig.fmap.geom.primitive.Circle;
16
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
17
import org.gvsig.tools.dynobject.DynObject;
18
import org.gvsig.tools.service.spi.ProviderServices;
19
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
20
import org.gvsig.vectorediting.lib.spi.AbstractEditingProvider;
21
import org.gvsig.vectorediting.lib.spi.DefaultEditingServiceParameter;
22
import org.gvsig.vectorediting.lib.spi.EditingProvider;
23
import org.gvsig.vectorediting.lib.spi.EditingProviderFactory;
24
import org.gvsig.vectorediting.lib.spi.EditingProviderServices;
25

    
26
public class Circle2PEditingProvider extends AbstractEditingProvider implements
27
    EditingProvider {
28

    
29
  private final static String PROVIDER_NAME = "Circle2P";
30

    
31
  private final static String PROVIDER_DESCRIPTION = "Creates circles from the center and radius";
32

    
33
  private EditingServiceParameter center = new DefaultEditingServiceParameter(
34
      PROVIDER_NAME, PROVIDER_DESCRIPTION, EditingServiceParameter.TYPE_POINT,
35
      "Inserte el centro del c?rculo");
36

    
37
  private EditingServiceParameter radius = new DefaultEditingServiceParameter(
38
      PROVIDER_NAME, PROVIDER_DESCRIPTION, EditingServiceParameter.TYPE_POINT,
39
      "Inserte el radio del c?ruclo");
40

    
41
  private Map<EditingServiceParameter, Object> values;
42

    
43
  private FLyrVect layer;
44

    
45
  public Circle2PEditingProvider(ProviderServices providerServices,
46
      DynObject parameters) {
47
    super(providerServices);
48
    this.layer = (FLyrVect) parameters
49
        .getDynValue(EditingProviderFactory.LAYER_FIELD);
50
  }
51

    
52
  public Geometry drawOperation(Point2D mousePosition) {
53
    if (values.get(center) != null) {
54
      Point2D centerPoint = (Point2D) values.get(center);
55
      return createCircle(centerPoint, mousePosition,
56
          layer.getFeatureStore());
57
    }
58

    
59
    return null;
60

    
61
  }
62

    
63
  public EditingServiceParameter getNextParameter() {
64
    if (values.get(center) == null) {
65
      return this.center;
66
    }
67
    else if (values.get(radius) == null) {
68
      return this.radius;
69
    }
70
    return null;
71
  }
72

    
73
  public void stopEditingAndSave() {
74
    // TODO Auto-generated method stub
75

    
76
  }
77

    
78
  public void stopEditingAndDiscard() {
79
    // TODO Auto-generated method stub
80

    
81
  }
82

    
83
  public boolean isValidValue(EditingServiceParameter param, Object value) {
84
    // TODO Auto-generated method stub
85
    return true;
86
  }
87

    
88
  public List<EditingServiceParameter> getParameters() {
89
    // TODO Auto-generated method stub
90
    return null;
91
  }
92

    
93
  public void setValueParameter(EditingServiceParameter param, Object value) {
94
    // TODO Auto-generated method stub
95
    if (isValidValue(param, value)) {
96
      values.put(param, value);
97
    }
98
  }
99

    
100
  public void finishOperation() {
101
    // TODO Auto-generated method stub
102
    Point2D centerPoint = (Point2D) values.get(center);
103
    Point2D radiusPoint = (Point2D) values.get(radius);
104
    Circle geometry = createCircle(centerPoint, radiusPoint,
105
        layer.getFeatureStore());
106
    ((EditingProviderServices) getProviderServices())
107
        .insertGeometryIntoFeatureStore(geometry, layer);
108

    
109
  }
110

    
111
  public void start() {
112
    this.values = new HashMap<EditingServiceParameter, Object>();
113
  }
114

    
115
  public String getName() {
116
    return this.PROVIDER_NAME;
117
  }
118

    
119
}