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