/****************************************************************** * JADE - Java Agent DEvelopment Framework is a framework to develop * multi-agent systems in compliance with the FIPA specifications. * Copyright (C) 2002 TILAB S.p.A. * * This file is donated by Acklin B.V. to the JADE project. * * * GNU Lesser General Public License * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation, * version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * ***************************************************************/ package jade.tools.gui; //java import java.awt.*; import java.awt.event.*; import java.io.*; import java.lang.reflect.*; import java.util.*; import javax.swing.*; import javax.swing.text.*; import jade.core.AID; import jade.core.Agent; import jade.domain.FIPAAgentManagement.Envelope; import jade.domain.FIPAAgentManagement.ReceivedObject; import jade.lang.acl.*; import jade.tools.sl.SLFormatter; import jade.util.Logger; /** * Description of the Class * * @author Chris van Aart - Acklin B.V., the Netherlands * @created April 26, 2002 */ public class ACLPanel extends JPanel { private Logger logger = Logger.getMyLogger(this.getClass().getName()); /** * Constructor for the ACLPanel object * * @param agent Description of Parameter */ public ACLPanel(Agent agent) { try { this.agent = agent; receiverList = new ACLAIDList(agent); replytoList = new ACLAIDList(agent); envToList = new ACLAIDList(agent); envIntendedReceiversList = new ACLAIDList(agent); jbInit(); itsMsg.setSender(agent.getAID()); setItsMsg(itsMsg); editsVector.add(performativesComboBox); editsVector.add(languageTextField); editsVector.add(ontologyTextField); editsVector.add(encodingTextField); editsVector.add(protocolComboBox); editsVector.add(inreplytoTextField); editsVector.add(replywithTextField); editsVector.add(ontologyTextField); editsVector.add(conversationTextField); editsVector.add(receiverList); editsVector.add(replytoList); editsVector.add(contentTextArea); editsVector.add(userpropList); editsVector.add(envToList); editsVector.add(envCommentsTextArea); editsVector.add(envACLReprTextField); editsVector.add(envPayloadEncodingTextField); editsVector.add(envPayloadLengthTextField); editsVector.add(envIntendedReceiversList); } catch (Exception e) { e.printStackTrace(); } } /** * Gets the ItsMsg attribute of the ACLPanel object * * @return The ItsMsg value */ public ACLMessage getItsMsg() { return itsMsg; } /** * Sets the ItsMsg attribute of the ACLPanel object * * @param msg The new ItsMsg value */ public void setItsMsg(ACLMessage msg) { itsMsg = msg; itsEnvelope = msg.getEnvelope(); if (itsEnvelope == null) { itsEnvelope = new Envelope(); msg.setEnvelope(itsEnvelope); } //message senderTextField.setText(itsMsg.getSender() != null ? itsMsg.getSender().getName() : ""); performativesComboBox.registerPerformatives(itsMsg); languageTextField.register(itsMsg, "Language"); ontologyTextField.register(itsMsg, "Ontology"); encodingTextField.register(itsMsg, "Encoding"); protocolComboBox.registerProtocol(itsMsg); inreplytoTextField.register(itsMsg, "InReplyTo"); replywithTextField.register(itsMsg, "ReplyWith"); replybyTextField.setText(itsMsg.getReplyByDate() != null ? ISO8601.toString(itsMsg.getReplyByDate()) : ""); conversationTextField.register(itsMsg, "ConversationId"); receiverList.register(itsMsg, "Receiver"); replytoList.register(itsMsg, "ReplyTo"); contentTextArea.register(itsMsg, "Content"); userpropList.register(itsMsg, ""); //env envToList.register(itsEnvelope, "To"); envFromTextField.setText((itsEnvelope.getFrom() != null ? itsEnvelope.getFrom().getName() : "")); envCommentsTextArea.register(itsEnvelope, "Comments"); envACLReprTextField.register(itsEnvelope, "AclRepresentation"); envPayloadEncodingTextField.register(itsEnvelope, "PayloadEncoding"); envPayloadLengthTextField.register(itsEnvelope, "PayloadLength"); envDateTextField.setText(itsEnvelope.getDate() != null ? ISO8601.toString(itsEnvelope.getDate()) : ""); envIntendedReceiversList.register(itsEnvelope, "IntendedReceiver"); } /** * Sets the ReadOnly attribute of the ACLPanel object */ public void setReadOnly() { setEnabled(false); editable = false; } /** * Sets the Disabled attribute of the ACLPanel object * * @param theBool The new Enabled value */ public void setEnabled(boolean theBool) { editable = theBool; this.defaultEnvelopeButton.setEnabled(theBool); String methodName = "setEditable"; for (int i = 0; i < editsVector.size(); i++) { Object obj = editsVector.get(i); try { Method sn = obj.getClass().getMethod(methodName, new Class[]{Boolean.TYPE}); Object os = new Boolean(editable); sn.invoke(obj, new Object[]{os}); } catch (Exception ex) { if(logger.isLoggable(Logger.WARNING)) logger.log(Logger.WARNING,"Obj: " + obj.getClass().toString() + " " + ex.getMessage()); } } } /** * Description of the Method */ public void doSystemOut() { if(logger.isLoggable(Logger.WARNING)) logger.log(Logger.INFO,"\n" + itsMsg.toString() + "\n"); } /** * Description of the Method */ public void saveACL() { UIManager.put("FileChooser.saveButtonToolTipText", "Save ACLMessage"); JFileChooser chooser = new JFileChooser(); chooser.setFileFilter(new ACLFileFilter()); // since JDK1.3 chooser.setAcceptAllFileFilterUsed(false); chooser.setSelectedFile(new File("itsmessage.acl")); chooser.setDialogTitle("Save ACLMessage"); if (currentDir != null) { chooser.setCurrentDirectory(currentDir); } int returnVal = chooser.showSaveDialog(null); if (returnVal == JFileChooser.APPROVE_OPTION) { currentDir = chooser.getCurrentDirectory(); String fileName = chooser.getSelectedFile().getAbsolutePath(); if (!fileName.endsWith(".acl")) { fileName = fileName + ".acl"; } try { FileWriter f = new FileWriter(fileName); StringACLCodec codec = new StringACLCodec(null, f); codec.write(itsMsg); f.close(); } catch (FileNotFoundException e3) { if(logger.isLoggable(Logger.WARNING)) logger.log(Logger.WARNING,"Can't open file: " + fileName); } catch (IOException e4) { if(logger.isLoggable(Logger.WARNING)) logger.log(Logger.WARNING,"IO Exception"); } } } public void loadACL() { UIManager.put("FileChooser.openButtonToolTipText", "Open ACLMessage"); JFileChooser chooser = new JFileChooser(); chooser.setFileFilter(new ACLFileFilter()); // since JDK1.3 chooser.setAcceptAllFileFilterUsed(false); chooser.setDialogTitle("Open ACLMessage"); if (currentDir != null) { chooser.setCurrentDirectory(currentDir); } int returnVal = chooser.showOpenDialog(null); if (returnVal == JFileChooser.APPROVE_OPTION) { currentDir = chooser.getCurrentDirectory(); String fileName = chooser.getSelectedFile().getAbsolutePath(); try { StringACLCodec codec = new StringACLCodec(new FileReader(fileName), null); ACLMessage msg = codec.decode(); this.setItsMsg(msg); } catch (FileNotFoundException e1) { JOptionPane.showMessageDialog(null, "File not found: " + fileName + e1.getMessage(), "Error Message", JOptionPane.ERROR_MESSAGE); if(logger.isLoggable(Logger.WARNING)) logger.log(Logger.WARNING,"File Not Found: " + fileName); } catch (ACLCodec.CodecException e2) { if(logger.isLoggable(Logger.WARNING)) logger.log(Logger.WARNING,"Wrong ACL Message in file: " + fileName); // e2.printStackTrace(); JOptionPane.showMessageDialog(null, "Wrong ACL Message in file: " + fileName + "\n" + e2.getMessage(), "Error Message", JOptionPane.ERROR_MESSAGE); } } } public void doZoomContent() { ACLContentDialog theDialog = new ACLContentDialog(null, "ACLMessage content", true); theDialog.setItsContent(this.getItsMsg()); theDialog.setEditable(editable); theDialog.setLocation((int)getLocationOnScreen().getX(), (int)getLocationOnScreen().getY()); theDialog.setVisible(true); this.contentTextArea.update(); } void setDefaultEnvelope() { itsMsg.setDefaultEnvelope(); setItsMsg(itsMsg); if(logger.isLoggable(Logger.WARNING)) logger.log(Logger.CONFIG,":" + this.itsEnvelope.toString()); } /** * Description of the Method * * @param e Description of Parameter */ void senderButton_actionPerformed(ActionEvent e) { doShowSender(); } /** * Description of the Method */ void doShowSender() { ACLAIDDialog aidGui = new ACLAIDDialog(agent); AID currentAID = itsMsg.getSender(); AID editAID = (AID)currentAID.clone(); aidGui.setItsAID(editAID); aidGui.setLocation((int)getLocationOnScreen().getX(), (int)getLocationOnScreen().getY()); aidGui.setTitle(editable ? "edit ACL: " + editAID.getName() : "view ACL: " + editAID.getName()); aidGui.setEditable(editable); aidGui.setVisible(true); if (aidGui.getOK()) { itsMsg.setSender(aidGui.getItsAID()); senderTextField.setText(itsMsg.getSender().getName()); } } void doShowFrom() { ACLAIDDialog aidGui = new ACLAIDDialog(agent); AID currentAID = (itsMsg.getEnvelope().getFrom() != null ? itsMsg.getEnvelope().getFrom() : new AID()); AID editAID = (AID)currentAID.clone(); aidGui.setLocation((int)getLocationOnScreen().getX(), (int)getLocationOnScreen().getY()); aidGui.setItsAID(editAID); aidGui.setTitle(editable ? "edit ACL: " + editAID.getName() : "view ACL: " + editAID.getName()); aidGui.setEditable(editable); aidGui.setVisible(true); if (aidGui.getOK()) { itsMsg.getEnvelope().setFrom(aidGui.getItsAID()); this.envFromTextField.setText(itsMsg.getEnvelope().getFrom().getName()); } } /** * Description of the Method * * @param e Description of Parameter */ void replyByButton_actionPerformed(ActionEvent e) { doShowTimeDialog(); } /** * Description of the Method */ void doShowTimeDialog() { ACLTimeChooserDialog t = new ACLTimeChooserDialog(); Date theDate = itsMsg.getReplyByDate(); if (theDate != null) { try { t.setDate(theDate); } catch (Exception ee) { JOptionPane.showMessageDialog(this, ee.getMessage(), "Incorrect date format", JOptionPane.ERROR_MESSAGE); if(logger.isLoggable(Logger.WARNING)) logger.log(Logger.WARNING,"Incorrect date format"); return; } } if (editable) { if (t.showEditTimeDlg(null) == ACLTimeChooserDialog.OK) { itsMsg.setReplyByDate(t.getDate()); if (itsMsg.getReplyByDate() == null) { this.replybyTextField.setText(""); } else { this.replybyTextField.setText(ISO8601.toString(itsMsg.getReplyByDate())); } } } if (!editable) { t.showViewTimeDlg(null); } } void doShowEnvTimeDialog() { ACLTimeChooserDialog t = new ACLTimeChooserDialog(); Date theDate = itsMsg.getEnvelope().getDate(); if (theDate != null) { try { t.setDate(theDate); } catch (Exception ee) { JOptionPane.showMessageDialog(this, ee.getMessage(), "Incorrect date format", JOptionPane.ERROR_MESSAGE); if(logger.isLoggable(Logger.WARNING)) logger.log(Logger.WARNING,"Incorrect date format"); return; } } if (editable) { if (t.showEditTimeDlg(null) == ACLTimeChooserDialog.OK) { itsMsg.getEnvelope().setDate(t.getDate()); if (itsMsg.getEnvelope().getDate() == null) { this.envDateTextField.setText(""); } else { this.envDateTextField.setText(ISO8601.toString(itsMsg.getEnvelope().getDate())); } } } if (!editable) { t.showViewTimeDlg(null); } } /** * Description of the Method * * @param e Description of Parameter */ void contentTextArea_mouseClicked(MouseEvent e) { if (e.getClickCount() > 2) { if(logger.isLoggable(Logger.WARNING)) logger.log(Logger.WARNING,"to do display content dialog"); } } /** * Description of the Method * * @param e Description of Parameter */ void senderTextField_mouseClicked(MouseEvent e) { doShowSender(); } /** * Description of the Method * * @param e Description of Parameter */ void replybyTextField_mouseClicked(MouseEvent e) { doShowTimeDialog(); } void defaultEnvelopeButton_actionPerformed(ActionEvent e) { setDefaultEnvelope(); } void fromButton_actionPerformed(ActionEvent e) { doShowFrom(); } void envDateButton_actionPerformed(ActionEvent e) { this.doShowEnvTimeDialog(); } void contentZoomButton_actionPerformed(ActionEvent e) { doZoomContent(); } void envFromTextField_mouseClicked(MouseEvent e) { doShowFrom(); } void envDateTextField_mouseClicked(MouseEvent e) { this.doShowEnvTimeDialog(); } /** * Description of the Method * * @exception Exception Description of Exception */ private void jbInit() throws Exception { senderLabel.setFont(new java.awt.Font("Dialog", 0, 11)); senderLabel.setText("sender:"); this.setBackground(Color.white); this.setOpaque(false); this.setLayout(gridBagLayout1); receiverLabel.setFont(new java.awt.Font("Dialog", 0, 11)); receiverLabel.setText("receivers:"); replytoLabel.setFont(new java.awt.Font("Dialog", 0, 11)); replytoLabel.setText("reply-to"); contentLabel.setFont(new java.awt.Font("Dialog", 0, 11)); contentLabel.setText("content"); languageLabel.setFont(new java.awt.Font("Dialog", 0, 11)); languageLabel.setText("language"); encodingLabel.setFont(new java.awt.Font("Dialog", 0, 11)); encodingLabel.setText("encoding"); ontologyjLabel.setFont(new java.awt.Font("Dialog", 0, 11)); ontologyjLabel.setText("ontology"); protocolLabel.setFont(new java.awt.Font("Dialog", 0, 11)); protocolLabel.setText("protocol"); inreplytoLabel.setFont(new java.awt.Font("Dialog", 0, 11)); inreplytoLabel.setText("in-reply-to"); replywithLabel.setFont(new java.awt.Font("Dialog", 0, 11)); replywithLabel.setText("reply-with"); replybyLabel.setFont(new java.awt.Font("Dialog", 0, 11)); replybyLabel.setText("reply-by"); userpropLabel.setFont(new java.awt.Font("Dialog", 0, 11)); userpropLabel.setText("User-prop."); protocolComboBox.setBackground(Color.white); protocolComboBox.setFont(new java.awt.Font("Dialog", 0, 11)); replytoList.setFont(new java.awt.Font("Dialog", 0, 11)); convidLabel.setFont(new java.awt.Font("Dialog", 0, 11)); convidLabel.setText("conv.-id"); userpropList.setFont(new java.awt.Font("Dialog", 0, 11)); performativeLabel.setFont(new java.awt.Font("Dialog", 0, 11)); performativeLabel.setText("performative"); senderButton.setBackground(Color.white); senderButton.setFont(new java.awt.Font("Dialog", 0, 12)); senderButton.setBorder(null); senderButton.setMaximumSize(new Dimension(23, 20)); senderButton.setMinimumSize(new Dimension(25, 20)); senderButton.setPreferredSize(new Dimension(25, 20)); senderButton.setToolTipText("Edit/View Sender"); senderButton.setIcon(zoomIcon); senderButton.setMargin(new Insets(0, 0, 0, 0)); senderButton.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { senderButton_actionPerformed(e); } }); replyByButton.setBackground(Color.white); replyByButton.setFont(new java.awt.Font("Dialog", 0, 12)); replyByButton.setBorder(null); replyByButton.setMaximumSize(new Dimension(23, 20)); replyByButton.setMinimumSize(new Dimension(23, 20)); replyByButton.setPreferredSize(new Dimension(23, 20)); replyByButton.setToolTipText("Edit/View Reply-by"); replyByButton.setIcon(dateIcon); replyByButton.setMargin(new Insets(0, 0, 0, 0)); replyByButton.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { replyByButton_actionPerformed(e); } }); senderTextField.setFont(new java.awt.Font("Dialog", 0, 11)); senderTextField.setDisabledTextColor(Color.black); senderTextField.setEnabled(false); senderTextField.addMouseListener( new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) { senderTextField_mouseClicked(e); } }); replybyTextField.setFont(new java.awt.Font("Dialog", 0, 11)); replybyTextField.setDisabledTextColor(Color.black); replybyTextField.setEnabled(false); replybyTextField.addMouseListener( new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) { replybyTextField_mouseClicked(e); } }); performativesComboBox.setBackground(Color.white); aclTab.setLayout(gridBagLayout2); theTabbedPane.setBackground(Color.white); theTabbedPane.setFont(new java.awt.Font("Dialog", 0, 12)); theTabbedPane.setBorder(BorderFactory.createLineBorder(Color.black)); aclTab.setBackground(Color.white); aclTab.setBorder(BorderFactory.createLoweredBevelBorder()); envelopeTab.setLayout(gridBagLayout3); envelopeTab.setBackground(Color.white); toLabel.setFont(new java.awt.Font("Dialog", 0, 11)); toLabel.setText("to"); fromLabel.setFont(new java.awt.Font("Dialog", 0, 11)); fromLabel.setText("from"); commentsLabel.setFont(new java.awt.Font("Dialog", 0, 11)); commentsLabel.setText("comments"); aclRepreLabel.setFont(new java.awt.Font("Dialog", 0, 11)); aclRepreLabel.setToolTipText("ACL Repr"); aclRepreLabel.setText("acl repr."); payLoadLabel.setFont(new java.awt.Font("Dialog", 0, 11)); payLoadLabel.setToolTipText("Payload Length"); payLoadLabel.setText("payload len."); envDateLabel.setFont(new java.awt.Font("Dialog", 0, 11)); envDateLabel.setToolTipText("Date"); envDateLabel.setText("date"); intReceiversLabel.setFont(new java.awt.Font("Dialog", 0, 11)); intReceiversLabel.setToolTipText("Intended Receivers"); intReceiversLabel.setText("int. receivers"); jLabel1.setFont(new java.awt.Font("Dialog", 0, 11)); jLabel1.setToolTipText("Payload Encoding"); jLabel1.setText("payload enc."); envDateTextField.setFont(new java.awt.Font("Dialog", 0, 11)); envDateTextField.setToolTipText(""); envDateTextField.setDisabledTextColor(Color.black); envDateTextField.addMouseListener( new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) { envDateTextField_mouseClicked(e); } }); envDateTextField.setEnabled(false); defaultEnvelopeButton.setBackground(Color.white); defaultEnvelopeButton.setFont(new java.awt.Font("Dialog", 0, 12)); defaultEnvelopeButton.setIcon(envelopeIcon); defaultEnvelopeButton.setText("set Default Envelope"); defaultEnvelopeButton.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { defaultEnvelopeButton_actionPerformed(e); } }); fromButton.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { fromButton_actionPerformed(e); } }); fromButton.setMargin(new Insets(0, 0, 0, 0)); fromButton.setToolTipText("Edit/View From"); fromButton.setIcon(zoomIcon); fromButton.setPreferredSize(new Dimension(23, 20)); fromButton.setMinimumSize(new Dimension(23, 20)); fromButton.setMaximumSize(new Dimension(23, 20)); fromButton.setFont(new java.awt.Font("Dialog", 0, 12)); fromButton.setBackground(Color.white); envFromTextField.setFont(new java.awt.Font("Dialog", 0, 11)); envFromTextField.setDisabledTextColor(Color.black); envFromTextField.addMouseListener( new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) { envFromTextField_mouseClicked(e); } }); envFromTextField.setEnabled(false); envDateButton.setBackground(Color.white); envDateButton.setFont(new java.awt.Font("Dialog", 0, 12)); envDateButton.setMaximumSize(new Dimension(23, 20)); envDateButton.setMinimumSize(new Dimension(23, 20)); envDateButton.setPreferredSize(new Dimension(23, 20)); envDateButton.setToolTipText("Edit/View Date"); envDateButton.setIcon(dateIcon); envDateButton.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { envDateButton_actionPerformed(e); } }); contentZoomButton.setBorder(null); contentZoomButton.setMaximumSize(new Dimension(23, 20)); contentZoomButton.setMinimumSize(new Dimension(23, 20)); contentZoomButton.setToolTipText("Zoom Content Of ACLMessage"); contentZoomButton.setIcon(zoomIcon); contentZoomButton.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { contentZoomButton_actionPerformed(e); } }); contentTextArea.setText(""); contentTextArea.setAutoscrolls(true); contentTextArea.setFont(new java.awt.Font("Dialog", 0, 11)); aclTab.add(senderLabel, new GridBagConstraints(0, 1, 2, 1, 0.0, 0.0 , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(senderTextField, new GridBagConstraints(2, 1, 1, 1, 1.0, 0.0 , GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(receiverLabel, new GridBagConstraints(0, 2, 2, 1, 0.0, 0.0 , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(replytoLabel, new GridBagConstraints(0, 3, 2, 1, 0.0, 0.0 , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(replytoList, new GridBagConstraints(2, 3, 3, 1, 1.0, 1.0 , GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(languageLabel, new GridBagConstraints(0, 6, 2, 1, 0.0, 0.0 , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(encodingLabel, new GridBagConstraints(0, 7, 2, 1, 0.0, 0.0 , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(ontologyjLabel, new GridBagConstraints(0, 8, 2, 1, 0.0, 0.0 , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(protocolLabel, new GridBagConstraints(0, 9, 2, 1, 0.0, 0.0 , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(inreplytoLabel, new GridBagConstraints(0, 11, 2, 1, 0.0, 0.0 , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(replywithLabel, new GridBagConstraints(0, 12, 2, 1, 0.0, 0.0 , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(replybyLabel, new GridBagConstraints(0, 13, 2, 1, 0.0, 0.0 , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(userpropLabel, new GridBagConstraints(0, 14, 2, 1, 0.0, 0.0 , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(userpropList, new GridBagConstraints(2, 14, 3, 1, 1.0, 1.0 , GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(encodingTextField, new GridBagConstraints(2, 7, 3, 1, 1.0, 0.0 , GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(ontologyTextField, new GridBagConstraints(2, 8, 3, 1, 1.0, 0.0 , GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(protocolComboBox, new GridBagConstraints(2, 9, 3, 1, 1.0, 0.0 , GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(replywithTextField, new GridBagConstraints(2, 12, 3, 1, 1.0, 0.0 , GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(replybyTextField, new GridBagConstraints(2, 13, 1, 1, 1.0, 0.0 , GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(convidLabel, new GridBagConstraints(0, 10, 2, 1, 0.0, 0.0 , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(inreplytoTextField, new GridBagConstraints(2, 11, 3, 1, 1.0, 0.0 , GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(conversationTextField, new GridBagConstraints(2, 10, 3, 1, 1.0, 0.0 , GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(receiverList, new GridBagConstraints(2, 2, 3, 1, 1.0, 1.0 , GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(languageTextField, new GridBagConstraints(2, 6, 3, 1, 1.0, 0.0 , GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(performativesComboBox, new GridBagConstraints(2, 0, 3, 1, 1.0, 0.0 , GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(performativeLabel, new GridBagConstraints(0, 0, 2, 1, 0.0, 0.0 , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(senderButton, new GridBagConstraints(3, 1, 1, 1, 0.0, 0.0 , GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(replyByButton, new GridBagConstraints(3, 13, 1, 1, 0.0, 0.0 , GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(contentLabel, new GridBagConstraints(0, 4, 1, 1, 0.0, 0.0 , GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(contentZoomButton, new GridBagConstraints(3, 4, 1, 1, 0.0, 0.0 , GridBagConstraints.NORTH, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); aclTab.add(contentTextArea, new GridBagConstraints(0, 5, 4, 1, 2.0, 2.0 , GridBagConstraints.SOUTH, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); envelopeTab.add(toLabel, new GridBagConstraints(0, 1, 2, 1, 0.0, 0.0 , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); envelopeTab.add(commentsLabel, new GridBagConstraints(0, 2, 2, 1, 0.0, 0.0 , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); envelopeTab.add(aclRepreLabel, new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0 , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); envelopeTab.add(payLoadLabel, new GridBagConstraints(0, 4, 2, 1, 0.0, 0.0 , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); envelopeTab.add(envDateLabel, new GridBagConstraints(0, 6, 2, 1, 0.0, 0.0 , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); //envelopeTab.add(encryptedLabel, new GridBagConstraints(0, 7, 2, 1, 0.0, 0.0 // , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); envelopeTab.add(intReceiversLabel, new GridBagConstraints(0, 7, 2, 1, 0.0, 0.0 , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); envelopeTab.add(envACLReprTextField, new GridBagConstraints(2, 3, 2, 1, 1.0, 0.0 , GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); envelopeTab.add(jLabel1, new GridBagConstraints(0, 5, 1, 1, 0.0, 0.0 , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); envelopeTab.add(envPayloadLengthTextField, new GridBagConstraints(2, 4, 2, 1, 1.0, 0.0 , GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); envelopeTab.add(envPayloadEncodingTextField, new GridBagConstraints(2, 5, 2, 1, 1.0, 0.0 , GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); envelopeTab.add(fromLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0 , GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); envelopeTab.add(envToList, new GridBagConstraints(2, 1, 2, 1, 1.0, 1.0 , GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); envelopeTab.add(envDateTextField, new GridBagConstraints(2, 6, 1, 1, 1.0, 0.0 , GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); //envelopeTab.add(envEncryptedList, new GridBagConstraints(2, 7, 2, 1, 1.0, 1.0 // , GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); envelopeTab.add(envIntendedReceiversList, new GridBagConstraints(2, 7, 2, 1, 1.0, 1.0 , GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); envelopeTab.add(defaultEnvelopeButton, new GridBagConstraints(2, 8, 1, 1, 0.0, 0.0 , GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 0, 0, 0), 0, 0)); envelopeTab.add(envFromTextField, new GridBagConstraints(2, 0, 1, 1, 1.0, 0.0 , GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); envelopeTab.add(fromButton, new GridBagConstraints(3, 0, 1, 1, 0.0, 0.0 , GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); envelopeTab.add(envDateButton, new GridBagConstraints(3, 6, 1, 1, 0.0, 0.0 , GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); envelopeTab.add(commentsScrollPane, new GridBagConstraints(2, 2, 2, 1, 1.0, 1.0 , GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); commentsScrollPane.getViewport().add(envCommentsTextArea, null); this.add(theTabbedPane, new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0 , GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); theTabbedPane.addTab("message", this.messageIcon, aclTab, "<html><h1>Message Tab</h1>" + "This tab represents an ACL message compliant to the <p>" + "<b>FIPA 2000</b> <p>FIPA ACL Message Structure Specification <p>" + "(fipa000061) specifications. <p>" + "All parameters are couples of <p>" + "<em>keyword: value</em> </html>"); theTabbedPane.addTab("envelope", this.envelopeIcon, envelopeTab, "<html><h1>Envelope Tab</h1>" + " This tab represents an envelope <p>" + "attached to the ACLMessage. <p>" + "The envelope is used by the <p>" + "<b><it>ACC</it></b> for inter-platform messaging.</html>"); } private class ACLFileFilter extends javax.swing.filechooser.FileFilter { public ACLFileFilter() { } /** * The description of this filter. For example: "JPG and GIF Images" * * @return The Description value * @see FileView#getName */ public String getDescription() { return "ACLMessage files (*.acl)"; } public boolean accept(File pathName) { if (pathName.isDirectory()) { return true; } else if (pathName.isFile() && (pathName.getName().endsWith(".acl"))) { return true; } else { return false; } } private String extensions[] = {".acl"}; } GridBagLayout gridBagLayout1 = new GridBagLayout(); JLabel senderLabel = new JLabel(); JLabel receiverLabel = new JLabel(); JLabel replytoLabel = new JLabel(); JLabel contentLabel = new JLabel(); JLabel languageLabel = new JLabel(); JLabel encodingLabel = new JLabel(); JLabel ontologyjLabel = new JLabel(); JLabel protocolLabel = new JLabel(); JLabel inreplytoLabel = new JLabel(); JLabel replywithLabel = new JLabel(); JLabel replybyLabel = new JLabel(); JLabel userpropLabel = new JLabel(); JLabel convidLabel = new JLabel(); JLabel performativeLabel = new JLabel(); JButton senderButton = new JButton(); JButton replyByButton = new JButton(); JLabel toLabel = new JLabel(); JLabel fromLabel = new JLabel(); JLabel commentsLabel = new JLabel(); JLabel aclRepreLabel = new JLabel(); JLabel payLoadLabel = new JLabel(); JLabel envDateLabel = new JLabel(); JLabel intReceiversLabel = new JLabel(); JLabel jLabel1 = new JLabel(); JTextField envDateTextField = new JTextField(); JButton defaultEnvelopeButton = new JButton(); JButton fromButton = new JButton(); JButton envDateButton = new JButton(); JButton contentZoomButton = new JButton(); ACLTextArea contentTextArea = new ACLTextArea(); private ACLTextField envACLReprTextField = new ACLTextField(); private ACLTextField envPayloadLengthTextField = new ACLTextField(); private ACLTextField envPayloadEncodingTextField = new ACLTextField(); private JTextField envFromTextField = new JTextField(); private boolean editable = true; private JTextField senderTextField = new JTextField(); private ACLPropertyList userpropList = new ACLPropertyList(); private ACLTextField conversationTextField = new ACLTextField(); private ACLTextField languageTextField = new ACLTextField(); private ACLTextField encodingTextField = new ACLTextField(); private ACLTextField ontologyTextField = new ACLTextField(); private ACLComboBox protocolComboBox = new ACLComboBox(); private ACLTextField inreplytoTextField = new ACLTextField(); private ACLTextField replywithTextField = new ACLTextField(); private JTextField replybyTextField = new JTextField(); private ACLComboBox performativesComboBox = new ACLComboBox(); private ACLMessage itsMsg = new ACLMessage(ACLMessage.INFORM); private Vector editsVector = new Vector(); private JPanel aclTab = new JPanel(); private GridBagLayout gridBagLayout2 = new GridBagLayout(); private JTabbedPane theTabbedPane = new JTabbedPane(); private JPanel envelopeTab = new JPanel(); private GridBagLayout gridBagLayout3 = new GridBagLayout(); private JScrollPane commentsScrollPane = new JScrollPane(); private EnvCommentsTextArea envCommentsTextArea = new EnvCommentsTextArea(); private ImageIcon zoomIcon = new ImageIcon(this.getClass().getResource("images/zoom.gif")); private ImageIcon dateIcon = new ImageIcon(this.getClass().getResource("images/date.gif")); private ImageIcon envelopeIcon = new ImageIcon(this.getClass().getResource("images/envelope.gif")); private ImageIcon messageIcon = new ImageIcon(this.getClass().getResource("images/message.gif")); private ACLAIDList envToList; private ACLAIDList envIntendedReceiversList; private Agent agent; private ACLAIDList receiverList; private ACLAIDList replytoList; private File currentDir; private Envelope itsEnvelope; } // ***EOF***