TrustGrapher
r52
A playabale simulator for modelling trust between agents
|
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 }