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}