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

History | View | Annotate | Download (2.62 KB)

1 42489 jjdelcerro
package org.gvsig.app.extension;
2
3
import java.awt.Dimension;
4
import javax.swing.JOptionPane;
5
import org.gvsig.andami.plugins.Extension;
6
import org.gvsig.app.ApplicationLocator;
7
import org.gvsig.app.ApplicationManager;
8
import org.gvsig.app.project.documents.Document;
9
import org.gvsig.app.project.documents.table.TableDocument;
10
import org.gvsig.app.project.documents.table.TableManager;
11
import org.gvsig.featureform.swing.CreateJFeatureFormException;
12 42775 jjdelcerro
import org.gvsig.featureform.swing.JFeaturesForm;
13 42489 jjdelcerro
import org.gvsig.fmap.dal.exception.DataException;
14
import org.gvsig.fmap.dal.feature.FeatureStore;
15
import org.gvsig.fmap.dal.swing.DALSwingLocator;
16
import org.gvsig.fmap.dal.swing.DataSwingManager;
17
import org.gvsig.tools.service.ServiceException;
18
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
19
import org.slf4j.Logger;
20
import org.slf4j.LoggerFactory;
21
22
public class ShowTableAsForm extends Extension {
23
24
    private static final Logger logger = LoggerFactory.getLogger(ShowTableAsForm.class);
25
26
    @Override
27
    public void initialize() {
28
    }
29
30
    @Override
31
    public void execute(String actionCommand) {
32
        ApplicationManager application = ApplicationLocator.getManager();
33
        if ("table-show-form".equalsIgnoreCase(actionCommand)) {
34
            TableDocument doc = (TableDocument) application.getActiveDocument(TableManager.TYPENAME);
35
            if (doc == null) {
36
                return;
37
            }
38
            try {
39 42775 jjdelcerro
                JFeaturesForm form = this.createform(doc.getStore());
40 42489 jjdelcerro
                form.showForm(WindowManager.MODE.WINDOW);
41
            } catch (Exception ex) {
42
                String msg = "Can't show form for table '" + doc.getName() + "'.";
43
                logger.warn(msg, ex);
44
                application.messageDialog(msg + "\n\n(See the error log for more information)", "Warning", JOptionPane.WARNING_MESSAGE);
45
            }
46
        }
47
    }
48
49 42775 jjdelcerro
    private JFeaturesForm createform(FeatureStore featureStore) throws CreateJFeatureFormException, ServiceException, DataException {
50 42489 jjdelcerro
        final DataSwingManager swingManager = DALSwingLocator.getSwingManager();
51 42775 jjdelcerro
        final JFeaturesForm form = swingManager.createJFeaturesForm(featureStore);
52
        form.getFormset().setAllowDelete(true);
53
        form.getFormset().setAllowNew(true);
54 42489 jjdelcerro
        form.setPreferredSize(new Dimension(400, 300));
55
        return form;
56
    }
57
58
    @Override
59
    public boolean isEnabled() {
60
        return true;
61
    }
62
63
    @Override
64
    public boolean isVisible() {
65
        ApplicationManager application = ApplicationLocator.getManager();
66
        Document doc = application.getActiveDocument(TableManager.TYPENAME);
67
        return doc != null;
68
    }
69
}