Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.app / org.gvsig.app.mainplugin / src / main / java / org / gvsig / app / extension / ShowEditedFeatures.java @ 47391

History | View | Annotate | Download (2.75 KB)

1
package org.gvsig.app.extension;
2

    
3
import org.gvsig.andami.plugins.Extension;
4
import org.gvsig.app.ApplicationLocator;
5
import org.gvsig.app.ApplicationManager;
6
import org.gvsig.app.extension.editedfeatures.EditedFeaturesPanel;
7
import org.gvsig.fmap.dal.feature.FeatureStore;
8
import org.gvsig.fmap.dal.feature.FeatureType;
9
import org.gvsig.fmap.mapcontext.layers.FLayer;
10
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
11
import org.gvsig.tools.ToolsLocator;
12
import org.gvsig.tools.i18n.I18nManager;
13
import org.gvsig.tools.swing.api.ToolsSwingLocator;
14
import org.gvsig.tools.swing.api.ToolsSwingUtils;
15
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
16

    
17
@SuppressWarnings("UseSpecificCatch")
18
public class ShowEditedFeatures extends Extension {
19

    
20
    @Override
21
    public void initialize() {
22
    }
23

    
24
    @Override
25
    public void execute(String actionCommand) {
26
        ApplicationManager application = ApplicationLocator.getManager();
27
        if ("layer-show-editedfeatures".equalsIgnoreCase(actionCommand)) {
28
            FLayer layer = application.getCurrentLayer();
29
            if (layer == null || !(layer instanceof FLyrVect)) {
30
                return;
31
            }
32
            FLyrVect vectLayer = (FLyrVect)layer;
33
            FeatureStore featureStore = vectLayer.getFeatureStore();
34
            if( !featureStore.isEditing() ) {
35
                return;
36
            }            
37
            try {
38
                FeatureType type = featureStore.getDefaultFeatureType();
39
                if( !type.supportReferences() ) {
40
                    return;
41
                }
42
                I18nManager i18n = ToolsLocator.getI18nManager();
43
                EditedFeaturesPanel panel = new EditedFeaturesPanel(featureStore);
44
                WindowManager  windowManager = ToolsSwingLocator.getWindowManager();
45
               String title = ToolsSwingUtils.makeTitle(
46
                        "_Edited_features", 
47
                        layer.getName(), 
48
                        featureStore.getName()
49
               );
50
                
51
                windowManager.showWindow(
52
                        panel.asJComponent(), 
53
                        title, 
54
                        WindowManager.MODE.WINDOW
55
                );
56
            } catch (Exception ex) {
57
                logger.warn("Can't show form of edited features",ex);
58
            }
59
        }            
60
    }
61

    
62
    @Override
63
    public boolean isEnabled() {
64
        return true;
65
    }
66

    
67
    @Override
68
    public boolean isVisible() {
69
        ApplicationManager application = ApplicationLocator.getManager();
70
        FLayer layer = application.getCurrentLayer();
71
        if (layer == null || !(layer instanceof FLyrVect)) {
72
            return false;
73
        }
74
        return ((FLyrVect)layer).getFeatureStore().isEditing();
75
    }
76
    
77
}