00001
00002
00003
00004
00005
00006
00007 package DisplayGUI;
00008 import java.io.*;
00009
00014 public class BookKeeperPrompt extends javax.swing.JFrame implements displayParams {
00015
00016 File file=null;
00017 File trashFile=null;
00018
00020 public BookKeeperPrompt() {
00021 super("SctRodDaq BookKeeper");
00022 initComponents();
00023 }
00024
00030 private void initComponents() {
00031 java.awt.GridBagConstraints gridBagConstraints;
00032
00033 getContentPane().setBackground(backgroundColor);
00034
00035 jLabel1 = new javax.swing.JLabel();
00036 jTextArea1 = new javax.swing.JTextArea();
00037 jLabel2 = new javax.swing.JLabel();
00038 enterButton = new javax.swing.JButton();
00039 closeButton = new javax.swing.JButton();
00040 trashFlag = new javax.swing.JCheckBox();
00041 trashFlag.setBackground(backgroundColor);
00042
00043 getContentPane().setLayout(new java.awt.GridBagLayout());
00044
00045 addWindowListener(new java.awt.event.WindowAdapter() {
00046 public void windowClosing(java.awt.event.WindowEvent evt) {
00047 exitForm(evt);
00048 }
00049 });
00050
00051 jLabel1.setText("jLabel1");
00052 jLabel1.setFont(displayTextFont);
00053 jLabel1.setForeground(darkBlueColor);
00054 gridBagConstraints = new java.awt.GridBagConstraints();
00055 gridBagConstraints.gridwidth = 2;
00056 gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00057 getContentPane().add(jLabel1, gridBagConstraints);
00058
00059 gridBagConstraints = new java.awt.GridBagConstraints();
00060 gridBagConstraints.gridx = 0;
00061 gridBagConstraints.gridy = 2;
00062 gridBagConstraints.gridwidth = 2;
00063 gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 5);
00064 jTextArea1.setLineWrap(true);
00065 jTextArea1.setWrapStyleWord(true);
00066 javax.swing.JScrollPane areaScrollPane = new javax.swing.JScrollPane(jTextArea1);
00067 areaScrollPane.setVerticalScrollBarPolicy(
00068 javax.swing.JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
00069 areaScrollPane.setPreferredSize(new java.awt.Dimension(250, 250));
00070 getContentPane().add(areaScrollPane, gridBagConstraints);
00071
00072 jLabel2.setText("Enter comments");
00073 jLabel2.setFont(displayScaleFont);
00074 gridBagConstraints = new java.awt.GridBagConstraints();
00075 gridBagConstraints.gridx = 0;
00076 gridBagConstraints.gridy = 1;
00077 gridBagConstraints.gridwidth = 2;
00078 gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 5);
00079 gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
00080 getContentPane().add(jLabel2, gridBagConstraints);
00081
00082 trashFlag.setText("Tick to flag this run as TRASH");
00083 trashFlag.setSelected(false);
00084 gridBagConstraints = new java.awt.GridBagConstraints();
00085 gridBagConstraints.gridx = 0;
00086 gridBagConstraints.gridy = 3;
00087 gridBagConstraints.gridwidth = 2;
00088 gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00089 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
00090 getContentPane().add(trashFlag, gridBagConstraints);
00091 trashFlag.addActionListener(new java.awt.event.ActionListener() {
00092 public void actionPerformed(java.awt.event.ActionEvent evt) {
00093 if(trashFlag.isSelected()) {
00094 trashFlag.setText("FLAGGED AS TRASH");
00095 trashFlag.setForeground(java.awt.Color.RED);
00096 }
00097 else {
00098 trashFlag.setText("Tick to flag this run as TRASH");
00099 trashFlag.setForeground(java.awt.Color.black);
00100 }
00101 }
00102 });
00103
00104 enterButton.setText("Enter");
00105 enterButton.setFont(displayScaleFont);
00106 gridBagConstraints = new java.awt.GridBagConstraints();
00107 gridBagConstraints.gridx = 0;
00108 gridBagConstraints.gridy = 4;
00109 gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00110 gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
00111 getContentPane().add(enterButton, gridBagConstraints);
00112 enterButton.addActionListener(new java.awt.event.ActionListener() {
00113 public void actionPerformed(java.awt.event.ActionEvent evt) {
00114 if(file==null) {
00115 System.err.println("Null test index file");
00116 return;
00117 }
00118 try {
00119 BufferedWriter out = new BufferedWriter(new FileWriter(file));
00120 String txt = jTextArea1.getText();
00121 if(!txt.equals("")) out.write(jTextArea1.getText());
00122 out.close();
00123 if(trashFile!=null) {
00124 if(trashFlag.isSelected()) {
00125 out = new BufferedWriter(new FileWriter(trashFile));
00126 out.newLine();
00127 out.close();
00128 }
00129 else trashFile.delete();
00130 }
00131 }catch(Exception e) {
00132 System.err.println("SctGUI::BookKeeper - failed to update test index file "+file.getAbsolutePath()+" - "+e.toString());
00133 }
00134 exitForm(null);
00135 }
00136 });
00137
00138 closeButton.setText("Close");
00139 closeButton.setFont(displayScaleFont);
00140 gridBagConstraints = new java.awt.GridBagConstraints();
00141 gridBagConstraints.gridx = 1;
00142 gridBagConstraints.gridy = 4;
00143 gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00144 gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST;
00145 getContentPane().add(closeButton, gridBagConstraints);
00146 closeButton.addActionListener(new java.awt.event.ActionListener() {
00147 public void actionPerformed(java.awt.event.ActionEvent evt) {
00148 exitForm(null);
00149 }
00150 });
00151
00152 pack();
00153 java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
00154 java.awt.Dimension WSize = getSize();
00155 setLocation((screenSize.width-(int)WSize.getWidth())/2,(screenSize.height-(int)WSize.getHeight())/2);
00156 }
00157
00159 private void exitForm(java.awt.event.WindowEvent evt) {
00160 setVisible(false);
00161 }
00162
00163 public void showPrompt(File file, String run, String scan, String testName) {
00164 this.file=file;
00165
00166 File parent = file.getParentFile();
00167 if(!parent.exists()) {
00168 javax.swing.JOptionPane.showMessageDialog(null,"Bookkeeping not available for this run or scan");
00169 return;
00170 }
00171
00172 if(testName==null) {
00173 jLabel1.setText("Run "+run);
00174 jLabel2.setText("Please enter a description for this run:");
00175 trashFile = new File(parent,"trashed.txt");
00176 trashFlag.setVisible(true);
00177 if(trashFile.exists()) {
00178 trashFlag.setText("FLAGGED AS TRASH");
00179 trashFlag.setForeground(java.awt.Color.RED);
00180 trashFlag.setSelected(true);
00181 }
00182 else {
00183 trashFlag.setText("Tick to flag this run as TRASH");
00184 trashFlag.setForeground(java.awt.Color.black);
00185 trashFlag.setSelected(false);
00186 }
00187 }
00188 else {
00189 jLabel1.setText(testName+" (Run/Scan "+run+"/"+scan+")");
00190 jLabel2.setText("Please enter a description for this test:");
00191 trashFile=null;
00192 trashFlag.setVisible(false);
00193 }
00194 jTextArea1.setText("");
00195 try {
00196 if(file.exists()) {
00197 BufferedReader in = new BufferedReader(new FileReader(file));
00198 String line;
00199 int count=0;
00200 while((line=in.readLine())!=null) {
00201 if(count>0) jTextArea1.append("\n");
00202 jTextArea1.append(line);
00203 count++;
00204 }
00205 in.close();
00206 }
00207 }catch(Exception e) {
00208 System.err.println("SctGUI::BookKeeper - Failed to read test index "+file.getAbsolutePath()+" - "+e.toString());
00209 }
00210 pack();
00211 setVisible(true);
00212 }
00213
00214
00215
00216
00217
00218 private javax.swing.JButton closeButton;
00219 private javax.swing.JButton enterButton;
00220 private javax.swing.JLabel jLabel1;
00221 private javax.swing.JLabel jLabel2;
00222 private javax.swing.JTextArea jTextArea1;
00223 private javax.swing.JCheckBox trashFlag;
00224
00225
00226 }