001package arcommon.ui.component;
002
003import java.awt.BorderLayout;
004import java.awt.Dimension;
005import java.awt.event.ActionEvent;
006import java.awt.event.ActionListener;
007
008import javax.swing.JButton;
009import javax.swing.JPanel;
010
011import arcommon.ui.other.GUIUtil;
012
013public class FileNameJComponent extends JPanel {
014
015    private boolean mustExist;
016    
017    private MyJTextField fileNameMyJTextField;
018    
019    private String defaultFileNamePattern;
020    
021    public FileNameJComponent() {
022        this("", false);
023    }
024
025    public FileNameJComponent(String pfileName) {
026        this(pfileName, false);
027    }
028    
029    public FileNameJComponent(String pfileName, boolean pmustExist) {
030        mustExist = pmustExist;
031        
032        setLayout(new BorderLayout());
033        
034        fileNameMyJTextField = new MyJTextField();
035        add(fileNameMyJTextField, BorderLayout.CENTER);
036        fileNameMyJTextField.setText(pfileName);
037        fileNameMyJTextField.setPreferredSize(new Dimension(700, fileNameMyJTextField.getPreferredSize().height - 10));
038        
039        JButton jbutton = new JButton("Browse");
040        add(jbutton, BorderLayout.EAST);
041        jbutton.addActionListener(
042            new ActionListener() {
043                public void actionPerformed(ActionEvent e) {
044                    eventBrowseActionPerformed();
045                }
046            }
047        );
048    }
049    
050    private void eventBrowseActionPerformed() {
051        String currentFileName = fileNameMyJTextField.getText();
052        if (currentFileName == null || currentFileName.length() == 0) {
053            currentFileName = defaultFileNamePattern;
054        }
055        String fileName = GUIUtil.selectAFile(currentFileName, mustExist, "Select a file");
056        if (fileName == null || fileName.equals("")) {
057            return ;
058        }
059        fileNameMyJTextField.setText(fileName);
060    }
061
062    public String getFileName() {
063        return fileNameMyJTextField.getText();
064    }
065
066    public void setFileName(String pfileName) {
067        fileNameMyJTextField.setText(pfileName);
068    }
069    
070    public String getDefaultFileNamePattern() {
071        return defaultFileNamePattern;
072    }
073
074    public void setDefaultFileNamePattern(String pdefaultFileNamePattern) {
075        defaultFileNamePattern = pdefaultFileNamePattern;
076    }
077
078    @Override
079    public void requestFocus() {
080        fileNameMyJTextField.requestFocus();
081    }
082    
083    @Override
084    public boolean requestFocusInWindow() {
085        return fileNameMyJTextField.requestFocusInWindow();
086    }
087    
088    private static final long serialVersionUID = 2531229644534124056L;
089}