Statistics
| Revision:

gvsig-gdal / trunk / org.gvsig.gdal / org.gvsig.gdal.app / org.gvsig.gdal.app.gpx / src / main / java / org / gvsig / gdal / app / gpx / gui / utils / JFileField.java @ 11

History | View | Annotate | Download (2.47 KB)

1
package org.gvsig.gdal.app.gpx.gui.utils;
2

    
3
import java.awt.Dimension;
4
import java.awt.FlowLayout;
5
import java.awt.Rectangle;
6
import java.awt.event.ActionEvent;
7
import java.awt.event.ActionListener;
8

    
9
import javax.swing.JButton;
10
import javax.swing.JFileChooser;
11
import javax.swing.JLabel;
12
import javax.swing.JPanel;
13
import javax.swing.JTextField;
14
 
15
public class JFileField extends JPanel {
16
    private String textFieldLabel;
17
    private String buttonLabel;
18
     
19
    private JLabel label;
20
    private JTextField textField;
21
    private JButton button;
22
     
23
    private JFileChooser fileChooser;
24
     
25
    private int mode;
26
    public static final int MODE_OPEN = 1;
27
    public static final int MODE_SAVE = 2;
28
     
29
    public JFileField(String textFieldLabel, String buttonLabel) {
30
        this.textFieldLabel = textFieldLabel;
31
        this.buttonLabel = buttonLabel;
32
         
33
        fileChooser = new JFileChooser();
34
         
35
        setLayout(new FlowLayout(FlowLayout.CENTER, 2, 0));
36
 
37
        if(textFieldLabel!=null){
38
                label = new JLabel(textFieldLabel);
39
                add(label);
40
        }
41
         
42
        textField = new JTextField(37);
43
        textField.setEditable(false);
44
        button = new JButton(buttonLabel);
45
        button.setPreferredSize(new Dimension(35, 22));
46
         
47
        button.addActionListener(new ActionListener() {
48
            public void actionPerformed(ActionEvent evt) {
49
                buttonActionPerformed(evt);            
50
            }
51
        });
52
         
53
        add(textField);
54
        add(button);
55
         
56
    }
57
     
58
    private void buttonActionPerformed(ActionEvent evt) {
59
        if (mode == MODE_OPEN) {
60
            if (fileChooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
61
                textField.setText(fileChooser.getSelectedFile().getName());
62
            }
63
        } else if (mode == MODE_SAVE) {
64
            if (fileChooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {
65
                textField.setText(fileChooser.getSelectedFile().getName());
66
            }
67
        }
68
    }
69
 
70
    public void addFileTypeFilter(String extension, String description) {
71
        FileTypeFilter filter = new FileTypeFilter(extension, description);
72
        fileChooser.addChoosableFileFilter(filter);
73
    }
74
     
75
    public void setMode(int mode) {
76
        this.mode = mode;
77
    }
78
     
79
    public String getSelectedFilePath() {
80
        return textField.getText();
81
    }
82
     
83
    public JFileChooser getFileChooser() {
84
        return this.fileChooser;
85
    }
86
}