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

History | View | Annotate | Download (3.68 KB)

1
package org.gvsig.app.extension;
2

    
3
import javax.swing.JOptionPane;
4
import org.gvsig.andami.IconThemeHelper;
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.view.ViewDocument;
9
import org.gvsig.app.project.documents.view.gui.IView;
10
import org.gvsig.fmap.dal.feature.FeatureStore;
11
import org.gvsig.fmap.dal.feature.FeatureType;
12
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
import org.gvsig.tools.ToolsLocator;
18
import org.gvsig.tools.i18n.I18nManager;
19
import org.gvsig.tools.swing.api.ToolsSwingLocator;
20
import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager;
21
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
        IconThemeHelper.registerIcon("action", "search-by-attributes-layer", this);                
32
    }
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
            I18nManager i18n = ToolsLocator.getI18nManager();
44
            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
            String title = i18n.getTranslation("search")+ ": " + layer.getName();
51
            FeatureStore featureStore = ((FLyrVect) layer).getFeatureStore();
52
            
53
            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
            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
}