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 / SearchByAttributesExtension.java @ 44531

History | View | Annotate | Download (3.68 KB)

1 44259 jjdelcerro
package org.gvsig.app.extension;
2
3 44437 jjdelcerro
import javax.swing.JOptionPane;
4 44474 jjdelcerro
import org.gvsig.andami.IconThemeHelper;
5 44259 jjdelcerro
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.view.ViewDocument;
9
import org.gvsig.app.project.documents.view.gui.IView;
10
import org.gvsig.fmap.dal.feature.FeatureStore;
11 44437 jjdelcerro
import org.gvsig.fmap.dal.feature.FeatureType;
12 44259 jjdelcerro
import org.gvsig.fmap.dal.swing.DALSwingLocator;
13
import org.gvsig.fmap.dal.swing.DataSwingManager;
14
import org.gvsig.fmap.dal.swing.searchpanel.FeatureStoreSearchPanel;
15
import org.gvsig.fmap.mapcontext.layers.FLayer;
16
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
17 44437 jjdelcerro
import org.gvsig.tools.ToolsLocator;
18
import org.gvsig.tools.i18n.I18nManager;
19 44259 jjdelcerro
import org.gvsig.tools.swing.api.ToolsSwingLocator;
20 44437 jjdelcerro
import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager;
21 44259 jjdelcerro
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
22
23
/**
24
 *
25
 * @author jjdelcerro
26
 */
27
public class SearchByAttributesExtension extends Extension {
28
29
    @Override
30
    public void initialize() {
31 44474 jjdelcerro
        IconThemeHelper.registerIcon("action", "search-by-attributes-layer", this);
32 44259 jjdelcerro
    }
33
34
    @Override
35
    public void execute(String actionCommand) {
36
        ApplicationManager application = ApplicationLocator.getManager();
37
38
        IView view = (IView) application.getActiveComponent(ViewDocument.class);
39
        if (view == null) {
40
            return;
41
        }
42
        if ("search-by-attributes-layer".equals(actionCommand)) {
43 44474 jjdelcerro
            I18nManager i18n = ToolsLocator.getI18nManager();
44 44259 jjdelcerro
            DataSwingManager dataSwingManager = DALSwingLocator.getSwingManager();
45
            WindowManager winManager = ToolsSwingLocator.getWindowManager();
46
47
            ViewDocument document = view.getViewDocument();
48
49
            FLayer layer = document.getMapContext().getLayers().getActives()[0];
50 44481 jjdelcerro
            String title = i18n.getTranslation("search")+ ": " + layer.getName();
51 44259 jjdelcerro
            FeatureStore featureStore = ((FLyrVect) layer).getFeatureStore();
52
53 44437 jjdelcerro
            try {
54
                FeatureType type = featureStore.getDefaultFeatureType();
55
                if( ! type.supportReferences() ) {
56
                    ThreadSafeDialogsManager dialogs = ToolsSwingLocator.getThreadSafeDialogsManager();
57
                    dialogs.messageDialog(
58
                           i18n.getTranslation("_The_table_has_no_primary_key_or_OID") +"\n" +
59
                                   i18n.getTranslation("_Many_features_selection_deletion_modification_will_not_be_available_as_they_require_it_for_proper_operation"),
60
                           null,
61
                           i18n.getTranslation("_Warning"),
62
                            JOptionPane.WARNING_MESSAGE,
63
                           "TableDoNotSupportReferences"
64
                   );
65
                }
66
            } catch (Exception ex) {
67
            }
68
69 44259 jjdelcerro
            FeatureStoreSearchPanel panel = dataSwingManager.createFeatureStoreSearchPanel(featureStore);
70
            winManager.showWindow(
71
                    panel.asJComponent(),
72
                    title,
73
                    WindowManager.MODE.WINDOW
74
            );
75
76
        }
77
    }
78
79
    @Override
80
    public boolean isEnabled() {
81
        return true;
82
    }
83
84
    @Override
85
    public boolean isVisible() {
86
        ApplicationManager application = ApplicationLocator.getManager();
87
88
        IView view = (IView) application.getActiveComponent(ViewDocument.class);
89
        if (view == null) {
90
            return false;
91
        }
92
        ViewDocument document = view.getViewDocument();
93
        return document.getMapContext().hasActiveVectorLayers();
94
    }
95
}