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
package org.gvsig.export.swing.impl.panels;
2

    
3
import java.io.File;
4
import javax.swing.JComponent;
5
import javax.swing.JOptionPane;
6
import javax.swing.JPopupMenu;
7
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
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingLocator;
13
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
public class SelectOutputFilePanel
26
        extends SelectOutputFilePanelView
27
        implements ExportPanel {
28

    
29
    private FilePickerController fileController;
30
    private final HasAFile parameters;
31
    private final JExportProcessPanel processPanel;
32

    
33
    public SelectOutputFilePanel(
34
            JExportProcessPanel processPanel,
35
            ExportParameters parameters
36
    ) {
37
        this.processPanel = processPanel;
38
        this.parameters = (HasAFile) parameters;
39
        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
        return i18n.getTranslation("Seleccionar_fichero");
51
    }
52

    
53
    @Override
54
    public boolean validatePanel() throws ExportPanelValidationException {
55
        I18nManager i18n = ToolsLocator.getI18nManager();
56
        ThreadSafeDialogsManager dialogs = ToolsSwingLocator.getThreadSafeDialogsManager();
57

    
58
        if (this.fileController.isEmpty()) {
59
            throw new ExportPanelValidationException(
60
                    i18n.getTranslation("_File_cannot_be_empty"));
61
        }
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
                    JOptionPane.YES_NO_OPTION,
68
                    JOptionPane.QUESTION_MESSAGE,
69
                    "OverwriteFileOnExport"
70
            );
71
            if (resp == JOptionPane.NO_OPTION) {
72
                return false;
73
            }
74
        }
75
        return true;
76
    }
77

    
78
    @Override
79
    public void previousPanel() {
80

    
81
    }
82

    
83
    @Override
84
    public void nextPanel() {
85
        File file = this.fileController.get();
86
        this.parameters.setFile(file);
87
    }
88

    
89
    @Override
90
    public void enterPanel() {
91
        File file = this.parameters.getFile();
92
        if (file != null) {
93
            this.fileController.set(file);
94
        }
95
    }
96

    
97
    @Override
98
    public JComponent asJComponent() {
99
        return this;
100
    }
101

    
102
    private void initComponents() {
103
        File initialPath = null;
104
        if (this.parameters.getFile()!=null) {
105
            initialPath = this.parameters.getFile();
106
        }
107
        this.fileController = ToolsSwingLocator.getToolsSwingManager()
108
                .createFilePickerController(txtFile, 
109
                        btnSelectFile,
110
                        null,
111
                        null, initialPath, true);
112
        JPopupMenu menu = this.txtFile.getComponentPopupMenu();
113
        menu.add(ExpressionEvaluatorSwingLocator.getManager().createJExpressionBuilderAction(this.txtFile));
114
        this.translate();
115
    }
116

    
117
    private void translate() {
118
        ToolsSwingManager i18nc = ToolsSwingLocator.getToolsSwingManager();
119
        i18nc.translate(this.lblFile);
120
    }
121
}