T
- Der Typ des Objektes.About
, AbstractCertificateDialog
, AppointmentProviderDialog
, BackgroundTaskDialog
, BackupRestoreDialog
, BookmarkAddDialog
, BookmarkSearchDialog
, CalendarDialog
, ChooseBoxesDialog
, DependencyDownloadDialog
, DependencyMissingDialog
, ListDialog
, LogDetailDialog
, LoginDialog
, NewPasswordDialog
, PasswordDialog
, PluginSourceDialog
, PluginUnInstallDialog
, ReminderAppointmentDialog
, RepositoryEditDialog
, SearchOptionsDialog
, SimpleDialog
, SystemCertificatesDialog
, UpdateEditDialog
, WaitDialog
, YesNoDialog
public abstract class AbstractDialog<T>
extends java.lang.Object
Das ist die Basisklasse fuer modalen Dialogfenster.
Modal heisst: Ist das Dialogfenster einmal geoeffnet, kann die restliche Anwendung solange nicht mehr bedient werden, bis dieses Fenster geschlossen wurde.
Diese abstrakte Implementierung schreibt keinen Inhalt in den Dialog sondern stellt lediglich das Fenster mit einem definierten Design zu Verfuegung, behandelt die Dispatch-Vorgaenge mit dem Benutzer und definiert einen Fenster-Titel.
Der Dialog kann mittels der beiden Konstanten POSITION_MOUSE
und POSITION_CENTER
im Konstruktor entweder mittig auf dem
Bildschirm oder an der momentanen Position der Mouse dargestellt werden.
Ableitende Klassen muessen die Methode paint(Composite)
implementieren und dort ihre darzustellenden Elemente reinmalen.
Der Dialog wird mittels open()
geoeffnet. Beim Schliessen
des Dialogs wird die Methode getData()
aufgerufen. Das ist
gleichzeitig der Rueckgabewert von open()
.
Eine ableitende Klasse muss also z.Bsp. in paint(Composite)
einen OK-Button erzeugen, einen Listener anhaengen, der auf Druecken
des Buttons reagiert, in der aufgerufenenen Methode des Listeners
den zu uebergebenden Wert als Member speichern und danach close()
aufrufen, um den Dialog zu schliessen.
Bsp.:
protected void paint(Composite parent) throws Exception
{
// [...]
final Text text = GUI.getStyleFactory().createText(parent);
final Button button = GUI.getStyleFactory().createButton(parent);
button.setText("OK");
button.addMouseListener(new MouseAdapter() {
public void mouseUp(MouseEvent e) {
this.enteredText = text.getText();
close();
}
}
}
protected Object getData() throws Exception
{
return this.enteredText;
}
Modifier and Type | Field | Description |
---|---|---|
protected de.willuhn.util.I18N |
i18n |
|
static int |
MONITOR_CURRENT |
Positioniert den Dialog auf dem Monitor, auf dem sich das Jameica-Fenster befindet.
|
static int |
MONITOR_PRIMARY |
Positioniert den Dialog auf dem Primaer-Monitor.
|
static int |
POSITION_CENTER |
Positioniert den Dialog mittig auf dem Bildschirm.
|
static int |
POSITION_MOUSE |
Positioniert den Dialog an der aktuellen Maus-Position.
|
Constructor | Description |
---|---|
AbstractDialog(int position) |
Erzeugt einen neuen Dialog.
|
AbstractDialog(int position,
boolean resizable) |
Erzeugt einen neuen Dialog.
|
Modifier and Type | Method | Description |
---|---|---|
void |
addCloseListener(org.eclipse.swt.widgets.Listener l) |
Fuegt einen Listener hinzu, der beim Schliessen des Fensters
ausgeloest wird.
|
protected void |
addShellListener(org.eclipse.swt.events.ShellListener l) |
Fuegt dem Dialog einen Shell-Listener hinzu.
|
void |
close() |
Schliesst den Dialog.
|
protected org.eclipse.swt.widgets.Shell |
createShell(org.eclipse.swt.widgets.Shell parent,
int flags) |
Erzeugt die Shell des Dialogs.
|
protected abstract T |
getData() |
Diese Funktion wird beim Schliessen des Dialogs in open()
aufgerufen und liefert die ausgewaehlten Daten zurueck.
|
protected org.eclipse.swt.widgets.Display |
getDisplay() |
Liefert das Display des Dialogs.
|
protected org.eclipse.swt.widgets.Shell |
getShell() |
Liefert die Shell des Dialogs.
|
protected boolean |
isModeless() |
Durch Ueberschreiben dieser Funktion und zurueckliefern von "true" kann man
einen Dialog nicht-modal machen, sodass man im Hauptfenster weiterhin Eingaben
vornehmen kann, waehrend der Dialog offen ist.
|
protected void |
onEscape() |
Kann ueberschrieben werden, um zu beeinflussen, was passieren soll, wenn
der User versucht, den Dialog mit Escape zu beenden.
|
T |
open() |
Oeffnet den Dialog.
|
protected abstract void |
paint(org.eclipse.swt.widgets.Composite parent) |
Muss vom abgeleiteten Dialog ueberschrieben werden.
|
void |
setMonitor(int monitor) |
Legt fest, auf welchem Monitor der Dialog angezeigt werden soll.
|
void |
setPanelText(java.lang.String text) |
Legt einen abweichenden Text fuer das Panel direkt unter dem Titel fest.
|
void |
setSideImage(org.eclipse.swt.graphics.Image image) |
Fuegt dem Dialog links ein Bild hinzu.
|
void |
setSize(int width,
int height) |
Legt Breite und Hoehe des Dialogs fest.
|
void |
setTitle(java.lang.String title) |
Setzt den anzuzeigenden Titel.
|
public static final int POSITION_MOUSE
public static final int POSITION_CENTER
public static final int MONITOR_PRIMARY
public static final int MONITOR_CURRENT
protected de.willuhn.util.I18N i18n
public AbstractDialog(int position)
position
- Position des Dialogs.POSITION_MOUSE
,
POSITION_CENTER
public AbstractDialog(int position, boolean resizable)
position
- Position des Dialogs.resizable
- true, wenn der Dialog groessenaenderbar sein soll.POSITION_MOUSE
,
POSITION_CENTER
protected boolean isModeless()
protected org.eclipse.swt.widgets.Shell createShell(org.eclipse.swt.widgets.Shell parent, int flags)
parent
- die Parent-Shell.flags
- die Flags.protected final void addShellListener(org.eclipse.swt.events.ShellListener l)
l
- der ShellListener.protected final org.eclipse.swt.widgets.Display getDisplay()
protected final org.eclipse.swt.widgets.Shell getShell()
public void addCloseListener(org.eclipse.swt.widgets.Listener l)
handleEvent(Event)
des Listeners
aufgerufen. Das ausgewaehlte Objekt befindet sich dann im Member data
des Events.l
- zu registrierender Listener.public void setTitle(java.lang.String title)
title
- public void setPanelText(java.lang.String text)
text
- ein abweichender Text fuer das Panel.public void setMonitor(int monitor)
monitor
- der Monitor.MONITOR_CURRENT
,
MONITOR_PRIMARY
public final void setSize(int width, int height)
SWT.DEFAULT
uebergeben.width
- gewuenschte Breite.height
- gewuenschte Hoehe.public final void setSideImage(org.eclipse.swt.graphics.Image image)
image
- Side-Image.protected abstract void paint(org.eclipse.swt.widgets.Composite parent) throws java.lang.Exception
parent
- das Composite, in dem der Dialog gemalt werden soll.
Hinweis: Das Composite enthaelt bereits ein einspaltiges GridLayout
.java.lang.Exception
- Kann von der abgeleiteten Klasse geworfen
werden. Tut sie das, wird der Dialog nicht angezeigt.protected abstract T getData() throws java.lang.Exception
java.lang.Exception
protected void onEscape()
public final T open() throws java.lang.Exception
java.lang.Exception
- wenn es beim Oeffnen zu einem Fehler gekommen ist.OperationCanceledException
- wenn der User den Dialog mit Escape abgebrochen hat.public final void close()