TrustGrapher  r52
A playabale simulator for modelling trust between agents
D:/src/cu/trustGrapher/eventplayer/EventInjector.java
Go to the documentation of this file.
00001 
00002 package cu.trustGrapher.eventplayer;
00003 
00004 import aohara.utilities.ChatterBox;
00005 
00013 public final class EventInjector extends javax.swing.JFrame {
00014 
00015     private static final int CREATE = 0, MODIFY = 1;
00016     private int mode;
00017     protected EventPlayer eventThread;
00018 
00020 
00025     public EventInjector(EventPlayer eventThread, int mode) {
00026         initComponents();
00027         this.eventThread = eventThread;
00028         this.mode = mode;
00029         if (mode == CREATE) {
00030             //If in create mode, have the instructions text reflect this
00031             label.setText(label.getText() + "create.");
00032         } else {
00033             //If in modify mode, set the text fields to the values of the event to be modified
00034             label.setText(label.getText() + "modify.");
00035             TrustLogEvent currentEvent = eventThread.getEvents().get(eventThread.getCurrentEventIndex());
00036             assessorField.setText("" + currentEvent.getAssessor());
00037             assesseeField.setText("" + currentEvent.getAssessee());
00038             feedbackField.setText("" + currentEvent.getFeedback());
00039         }
00040         setVisible(true);
00041     }
00042 
00044     private void createEvent() {
00045     }
00046 
00048     public static void getNewEvent(EventPlayer eventThread) {
00049         EventInjector injector = new EventInjector(eventThread, CREATE);
00050     }
00051 
00052     public static void modifyEvent(EventPlayer eventThread) {
00053         EventInjector injector = new EventInjector(eventThread, MODIFY);
00054     }
00055 
00057 
00062     @SuppressWarnings("unchecked")
00063     // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
00064     private void initComponents() {
00065 
00066         javax.swing.JLabel jLabel1 = new javax.swing.JLabel();
00067         javax.swing.JLabel jLabel2 = new javax.swing.JLabel();
00068         javax.swing.JLabel jLabel3 = new javax.swing.JLabel();
00069         javax.swing.JLabel jLabel4 = new javax.swing.JLabel();
00070         assessorField = new javax.swing.JTextField();
00071         assesseeField = new javax.swing.JTextField();
00072         feedbackField = new javax.swing.JTextField();
00073         label = new javax.swing.JLabel();
00074         okButton = new javax.swing.JButton();
00075         cancelButton = new javax.swing.JButton();
00076 
00077         setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
00078         setTitle("Event Injector");
00079 
00080         jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
00081         jLabel1.setText("Please enter the info of the event");
00082 
00083         jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
00084         jLabel2.setText("Assessor ID:");
00085 
00086         jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
00087         jLabel3.setText("Assessee ID:");
00088 
00089         jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
00090         jLabel4.setText("Feedback value:");
00091 
00092         label.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
00093         label.setText(" that you wish to ");
00094 
00095         okButton.setText("OK");
00096         okButton.addActionListener(new java.awt.event.ActionListener() {
00097             public void actionPerformed(java.awt.event.ActionEvent evt) {
00098                 okButtonActionPerformed(evt);
00099             }
00100         });
00101 
00102         cancelButton.setText("Cancel");
00103         cancelButton.addActionListener(new java.awt.event.ActionListener() {
00104             public void actionPerformed(java.awt.event.ActionEvent evt) {
00105                 cancelButtonActionPerformed(evt);
00106             }
00107         });
00108 
00109         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
00110         getContentPane().setLayout(layout);
00111         layout.setHorizontalGroup(
00112             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
00113             .addGroup(layout.createSequentialGroup()
00114                 .addContainerGap()
00115                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
00116                     .addGroup(layout.createSequentialGroup()
00117                         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
00118                             .addComponent(okButton)
00119                             .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
00120                                 .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
00121                                 .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
00122                                 .addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
00123                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
00124                         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
00125                             .addComponent(feedbackField, javax.swing.GroupLayout.DEFAULT_SIZE, 121, Short.MAX_VALUE)
00126                             .addComponent(assesseeField, javax.swing.GroupLayout.DEFAULT_SIZE, 121, Short.MAX_VALUE)
00127                             .addComponent(assessorField, javax.swing.GroupLayout.DEFAULT_SIZE, 121, Short.MAX_VALUE)
00128                             .addComponent(cancelButton)))
00129                     .addComponent(label, javax.swing.GroupLayout.DEFAULT_SIZE, 245, Short.MAX_VALUE)
00130                     .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 245, Short.MAX_VALUE))
00131                 .addContainerGap())
00132         );
00133         layout.setVerticalGroup(
00134             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
00135             .addGroup(layout.createSequentialGroup()
00136                 .addContainerGap()
00137                 .addComponent(jLabel1)
00138                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
00139                 .addComponent(label)
00140                 .addGap(18, 18, 18)
00141                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
00142                     .addComponent(jLabel2)
00143                     .addComponent(assessorField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
00144                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
00145                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
00146                     .addComponent(jLabel3)
00147                     .addComponent(assesseeField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
00148                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
00149                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
00150                     .addComponent(jLabel4)
00151                     .addComponent(feedbackField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
00152                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
00153                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
00154                     .addComponent(cancelButton)
00155                     .addComponent(okButton))
00156                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
00157         );
00158 
00159         pack();
00160     }// </editor-fold>//GEN-END:initComponents
00161 
00162 private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed
00163     try { //Try to parse the field values into intes and doubles.  if any of them doesn't parse, do nothing
00164         int src = Integer.parseInt(assessorField.getText());
00165         int sink = Integer.parseInt(assesseeField.getText());
00166         if (src == sink || src < 0 || sink < 0) { //Check if the assessor and assessee are not equal and are >= 0
00167             throw new Exception("The assessor and assesse must be greater than or equal to zero\nand not be equal to eachother.");
00168         }
00169         double feedback = Double.parseDouble(feedbackField.getText());
00170         if (feedback > 1.0 || feedback < 0.0) { //Check is feedback is in the correct range [0,1]
00171             throw new Exception("The feedback must be in the range [0.0 , 1.0]");
00172         }
00173         TrustLogEvent event = new TrustLogEvent(src + "," + sink + "," + feedback); //Create a new TrustLogEvent
00174         dispose();
00175         if (mode == CREATE) { //Then call the appropriate EventPlayer method to handle the change
00176             eventThread.insertEvent(event);
00177         } else {
00178             eventThread.modifyEvent(event);
00179         }
00180     } catch (NumberFormatException ex) {
00181         ChatterBox.alert("The assessor and assessee must be valid integers\nand the feedback must be a valid decimal.");
00182     }catch (NullPointerException ex){
00183         ex.printStackTrace();
00184     } catch (Exception ex) {
00185         ChatterBox.alert(ex.getMessage());
00186     }
00187 }//GEN-LAST:event_okButtonActionPerformed
00188 
00189 private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
00190     dispose();
00191 }//GEN-LAST:event_cancelButtonActionPerformed
00192     // Variables declaration - do not modify//GEN-BEGIN:variables
00193     private javax.swing.JTextField assesseeField;
00194     private javax.swing.JTextField assessorField;
00195     private javax.swing.JButton cancelButton;
00196     private javax.swing.JTextField feedbackField;
00197     private javax.swing.JLabel label;
00198     private javax.swing.JButton okButton;
00199     // End of variables declaration//GEN-END:variables
00200 }