Realizzare Sistemi Multi- Agente con JADE - Seconda Parte - Corso di Reti di Calcolatori A.A....

Post on 28-Mar-2015

215 views 2 download

Transcript of Realizzare Sistemi Multi- Agente con JADE - Seconda Parte - Corso di Reti di Calcolatori A.A....

Realizzare Sistemi Multi-Realizzare Sistemi Multi-Agente con JADEAgente con JADE- Seconda Parte -- Seconda Parte -

Corso di Reti di CalcolatoriCorso di Reti di Calcolatori

A.A. 2004-2005A.A. 2004-2005

Ing. Domenico RosaciIng. Domenico Rosaci

L’ambiente JBuilderL’ambiente JBuilder

Il componente jPanelIl componente jPanel

Il componente jDBTextIl componente jDBText

Il componente jButtonIl componente jButton

jButton: il metodo actionPerformedjButton: il metodo actionPerformed

Dentro actionPerformedDentro actionPerformed // Button Registrati per aprire il pannello di registrazione// Button Registrati per aprire il pannello di registrazione void jButtonRegistrati_actionPerformed(ActionEvent e) {void jButtonRegistrati_actionPerformed(ActionEvent e) { jDbTextUserName.setText("");jDbTextUserName.setText(""); jPasswordField.setText("");jPasswordField.setText(""); cardLayout2.show(jPanelRegistrati,"jPanelRegistraDati");cardLayout2.show(jPanelRegistrati,"jPanelRegistraDati"); }}

jPanel “Registra Dati”jPanel “Registra Dati”

