Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.app.document.table.app / org.gvsig.app.document.table.app.mainplugin / src / main / java / org / gvsig / app / extension / ShowTableAsForm.java @ 44252

History | View | Annotate | Download (2.93 KB)

1
package org.gvsig.app.extension;
2

    
3
import java.awt.Dimension;
4
import javax.swing.JComponent;
5
import javax.swing.JOptionPane;
6
import org.gvsig.andami.plugins.Extension;
7
import org.gvsig.app.ApplicationLocator;
8
import org.gvsig.app.ApplicationManager;
9
import org.gvsig.app.project.documents.Document;
10
import org.gvsig.app.project.documents.table.TableDocument;
11
import org.gvsig.app.project.documents.table.TableManager;
12
import org.gvsig.app.project.documents.table.gui.FeatureTableDocumentPanel;
13
import org.gvsig.featureform.swing.CreateJFeatureFormException;
14
import org.gvsig.featureform.swing.JFeaturesForm;
15
import org.gvsig.fmap.dal.exception.DataException;
16
import org.gvsig.fmap.dal.feature.FeatureStore;
17
import org.gvsig.fmap.dal.swing.DALSwingLocator;
18
import org.gvsig.fmap.dal.swing.DataSwingManager;
19
import org.gvsig.tools.service.ServiceException;
20
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
21
import org.slf4j.Logger;
22
import org.slf4j.LoggerFactory;
23

    
24
public class ShowTableAsForm extends Extension {
25

    
26
    private static final Logger logger = LoggerFactory.getLogger(ShowTableAsForm.class);
27

    
28
    @Override
29
    public void initialize() {
30
    }
31

    
32
    @Override
33
    public void execute(String actionCommand) {
34
        ApplicationManager application = ApplicationLocator.getManager();
35
        if ("table-show-form".equalsIgnoreCase(actionCommand)) {
36
            TableDocument doc = (TableDocument) application.getActiveDocument(TableManager.TYPENAME);
37
            if (doc == null) {
38
                return;
39
            }
40
//            FeatureStore store = doc.getStore();
41
            FeatureTableDocumentPanel tablePanel = (FeatureTableDocumentPanel) doc.getMainComponent();
42
            FeatureStore store = tablePanel.getFeatureStore();
43
            try {
44
                JFeaturesForm form = this.createform(store);
45
                form.showForm(WindowManager.MODE.WINDOW);
46
            } catch (Exception ex) {
47
                String msg = "Can't show form for table '" + doc.getName() + "'.";
48
                logger.warn(msg, ex);
49
                application.messageDialog(msg + "\n\n(See the error log for more information)", "Warning", JOptionPane.WARNING_MESSAGE);
50
            }
51
        }
52
    }
53

    
54
    private JFeaturesForm createform(FeatureStore featureStore) throws CreateJFeatureFormException, ServiceException, DataException {
55
        final DataSwingManager swingManager = DALSwingLocator.getSwingManager();
56
        final JFeaturesForm form = swingManager.createJFeaturesForm(featureStore);
57
        form.getFormset().setAllowDelete(true);
58
        form.getFormset().setAllowNew(true);
59
        form.setPreferredSize(new Dimension(400, 300));
60
        return form;
61
    }
62

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

    
68
    @Override
69
    public boolean isVisible() {
70
        ApplicationManager application = ApplicationLocator.getManager();
71
        Document doc = application.getActiveDocument(TableManager.TYPENAME);
72
        return doc != null;
73
    }
74
}