Dienstag, 1. Dezember 2009

Enter Listener JFace Dialog

Wenn man in einem JFace Dialog die Enter-Taste anders belegen möchte, so muss man dafür sorgen, dass durch die Enter-Taste  nicht das okPressed ausgelöst wird.

Dies kann man damit erreichen, indem man die Methode protected Button createButton(Composite parent, int id, String label, boolean defaultButton) wie folgt überschreibt.


@Override
 protected Button createButton(Composite parent, int id, String label,
   boolean defaultButton) {
  return super.createButton(parent, id, label, false);
 }

Dadurch erreicht man, dass der automatisch erzeugt OK-Button nicht als DefaultButton in der ParentShell registriert wird und somit nicht bei Betätigung der Enter-Taste ausgelöst wird.

Eine weitere Möglichkeit ist noch einfach seine Button selbst zu erzeugen.
 @Override
 protected void createButtonsForButtonBar(Composite parent) {
  btnArtikelbernehmen = createButton(parent, IDialogConstants.OK_ID,
    IDialogConstants.OK_LABEL, false);
  createButton(parent, IDialogConstants.CANCEL_ID,
    IDialogConstants.CANCEL_LABEL, false);
 }

Keine Kommentare:

Kommentar veröffentlichen