Adresowanie
Schemat adresowania jest hierarchiczną strukturą drzewa, której katalog główny został zdefiniowany jako
/ w najwyższym położeniu na wyświetlanej stronie. Struktura schematu adresowania jest podobna
do struktury używanej w przypadku katalogu. W miarę ładowania strony są
dodawane kolejne węzły drzewa.
Zwykle adresowanie jest używane w widokach interfejsu użytkownika wtedy, gdy istnieją funkcje wywoływane przez zdarzenia widoków lub formuły używane w niektórych widokach. Funkcje można podawać jako dane wstawiane, tak jak w bloku skryptu JavaScript niestandardowego kodu HTML na stronie lub tak jak w sekcji Wstawiany skrypt JavaScript we właściwościach Zachowanie widoku.
Style adresowania
Obsługiwane są style adresowania względnego oraz bezwzględnego. Jeśli odwołanie rozpoczyna się od znaku
/, jest to odwołanie bezwzględne (np. rozpoczynające się od
głównego poziomu drzewa widoku). Pominięcie / na początku ścieżki oznacza "from where I
am". Użycie .. w odwołaniu powoduje powrót o poziom, tak jak w drzewie katalogów z plikami.
- Odwołania do pól znajdujących się na tym samym poziomie co bieżące pole są wykonywane przy użyciu nazwy pola (bez znaku
/na początku odwołania). - Pola o jednym poziomie mogą być przywoływane jako
../FieldOneLevelAboveMe. - Pola, które są dwoma poziomami powyżej, są przywoływane jako
../../FieldOneLevelAboveMe, itd. - W niektórych przypadkach może być wygodne adresowanie względne korzystające ze ścieżki
../.
Metody JavaScript do uzyskiwania dostępu do widoków
- Z niestandardowego kodu HTML
- Aby uzyskać dostęp do widoku w bloku JavaScript , należy użyć widoku globalnego strony i jego metody
page.ui.get(ControlId path). Na przykład: użytkownik ma widok Tekst o nazwie Text1 , a w celu sprawdzania poprawności ma mieć dostęp do niego w funkcji wywołanej z zdarzenia On click przycisku. Aby to zrobić, należy użyć kodu podobnego do poniższego przykładu:var myTextField = page.ui.get("/Text1"); myTextField.getValue() // returns the value in the text field myTextField.focus() // would set the focus to the text field.
- Ze wstawianego kodu JavaScript widoku
- Aby uzyskać dostęp do widoku z funkcji zawartej w widoku kontenerowym,
należy użyć jednej z następującej opcji:
bpmEventHelper.ui.getView(ControlId [, thisview]) thisview.ui.get(ControlId)
- W formułach
- W formułach można odwoływać się do widoków przy użyciu następującej składni:
${FieldName}odnosi się do widoku, któregocontrol id = FieldName.@{FieldName}odnosi się do wartości widoku, któregocontrol id = FieldName.${FieldName).getValue()i@{FieldName}są równoważne.
Nieadresowalne widoki układu
/FirstName , a nie /VerticalLayout/FirstName.load widoku niestandardowego w wstawionej sekcji JavaScript w sekcji Zachowanie:this.constructor.prototype.IS_ADDRESS_INVISIBLE = true;Adresowalne widoki niestandardowe
load:bpmEventHelper.ui.loadView(this)
bpmEventHelper.ui.loadContainer(this)unload widoku należy wywołać odpowiednią funkcję:bpmEventHelper.ui.unloadView(this)LUBbpmEventHelper.ui.unloadContainer(this)Odwołania do równorzędnych pól w tabelach
my przy użyciu składni, w której po nazwie pola występuje znak
=. Na przykład można powiedzieć, że zdefiniowano widoki Quantity (Integer), Cost (Decimal) i Total (Decimal) w tabeli. Wartość widoku Total można określić, korzystając z następującego wzoru:@{Quantity=} * @{Cost=}Należy zauważyć, że powiązanie danych nie jest wymagane dla widoku Total , co oznacza, że w tabeli nie jest wymagane żadne pole danych.Funkcje programu pomocy
Na przykład istnieje możliwość użycia funkcji programu pomocy
getParent i getSibling
w przestrzeni nazw bpmext.ui.View. W tym przykładzie łatwo
można uzyskać widok kontenerowy lub widok równorzędny bez znajomości całej
hierarchii.
Na przykład można powiedzieć, że istnieje widok kontenera o nazwie CV, który zawiera dwa widoki o nazwach Button1 i Button2. Zakładając, że btn1View jest obiektem bpmext.ui.View dla produktu Button1, można uzyskać dostęp do produktu CV przy użyciu produktu btn1View.ui.get(“CV”) lub btn1View.ui.getParent();. Produkt Button2 można uzyskać za pomocą programu bt1View.ui.getSibling(“Button2”).