Package org.kapott.hbci.callback

## Class HBCICallbackSwing

- java.lang.Object
- - org.kapott.hbci.callback.AbstractHBCICallback
  - - org.kapott.hbci.callback.HBCICallbackIOStreams
    - - org.kapott.hbci.callback.HBCICallbackConsole
      - - org.kapott.hbci.callback.HBCICallbackSwing

All Implemented Interfaces:
  `HBCICallback`

Direct Known Subclasses:
  `HBCICallbackSwingInternal`

    public class HBCICallbackSwing
    extends HBCICallbackConsole

Default-Implementation einer Callback-Klasse für Anwendungen mit GUI. Diese Klasse überschreibt die `callback()`-Methode. Benötigte Nutzereingaben werden hier nicht mehr über STDIN abgefragt, sondern es wird ein neues Top-Level-Window erzeugt, welches die entsprechende Meldung sowie ein Feld zur Eingabe der Antwort enthält. Kernel-Meldungen und erwartete Nutzeraktionen werden ebenfalls durch ein neues Top-Level-Window realisiert. Die Methoden `log()` und `status()` werden nicht überschrieben, so dass diese weiterhin das Verhalten der `HBCICallbackConsole`-Klasse zeigen.

### Field Summary

Fields
`static boolean` `ACTION_BLOCKING`
`static boolean` `ACTION_NOT_BLOCKING`
`static boolean` `DIALOG_MODAL`
`static boolean` `DIALOG_NOT_MODAL`
`protected java.util.Hashtable<HBCIPassport,​java.util.Hashtable<java.lang.String,​java.lang.Object>>` `passports`

### Fields inherited from interface org.kapott.hbci.callback.HBCICallback

`CLOSE_CONNECTION, HAVE_CHIPCARD, HAVE_CRC_ERROR, HAVE_ERROR, HAVE_HARDPIN, HAVE_IBAN_ERROR, HAVE_INST_MSG, HAVE_NEW_MY_KEYS, NEED_BLZ, NEED_CHIPCARD, NEED_CONNECTION, NEED_COUNTRY, NEED_CUSTOMERID, NEED_FILTER, NEED_HARDPIN, NEED_HOST, NEED_INFOPOINT_ACK, NEED_NEW_INST_KEYS_ACK, NEED_PASSPHRASE_LOAD, NEED_PASSPHRASE_SAVE, NEED_PORT, NEED_PROXY_PASS, NEED_PROXY_USER, NEED_PT_PHOTOTAN, NEED_PT_PIN, NEED_PT_QRTAN, NEED_PT_SECMECH, NEED_PT_TAN, NEED_PT_TANMEDIA, NEED_REMOVE_CHIPCARD, NEED_SIZENTRY_SELECT, NEED_SOFTPIN, NEED_USERID, STATUS_DIALOG_END, STATUS_DIALOG_END_DONE, STATUS_DIALOG_INIT, STATUS_DIALOG_INIT_DONE, STATUS_INIT_SIGID, STATUS_INIT_SIGID_DONE, STATUS_INIT_SYSID, STATUS_INIT_SYSID_DONE, STATUS_INIT_UPD, STATUS_INIT_UPD_DONE, STATUS_INST_BPD_INIT, STATUS_INST_BPD_INIT_DONE, STATUS_INST_GET_KEYS, STATUS_INST_GET_KEYS_DONE, STATUS_LOCK_KEYS, STATUS_LOCK_KEYS_DONE, STATUS_MSG_CREATE, STATUS_MSG_CRYPT, STATUS_MSG_DECRYPT, STATUS_MSG_PARSE, STATUS_MSG_RAW_RECV, STATUS_MSG_RAW_RECV_ENCRYPTED, STATUS_MSG_RAW_SEND, STATUS_MSG_RECV, STATUS_MSG_SEND, STATUS_MSG_SIGN, STATUS_MSG_VERIFY, STATUS_SEND_INFOPOINT_DATA, STATUS_SEND_KEYS, STATUS_SEND_KEYS_DONE, STATUS_SEND_TASK, STATUS_SEND_TASK_DONE, TYPE_BOOLEAN, TYPE_NONE, TYPE_SECRET, TYPE_TEXT, USERID_CHANGED, WRONG_PIN`

### Constructor Summary

Constructors
`HBCICallbackSwing()`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `callback​(HBCIPassport passport, int reason, java.lang.String msg, int datatype, java.lang.StringBuffer retData)` Diese Methode reagiert auf alle möglichen Callback-Ursachen.
`protected java.awt.Container` `createWin​(java.util.Hashtable<java.lang.String,​java.lang.Object> currentData, java.lang.String title, java.lang.String winname)`
`protected void` `drawWin​(java.util.Hashtable<java.lang.String,​java.lang.Object> currentData, java.lang.String winname)`
`protected void` `removeWin​(java.util.Hashtable<java.lang.String,​java.lang.Object> currentData, java.lang.String winname)`
`protected void` `showConnectionMessage​(java.util.Hashtable<java.lang.String,​java.lang.Object> currentData, java.lang.String winname)`
`protected void` `showInstMessage​(java.util.Hashtable<java.lang.String,​java.lang.Object> currentData, java.lang.String winname)`
`protected void` `showInstMessage​(java.util.Hashtable<java.lang.String,​java.lang.Object> currentData, java.lang.String winname, boolean blocking)`

