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 | } |