gvsig-raster / org.gvsig.raster / trunk / org.gvsig.raster / org.gvsig.raster.app / org.gvsig.raster.app.common / src / main / java / org / gvsig / raster / mainplugin / beans / createlayer / WritableFolderPanel.java @ 2861
History | View | Annotate | Download (5.1 KB)
1 |
package org.gvsig.raster.mainplugin.beans.createlayer; |
---|---|
2 |
|
3 |
import java.awt.GridBagConstraints; |
4 |
import java.awt.GridBagLayout; |
5 |
import java.awt.Point; |
6 |
import java.awt.event.ActionEvent; |
7 |
import java.awt.event.ActionListener; |
8 |
import java.io.File; |
9 |
|
10 |
import javax.swing.JButton; |
11 |
import javax.swing.JCheckBox; |
12 |
import javax.swing.JLabel; |
13 |
|
14 |
import org.cresques.Messages; |
15 |
import org.gvsig.andami.PluginServices; |
16 |
import org.gvsig.andami.ui.mdiManager.IWindow; |
17 |
import org.gvsig.andami.ui.mdiManager.WindowInfo; |
18 |
import org.gvsig.raster.mainplugin.RasterMainPluginUtils; |
19 |
import org.gvsig.raster.mainplugin.beans.createlayer.SelectDirectoryPanel; |
20 |
import org.gvsig.raster.swing.basepanel.AbstractButtonsPanel; |
21 |
import org.gvsig.raster.swing.basepanel.IButtonsPanel; |
22 |
|
23 |
/**
|
24 |
* Panel to select a writable folder
|
25 |
*
|
26 |
* @author Nacho Brodin (nachobrodin@gmail.com)
|
27 |
*/
|
28 |
public class WritableFolderPanel extends AbstractButtonsPanel implements ActionListener, IWindow { |
29 |
private static final long serialVersionUID = 1L; |
30 |
private SelectDirectoryPanel selectDirectoryPanel = null; |
31 |
private JCheckBox allFiles = null; |
32 |
private Point posWindow = null; |
33 |
private int widthWindow = 320; |
34 |
private int heightWindow = 140; |
35 |
private String defaultFolder = null; |
36 |
private String layerName = null; |
37 |
private ActionListener listener = null; |
38 |
|
39 |
public WritableFolderPanel(String defaultFolder, ActionListener listener, String layerName) { |
40 |
this.defaultFolder = defaultFolder;
|
41 |
this.layerName = layerName;
|
42 |
setListener(listener); |
43 |
posWindow = RasterMainPluginUtils.iwindowPosition(widthWindow, heightWindow); |
44 |
initGUI(); |
45 |
PluginServices.getMDIManager().addWindow(this);
|
46 |
} |
47 |
|
48 |
private void initGUI() { |
49 |
JButton accept = getButtonsPanel().getButton(IButtonsPanel.BUTTON_ACCEPT);
|
50 |
JButton cancel = getButtonsPanel().getButton(IButtonsPanel.BUTTON_CANCEL);
|
51 |
getButtonsPanel().getButton(IButtonsPanel.BUTTON_APPLY).setVisible(false);
|
52 |
accept.setEnabled(false);
|
53 |
accept.addActionListener(this);
|
54 |
cancel.addActionListener(this);
|
55 |
|
56 |
this.setLayout(new GridBagLayout()); |
57 |
GridBagConstraints gbc = new GridBagConstraints(); |
58 |
gbc.fill = GridBagConstraints.HORIZONTAL;
|
59 |
gbc.weightx = 1;
|
60 |
JLabel label = new JLabel(); |
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;
|
67 |
this.add(label, gbc);
|
68 |
|
69 |
gbc.gridy = 2;
|
70 |
this.add(getSelectDirectoryPanel(), gbc);
|
71 |
|
72 |
gbc.gridy = 3;
|
73 |
this.add(getCheckOption(), gbc);
|
74 |
|
75 |
getSelectDirectoryPanel().setListener(this);
|
76 |
} |
77 |
|
78 |
public boolean aplyAllFiles() { |
79 |
return getCheckOption().isSelected();
|
80 |
} |
81 |
|
82 |
public JCheckBox getCheckOption() { |
83 |
if (allFiles == null) |
84 |
allFiles = new JCheckBox(Messages.getText("apply_all")); |
85 |
return allFiles;
|
86 |
} |
87 |
|
88 |
public SelectDirectoryPanel getSelectDirectoryPanel() {
|
89 |
if(selectDirectoryPanel == null) { |
90 |
selectDirectoryPanel = new SelectDirectoryPanel();
|
91 |
selectDirectoryPanel.getJLabelDirectory().setVisible(false);
|
92 |
selectDirectoryPanel.getJBChooseDirectory().setEnabled(true);
|
93 |
selectDirectoryPanel.getDirectoryTextField().setText(defaultFolder); |
94 |
} |
95 |
return selectDirectoryPanel;
|
96 |
} |
97 |
|
98 |
public void setListener(ActionListener listener) { |
99 |
this.listener = listener;
|
100 |
} |
101 |
|
102 |
public void actionPerformed(ActionEvent e) { |
103 |
if(e.getSource() == getButtonsPanel().getButton(IButtonsPanel.BUTTON_ACCEPT)) {
|
104 |
if(listener != null) |
105 |
listener.actionPerformed(new ActionEvent(getButtonsPanel().getButton(IButtonsPanel.BUTTON_ACCEPT), IButtonsPanel.BUTTON_ACCEPT, "")); |
106 |
PluginServices.getMDIManager().closeWindow(this);
|
107 |
} |
108 |
|
109 |
if(e.getSource() == getButtonsPanel().getButton(IButtonsPanel.BUTTON_CANCEL)) {
|
110 |
if(listener != null) |
111 |
listener.actionPerformed(new ActionEvent(getButtonsPanel().getButton(IButtonsPanel.BUTTON_CANCEL), IButtonsPanel.BUTTON_CANCEL, "")); |
112 |
PluginServices.getMDIManager().closeWindow(this);
|
113 |
} |
114 |
|
115 |
if(e.getSource() == getSelectDirectoryPanel()) {
|
116 |
File f = new File(getSelectDirectoryPanel().getPath()); |
117 |
if(f.exists() && f.isDirectory() && f.canWrite()) {
|
118 |
getButtonsPanel().getButton(IButtonsPanel.BUTTON_ACCEPT).setEnabled(true);
|
119 |
if(listener != null) |
120 |
listener.actionPerformed(new ActionEvent(getChangeFolderButton(), 0, getSelectDirectoryPanel().getPath())); |
121 |
} else {
|
122 |
getButtonsPanel().getButton(IButtonsPanel.BUTTON_ACCEPT).setEnabled(false);
|
123 |
} |
124 |
} |
125 |
} |
126 |
|
127 |
public JButton getChangeFolderButton() { |
128 |
return getSelectDirectoryPanel().getJBChooseDirectory();
|
129 |
} |
130 |
|
131 |
public WindowInfo getWindowInfo() {
|
132 |
WindowInfo m_viewinfo = new WindowInfo(WindowInfo.MODALDIALOG);
|
133 |
m_viewinfo.setTitle(Messages.getText("warning"));
|
134 |
m_viewinfo.setHeight(heightWindow); |
135 |
m_viewinfo.setWidth(widthWindow); |
136 |
if (posWindow != null) { |
137 |
m_viewinfo.setX((int) posWindow.getX());
|
138 |
m_viewinfo.setY((int) posWindow.getY());
|
139 |
} |
140 |
return m_viewinfo;
|
141 |
} |
142 |
|
143 |
public Object getWindowProfile() { |
144 |
return WindowInfo.DIALOG_PROFILE;
|
145 |
} |
146 |
} |