de.willuhn.jameica.system
Class ApplicationCallbackSWT

java.lang.Object
  extended by de.willuhn.jameica.system.AbstractApplicationCallback
      extended by de.willuhn.jameica.system.ApplicationCallbackSWT
All Implemented Interfaces:
ApplicationCallback

public class ApplicationCallbackSWT
extends AbstractApplicationCallback

SWT-Implementierung des SSLCallbacks.


Field Summary
 
Fields inherited from class de.willuhn.jameica.system.AbstractApplicationCallback
settings
 
Constructor Summary
ApplicationCallbackSWT()
           
 
Method Summary
 boolean askUser(java.lang.String question)
          Wird von Jameica aufgerufen, wenn der Benutzer eine Frage mit Ja/Nein beantworten soll.
 java.lang.String askUser(java.lang.String question, java.lang.String labeltext)
          Benoetigt Jameica eine Benutzereingabe (zum Beispiel zur Abfrage des Hostnamens) wird diese Funktion aufgerufen.
 boolean askUser(java.lang.String question, java.lang.String[] variables)
          Wird von Jameica aufgerufen, wenn der Benutzer eine Frage mit Ja/Nein beantworten soll.
 void changePassword()
          Ueber diese Funktion kann das Passwort des Keystores geaendert werden.
 boolean checkTrust(java.security.cert.X509Certificate cert)
          Wird aufgerufen, wenn dem TrustManager von Jameica ein Zertifikat angeboten wird, dass er nicht in seinem Truststore hat.
 java.lang.String createPassword()
          Wird von der SSLFactory aufgerufen, wenn ein neuer Keystore erstellt wird und hierzu ein neues Passwort benoetigt wird.
 java.lang.String getPassword()
          Wird aufgerufen, wenn die SSLFactory das Passwort fuer den existierenden Keystore benoetigt.
 de.willuhn.util.ProgressMonitor getShutdownMonitor()
          Liefert einen Progress-Monitor ueber den der Fortschritt des System-Shutdown ausgegeben werden kann.
 de.willuhn.util.ProgressMonitor getStartupMonitor()
          Liefert einen Progress-Monitor ueber den der Fortschritt des System-Starts ausgegeben werden kann.
 boolean lockExists(java.lang.String lockfile)
          Wird aufgerufen, wenn das Lock-File von Jameica beim Start bereits existiert.
 Login login(JameicaAuthenticator auth)
          Fragt vom User ein Login ab.
 void notifyUser(java.lang.String text)
          Kann benutzt werden, um z.Bsp. eine wichtig Fehlermeldung anzuzeigen.
 void startupError(java.lang.String errorMessage, java.lang.Throwable t)
          Diese Funktion wird von Jameica aufgerufen, wenn der Start voellig fehlschlug.
 
Methods inherited from class de.willuhn.jameica.system.AbstractApplicationCallback
checkHostname, getHostname
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ApplicationCallbackSWT

public ApplicationCallbackSWT()
Method Detail

createPassword

public java.lang.String createPassword()
                                throws java.lang.Exception
Description copied from interface: ApplicationCallback
Wird von der SSLFactory aufgerufen, wenn ein neuer Keystore erstellt wird und hierzu ein neues Passwort benoetigt wird. Es ist dabei der implementierenden Klasse ueberlassen, wie diese Abfrage aussieht. Sprich: Ob sie nun nur ein Eingabefeld zur Vergabe des Passwortes anzeigt oder zwei, wovon letzteres zur Passwort-Wiederholung (Vermeidung von Tippfehlern), ist der Implementierung ueberlassen.

Returns:
das neu zu verwendende Passwort.
Throws:
java.lang.Exception
See Also:
ApplicationCallback.createPassword()

getPassword

public java.lang.String getPassword()
                             throws java.lang.Exception
Description copied from interface: ApplicationCallback
Wird aufgerufen, wenn die SSLFactory das Passwort fuer den existierenden Keystore benoetigt. Sie fragt dies jedesmal, wenn das Passwort benoetigt wird. Also beim Oeffnen des Keystores, beim Erzeugen eines SSLContextes und beim Speichern des Keystores. Es ist daher der implementierenden Klasse ueberlassen, das eingegebene Passwort ueber die Dauer der aktuellen Jameica-Sitzung zu cachen, um den Benutzer nicht dauernd mit der Neueingabe des Passwortes zu nerven.

Returns:
das existierende Passwort.
Throws:
java.lang.Exception
See Also:
ApplicationCallback.getPassword()

changePassword

public void changePassword()
                    throws java.lang.Exception
Description copied from interface: ApplicationCallback
Ueber diese Funktion kann das Passwort des Keystores geaendert werden. Alles, was die implementierende Klasse zu tun hat, ist einen Dialog zur Passwort-Aenderung anzuzeigen und von nun an in der Funktion getPassword() das neue Passwort zu liefern. Es ist Sache des Aufrufers, anschliessend, noch Application.getSSLFactory.storeKeyStore() auszufuehren, um die Aenderung dauerhaft zu speichern. Nochmals: Es ist nicht Aufgabe des ApplicationCallbacks, das Passwort im System zu aendern sondern lediglich das neue Passwort vom Benutzer abzufragen und es anschliessend ueber getPassword() zur Verfuegung zu stellen.

Throws:
java.lang.Exception
See Also:
ApplicationCallback.changePassword()

getStartupMonitor

public de.willuhn.util.ProgressMonitor getStartupMonitor()
Description copied from interface: ApplicationCallback
Liefert einen Progress-Monitor ueber den der Fortschritt des System-Starts ausgegeben werden kann. Im GUI-Mode ist das ein Splash-Screen.

