Statistics
| Revision:

root / branches / v2_0_0_prep / extensions / extEditing / src / org / gvsig / editing / gui / cad / panels / FileBasedPanel.java @ 29616

History | View | Annotate | Download (4.89 KB)

1
package org.gvsig.editing.gui.cad.panels;
2

    
3
import java.awt.Component;
4
import java.awt.event.KeyEvent;
5
import java.io.File;
6

    
7
import javax.swing.JButton;
8
import javax.swing.JFileChooser;
9
import javax.swing.JLabel;
10
import javax.swing.JTextField;
11

    
12
import org.gvsig.andami.PluginServices;
13
import org.gvsig.andami.ui.mdiManager.IWindow;
14
import org.gvsig.app.addlayer.AddLayerDialog;
15
import org.gvsig.app.gui.panels.CRSSelectPanel;
16
import org.gvsig.app.project.documents.view.gui.View;
17
import org.gvsig.utils.SimpleFileFilter;
18

    
19
import jwizardcomponent.JWizardComponents;
20
import jwizardcomponent.JWizardPanel;
21

    
22

    
23
public class FileBasedPanel extends JWizardPanel {
24

    
25
        private static final long serialVersionUID = -1431370928697152515L;
26
        private JLabel jLabel = null;
27
        private JTextField jTextFieldPath = null;
28
        private JButton jButtonSelectPath = null;
29
        private CRSSelectPanel crsSelectPanel = null;
30
        private String fileExt;
31

    
32
//        private class MyInputEventListener implements CaretListener
33
//        {
34
//                public void caretUpdate(CaretEvent arg0) {
35
//                        if (jTextFieldPath.getText().length() > 0)
36
//                                setFinishButtonEnabled(true);
37
//                        else
38
//                                setFinishButtonEnabled(false);
39
//
40
//                }
41
//
42
//        }
43

    
44

    
45
        public FileBasedPanel(JWizardComponents wizardComponents) {
46
                super(wizardComponents);
47
                initialize();
48
        }
49

    
50
        /**
51
         * This method initializes this
52
         *
53
         */
54
        private void initialize() {
55
        jLabel = new JLabel();
56
        jLabel.setText(PluginServices.getText(this,"enter_path_to_file"));
57
        jLabel.setBounds(new java.awt.Rectangle(12,17,319,15));
58
        this.setLayout(null);
59
        this.setSize(new java.awt.Dimension(380,214));
60
        this.add(jLabel, null);
61
        this.add(getJTextFieldPath(), null);
62
        this.add(getJButtonSelectPath(), null);
63

    
64
        this.add(getChooserPanel(), null);
65
        setFinishButtonEnabled(false);
66
        }
67

    
68
        /**
69
         * This method initializes jTextFieldPath
70
         *
71
         * @return javax.swing.JTextField
72
         */
73
        private JTextField getJTextFieldPath() {
74
                if (jTextFieldPath == null) {
75
                        jTextFieldPath = new JTextField();
76
                        jTextFieldPath.setPreferredSize(new java.awt.Dimension(210,20));
77
                        jTextFieldPath.setBounds(new java.awt.Rectangle(12,38,319,23));
78
                        jTextFieldPath.addKeyListener(new java.awt.event.KeyAdapter() {
79
                                public void keyReleased(KeyEvent arg0) {
80
                                        if (!jTextFieldPath.getText().equals(""))
81
                                                setFinishButtonEnabled(true);
82
                                        else
83
                                                setFinishButtonEnabled(false);
84
                                }
85

    
86
                        });
87
                }
88
                return jTextFieldPath;
89
        }
90

    
91
        /**
92
         * This method initializes jButtonSelectPath
93
         *
94
         * @return javax.swing.JButton
95
         */
96
        private JButton getJButtonSelectPath() {
97
                if (jButtonSelectPath == null) {
98
                        jButtonSelectPath = new JButton();
99
                        jButtonSelectPath.setText("...");
100
                        jButtonSelectPath.setBounds(new java.awt.Rectangle(332,38,32,22));
101
                        jButtonSelectPath.addActionListener(new java.awt.event.ActionListener() {
102
                                public void actionPerformed(java.awt.event.ActionEvent e) {
103
                            JFileChooser jfc = new JFileChooser();
104
                            SimpleFileFilter filterShp = new SimpleFileFilter(fileExt, PluginServices.getText(this,"file")+" "+fileExt);
105
                            jfc.setFileFilter(filterShp);
106
                            if (jfc.showSaveDialog((Component) PluginServices.getMainFrame()) == JFileChooser.APPROVE_OPTION) {
107
                                            File newFile = jfc.getSelectedFile();
108
                                            String path = newFile.getAbsolutePath();
109
                                            if (!(path.toLowerCase().endsWith("." + fileExt)))
110
                                            {
111
                                                    path = path + "." + fileExt;
112
                                            }
113
                                            jTextFieldPath.setText(path);
114
                                            setFinishButtonEnabled(true);
115
                            }else{
116
                                    setFinishButtonEnabled(false);
117
                            }
118

    
119
                                }
120
                        });
121
                }
122
                return jButtonSelectPath;
123
        }
124

    
125
        public String getPath() {
126
                return jTextFieldPath.getText();
127
        }
128

    
129
        /**
130
         * Use it to set the extension of the file you want to receive.
131
         * (Without . : Example: for shps: shp for dxfs: dxf)
132
         * @param extension
133
         */
134
        public void setFileExtension(String extension)
135
        {
136
                this.fileExt = extension;
137
        }
138

    
139
        /**
140
         * This method initializes chooserPanel
141
         *
142
         * @return javax.swing.JPanel
143
         */
144
        private CRSSelectPanel getChooserPanel() {
145
                if (crsSelectPanel == null) {
146
                        crsSelectPanel = CRSSelectPanel.getPanel(AddLayerDialog.getLastProjection());
147
                        crsSelectPanel.setBounds(new java.awt.Rectangle(16,98,348,44));
148
                        IWindow view= PluginServices.getMDIManager().getActiveWindow();
149
                        if (view instanceof org.gvsig.app.project.documents.view.gui.View){
150
                                if (((View)view).getMapControl().getMapContext().getLayers().getLayersCount()!=0){
151
                                        crsSelectPanel.getJBtnChangeProj().setEnabled(false);
152
                                }
153
                        }
154
                        crsSelectPanel.addActionListener(new java.awt.event.ActionListener() {
155
                                public void actionPerformed(java.awt.event.ActionEvent e) {
156
                                if (crsSelectPanel.isOkPressed()) {
157
                                        AddLayerDialog.setLastProjection(crsSelectPanel.getCurProj());
158
                                }
159
                                }
160
                        });
161
                }
162
                return crsSelectPanel;
163
        }
164

    
165
}  //  @jve:decl-index=0:visual-constraint="10,10"