Revision 44436

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.exportto.app/org.gvsig.exportto.app.mainplugin/src/main/java/org/gvsig/export/app/extension/ExportLayerExtension.java
27 27
import javax.swing.JComponent;
28 28
import javax.swing.JOptionPane;
29 29
import javax.swing.SwingUtilities;
30
import org.apache.commons.lang3.StringUtils;
30 31
import org.cresques.cts.ICoordTrans;
31 32
import org.cresques.cts.IProjection;
32 33

  
......
62 63
import org.gvsig.fmap.dal.OpenDataStoreParameters;
63 64
import org.gvsig.fmap.mapcontext.MapContextLocator;
64 65
import org.gvsig.fmap.mapcontext.MapContextManager;
66
import org.gvsig.tools.dynobject.DynObject;
67
import org.gvsig.tools.observer.Notification;
68
import org.gvsig.tools.observer.Observable;
69
import org.gvsig.tools.observer.Observer;
65 70

  
66 71

  
67 72
/**
......
83 88
        ProjectManager projectManager = ApplicationLocator.getProjectManager();
84 89
        ViewManager viewManager = (ViewManager) projectManager.getDocumentManager(ViewManager.TYPENAME);
85 90
        viewManager.addTOCContextAction("layer-exportto");
86

  
91
        registerInCatalog();
87 92
    }
88 93

  
89 94
    @Override
......
262 267
        return view != null;
263 268
    }
264 269

  
270
    private void registerInCatalog() {
271
        final ApplicationManager application = ApplicationLocator.getApplicationManager();
272
        application.addPropertiesObserver(new Observer() {
273
            @Override
274
            public void update(Observable observable, Object notification) {
275
                if( !(notification instanceof Notification) ) {
276
                    return;
277
                }
278
                String propertyName = (String) ((Notification)notification).getValue(0);
279
                if( !StringUtils.equalsIgnoreCase(propertyName, "Catalog.Manager") ) {
280
                    return;
281
                }
282
                DynObject catalogManager = (DynObject) application.getProperty("Catalog.Manager");
283
                if (catalogManager == null) {
284
                    return;
285
                }
286
                try {
287
                    String[] catalogNodes = new String[]{
288
                        "STORES_REPOSITORY_TABLE",
289
                        "DATABASE_TABLE",
290
                        "FOLDERS_FILE",
291
                        "BOOKMARKS_BOOKMARK"
292
                    };
293
                    for (String catalogNode : catalogNodes) {
294
                        Object action = catalogManager.invokeDynMethod(
295
                                "getAction",
296
                                new Object[]{
297
                                    ExportStoreFromCatalogAction.NAME,
298
                                    catalogNode
299
                                }
300
                        );
301
                        if (action == null) {
302
                            catalogManager.invokeDynMethod(
303
                                    "addAction",
304
                                    new Object[]{
305
                                        ExportStoreFromCatalogAction.NAME,
306
                                        catalogNode,
307
                                        new ExportStoreFromCatalogAction()
308
                                    }
309
                            );
310
                        }
311
                    }
312
                } catch (Exception ex) {
313
                    logger.warn("Can't add action to catalog", ex);
314
                }
315
            }
316
        });
317
    }
318

  
319
    
265 320
}
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.exportto.app/org.gvsig.exportto.app.mainplugin/src/main/java/org/gvsig/export/app/extension/ExportStoreFromCatalogAction.java
1
package org.gvsig.export.app.extension;
2

  
3
import java.awt.event.ActionEvent;
4
import javax.swing.AbstractAction;
5
import javax.swing.Action;
6
import org.gvsig.fmap.dal.DALLocator;
7
import org.gvsig.fmap.dal.DataManager;
8
import org.gvsig.fmap.dal.DataStore;
9
import org.gvsig.fmap.dal.OpenDataStoreParameters;
10
import org.gvsig.fmap.dal.feature.FeatureStore;
11
import org.gvsig.tools.ToolsLocator;
12
import org.gvsig.tools.i18n.I18nManager;
13
import org.gvsig.tools.swing.api.ToolsSwingLocator;
14
import org.slf4j.Logger;
15
import org.slf4j.LoggerFactory;
16

  
17
/**
18
 *
19
 * @author jjdelcerro
20
 */
21
public class ExportStoreFromCatalogAction extends AbstractAction {
22

  
23
    private static final Logger LOGGER = LoggerFactory.getLogger(ExportStoreFromCatalogAction.class);
24

  
25
    public static final String NAME = "Export";
26

  
27
    public ExportStoreFromCatalogAction() {
28
        I18nManager i18n = ToolsLocator.getI18nManager();
29
        this.putValue(
30
                Action.ACTION_COMMAND_KEY,
31
                NAME
32
        );
33
        this.putValue(
34
                Action.NAME,
35
                i18n.getTranslation("_Export")
36
        );
37
        this.putValue(
38
                Action.SMALL_ICON,
39
                ToolsSwingLocator.getIconThemeManager().getCurrent().get("table-export")
40
        );
41

  
42
    }
43

  
44
    @Override
45
    public void actionPerformed(ActionEvent e) {
46
        try {
47
            OpenDataStoreParameters storeParams = (OpenDataStoreParameters) e.getSource();
48
            DataManager dataManager = DALLocator.getDataManager();
49
            DataStore store = dataManager.openStore(storeParams.getProviderName(), storeParams);
50
            ExportTable exportTable = new ExportTable();
51
            exportTable.showExport(
52
                (FeatureStore) store,
53
                 null
54
            );
55
        } catch (Exception ex) {
56
            LOGGER.warn("Can't export store.", ex);
57
        }
58
    }
59

  
60
    
61
}

Also available in: Unified diff