Returns:
ein Progress-Monitor.
See Also:
ApplicationCallback.getStartupMonitor()

getShutdownMonitor

public de.willuhn.util.ProgressMonitor getShutdownMonitor()
Description copied from interface: ApplicationCallback
Liefert einen Progress-Monitor ueber den der Fortschritt des System-Shutdown ausgegeben werden kann. Im GUI-Mode ist das ein Splash-Screen.

Returns:
ein Progress-Monitor.
See Also:
ApplicationCallback.getShutdownMonitor()

startupError

public void startupError(java.lang.String errorMessage,
                         java.lang.Throwable t)
Description copied from interface: ApplicationCallback
Diese Funktion wird von Jameica aufgerufen, wenn der Start voellig fehlschlug. Die implementierende Klasse muss diese Fehlermeldung dem Benutzer anzeigen. Anschliessend beendet sich Jameica.

Parameters:
errorMessage - die anzuzeigende Fehlermeldung.
t - Ein ggf. existierender Fehler.
See Also:
ApplicationCallback.startupError(java.lang.String, java.lang.Throwable)

askUser

public java.lang.String askUser(java.lang.String question,
                                java.lang.String labeltext)
                         throws java.lang.Exception
Description copied from interface: ApplicationCallback
Benoetigt Jameica eine Benutzereingabe (zum Beispiel zur Abfrage des Hostnamens) wird diese Funktion aufgerufen.

Parameters:
question - Die anzuzeigende Frage.
labeltext - Der Name des Attributes oder Feldes, welches eingegeben werden soll.
Returns:
der vom User eingegebene Text.
Throws:
java.lang.Exception
See Also:
ApplicationCallback.askUser(java.lang.String, java.lang.String)

askUser

public boolean askUser(java.lang.String question)
                throws java.lang.Exception
Description copied from interface: ApplicationCallback
Wird von Jameica aufgerufen, wenn der Benutzer eine Frage mit Ja/Nein beantworten soll.

Parameters:
question - Die anzuzeigende Frage.
Returns:
true fuer ja, false fuer nein.
Throws:
java.lang.Exception
See Also:
ApplicationCallback.askUser(java.lang.String)

askUser

public boolean askUser(java.lang.String question,
                       java.lang.String[] variables)
                throws java.lang.Exception
Description copied from interface: ApplicationCallback
Wird von Jameica aufgerufen, wenn der Benutzer eine Frage mit Ja/Nein beantworten soll. Hintergrund. Jameica speichert question als Key in einer Properties-Datei, falls der User die Option "Frage nicht mehr anzeigen" aktiviert hat. Enthaelt die Frage nun aber variablen Text, wuerde die selbe Frage immer wieder kommen - nur weil ein paar Variablen anders sind und somit der Key in der Properties-Datei nicht mehr uebereinstimmt. Daher kann man stattdessen diese Funktion hier verwenden. Im Text benutzt man (wie bei I18N.tr(String, String[])) die Platzhalter "{0}","{1}",... und uebergibt als String-Array die einzutragenden Variablen.

Parameters:
question - Die anzuzeigende Frage.
variables - mittels MessageFormat einzutragende Variablen.
Returns:
true fuer ja, false fuer nein.
Throws:
java.lang.Exception
See Also:
ApplicationCallback.askUser(java.lang.String, java.lang.String[])

lockExists

public boolean lockExists(java.lang.String lockfile)
Description copied from interface: ApplicationCallback
Wird aufgerufen, wenn das Lock-File von Jameica beim Start bereits existiert. Es ist Sache der Implementierung, dies dem Benutzer darzulegen.

Parameters:
lockfile - Pfad und Dateiname des Lockfiles.
Returns:
true, wenn der Start von Jameica dennoch forgesetzt werden soll. False, wenn der Start abgebrochen werden soll.
See Also:
ApplicationCallback.lockExists(java.lang.String)

checkTrust

public boolean checkTrust(java.security.cert.X509Certificate cert)
                   throws java.lang.Exception
Description copied from interface: ApplicationCallback
Wird aufgerufen, wenn dem TrustManager von Jameica ein Zertifikat angeboten wird, dass er nicht in seinem Truststore hat. Der Benutzer soll dann entscheiden, ob er dem Zertifikat vertraut.

Parameters:
cert - das dem Benutzer anzuzeigende Zertifikat.
Returns:
true, wenn der TrustManager das Zertifikate akzeptieren und zum Truststore hinzufuegen soll. Andernfalls false.
Throws:
java.lang.Exception
See Also:
ApplicationCallback.checkTrust(java.security.cert.X509Certificate)

notifyUser

public void notifyUser(java.lang.String text)
                throws java.lang.Exception
Description copied from interface: ApplicationCallback
Kann benutzt werden, um z.Bsp. eine wichtig Fehlermeldung anzuzeigen.

Parameters:
text - der anzuzeigende Text.
Throws:
java.lang.Exception
See Also:
ApplicationCallback.notifyUser(java.lang.String)

login

public Login login(JameicaAuthenticator auth)
            throws java.lang.Exception
Description copied from interface: ApplicationCallback
Fragt vom User ein Login ab.

Specified by:
login in interface ApplicationCallback
Overrides:
login in class AbstractApplicationCallback
Parameters:
auth - der Authenticator. Er liefert Context-Infos zum abgefragten Login.
Returns:
das Login.
Throws:
java.lang.Exception
See Also:
ApplicationCallback.login(de.willuhn.jameica.security.JameicaAuthenticator)