Statistics
| Revision:

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
}