### Methods inherited from class org.kapott.hbci.callback.HBCICallbackIOStreams

`getInStream, getOutStream, log, readLine, setInStream, setOutStream, status`

### Methods inherited from class org.kapott.hbci.callback.AbstractHBCICallback

`createDefaultLogLine, status, useThreadedCallback`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### ACTION_BLOCKING

    public static final boolean ACTION_BLOCKING

See Also:
  Constant Field Values

#### ACTION_NOT_BLOCKING

    public static final boolean ACTION_NOT_BLOCKING

See Also:
  Constant Field Values

#### DIALOG_MODAL

    public static final boolean DIALOG_MODAL

See Also:
  Constant Field Values

#### DIALOG_NOT_MODAL

    public static final boolean DIALOG_NOT_MODAL

See Also:
  Constant Field Values

#### passports

    protected java.util.Hashtable<HBCIPassport,​java.util.Hashtable<java.lang.String,​java.lang.Object>> passports

### Constructor Detail

#### HBCICallbackSwing

    public HBCICallbackSwing()

### Method Detail

#### callback

    public void callback​(HBCIPassport passport,
                         int reason,
                         java.lang.String msg,
                         int datatype,
                         java.lang.StringBuffer retData)

Description copied from class: `HBCICallbackIOStreams`
Diese Methode reagiert auf alle möglichen Callback-Ursachen. Bei Callbacks, die nur Informationen an den Anwender übergeben sollen, werden diese auf dem `outStream` ausgegeben. Bei Callbacks, die Aktionen vom Anwender erwarten (Einlegen der Chipkarte), wird eine entsprechende Aufforderung ausgegeben. Bei Callbacks, die eine Eingabe vom Nutzer erwarten, wird die entsprechende Eingabeaufforderung ausgegeben und die Eingabe vom `inStream` gelesen.

Specified by:
  `callback` in interface `HBCICallback`
Overrides:
  `callback` in class `HBCICallbackIOStreams`
Parameters:
  `passport` - enthält das Passport-Objekt, bei dessen Benutzung der Callback erzeugt wurde. Falls also in einer Anwendung mehrere Passport-Objekte gleichzeitig benutzt werden, so kann anhand dieses Parameters festgestellt werden, welches Passport (und damit welches HBCIHandle) HBCI4Java gerade benutzt.
  `reason` - gibt den Grund für diesen Aufruf an. Dieser Parameter kann alle Werte annehmen, die als "Ursache des Callback-Aufrufes" in der Dokumentation aufgeführt sind. Je nach Wert dieses Parameters werden vom Nutzer Aktionen oder Eingaben erwartet.
  `msg` - ein Hinweistext, der den Grund des Callbacks näher beschreibt. Dieser Parameter muss nicht ausgewertet werden, der Parameter `reason` ist bereits eindeutig. Er dient nur dazu, bei Anwendungen, die nicht für jeden Ursache des Callback-Aufrufes einen eigenen Hinweistext bereitstellen wollen, eine Art default-Wert für den anzuzeigenden Text bereitzustellen.
  `datatype` - legt fest, welchen Datentyp die vom HBCI-Kernel erwarteten Antwortdaten haben müssen. Ist dieser Wert gleich `TYPE_NONE`, so werden keine Antwortdaten (also keine Nutzereingabe) erwartet, bei `TYPE_SECRET` und `TYPE_TEXT` wird ein normaler String erwartet.
  Der Unterschied zwischen beiden ist der, dass bei `TYPE_SECRET` sensible Daten (Passwörter usw.) eingegeben werden sollen, so dass die Eingaberoutine evtl. anders arbeiten muss (z.B. Sternchen anstatt dem eingegebenen Text darstellen).
  `retData` - In diesem StringBuffer-Objekt müssen die Antwortdaten abgelegt werden. Beim Aufruf der Callback-Methode von HBCI4Java wird dieser StringBuffer u.U. mit einem vorgeschlagenen default-Wert für die Nutzereingabe gefüllt.

#### showInstMessage

    protected void showInstMessage​(java.util.Hashtable<java.lang.String,​java.lang.Object> currentData,
                                   java.lang.String winname)

#### showInstMessage

    protected void showInstMessage​(java.util.Hashtable<java.lang.String,​java.lang.Object> currentData,
                                   java.lang.String winname,
                                   boolean blocking)

#### showConnectionMessage

    protected void showConnectionMessage​(java.util.Hashtable<java.lang.String,​java.lang.Object> currentData,
                                         java.lang.String winname)

#### createWin

    protected java.awt.Container createWin​(java.util.Hashtable<java.lang.String,​java.lang.Object> currentData,
                                           java.lang.String title,
                                           java.lang.String winname)

#### removeWin

    protected void removeWin​(java.util.Hashtable<java.lang.String,​java.lang.Object> currentData,
                             java.lang.String winname)

#### drawWin

    protected void drawWin​(java.util.Hashtable<java.lang.String,​java.lang.Object> currentData,
                           java.lang.String winname)