Statistics
| Revision:

svn-gvsig-desktop / branches / org.gvsig.desktop-2018a / org.gvsig.desktop.library / org.gvsig.fmap.mapcontext.swing / org.gvsig.fmap.mapcontext.swing.impl / src / main / java / org / gvsig / fmap / mapcontext / raster / swing / impl / export / DefaultExportRasterPanel.java @ 43876

History | View | Annotate | Download (5.19 KB)

1
package org.gvsig.fmap.mapcontext.raster.swing.impl.export;
2

    
3
import java.io.File;
4
import java.nio.Buffer;
5
import java.util.ArrayList;
6
import java.util.Iterator;
7
import java.util.List;
8

    
9
import javax.swing.JComponent;
10
import javax.swing.JFileChooser;
11

    
12
import org.slf4j.Logger;
13
import org.slf4j.LoggerFactory;
14

    
15
import org.gvsig.fmap.dal.DALLocator;
16
import org.gvsig.fmap.dal.DataManager;
17
import org.gvsig.fmap.dal.DataServerExplorer;
18
import org.gvsig.fmap.dal.raster.NewRasterStoreParameters;
19
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemFileFilter;
20
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorer;
21
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorerParameters;
22
import org.gvsig.fmap.dal.serverexplorer.filesystem.spi.FilesystemServerExplorerProvider;
23
import org.gvsig.fmap.mapcontext.raster.swing.export.ExportRasterPanel;
24

    
25

    
26
/**
27
 * @author fdiaz
28
 *
29
 */
30
public class DefaultExportRasterPanel implements ExportRasterPanel {
31

    
32
    private static final Logger logger = LoggerFactory.getLogger(DefaultExportRasterPanel.class);
33

    
34
    JFileChooser jfc;
35
    Buffer buffer;
36

    
37
    @Override
38
    public JComponent asJComponent() {
39
        return jfc;
40
    }
41

    
42
    @Override
43
    public void set(Buffer buffer) {
44
        this.buffer = buffer;
45
        init();
46
    }
47

    
48
    private void init() {
49
        DataManager dm = DALLocator.getDataManager();
50
        FilesystemServerExplorerParameters param;
51
        FilesystemServerExplorer explorer = null;
52
        try {
53
            param =
54
                (FilesystemServerExplorerParameters) dm
55
                    .createServerExplorerParameters(FilesystemServerExplorer.NAME);
56
            // param.setInitialpath(lastPath);
57
            explorer = (FilesystemServerExplorer) dm.openServerExplorer(FilesystemServerExplorer.NAME, param);
58
        } catch (Exception e) {
59
            throw new RuntimeException(e);
60
        }
61

    
62
        final JFileChooser jfc = new JFileChooser("/home/paco/tmp");
63

    
64
        List dataStoreProviderNames = explorer.getDataStoreProviderNames();
65
        List<FilesystemServerExplorerProvider> creationProviders = new ArrayList<>();
66
        Iterator filters = explorer.getFilters(DataServerExplorer.MODE_RASTER);
67
        while (filters.hasNext()) {
68
            FilesystemServerExplorerProvider provider = (FilesystemServerExplorerProvider) filters.next();
69
            if (provider.canCreate()) {
70
                creationProviders.add(provider);
71
                jfc.addChoosableFileFilter(new MyFileFilter(provider));
72
            }
73
        }
74

    
75
//        jfc.addPropertyChangeListener(new PropertyChangeListener() {
76
//
77
//            @Override
78
//            public void propertyChange(PropertyChangeEvent evt) {
79
//                evt.getNewValue();
80
//
81
//                if (evt.getNewValue() instanceof MyFileFilter) {
82
//                    String dataStoreProviderName =
83
//                        ((MyFileFilter) evt.getNewValue()).getFileFilter().getDataStoreProviderName();
84
//                    NewRasterStoreParameters params = getParams(dataStoreProviderName);
85
//
86
//                    JComponent panelProperty = loadPanelProperties(params);
87
//                    if (panelProperty != null) {
88
//                        jfc.setAccessory(panelProperty);
89
//                    } else {
90
//                        jfc.setAccessory(new JPanel());
91
//                    }
92
//                    jfc.revalidate();
93
//                }
94
//                if (evt.getNewValue() instanceof String) {
95
//                    logger.info("evt.getNewValue(): "+evt.getNewValue());
96
//                }
97
//
98
//            }
99
//        });
100

    
101

    
102
        jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
103
        jfc.setAcceptAllFileFilterUsed(false);
104
// TODO Auto-generated method stub
105

    
106
    }
107

    
108
    protected JComponent loadPanelProperties(NewRasterStoreParameters params) {
109

    
110
//        if (params != null) {
111
//            FilesystemExplorerPropertiesPanelManager manager =
112
//                ApplicationLocator.getFilesystemExplorerPropertiesPanelManager();
113
//            FilesystemExplorerPropertiesPanel panel = manager.createPanel(params);
114
//            panel.setExcludeGeometryOptions(false);
115
//            return panel.asJComponent();
116
//        }
117

    
118
        return null;
119
    }
120

    
121
    /**
122
     * @author fdiaz
123
     *
124
     */
125
    public static class MyFileFilter extends javax.swing.filechooser.FileFilter {
126

    
127
        private FilesystemFileFilter fileFilter;
128

    
129
        /**
130
         * @param fileFilter
131
         */
132
        public MyFileFilter(FilesystemFileFilter fileFilter) {
133
            this.fileFilter = fileFilter;
134
        }
135

    
136
        @Override
137
        public boolean accept(File f) {
138
            if (f.isDirectory()) {
139
                return true;
140
            }
141
            return this.getFileFilter().accept(f);
142
        }
143

    
144
        @Override
145
        public String getDescription() {
146
            return this.getFileFilter().getDescription();
147
        }
148

    
149
        /**
150
         * @return the fileFilter
151
         */
152
        public FilesystemFileFilter getFileFilter() {
153
            return fileFilter;
154
        }
155

    
156
        // /**
157
        // * @param fileFilter the fileFilter to set
158
        // */
159
        // public void setFileFilter(FilesystemFileFilter fileFilter) {
160
        // this.fileFilter = fileFilter;
161
        // }
162

    
163
    }
164

    
165

    
166
}