Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.exportto / org.gvsig.exportto.swing / org.gvsig.exportto.swing.impl / src / main / java / org / gvsig / export / swing / impl / panels / SelectOutputFilePanel.java @ 44408

History | View | Annotate | Download (3.81 KB)

1 43925 jjdelcerro
package org.gvsig.export.swing.impl.panels;
2
3
import java.io.File;
4
import javax.swing.JComponent;
5
import javax.swing.JOptionPane;
6 44408 jjdelcerro
import javax.swing.JPopupMenu;
7 43925 jjdelcerro
import org.gvsig.export.ExportParameters;
8
import org.gvsig.export.swing.JExportProcessPanel;
9
import org.gvsig.export.swing.spi.ExportPanel;
10
import org.gvsig.export.swing.spi.ExportPanelValidationException;
11
import org.gvsig.export.swing.spi.ExportPanelsManager;
12 44408 jjdelcerro
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingLocator;
13 43925 jjdelcerro
import org.gvsig.tools.ToolsLocator;
14
import org.gvsig.tools.i18n.I18nManager;
15
import org.gvsig.tools.swing.api.ToolsSwingLocator;
16
import org.gvsig.tools.swing.api.ToolsSwingManager;
17
import org.gvsig.tools.swing.api.pickercontroller.FilePickerController;
18
import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager;
19
import org.gvsig.tools.util.HasAFile;
20
21
/**
22
 *
23
 * @author jjdelcerro
24
 */
25 44386 omartinez
public class SelectOutputFilePanel
26 43925 jjdelcerro
        extends SelectOutputFilePanelView
27 44386 omartinez
        implements ExportPanel {
28 43925 jjdelcerro
29
    private FilePickerController fileController;
30
    private final HasAFile parameters;
31
    private final JExportProcessPanel processPanel;
32 44386 omartinez
33 43925 jjdelcerro
    public SelectOutputFilePanel(
34
            JExportProcessPanel processPanel,
35
            ExportParameters parameters
36 44386 omartinez
    ) {
37 43925 jjdelcerro
        this.processPanel = processPanel;
38 44386 omartinez
        this.parameters = (HasAFile) parameters;
39 43925 jjdelcerro
        this.initComponents();
40
    }
41
42
    @Override
43
    public String getIdPanel() {
44
        return ExportPanelsManager.PANEL_SELECT_OUTPUT_FILE;
45
    }
46
47
    @Override
48
    public String getTitlePanel() {
49
        I18nManager i18n = ToolsLocator.getI18nManager();
50 44386 omartinez
        return i18n.getTranslation("Seleccionar_fichero");
51 43925 jjdelcerro
    }
52
53
    @Override
54
    public boolean validatePanel() throws ExportPanelValidationException {
55
        I18nManager i18n = ToolsLocator.getI18nManager();
56
        ThreadSafeDialogsManager dialogs = ToolsSwingLocator.getThreadSafeDialogsManager();
57 44386 omartinez
58
        if (this.fileController.isEmpty()) {
59 43925 jjdelcerro
            throw new ExportPanelValidationException(
60 44386 omartinez
                    i18n.getTranslation("_File_cannot_be_empty"));
61 43925 jjdelcerro
        }
62
        File file = this.fileController.get();
63
        if (file.exists()) {
64
            int resp = dialogs.confirmDialog(
65
                    i18n.getTranslation("fichero_ya_existe_seguro_desea_guardarlo"),
66
                    i18n.getTranslation("guardar"),
67 44386 omartinez
                    JOptionPane.YES_NO_OPTION,
68
                    JOptionPane.QUESTION_MESSAGE,
69 43925 jjdelcerro
                    "OverwriteFileOnExport"
70
            );
71
            if (resp == JOptionPane.NO_OPTION) {
72
                return false;
73
            }
74
        }
75
        return true;
76
    }
77
78
    @Override
79 43968 jjdelcerro
    public void previousPanel() {
80
81
    }
82
83
    @Override
84
    public void nextPanel() {
85 43925 jjdelcerro
        File file = this.fileController.get();
86
        this.parameters.setFile(file);
87
    }
88
89
    @Override
90
    public void enterPanel() {
91 44386 omartinez
        File file = this.parameters.getFile();
92
        if (file != null) {
93
            this.fileController.set(file);
94
        }
95 43925 jjdelcerro
    }
96
97
    @Override
98
    public JComponent asJComponent() {
99
        return this;
100
    }
101
102
    private void initComponents() {
103 44386 omartinez
        File initialPath = null;
104
        if (this.parameters.getFile()!=null) {
105
            initialPath = this.parameters.getFile();
106
        }
107 43925 jjdelcerro
        this.fileController = ToolsSwingLocator.getToolsSwingManager()
108 44386 omartinez
                .createFilePickerController(txtFile,
109
                        btnSelectFile,
110
                        null,
111
                        null, initialPath, true);
112 44408 jjdelcerro
        JPopupMenu menu = this.txtFile.getComponentPopupMenu();
113
        menu.add(ExpressionEvaluatorSwingLocator.getManager().createJExpressionBuilderAction(this.txtFile));
114 43925 jjdelcerro
        this.translate();
115
    }
116 44386 omartinez
117 43925 jjdelcerro
    private void translate() {
118
        ToolsSwingManager i18nc = ToolsSwingLocator.getToolsSwingManager();
119
        i18nc.translate(this.lblFile);
120
    }
121
}