Die Schnittstelle IControl
stellt die
gemeinsamen Funktionen für alle Controls bereits.
IControl
erweitert
IComponent
und somit auch
IWidget
.
Controls stellen Schnittstellen zur Nutzerinteraktion dar. Beispiele für elementare Controls sind Buttons, Checkboxen, Comboboxen, Eingabefelder, Slider etc. Controls können aber auch komplex sein, wie zum Beispiel ein InputComposite.
Controls werden immer zu Containern hinzugefügt. Es folgt eine kurze Übersicht der wichtigsten Methoden:
Mit der folgenden Methode kann der Tooltip Text gesetzt werden:
void setToolTipText(String toolTip);
Wird null
gesetzt, dann wird für das
Control kein Tooltip angezeigt.
Mit den folgenden Methoden können die Layout Constraints für ein Control gesetzt und ausgelesen werden.
void setLayoutConstraints(Object layoutConstraints); Object getLayoutConstraints();
Die Layout Constraints können null
sein. In
der Regel werden die Layout Constraints bereits beim
Hinzufügen zum Container gesetzt:
1 final IInputField<Date> dateField = container.add(BPF.inputFieldDate(), "growx, w 0::");
In diesem Fall würde die Methode
dateField.getLayoutConstraints()
den String
"growx, w 0::"
zurückgeben.
Die Layout Constraints sind Layouter spezifisch, das bedeutet, ein Layouter definiert, welche Constraints gültig sind.
Werden die Layout Constraints nach dem layouten des zugehörigen Containers geändert, so muss dieser neu gelayoutet werden.
Weitere Informationen finden sich im Abschnitt Layouting
Mittels der folgenden Methoden können die Default Größen für ein Control ermittelt werden.
Dimension getMinSize(); Dimension getPreferredSize(); Dimension getMaxSize();
Die Methoden dürfen nicht null
zurückgeben.
Werden eigene Controls entworfen, sollte darauf geachtet
werden, sinnvolle Default Größen zu
liefern.
Die MinSize
definiert die minimale Größe,
die ein Control haben soll, damit es sinnvoll angezeigt werden
kann. Die PreferredSize
gibt an, wie groß
ein Control sein soll, um es optimal anzuzeigen. Die
MaxSize
definiert, wie groß ein Control
maximal angezeigt werden soll. Die Default Größen können sich
zur Laufzeit ändern. So ändert sich Beispielsweise die
PreferredSize
eines Textfeldes abhängig vom
gesetzten Text.
Einige Layouter wie zum Beispiel
Mib Layout bieten die
Möglichkeit, die Default Größen mit Hilfe von Constraints zu
überschreiben. Die MigLayout Constraints
"w 0:100:200"
setzen zum Beispiel
die MinWidth
auf 0
, die
PreferredWidth
auf 100
und die MaxWidth
auf
200
, unabhängig davon, was die Methoden
getMinSize()
,
getPreferredSize()
und
getMaxSize()
für Werte zurückliefern.
Andere Layouter wie zum Beispiel das FillLayout ignorieren die
Default Größen vollständig.
Mit Hilfe der folgenden Methoden können die Default Größen eines Controls geändert werden:
void setMinSize(final Dimension minSize); void setPreferredSize(Dimension preferredSize); void setMaxSize(Dimension maxSize);
Nach dem Umsetzen einer Default Größe geben die zugehörigen
Getter Methoden den neuen Wert zurück. Wird eine Default Größe
auf null
gesetzt, wird vom zugehörigen
Getter wieder der Default
Wert und nicht null
zurückgegeben.
Mit den folgenden Methoden kann einem Control Drag and Drop Funktionalität hinzugefügt werden:
IDragSource getDragSource(); IDropTarget getDropTarget();
Für weitere Informationen sei auf den Abschnitt Drag and Drop verwiesen.