Entriamo del pulsante OKEntriamo del pulsante OK void jButtonInsertRegistrazione_actionPerformed(ActionEvent e) {void jButtonInsertRegistrazione_actionPerformed(ActionEvent e) { String Cognome = jdbTextFieldCognome.getText();String Cognome = jdbTextFieldCognome.getText(); String Nome = jdbTextFieldNome.getText();String Nome = jdbTextFieldNome.getText(); String Cdl = jdbTextFieldCdl.getText();String Cdl = jdbTextFieldCdl.getText(); String UserName = jdbTextFieldUserName.getText();String UserName = jdbTextFieldUserName.getText(); String Password = jPasswordFieldRegistra.getText();String Password = jPasswordFieldRegistra.getText();

parameterRowControllaRegistrazione.setString("Username", UserName);parameterRowControllaRegistrazione.setString("Username", UserName); queryDataSetParametriCorretti.executeQuery();queryDataSetParametriCorretti.executeQuery();

// UserName e Password diversi da quelli già presenti nel database// UserName e Password diversi da quelli già presenti nel database if (queryDataSetParametriCorretti.isEmpty()){if (queryDataSetParametriCorretti.isEmpty()){ parameterRowRegistrazione.setString("Cognome", Cognome);parameterRowRegistrazione.setString("Cognome", Cognome); parameterRowRegistrazione.setString("Nome", Nome);parameterRowRegistrazione.setString("Nome", Nome); parameterRowRegistrazione.setString("CorsodiLaurea", Cdl);parameterRowRegistrazione.setString("CorsodiLaurea", Cdl); parameterRowRegistrazione.setString("Username", UserName);parameterRowRegistrazione.setString("Username", UserName); parameterRowRegistrazione.setString("Password", Password);parameterRowRegistrazione.setString("Password", Password); try{try{ queryDataSetRegistrazione.executeQuery();queryDataSetRegistrazione.executeQuery(); }} catch (DataSetException ex) {catch (DataSetException ex) { }} jDbTextUserName.setText(UserName);jDbTextUserName.setText(UserName); jPasswordField.setText(Password);jPasswordField.setText(Password); cardLayout2.show(jPanelRegistrati,"jPanel8");cardLayout2.show(jPanelRegistrati,"jPanel8"); jButtonRegistrati.setEnabled(false);jButtonRegistrati.setEnabled(false); }} else{else{ DialogMsg Msg = new DialogMsg();DialogMsg Msg = new DialogMsg(); String Message="Attenzione. Username non utilizzabile";String Message="Attenzione. Username non utilizzabile"; Msg.SetMsg(Message);Msg.SetMsg(Message); Msg.Visible();Msg.Visible(); }} }}

Eseguire una query su un databaseEseguire una query su un database

La parameter rowLa parameter row

Il DBMS jDataStoreIl DBMS jDataStore

Il collegamento remotoIl collegamento remoto

La query per la registrazioneLa query per la registrazione

Il bottone “Entra”Il bottone “Entra” // Button Entra controlli su username e password// Button Entra controlli su username e password void jButtonEntra_actionPerformed(ActionEvent e) {void jButtonEntra_actionPerformed(ActionEvent e) { UserName = jDbTextUserName.getText();UserName = jDbTextUserName.getText(); Password = jPasswordField.getText();Password = jPasswordField.getText(); if (UserName.length()!=0 && Password.length()!=0){if (UserName.length()!=0 && Password.length()!=0){ parameterRowControllaRegistrazione.setString("Username", UserName);parameterRowControllaRegistrazione.setString("Username", UserName); parameterRowControllaRegistrazione.setString("Password", Password);parameterRowControllaRegistrazione.setString("Password", Password); // controlla se username e password sono corretti// controlla se username e password sono corretti queryDataSetControllaRegistrazione.executeQuery();queryDataSetControllaRegistrazione.executeQuery(); if (!queryDataSetControllaRegistrazione.isEmpty()){if (!queryDataSetControllaRegistrazione.isEmpty()){ cardLayout1.show(contentPane,"jTabbedPane1");cardLayout1.show(contentPane,"jTabbedPane1"); jLabelNomeUtente.setText("Nick Name: "+UserName);jLabelNomeUtente.setText("Nick Name: "+UserName); parameterRowMostraAppunti.setString("username",UserName);parameterRowMostraAppunti.setString("username",UserName); queryDataSetMostraAppunti.executeQuery();queryDataSetMostraAppunti.executeQuery(); Agente = new ClientAgent(UserName,this);Agente = new ClientAgent(UserName,this); Entrato=true;Entrato=true; }} else{else{ DialogMsg Msg = new DialogMsg();DialogMsg Msg = new DialogMsg(); String Message="Username e Password non riconosciuti. Se non sei registrato fallo ora!!";String Message="Username e Password non riconosciuti. Se non sei registrato fallo ora!!"; Msg.SetMsg(Message);Msg.SetMsg(Message); Msg.Visible();Msg.Visible(); jButtonRegistrati.setEnabled(true);jButtonRegistrati.setEnabled(true); }} }} else{else{ DialogMsg Msg = new DialogMsg();DialogMsg Msg = new DialogMsg(); String Message="Attenzione devi immettere username e password";String Message="Attenzione devi immettere username e password"; Msg.SetMsg(Message);Msg.SetMsg(Message); Msg.Visible();Msg.Visible(); }} }}

Mostrare gli appuntiMostrare gli appunti

Il bottone “Sfoglia”Il bottone “Sfoglia” void jButtonSfoglia_actionPerformed(ActionEvent e) {void jButtonSfoglia_actionPerformed(ActionEvent e) { if (JFileChooser.APPROVE_OPTION == jFileChooser1.showOpenDialog(this)) {if (JFileChooser.APPROVE_OPTION == jFileChooser1.showOpenDialog(this)) {

nome = jFileChooser1.getSelectedFile().getName();nome = jFileChooser1.getSelectedFile().getName(); percorso = jFileChooser1.getSelectedFile().getPath();percorso = jFileChooser1.getSelectedFile().getPath();

int lunghezza = nome.length();int lunghezza = nome.length(); int suffisso = 4;int suffisso = 4; int prefisso = lunghezza-suffisso;int prefisso = lunghezza-suffisso; nomefile = nome.substring(0,prefisso);nomefile = nome.substring(0,prefisso); estensione = nome.substring(prefisso+1,lunghezza);estensione = nome.substring(prefisso+1,lunghezza);

// Display the name of the opened directory+file in the TextField.// Display the name of the opened directory+file in the TextField. jdbTextFieldPathAppunto.setText(jFileChooser1.getSelectedFile().getPath());jdbTextFieldPathAppunto.setText(jFileChooser1.getSelectedFile().getPath()); // Code will need to go here to actually load text// Code will need to go here to actually load text // from file into TextArea.// from file into TextArea. }} }}

Il bottone “Share”Il bottone “Share” // Condivide l'appunto inserendolo nel database remoto// Condivide l'appunto inserendolo nel database remoto void jButtonShare_actionPerformed(ActionEvent e) {void jButtonShare_actionPerformed(ActionEvent e) { try {try { // change the values in the parameter row// change the values in the parameter row // and refresh the display// and refresh the display parameterRowRemoto.setString("percorso",percorso);parameterRowRemoto.setString("percorso",percorso); parameterRowRemoto.setString("file", nome);parameterRowRemoto.setString("file", nome); parameterRowRemoto.setString("titolo",nomefile);parameterRowRemoto.setString("titolo",nomefile); parameterRowRemoto.setString("formato",estensione);parameterRowRemoto.setString("formato",estensione); parameterRowRemoto.setString("dimensioni",jdbTextFieldDimensioneFile.getText());parameterRowRemoto.setString("dimensioni",jdbTextFieldDimensioneFile.getText()); parameterRowRemoto.setString("pagine",jdbTextFieldPagineFile.getText());parameterRowRemoto.setString("pagine",jdbTextFieldPagineFile.getText()); parameterRowRemoto.setString("materia",jdbTextFieldMateria.getText());parameterRowRemoto.setString("materia",jdbTextFieldMateria.getText()); parameterRowRemoto.setString("settore",jdbTextFieldSSD.getText());parameterRowRemoto.setString("settore",jdbTextFieldSSD.getText()); parameterRowRemoto.setString("annoacc",jdbTextFieldAnno.getText());parameterRowRemoto.setString("annoacc",jdbTextFieldAnno.getText()); parameterRowRemoto.setString("username",UserName);parameterRowRemoto.setString("username",UserName); queryDataSetInsertRemoto.executeQuery();queryDataSetInsertRemoto.executeQuery(); }} catch (DataSetException ex) {catch (DataSetException ex) { }} try{try{ parameterRowMostraAppunti.setString("username",UserName);parameterRowMostraAppunti.setString("username",UserName); queryDataSetMostraAppunti.executeQuery();queryDataSetMostraAppunti.executeQuery(); }} catch (DataSetException ex) {catch (DataSetException ex) { ex.printStackTrace(); }ex.printStackTrace(); } jdbTextFieldPathAppunto.setText("");jdbTextFieldPathAppunto.setText(""); jdbTextFieldDimensioneFile.setText("");jdbTextFieldDimensioneFile.setText(""); jdbTextFieldPagineFile.setText("");jdbTextFieldPagineFile.setText(""); jdbTextFieldMateria.setText("");jdbTextFieldMateria.setText(""); jdbTextFieldSSD.setText("");jdbTextFieldSSD.setText(""); jdbTextFieldAnno.setText("");jdbTextFieldAnno.setText(""); }}

queryDataSetInsertRemotoqueryDataSetInsertRemoto

La chatLa chat

Il bottone “utenti on line”Il bottone “utenti on line”

// Button CercaAgenti Cerca gli agenti attivi// Button CercaAgenti Cerca gli agenti attivi void jButtonCercaAgenti_actionPerformed(ActionEvent void jButtonCercaAgenti_actionPerformed(ActionEvent

e) {e) { FillAgentComboBox();FillAgentComboBox(); }}

Il metodo Il metodo FillAgentComboBox()FillAgentComboBox()

// Riempie il comboBox degli agenti attivi// Riempie il comboBox degli agenti attivi void FillAgentComboBox(){void FillAgentComboBox(){ String [][] Lista = Agente.searchAgents();String [][] Lista = Agente.searchAgents(); jComboBoxCercaAgenti.removeAllItems();jComboBoxCercaAgenti.removeAllItems(); for (int i=0; i<Lista.length; i++){for (int i=0; i<Lista.length; i++){ jComboBoxCercaAgenti.addItem(Lista [i] [0]);jComboBoxCercaAgenti.addItem(Lista [i] [0]); }} }}

Agente è l’oggetto creato al momento del login (vedi slide Agente è l’oggetto creato al momento del login (vedi slide 15)15)

Agente.searchAgents()Agente.searchAgents() // Ricerca agenti attivi presso il DF// Ricerca agenti attivi presso il DF public String [][] searchAgents() {public String [][] searchAgents() {

DFAgentDescription dfd = new DFAgentDescription();DFAgentDescription dfd = new DFAgentDescription(); ServiceDescription sd = new ServiceDescription();ServiceDescription sd = new ServiceDescription(); AID DfName=getDefaultDF();AID DfName=getDefaultDF(); try {try { DFAgentDescription[] result = DFService.search(this, DfName, dfd);DFAgentDescription[] result = DFService.search(this, DfName, dfd); String [][] out= new String [result.length] [2];String [][] out= new String [result.length] [2]; for (int i=0; i<result.length; i++) {for (int i=0; i<result.length; i++) { out [i] [0] = result[i].getName().getLocalName();out [i] [0] = result[i].getName().getLocalName(); out [i] [1] = result[i].getName().getHap();out [i] [1] = result[i].getName().getHap(); }} return out;return out; }} catch (FIPAException e) {catch (FIPAException e) { return null;return null; }} }}