Erscheinungsbild
Komponenten
Dieser Bereich dokumentiert alle Komponenten, die der Mobile Builder im Designer und in der ABAP-API zur Verfügung stellt. Pro Komponente finden Sie:
- Beschreibung – wofür die Komponente gedacht ist
- Designer-Attribute – Properties, die im Eigenschaften-Panel verfügbar sind
- ABAP-API – Methoden zum Lesen und Setzen aus der gebundenen Klasse heraus
- Beispiel – ABAP-Code aus dem ausgelieferten Beispiel-Paket
/mobbuild/example
ABAP-Klassen-Pattern
Jede an eine View gebundene Klasse erbt von /mobbuild/cl_request_base und redefiniert die zwei Lifecycle-Methoden:
abap
CLASS /<NAMESPACE>/cl_my_view DEFINITION
PUBLIC
INHERITING FROM /mobbuild/cl_request_base
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
METHODS on_pai REDEFINITION.
METHODS on_pbo REDEFINITION.
ENDCLASS.| Methode | Auslöser | Zweck |
|---|---|---|
on_pbo | Process Before Output – Aufruf vor dem Anzeigen der View | Daten ermitteln, Komponenten initialisieren, Listen befüllen |
on_pai | Process After Input – Aufruf nach Benutzeraktion | Eingaben auswerten, Backend-Logik aufrufen, navigieren |
Komponenten-Zugriff aus ABAP
Über me->get_<typ>( '<controlId>' ) erhalten Sie eine Referenz auf eine konkrete Komponente:
abap
DATA(lo_button) = me->get_button( 'btnSave' ).
DATA(lo_input) = me->get_input( 'txtName' ).
DATA(lo_label) = me->get_label( 'lblMessage' ).
DATA(lo_combo_box) = me->get_combo_box( 'cbCountry' ).
DATA(lo_table) = me->get_table( 'tblItems' ).Die getypte Referenz erlaubt anschließend Methodenverkettung und Code-Vervollständigung:
abap
me->get_input( 'txtName' )->set_value( 'Hallo' ).
me->get_button( 'btnSave' )->set_enabled( abap_false ).Event auswerten
In on_pai ermitteln Sie über me->get_event( ), welche Aktion den Aufruf ausgelöst hat:
abap
DATA(lo_event) = me->get_event( ).
DATA(lv_key) = lo_event->get_event_key( ). " z.B. 'Submit', 'Change'
DATA(lv_sender) = lo_event->get_sender( ). " controlId der auslösenden Komponente
CASE lv_key.
WHEN 'Submit'. " ...
WHEN 'Change'. " ...
ENDCASE.Der event_key entspricht dem im Designer hinterlegten Event-Methodennamen oder einem reservierten Wert wie 'Change', 'Submit', 'Press', 'Select'.
Globale Hilfen
Eine kleine Auswahl an Helfern, die direkt auf me verfügbar sind:
| Methode | Zweck |
|---|---|
me->set_focus( '<controlId>' ) | Setzt den Tastatur-Fokus auf eine Komponente |
me->init_controls( ) | Setzt alle Komponenten-Eingaben zurück |
me->set_message_toast( me->create_message_toast( iv_text = '...' ) ) | Zeigt einen MessageToast |
me->set_message_box( lo_message_box ) | Zeigt eine modale MessageBox |
me->get_controls_by_type( iv_control_type = ... ) | Liefert alle Komponenten eines Typs der View |
Geerbte Methoden
Alle Komponenten-Klassen erben von Control. Dort sind die generischen Methoden wie set_visible, set_property_value, get_control_id dokumentiert. In den einzelnen Komponenten-Seiten wiederholen wir diese Methoden nicht.
ValueState-Konstanten
Eingabe-Komponenten unterstützen Status-Hervorhebungen über die Konstanten in /mobbuild/cl_value_state:
| Konstante | Wirkung |
|---|---|
co_none | Standard, keine Markierung |
co_information | Blau |
co_success | Grün |
co_warning | Gelb |
co_error | Rot |
abap
me->get_input( 'txtEmail' )->set_value_state( /mobbuild/cl_value_state=>co_error ).
me->get_input( 'txtEmail' )->set_value_state_text( 'Bitte gültige E-Mail eingeben' ).Übersicht aller Komponenten
| Bereich | Komponenten |
|---|---|
| Eingabe | Input, TextArea, StepInput, TimePicker, CheckBox, ComboBox, RadioGroup, SegmentedButton, Switch |
| Anzeige | Label, Title, Text, Link, Icon, Image, InfoLabel, ObjectStatus, ObjectIdentifier, GenericTag, ProgressIndicator, MessageStrip |
| Interaktion | Button, Barcode-Scanner, SignaturePad, Upload |
| Listen & Tabellen | List, Table |
| Container | FlexBox, Panel, IconTabBar |
| Tiles | Tile |
| Dialoge | MessageToast, MessageBox |
Nächste Schritte
- Control (Basis) – geerbte Methoden für alle Komponenten
- Backend-Anbindung – ABAP-Klasse mit der View verbinden