00001 package clientswing.UI; 00002 import clientswing.model.*; 00003 import clientswing.comunicationsystem.*; 00004 import javax.swing.*; 00005 00006 00013 public class Controller { 00014 00016 ComunicationSystem cs; 00018 static Controller instance = new Controller(); 00019 00021 private Controller() { 00022 try{ 00023 cs = new ComunicationSystem(); 00024 }catch(Exception e){ 00025 throw new RuntimeException(e); 00026 } 00027 } 00031 public static Controller getInstance(){ 00032 return instance; 00033 } 00035 public void showLogin(){ 00036 LoginForm loginForm = new LoginForm(); 00037 loginForm.show(); 00038 } 00040 public void showQueryForm(){ 00041 QueryForm queryForm = new QueryForm (); 00042 queryForm.show(); 00043 } 00045 public void showMessageForm(XResponseMessage xresponseMessage ){ 00046 if (xresponseMessage.getMessage().equals("error")==true) 00047 00048 JOptionPane.showMessageDialog(null, xresponseMessage.getTypeMessage(), xresponseMessage.getMessage(), JOptionPane.WARNING_MESSAGE); 00049 else 00050 JOptionPane.showMessageDialog(null, xresponseMessage.getTypeMessage(), xresponseMessage.getMessage(), JOptionPane.INFORMATION_MESSAGE); 00051 00052 } 00054 public void showResponseForm(XResponseRowSet rowset ){ 00055 ResponseForm responseForm = new ResponseForm(rowset); 00056 responseForm.show(); 00057 00058 } 00062 public void executeLogin( XRequestLogin nickName){ 00063 00064 try { 00065 XResponseMessage resp = (XResponseMessage) cs.execute(nickName); 00066 // se la risposta del WebServer non è di errore dopo la login 00067 //allora visualizza la form dei servizi (QueryForm) 00068 if (!resp.isErrorMessage()) showQueryForm(); 00069 00070 } 00071 catch (Exception ex) { 00072 ex.printStackTrace(); 00073 } 00074 } 00078 public String executeLogout() throws Exception{ 00079 00080 String logout= cs.execute(); 00081 return logout; 00082 } 00086 public void executeQuery(XRequestQuery xrequestQuery ){ 00087 try { 00088 XResponse resp = cs.execute(xrequestQuery); 00089 //visualizza il risultato della query 00090 if (resp instanceof XResponseRowSet) showResponseForm( (XResponseRowSet) resp ); 00091 //visualizza il messaggio 00092 if (resp instanceof XResponseMessage) showMessageForm( (XResponseMessage) resp ); 00093 00094 00095 } 00096 catch (Exception ex) { 00097 ex.printStackTrace(); 00098 } 00099 } 00100 00101 00102 }