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

History | View | Annotate | Download (5.34 KB)

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

    
3
import java.beans.PropertyChangeEvent;
4
import java.beans.PropertyChangeListener;
5
import java.io.File;
6
import java.nio.Buffer;
7
import java.util.ArrayList;
8
import java.util.Iterator;
9
import java.util.List;
10

    
11
import javax.swing.JComponent;
12
import javax.swing.JFileChooser;
13
import javax.swing.JPanel;
14

    
15
import org.slf4j.Logger;
16
import org.slf4j.LoggerFactory;
17

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

    
28

    
29
/**
30
 * @author fdiaz
31
 *
32
 */
33
public class DefaultExportRasterPanel implements ExportRasterPanel {
34

    
35
    private static final Logger logger = LoggerFactory.getLogger(DefaultExportRasterPanel.class);
36

    
37
    JFileChooser jfc;
38
    Buffer buffer;
39

    
40
    @Override
41
    public JComponent asJComponent() {
42
        return jfc;
43
    }
44

    
45
    @Override
46
    public void set(Buffer buffer) {
47
        this.buffer = buffer;
48
        init();
49
    }
50

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

    
65
        final JFileChooser jfc = new JFileChooser("/home/paco/tmp");
66

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

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

    
105

    
106
        jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
107
        jfc.setAcceptAllFileFilterUsed(false);
108
// TODO Auto-generated method stub
109

    
110
    }
111

    
112
    protected JComponent loadPanelProperties(NewRasterStoreParameters params) {
113

    
114
//        if (params != null) {
115
//            FilesystemExplorerPropertiesPanelManager manager =
116
//                ApplicationLocator.getFilesystemExplorerPropertiesPanelManager();
117
//            FilesystemExplorerPropertiesPanel panel = manager.createPanel(params);
118
//            panel.setExcludeGeometryOptions(false);
119
//            return panel.asJComponent();
120
//        }
121

    
122
        return null;
123
    }
124

    
125
    /**
126
     * @author fdiaz
127
     *
128
     */
129
    public static class MyFileFilter extends javax.swing.filechooser.FileFilter {
130

    
131
        private FilesystemFileFilter fileFilter;
132

    
133
        /**
134
         * @param fileFilter
135
         */
136
        public MyFileFilter(FilesystemFileFilter fileFilter) {
137
            this.fileFilter = fileFilter;
138
        }
139

    
140
        @Override
141
        public boolean accept(File f) {
142
            if (f.isDirectory()) {
143
                return true;
144
            }
145
            return this.getFileFilter().accept(f);
146
        }
147

    
148
        @Override
149
        public String getDescription() {
150
            return this.getFileFilter().getDescription();
151
        }
152

    
153
        /**
154
         * @return the fileFilter
155
         */
156
        public FilesystemFileFilter getFileFilter() {
157
            return fileFilter;
158
        }
159

    
160
        // /**
161
        // * @param fileFilter the fileFilter to set
162
        // */
163
        // public void setFileFilter(FilesystemFileFilter fileFilter) {
164
        // this.fileFilter = fileFilter;
165
        // }
166

    
167
    }
168

    
169

    
170
}