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 / CreateDefaultFormDefinitionExtension.java @ 42775

History | View | Annotate | Download (3.57 KB)

1

    
2
package org.gvsig.app.extension;
3

    
4
import javax.swing.JOptionPane;
5
import org.slf4j.Logger;
6
import org.slf4j.LoggerFactory;
7

    
8
import org.gvsig.andami.plugins.Extension;
9
import org.gvsig.app.ApplicationLocator;
10
import org.gvsig.app.ApplicationManager;
11
import org.gvsig.app.project.documents.view.ViewDocument;
12
import org.gvsig.app.project.documents.view.ViewManager;
13
import org.gvsig.fmap.dal.DALLocator;
14
import org.gvsig.fmap.dal.feature.FeatureStore;
15
import org.gvsig.fmap.dal.feature.FeatureType;
16
import org.gvsig.fmap.dal.feature.FeatureTypeDefinitionsManager;
17
import org.gvsig.fmap.dal.swing.DALSwingLocator;
18
import org.gvsig.fmap.dal.swing.DataSwingManager;
19
import org.gvsig.fmap.mapcontext.MapContext;
20
import org.gvsig.fmap.mapcontext.layers.FLayer;
21
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
22

    
23
/**
24
 *
25
 * @author jjdelcerro
26
 */
27
public class CreateDefaultFormDefinitionExtension extends Extension {
28

    
29
    private static final Logger logger = LoggerFactory.getLogger(CreateDefaultFormDefinitionExtension.class);
30

    
31

    
32
    @Override
33
    public void initialize() {
34
    }
35

    
36
    @Override
37
    public void execute(String actionCommand) {
38
        if( "layer-create-default-form-definition".equalsIgnoreCase(actionCommand) ) {
39
            ApplicationManager application = ApplicationLocator.getManager();
40
            ViewDocument viewDoc = (ViewDocument) application.getActiveDocument(ViewManager.TYPENAME);
41
            if( viewDoc == null ) {
42
                return;
43
            }
44
            MapContext mapContext = viewDoc.getMapContext();
45
            if( !mapContext.hasActiveVectorLayers() ) {
46
                return;
47
            }
48
            FeatureTypeDefinitionsManager featureTypeDefinitionsManager = DALLocator.getFeatureTypeDefinitionsManager();
49
            FLayer[] layers = mapContext.getLayers().getActives();
50
            for (FLayer layer1 : layers) {
51
                if (layer1 instanceof FLyrVect) {
52
                    FLyrVect layer = (FLyrVect) layer1;
53
                    try {
54
                        FeatureStore store = layer.getFeatureStore();
55
                        FeatureType featureType = store.getDefaultFeatureType();
56
                        featureTypeDefinitionsManager.add(store, featureType, featureType); 
57
                        application.messageDialog(
58
                                "Se creado la definicion de formulario asociada a la capa '"+layer.getName()+"'.",
59
                                "Definicion de formulario", 
60
                                JOptionPane.INFORMATION_MESSAGE
61
                        );
62
                    } catch (Exception ex) {
63
                        logger.warn("Can't save form definition for layer '"+layer.getName()+"'.",ex);
64
                        application.messageDialog(
65
                                "No se ha podido crear la definicion de formulario asociada a la capa '"+layer.getName()+"'.\n\n(Consulte el registro de errores si desea mas informacion)",
66
                                "Definicion de formulario", 
67
                                JOptionPane.INFORMATION_MESSAGE
68
                        );
69
                    }
70
                }
71
            }
72
        }
73
    }
74

    
75
    @Override
76
    public boolean isEnabled() {
77
        return true;
78
    }
79

    
80
    @Override
81
    public boolean isVisible() {
82
        ApplicationManager application = ApplicationLocator.getManager();
83
        ViewDocument viewDoc = (ViewDocument) application.getActiveDocument(ViewManager.TYPENAME);
84
        if( viewDoc == null ) {
85
            return false;
86
        }
87
        MapContext mapContext = viewDoc.getMapContext();
88
        return mapContext.hasActiveVectorLayers();
89
    }
90

    
91
}