Revision 1858
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/raster/gui/wizard/proj/WritableFolderPanel.java | ||
---|---|---|
8 | 8 |
import java.io.File; |
9 | 9 |
|
10 | 10 |
import javax.swing.JButton; |
11 |
import javax.swing.JCheckBox; |
|
11 | 12 |
import javax.swing.JLabel; |
12 | 13 |
|
13 | 14 |
import org.cresques.Messages; |
... | ... | |
27 | 28 |
public class WritableFolderPanel extends DefaultButtonsPanel implements ActionListener, IWindow { |
28 | 29 |
private static final long serialVersionUID = 1L; |
29 | 30 |
private SelectDirectoryPanel selectDirectoryPanel = null; |
31 |
private JCheckBox allFiles = null; |
|
30 | 32 |
private Point posWindow = null; |
31 |
private int widthWindow = 300;
|
|
32 |
private int heightWindow = 90;
|
|
33 |
private int widthWindow = 320;
|
|
34 |
private int heightWindow = 120;
|
|
33 | 35 |
private String defaultFolder = null; |
36 |
private String layerName = null; |
|
34 | 37 |
private ActionListener listener = null; |
35 | 38 |
|
36 |
public WritableFolderPanel(String defaultFolder, ActionListener listener) { |
|
39 |
public WritableFolderPanel(String defaultFolder, ActionListener listener, String layerName) {
|
|
37 | 40 |
this.defaultFolder = defaultFolder; |
41 |
this.layerName = layerName; |
|
38 | 42 |
setListener(listener); |
39 | 43 |
posWindow = RasterToolsUtil.iwindowPosition(widthWindow, heightWindow); |
40 | 44 |
initGUI(); |
... | ... | |
55 | 59 |
gbc.weightx = 1; |
56 | 60 |
JLabel label = new JLabel(); |
57 | 61 |
label.setText("<html><p>" + Messages.getText("folder_not_writable") + "</p></html>"); |
62 |
|
|
63 |
gbc.gridy = 0; |
|
64 |
this.add(new JLabel("<html><p>" + layerName + "</p><BR></html>"), gbc); |
|
65 |
|
|
66 |
gbc.gridy = 1; |
|
58 | 67 |
this.add(label, gbc); |
59 | 68 |
|
60 |
gbc.gridy = 1;
|
|
69 |
gbc.gridy = 2;
|
|
61 | 70 |
this.add(getSelectDirectoryPanel(), gbc); |
62 | 71 |
|
72 |
gbc.gridy = 3; |
|
73 |
this.add(getCheckOption(), gbc); |
|
74 |
|
|
63 | 75 |
getSelectDirectoryPanel().setListener(this); |
64 | 76 |
} |
65 | 77 |
|
78 |
public boolean aplyAllFiles() { |
|
79 |
return getCheckOption().isSelected(); |
|
80 |
} |
|
81 |
|
|
82 |
public JCheckBox getCheckOption() { |
|
83 |
if (allFiles == null) |
|
84 |
allFiles = new JCheckBox(PluginServices.getText(this, "apply_all")); |
|
85 |
return allFiles; |
|
86 |
} |
|
87 |
|
|
66 | 88 |
public SelectDirectoryPanel getSelectDirectoryPanel() { |
67 | 89 |
if(selectDirectoryPanel == null) { |
68 | 90 |
selectDirectoryPanel = new SelectDirectoryPanel(); |
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/raster/gui/wizard/PrepareLayerAskWritableDirectory.java | ||
---|---|---|
44 | 44 |
* @author Nacho Brodin (nachobrodin@gmail.com) |
45 | 45 |
*/ |
46 | 46 |
public class PrepareLayerAskWritableDirectory implements PrepareDataStoreParameters, ActionListener { |
47 |
private DataStoreParameters newParameters = null; |
|
48 |
private DataStoreParameters oldParameters = null; |
|
49 |
private String selectedPath = null; |
|
47 |
private DataStoreParameters newParameters = null; |
|
48 |
private DataStoreParameters oldParameters = null; |
|
49 |
private String selectedPath = null; |
|
50 |
private boolean applyToAllLayers = false; |
|
50 | 51 |
|
51 | 52 |
public DataStoreParameters prepare(DataStoreParameters storeParameters, |
52 | 53 |
PrepareContext context) throws BaseException { |
... | ... | |
56 | 57 |
oldParameters = storeParameters; |
57 | 58 |
String uri = ((RasterDataParameters)storeParameters).getURI(); |
58 | 59 |
|
59 |
|
|
60 |
String folder = uri; |
|
61 |
String layerName = uri; |
|
60 | 62 |
if(uri.contains(File.separator)) { |
61 |
uri = uri.substring(0, uri.lastIndexOf(File.separator)); |
|
63 |
folder = getFolder(uri) ; |
|
64 |
layerName = getLayerName(uri); |
|
62 | 65 |
} else { |
63 |
uri = System.getProperty("user.home");
|
|
66 |
folder = System.getProperty("user.home");
|
|
64 | 67 |
} |
65 | 68 |
|
66 |
if(!isValidFolder(uri)) { |
|
67 |
new WritableFolderPanel(uri, this); |
|
69 |
if(!isValidFolder(folder)) { |
|
70 |
if(applyToAllLayers) { |
|
71 |
setFolderToNewDataParameters(selectedPath); |
|
72 |
} else { |
|
73 |
WritableFolderPanel panel = new WritableFolderPanel(folder, this, layerName); |
|
74 |
applyToAllLayers = panel.aplyAllFiles(); |
|
75 |
} |
|
68 | 76 |
} else { |
69 | 77 |
return oldParameters; |
70 | 78 |
} |
... | ... | |
72 | 80 |
return newParameters; |
73 | 81 |
} |
74 | 82 |
|
83 |
private String getFolder(String uri) { |
|
84 |
return uri.substring(0, uri.lastIndexOf(File.separator)); |
|
85 |
} |
|
86 |
|
|
87 |
private String getLayerName(String uri) { |
|
88 |
int lastSeparator = uri.lastIndexOf(File.separator); |
|
89 |
return uri.substring(lastSeparator + 1, uri.length()); |
|
90 |
} |
|
91 |
|
|
75 | 92 |
public void actionPerformed(ActionEvent e) { |
76 | 93 |
if(e.getID() == 0) { //Cambio de directorio |
77 | 94 |
selectedPath = e.getActionCommand(); |
78 | 95 |
} |
79 | 96 |
if(e.getID() == ButtonsPanel.BUTTON_ACCEPT) { |
80 | 97 |
if(isValidFolder(selectedPath)) { |
81 |
newParameters = oldParameters; |
|
82 |
newParameters.setDynValue(RasterDataParameters.FIELD_RMF_FOLDER, new File(selectedPath)); |
|
98 |
setFolderToNewDataParameters(selectedPath); |
|
83 | 99 |
} else { |
84 | 100 |
JOptionPane.showMessageDialog(null, Messages.getText("folder_not_writable"), "", JOptionPane.WARNING_MESSAGE); |
85 | 101 |
newParameters = null; |
... | ... | |
91 | 107 |
} |
92 | 108 |
} |
93 | 109 |
|
110 |
private void setFolderToNewDataParameters(String path) { |
|
111 |
newParameters = oldParameters; |
|
112 |
newParameters.setDynValue(RasterDataParameters.FIELD_RMF_FOLDER, new File(path)); |
|
113 |
} |
|
114 |
|
|
94 | 115 |
private boolean isValidFolder(String folder) { |
95 | 116 |
File path = new File(folder); |
96 | 117 |
return (path.exists() && path.isDirectory() && path.canWrite()); |
97 | 118 |
} |
98 | 119 |
|
99 | 120 |
public void post(DataStoreParameters storeParameters, PrepareContext context) { |
121 |
applyToAllLayers = false; |
|
100 | 122 |
} |
101 | 123 |
|
102 | 124 |
public void pre(DataStoreParameters storeParameters, PrepareContext context) { |
Also available in: Unified diff