Revision 17

View differences:

org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.impl/src/main/java/org/gvsig/vectorediting/lib/impl/DefaultEditingManager.java
11 11
import org.gvsig.tools.service.AbstractManager;
12 12
import org.gvsig.tools.service.Service;
13 13
import org.gvsig.tools.service.ServiceException;
14
import org.gvsig.vectorediting.lib.api.EditingBehavior;
14 15
import org.gvsig.vectorediting.lib.api.EditingManager;
15 16
import org.gvsig.vectorediting.lib.api.EditingServiceInfo;
17
import org.gvsig.vectorediting.lib.spi.EditingProvider;
18
import org.gvsig.vectorediting.lib.spi.EditingProviderLocator;
19
import org.gvsig.vectorediting.lib.spi.EditingProviderManager;
16 20

  
17

  
18 21
public class DefaultEditingManager extends AbstractManager implements
19 22
    EditingManager {
20 23

  
......
25 28

  
26 29
  public Service getService(DynObject arg0) throws ServiceException {
27 30
    // TODO Auto-generated method stub
28
    return null;
31
    EditingProvider provider = (EditingProvider) EditingProviderLocator.getProviderManager().createProvider(arg0, new DefaultEditingProviderServices());
32
    return new DefaultEditingService(provider);
29 33
  }
30 34

  
31 35
  public EditingServiceInfo getToolInformation(String toolName) {
......
35 39

  
36 40
  public void activateTool(String name, MapControl mapControl) {
37 41
    // TODO Auto-generated method stub
42
    if(mapControl != null && mapControl.hasTool("VectorEditing")){
43
      EditingBehavior behavior = (EditingBehavior) mapControl.getMapTool("VectorEditing");
44
      behavior.activateTool(name);
45
    }
38 46
  }
39

  
40

  
47
  
41 48
}
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.impl/src/main/java/org/gvsig/vectorediting/lib/impl/DefaultEditingBehavior.java
58 58
    
59 59
    DynObject params;
60 60
    try {
61
      params = manager.createServiceParameters("InsertPoint");
61
      params = manager.createServiceParameters(name);
62 62
      EditingService tool = (EditingService) manager.getService(params);
63 63
      if(tool != null){
64 64
        this.activatedTool = tool;
65 65
        EditingServiceParameter param = activatedTool.getNextParameter();
66
        
66 67
      }
67 68
    }
68 69
    catch (ServiceException e) {
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.impl/src/main/java/org/gvsig/vectorediting/lib/impl/DefaultEditingService.java
13 13
import org.gvsig.tools.service.Manager;
14 14
import org.gvsig.vectorediting.lib.api.EditingService;
15 15
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
16
import org.gvsig.vectorediting.lib.spi.EditingProvider;
16 17

  
17 18
public class DefaultEditingService implements EditingService {
19
  
20
  EditingProvider provider;
18 21

  
22
  public DefaultEditingService(EditingProvider provider) {
23
    // TODO Auto-generated constructor stub
24
    this.provider = (EditingProvider) provider;
25
  }
26

  
19 27
  public Manager getManager() {
20 28
    // TODO Auto-generated method stub
21 29
    return null;
......
23 31

  
24 32
  public Geometry drawOperation(Point mousePosition) {
25 33
    // TODO Auto-generated method stub
26
    return null;
34
    return provider.drawOperation(mousePosition);
27 35
  }
28 36

  
29 37
  public Set<EditingServiceParameter> getParameters() {
30 38
    // TODO Auto-generated method stub
31
    return null;
39
    return provider.getParameters();
32 40
  }
33 41

  
34 42
  public EditingServiceParameter getNextParameter() {
35 43
    // TODO Auto-generated method stub
36
    return null;
44
    return provider.getNextParameter();
37 45
  }
38 46

  
39 47
  public void setValueParameter(EditingServiceParameter param, Object value) {
40 48
    // TODO Auto-generated method stub
41
    
49
    provider.setValueParameter(param, value);
42 50
  }
43 51

  
44 52
  public void stopTool() {
45 53
    // TODO Auto-generated method stub
46
    
47 54
  }
48 55

  
49 56
  public void finishOperation() {
......
53 60

  
54 61
  public boolean isValidValue(EditingServiceParameter param, Object value) {
55 62
    // TODO Auto-generated method stub
56
    return false;
63
    return provider.isValidValue(param, value);
57 64
  }}
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.impl/src/main/java/org/gvsig/vectorediting/lib/impl/DefaultEditingProviderManager.java
6 6
 */
7 7
package org.gvsig.vectorediting.lib.impl;
8 8

  
9
import org.gvsig.tools.dynobject.DynObject;
9 10
import org.gvsig.tools.service.Service;
11
import org.gvsig.tools.service.ServiceException;
10 12
import org.gvsig.tools.service.spi.AbstractProviderManager;
13
import org.gvsig.tools.service.spi.Provider;
14
import org.gvsig.tools.service.spi.ProviderFactory;
11 15
import org.gvsig.tools.service.spi.ProviderServices;
12 16
import org.gvsig.vectorediting.lib.spi.EditingProviderManager;
13 17

  
......
31 35
    return null;
32 36
  }
33 37

  
38
  @Override
39
  public Provider createProvider(DynObject serviceParameters,
40
                                 ProviderServices providerServices)
41
      throws ServiceException {
42
    String providerName = (String) serviceParameters.getDynValue("providerName");
43
    ProviderFactory factory = getProviderFactory(providerName);
44
    return factory == null ? null : factory.create(serviceParameters,
45
        providerServices);
46
  }
34 47
}
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/InsertPointEditingProviderFactory.java
26 26

  
27 27
  public static final String PROVIDER_NAME_PARAMS = "InsertPointParams";
28 28

  
29
  public static final String PROVIDER_NAME_PARAMS_DESCRIPTION = ""; 
29
  public static final String PROVIDER_NAME_PARAMS_DESCRIPTION = "";
30 30

  
31 31
  private DynClass dynclass;
32 32

  
33 33
  public Provider create(DynObject parameters, ProviderServices services)
34 34
      throws ServiceException {
35 35
    // TODO Auto-generated method stub
36
    return null;
36
    return new InsertPointEditingProvider(services);
37 37
  }
38 38

  
39 39
  public DynObject createParameters() {
40 40
    // TODO Auto-generated method stub
41
    return null;
41
    DynObject dynobject = ToolsLocator.getDynObjectManager().createDynObject(
42
        dynclass);
43

  
44
    // Here allocate the necessary parameters
45
    dynobject.setDynValue("providerName", PROVIDER_NAME);
46
    return dynobject;
42 47
  }
43 48

  
44 49
  public String getName() {
......
59 64
    // TODO Auto-generated method stub
60 65
    dynclass = ToolsLocator.getDynObjectManager().createDynClass(
61 66
        PROVIDER_NAME_PARAMS, PROVIDER_NAME_PARAMS_DESCRIPTION);
62
    
63
    //Here allocate the necessary parameters
67

  
68
    dynclass.addDynField("providerName");
64 69
  }
65 70

  
66 71
}
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
7 7
package org.gvsig.vectorediting.lib.prov.insertpoint;
8 8

  
9 9
import java.awt.Point;
10
import java.util.HashMap;
11
import java.util.Map;
12
import java.util.Set;
10 13

  
11 14
import org.gvsig.fmap.geom.Geometry;
12 15
import org.gvsig.tools.service.spi.ProviderServices;
......
16 19

  
17 20
public class InsertPointEditingProvider implements EditingProvider {
18 21

  
19
  private final static String TOOL_NAME = "InsertPoint";
22
  private final static String PROVIDER_NAME = "InsertPoint";
20 23

  
21
  private final static String TOOL_DESCRIPTION = "Inserts points on the view";
24
  private final static String PROVIDER_DESCRIPTION = "Inserts points on the view";
22 25

  
23 26
  private EditingServiceParameter point = new DefaultEditingServiceParameter(
24
      TOOL_NAME, TOOL_DESCRIPTION, EditingServiceParameter.TYPE_POINT);
27
      PROVIDER_NAME, PROVIDER_DESCRIPTION, EditingServiceParameter.TYPE_POINT);
28
  
29
  private Map<EditingServiceParameter, Object> values = new HashMap<EditingServiceParameter, Object>();
30
  
31
  private ProviderServices services;
25 32

  
26
  public void setProviderServices(ProviderServices services) {
27
    // TODO Auto-generated method stub
28

  
33
  public InsertPointEditingProvider(ProviderServices services) {
34
    // TODO Auto-generated constructor stub
35
    this.services = services;
29 36
  }
30 37

  
31
  public void getNextParameter() {
38
  public void setProviderServices(ProviderServices services) {
32 39
    // TODO Auto-generated method stub
33 40

  
34 41
  }
......
53 60
    return false;
54 61
  }
55 62

  
63
  public EditingServiceParameter getNextParameter() {
64
    // TODO Auto-generated method stub
65
    return this.point;
66
  }
67

  
68
  public Set<EditingServiceParameter> getParameters() {
69
    // TODO Auto-generated method stub
70
    return values.keySet();
71
  }
72

  
73
  public void setValueParameter(EditingServiceParameter param, Object value) {
74
    // TODO Auto-generated method stub
75
    values.put(param, value);
76
  }
77

  
56 78
}
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.spi/src/main/java/org/gvsig/vectorediting/lib/spi/EditingProvider.java
7 7
package org.gvsig.vectorediting.lib.spi;
8 8

  
9 9
import java.awt.Point;
10
import java.util.Set;
10 11

  
11 12
import org.gvsig.fmap.geom.Geometry;
12 13
import org.gvsig.tools.service.spi.Provider;
......
16 17
public interface EditingProvider extends Provider {
17 18

  
18 19
  /**
20
   * @return 
19 21
   * 
20 22
   */
21
  public void getNextParameter();
23
  public EditingServiceParameter getNextParameter();
22 24
  
23 25
  /**
24 26
   * 
......
44 46
   * @return
45 47
   */
46 48
  public boolean isValidValue(EditingServiceParameter param, Object value);
49
  
50
  /**
51
   * 
52
   * @return
53
   */
54
  public Set<EditingServiceParameter> getParameters();
55
  
56
  /**
57
   * 
58
   * @param param
59
   * @param value
60
   */
61
  public void setValueParameter(EditingServiceParameter param, Object value);
47 62
}

Also available in: Unified diff