Statistics
| Revision:

gvsig-vectorediting / org.gvsig.vectorediting / trunk / org.gvsig.vectorediting / org.gvsig.vectorediting.app / org.gvsig.vectorediting.app.mainplugin / src / main / java / org / gvsig / vectorediting / app / mainplugin / extensions / InternalPolygonExtension.java @ 91

History | View | Annotate | Download (2.45 KB)

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

    
9
import org.gvsig.andami.IconThemeHelper;
10
import org.gvsig.app.project.documents.view.gui.DefaultViewPanel;
11
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
12
import org.gvsig.vectorediting.app.mainplugin.BaseEditingServiceExtension;
13
import org.gvsig.vectorediting.lib.api.EditingServiceInfo;
14
import org.gvsig.vectorediting.lib.api.exceptions.ServiceInformationException;
15
import org.gvsig.vectorediting.lib.prov.internalpolygon.InternalPolygonEditingProviderFactory;
16
import org.gvsig.vectorediting.lib.prov.symmetry.SymmetryEditingProviderFactory;
17
import org.gvsig.vectorediting.swing.api.EditingContext;
18
import org.gvsig.vectorediting.swing.impl.DefaultEditingBehavior;
19
import org.slf4j.Logger;
20
import org.slf4j.LoggerFactory;
21

    
22
public class InternalPolygonExtension extends BaseEditingServiceExtension {
23

    
24
  private static final Logger logger = LoggerFactory
25
      .getLogger(DefaultEditingBehavior.class);
26

    
27
  public void initialize() {
28
    registerIcons();
29
  }
30

    
31
  public void execute(String actionCommand) {
32
    if ("layer-modify-internal-polygon".equals(actionCommand)) {
33
      DefaultViewPanel view = getActiveView();
34
      EditingContext editingContext = swingManager.getEditingContext(view
35
          .getMapControl());
36
      editingContext
37
          .activateService(InternalPolygonEditingProviderFactory.PROVIDER_NAME);
38
    }
39
  }
40

    
41
  private void registerIcons() {
42
    IconThemeHelper.registerIcon("action", "layer-modify-internal-polygon",
43
        this);
44

    
45
  }
46

    
47
  public boolean isEnabled() {
48
    EditingServiceInfo symmetryInfo;
49
    FLyrVect layer = null;
50
    try {
51
      symmetryInfo = manager
52
          .getServiceInfo(SymmetryEditingProviderFactory.PROVIDER_NAME);
53
      DefaultViewPanel view = getActiveView();
54
      layer = getActiveLayer(view);
55

    
56
      return symmetryInfo.isCompatibleWith(layer.getFeatureStore()); 
57

    
58
    }
59
    catch (ServiceInformationException e) {
60
      logger.error("Cant' get service information of "
61
          + InternalPolygonEditingProviderFactory.PROVIDER_NAME, e);
62
      return false;
63
    }
64
  }
65

    
66
  public boolean isVisible() {
67
    DefaultViewPanel view = getActiveView();
68
    if (view != null) {
69
      FLyrVect layer = getActiveLayer(view);
70
      if (layer != null && layer.isEditing()) {
71
        return true;
72
      }
73
    }
74
    return false;
75
  }
76

    
77
}