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

History | View | Annotate | Download (3.4 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.swing.DALSwingLocator;
14
import org.gvsig.fmap.dal.swing.DataSwingManager;
15
import org.gvsig.fmap.mapcontext.MapContext;
16
import org.gvsig.fmap.mapcontext.layers.FLayer;
17
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
18

    
19
/**
20
 *
21
 * @author jjdelcerro
22
 */
23
public class CreateDefaultFormDefinitionExtension extends Extension {
24

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

    
27

    
28
    @Override
29
    public void initialize() {
30
        DataSwingManager featureFormManager = DALSwingLocator.getSwingManager();
31
        featureFormManager.registerFeatureFormDefinitionsProvider(new DefaultFeatureFormDefinitionsProvider());
32
    }
33

    
34
    @Override
35
    public void execute(String actionCommand) {
36
        if( "layer-create-default-form-definition".equalsIgnoreCase(actionCommand) ) {
37
            ApplicationManager application = ApplicationLocator.getManager();
38
            ViewDocument viewDoc = (ViewDocument) application.getActiveDocument(ViewManager.TYPENAME);
39
            if( viewDoc == null ) {
40
                return;
41
            }
42
            MapContext mapContext = viewDoc.getMapContext();
43
            if( !mapContext.hasActiveVectorLayers() ) {
44
                return;
45
            }
46
            DataSwingManager featureFormManager = DALSwingLocator.getSwingManager();
47
            FLayer[] layers = mapContext.getLayers().getActives();
48
            for (FLayer layer1 : layers) {
49
                if (layer1 instanceof FLyrVect) {
50
                    FLyrVect layer = (FLyrVect) layer1;
51
                    try {
52
                        featureFormManager.getFeatureFormDefinitionsProvider().put(layer.getFeatureStore());
53
                        application.messageDialog(
54
                                "Se creado la definicion de formulario asociada a la capa '"+layer.getName()+"'.",
55
                                "Definicion de formulario", 
56
                                JOptionPane.INFORMATION_MESSAGE
57
                        );
58
                    } catch (Exception ex) {
59
                        logger.warn("Can't save form definition for layer '"+layer.getName()+"'.",ex);
60
                        application.messageDialog(
61
                                "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)",
62
                                "Definicion de formulario", 
63
                                JOptionPane.INFORMATION_MESSAGE
64
                        );
65
                    }
66
                }
67
            }
68
        }
69
    }
70

    
71
    @Override
72
    public boolean isEnabled() {
73
        return true;
74
    }
75

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

    
87
}