00001 package Preferences;
00002
00003
00004
00005
00006
00007
00012 public class Preference extends javax.swing.JDialog {
00013
00014 private javax.swing.JLabel titleLabel;
00015 private javax.swing.JButton updateButton;
00016 private javax.swing.JButton closeButton;
00017 private javax.swing.JLabel valueLabel;
00018 private int parameter;
00019 private PreferencesInterface preferences = PreferencesInterface.getInstance();
00020 private javax.swing.JFrame topFrame;
00021
00023 public Preference(javax.swing.JFrame parent, int parameter) {
00024 super(parent, "Set Preference", true);
00025 topFrame=parent;
00026 this.parameter=parameter;
00027 initComponents();
00028 setLocationRelativeTo(topFrame);
00029 setVisible(true);
00030 }
00031 public String getValue() {
00032 return valueLabel.getText();
00033 }
00034
00040 private void initComponents() {
00041 java.awt.GridBagConstraints gridBagConstraints;
00042
00043 titleLabel = new javax.swing.JLabel();
00044 updateButton = new javax.swing.JButton();
00045 closeButton = new javax.swing.JButton();
00046 valueLabel = new javax.swing.JLabel();
00047
00048 getContentPane().setLayout(new java.awt.GridBagLayout());
00049
00050 addWindowListener(new java.awt.event.WindowAdapter() {
00051 public void windowClosing(java.awt.event.WindowEvent evt) {
00052 closeDialog(evt);
00053 }
00054 });
00055
00056 titleLabel.setFont(new java.awt.Font("Arial", 1, 12));
00057 titleLabel.setForeground(new java.awt.Color(255, 0, 0));
00058 titleLabel.setText(preferences.getDescription(parameter));
00059 gridBagConstraints = new java.awt.GridBagConstraints();
00060 gridBagConstraints.gridwidth = 2;
00061 gridBagConstraints.weighty = 0.4;
00062 gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10);
00063 getContentPane().add(titleLabel, gridBagConstraints);
00064
00065 valueLabel.setFont(new java.awt.Font("Arial", 0, 12));
00066 valueLabel.setText(preferences.getPreference(parameter));
00067 gridBagConstraints = new java.awt.GridBagConstraints();
00068 gridBagConstraints.gridx = 0;
00069 gridBagConstraints.gridy = 1;
00070 gridBagConstraints.gridwidth = 2;
00071 gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10);
00072 gridBagConstraints.weighty = 0.3;
00073 getContentPane().add(valueLabel, gridBagConstraints);
00074
00075 updateButton.setFont(new java.awt.Font("Arial", 0, 12));
00076 updateButton.setText("Change...");
00077 gridBagConstraints = new java.awt.GridBagConstraints();
00078 gridBagConstraints.gridx = 0;
00079 gridBagConstraints.gridy = 2;
00080 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
00081 gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10);
00082 gridBagConstraints.weightx = 0.3;
00083 getContentPane().add(updateButton, gridBagConstraints);
00084
00085 closeButton.setFont(new java.awt.Font("Arial", 0, 12));
00086 closeButton.setText("Close");
00087 gridBagConstraints = new java.awt.GridBagConstraints();
00088 gridBagConstraints.gridx = 1;
00089 gridBagConstraints.gridy = 2;
00090 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
00091 gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10);
00092 gridBagConstraints.weightx = 0.3;
00093 getContentPane().add(closeButton, gridBagConstraints);
00094
00095 closeButton.addActionListener(new java.awt.event.ActionListener() {
00096 public void actionPerformed(java.awt.event.ActionEvent evt) {
00097 closeForm();
00098 }
00099 });
00100
00101
00102
00103 updateButton.addActionListener(new java.awt.event.ActionListener() {
00104 public void actionPerformed(java.awt.event.ActionEvent evt) {
00105 javax.swing.JFileChooser fc;
00106 int returnVal;
00107 switch(parameter) {
00108 case PreferencesInterface.PSVIEWER:
00109 fc = new javax.swing.JFileChooser();
00110 fc.setDialogTitle("Find a postscript viewer executable:");
00111 returnVal = fc.showOpenDialog(topFrame);
00112 if (returnVal == javax.swing.JFileChooser.APPROVE_OPTION) {
00113 java.io.File file = fc.getSelectedFile();
00114 if(!file.exists()) javax.swing.JOptionPane.showMessageDialog(null,file.getAbsolutePath()+" does not exist","Error",javax.swing.JOptionPane.ERROR_MESSAGE);
00115 else {
00116 valueLabel.setText(file.getAbsolutePath());
00117 preferences.setPreference(PreferencesInterface.PSVIEWER,file.getAbsolutePath());
00118 pack();
00119 }
00120 }
00121 break;
00122 case PreferencesInterface.SCRATCH_DIR:
00123 fc = new javax.swing.JFileChooser();
00124 fc.setDialogTitle("Select a suitable scratch disk:");
00125 fc.setFileSelectionMode(javax.swing.JFileChooser.DIRECTORIES_ONLY);
00126
00127 returnVal = fc.showOpenDialog(topFrame);
00128 if (returnVal == javax.swing.JFileChooser.APPROVE_OPTION) {
00129 java.io.File file = fc.getSelectedFile();
00130 if(!file.exists()) javax.swing.JOptionPane.showMessageDialog(null,file.getAbsolutePath()+" does not exist","Error",javax.swing.JOptionPane.ERROR_MESSAGE);
00131 else {
00132 valueLabel.setText(file.getAbsolutePath());
00133 preferences.setPreference(PreferencesInterface.SCRATCH_DIR,file.getAbsolutePath());
00134 pack();
00135 }
00136 }
00137 break;
00138 case PreferencesInterface.UPLOAD_DIR:
00139 fc = new javax.swing.JFileChooser();
00140 fc.setDialogTitle("Select a suitable upload directory:");
00141 fc.setFileSelectionMode(javax.swing.JFileChooser.DIRECTORIES_ONLY);
00142
00143 returnVal = fc.showOpenDialog(topFrame);
00144 if (returnVal == javax.swing.JFileChooser.APPROVE_OPTION) {
00145 java.io.File file = fc.getSelectedFile();
00146 if(!file.exists()) javax.swing.JOptionPane.showMessageDialog(null,file.getAbsolutePath()+" does not exist","Error",javax.swing.JOptionPane.ERROR_MESSAGE);
00147 else {
00148 valueLabel.setText(file.getAbsolutePath());
00149 preferences.setPreference(PreferencesInterface.UPLOAD_DIR,file.getAbsolutePath());
00150 pack();
00151 }
00152 }
00153 break;
00154 case PreferencesInterface.WEB_LOOKUP_DIR:
00155 fc = new javax.swing.JFileChooser();
00156 fc.setDialogTitle("Select the directory for the web lookup table:");
00157 fc.setFileSelectionMode(javax.swing.JFileChooser.DIRECTORIES_ONLY);
00158
00159 returnVal = fc.showOpenDialog(topFrame);
00160 if (returnVal == javax.swing.JFileChooser.APPROVE_OPTION) {
00161 java.io.File file = fc.getSelectedFile();
00162 if(!file.exists()) javax.swing.JOptionPane.showMessageDialog(null,file.getAbsolutePath()+" does not exist","Error",javax.swing.JOptionPane.ERROR_MESSAGE);
00163 else {
00164 valueLabel.setText(file.getAbsolutePath());
00165 preferences.setPreference(PreferencesInterface.WEB_LOOKUP_DIR,file.getAbsolutePath());
00166 pack();
00167 }
00168 }
00169 break;
00170 case PreferencesInterface.IV_DIRECTORY:
00171 fc = new javax.swing.JFileChooser();
00172 fc.setDialogTitle("Select IVscan data directory:");
00173 fc.setFileSelectionMode(javax.swing.JFileChooser.DIRECTORIES_ONLY);
00174
00175 returnVal = fc.showOpenDialog(topFrame);
00176 if (returnVal == javax.swing.JFileChooser.APPROVE_OPTION) {
00177 java.io.File file = fc.getSelectedFile();
00178 if(!file.exists()) javax.swing.JOptionPane.showMessageDialog(null,file.getAbsolutePath()+" does not exist","Error",javax.swing.JOptionPane.ERROR_MESSAGE);
00179 else {
00180 valueLabel.setText(file.getAbsolutePath());
00181 preferences.setPreference(PreferencesInterface.IV_DIRECTORY,file.getAbsolutePath());
00182 pack();
00183 }
00184 }
00185 break;
00186 case PreferencesInterface.INSTITUTE:
00187 java.util.Vector listOfLocations = new java.util.Vector();
00188 try {
00189 listOfLocations = ProdDatabase.GeneralUtilities.getLocationList();
00190 }catch(Exception e2){}
00191 String thisLoc = preferences.getPreference(PreferencesInterface.INSTITUTE);
00192 if(thisLoc.equals(PreferencesInterface.unDefinedString)) thisLoc="Any";
00193 guiUtilities.userPrompt thisPrompt = new guiUtilities.userPrompt(topFrame,thisLoc,"Institute", listOfLocations);
00194 thisPrompt.pack();
00195 thisPrompt.setLocationRelativeTo(topFrame);
00196 thisPrompt.setVisible(true);
00197 String thisLocation = thisPrompt.getValidatedText();
00198 if (!thisLocation.equals("None")) {
00199 valueLabel.setText(thisLocation);
00200 preferences.setPreference(PreferencesInterface.INSTITUTE,thisLocation);
00201 pack();
00202 }
00203 break;
00204 case PreferencesInterface.SCT_VIEW:
00205 java.util.Vector listOfViews = new java.util.Vector();
00206 for(int i=0;i<DisplayGUI.SCTInfo.SCTViewNames.length;i++) listOfViews.addElement(DisplayGUI.SCTInfo.SCTViewNames[i]);
00207 String thisView = preferences.getPreference(PreferencesInterface.SCT_VIEW);
00208 if(thisView.equals(PreferencesInterface.unDefinedString)) thisView="Barrel 3";
00209 thisPrompt = new guiUtilities.userPrompt(topFrame,thisView,"SCT View", listOfViews);
00210 thisPrompt.pack();
00211 thisPrompt.setLocationRelativeTo(topFrame);
00212 thisPrompt.setVisible(true);
00213 thisView = thisPrompt.getValidatedText();
00214 if (!thisView.equals("None")) {
00215 valueLabel.setText(thisView);
00216 preferences.setPreference(PreferencesInterface.SCT_VIEW,thisView);
00217 pack();
00218 }
00219 break;
00220 case PreferencesInterface.DCS_SERVER_NAME:
00221 String response = javax.swing.JOptionPane.showInputDialog("Enter DCS IS Server Name",preferences.getPreference(PreferencesInterface.DCS_SERVER_NAME));
00222 if(response!=null) {
00223 valueLabel.setText(response);
00224 preferences.setPreference(PreferencesInterface.DCS_SERVER_NAME,response);
00225 }
00226 break;
00227 case PreferencesInterface.PASSWORD:
00228 response = javax.swing.JOptionPane.showInputDialog("Enter SCTDB Password",preferences.getPreference(PreferencesInterface.PASSWORD));
00229 if(response!=null) {
00230 valueLabel.setText(response);
00231 preferences.setPreference(PreferencesInterface.PASSWORD,response);
00232 }
00233 break;
00234 default:
00235 }
00236 }
00237 });
00238 pack();
00239 }
00240
00242 private void closeDialog(java.awt.event.WindowEvent evt) {
00243 closeForm();
00244 }
00245 private void closeForm() {
00246 setVisible(false);
00247 dispose();
00248 }
00249
00250
00251
00252
00253
00254 }