Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 26 Next »

Możliwe jest dodanie do systemu akcji zmiennych formularza (AUTO_UPDATE), data chooser'ów (dynamiczne listy), zadań automatycznych, narzędzi systemowych, walidatorów przycisków akceptacji, klas ustawiających zmienne, które zostaną wykryte podczas uruchamiania modułu edytora procesów. Dodatkowo moduł próbuje zaczytać pliki js z biblioteki CUF, które definiują parametryzowane funkcje dla przycisków tabeli dynamicznej, przycisków akceptacji. Możliwe będzie ich wykorzystanie podczas definiowania poszczególnych komponentów. Konieczne wtedy będzie uzupełnienie tylko konkretnych wartości (najczęściej wybranie zmiennych procesu/formularza z listy).

1. Data chooser (dynamiczna lista)

Klasę będącą data chooser'em umieszczamy w classpath projektu. Oznaczamy ją adnotacją @StandardDataChooser:

Data chooser
@StandardDataChooser( conf = DataChooserExampleConf.class )
public class DataChooserExample
    implements DataChooser
{
...
}

Adnotacja ta posiada właściwość conf, która przechowuje informację o klasie opisującej definicję danego data chooser'a w zależności od wersji językowej (pochodzącej z java.util.Locale np. pl, en). Klasa ta musi implementować interface StandardDataChooserDef. Posiada on następujące metody:

  • getIds - identyfikator data chooser'a, musi być unikalny w ramach wszystkich definicji
  • getDef - zwraca definicję data chooser'a, czyli nazwę, opis, ścieżkę do klasy
  • getFormCriteria - zwraca kryteria formalne (zmienne przekazywane z formularza), zawiera także ich opisy w celu ułatwienia użytkownikowi wyboru odpowiednich zmiennych procesu
  • getMappings - zwraca mappingi data chooser'a (id w implementacji, mapowaną zmienną z formularza itd.), zawiera także ich opisy w celu ułatwienia użytkownikowi wyboru odpowiednich zmiennych procesu
  • getCustomKeys - zwraca klucze własne, zawiera także ich opisy w celu ułatwienia użytkownikowi podania właściwych wartości

2. Auto update (akcja zmiennej formularza)

Klasę będącą auto update'em umieszczamy w classpath projektu. Oznaczamy ją adnotacją @StandardAutoUpdate:

Data chooser
@StandardAutoUpdate( conf = AutoUpdateExampleConf.class )
public class AutoUpdateExample
    extends HttpServlet
{
...
}

Adnotacja ta posiada właściwość conf, która przechowuje informację o klasie opisującej definicję danego auto update'u w zależności od wersji językowej (pochodzącej z java.util.Locale np. pl, en). Klasa ta musi implementować interface StandardAutoUpdateDef. Posiada on następujące metody:

  • getId -  identyfikator auto update'u, musi być unikalny w ramach wszystkich definicji
  • getDef - zwraca definicję data chooser'a, czyli nazwę, opis, typ, ścieżkę do servletu
  • getDataSources - zwraca źródła danych (zmienne z formularza, których wartości są przekazywane jako parametry wywołania), zawiera także ich opisy w celu ułatwienia użytkownikowi wyboru odpowiednich zmiennych procesu
    getDestinations - zwraca zmienne docelowe (zmienne formularza, których wartości mają zostać ustawione na podstawie danych zwróconych przez servlet), zawiera także ich opisy w celu ułatwienia użytkownikowi wyboru odpowiednich zmiennych procesu

3. Narzędzia systemowe

Klasę będącą narzędziem systemowym umieszczamy w classpath projektu. Pozwala dodać narzędzie systemowe w jednym kroku (dodaje aplikację na poziomie procesu i zadania). Wymagane jest tylko określenie aktualnych parametrów w zadaniu. Klasę oznaczamy adnotacją @StandardTool:

Narzędzie systemowe
@StandardTool( id = "exampletool", name = "Przykladowy", category = "Examples", description = "Opis tool'a", icon = "img/tool.png",
type = Type.JAVA_APPLICATION_WITH_TRANSACTION )
public class ToolExample
{
...
}

Adnotacja narzędzia systemowego posiada następujące właściwości:

  • id - identyfikator narzędzia systemowego, należy zadbać, by był unikalny w ramach wszystkich systemowych narzędzi, pole wymagane
  • name - nazwa narzędzia systemowego, a także aplikacji w procesie, pole wymagane
  • category - kategoria zadań, do których należy narzędzie systemowe, niezbędne do grupowania zadań po typie, pole wymagane
  • description - opis narzędzia systemowego, wartość domyślna: ""
  • icon - ścieżka na serwerze do ikony symbolizującej narzędzie systemowe, wartość domyślna: ""
  • type - typ narzędzia systemowego, możliwe wartości to: aplikacja Java, aplikacja Java z transakcją, wartość domyślna: aplikacja Java
  • actualParametersForm - rodzaj formularza parametrów aplikacji, możliwe wartości to: DEFAULT (domyślny - tabela z parametrami aplikacji i odpowiadającymi im aktualnymi parametrami), FIELDS (zestaw pól - formularz budowany na podstawie szablonu xml), wartość domyślna: default
  • formTemplateLocation - lokalizacja szablonu xml definiującego pola na formularzu parametrów aplikacji, ma znaczenie, gdy właściwość actualParametersForm ma wartość FIELDS, właściwość ta przyjmuje wartości typu classpath:/..., file:/..., wartość domyśna: ""

 

Następnie należy zaimplementować statyczną, publiczą metodę o nazwie execute i oznaczyć jej parametry typu org.enhydra.shark.api.internal.toolagent.AppParameter (o ile posiada) adnotacjami @StandardToolParameter:

Metoda execute
public static void execute( @StandardToolParameter( description = "Przykladowy parametr", mode = Mode.IN, type= Type.INTEGER ) AppParameter parameter )
{
...
}

Adnotacja parametru narzędzia systemowego posiada następujące właściwości:

  • id - identyfikator parametru, wartość domyślna: fpX, gdzie X to numer parametru w kolejności liczony od 1
  • description - opis parametru, wartość domyślna: ""
  • mode - tryb parametru (wejściowy, wyjściowy, wejściowo-wyjściowy), wartość domyślna: wejściowo-wyjściowy
  • type - typ parametru (tekstowy, datowy, liczbowy itd.), wartość domyślna: tekstowy

 

Jeżeli właściwość actualParametersForm w adnotacji @StandardTool przyjmuje wartość FIELDS, to edytor procesów buduje formularz parametrów aplikacji w formie konfigurowalnego formularza. Sposób budowania formularza został opisany tutaj.

4. Akcje przycisków tabeli dynamicznej

Ich definicja znajduje się w pliku CUFdefs.js w projekcie CUF w lokalizacji scripts/external/CommonUsedFunctions. Plik js zawiera zmienną CUF, która jest obiektem. Posiada on właściwość DTButtons, który także jest obiektem. Kolejne właściwości definiują obiekty zawierające tłumaczenia (np. pl, en). Wewnątrz nich znajdują się właściwości określające akcje przycisków przycisków (nazwa właściwości jest identyfikatorem przycisku). Obiekt definicji akcji przycisku tabeli dynamicznej zawiera następujące pola:

  • name - typ String, nazwa akcji przycisku, wartość domyślna: ""
  • descr - typ String, opis akcji przycisku, wartość domyślna: ""
  • buttonId - typ String, id przycisku na formularzu, wartość domyślna: ""
  • text - typ String, tekst umieszczony na przycisku, wartość domyślna: ""
  • icon - typ String, ścieżka na serwerze do ikony, która zostanie umieszczona na przycisku, wartość domyślna: ""
  • tooltip - typ String, tekst podpowiedzi wyświetlany po umieszczeniu kursora myszki nad przyciskiem, wartość domyślna: ""
  • handler - typ String, nazwa funkcji js wykonywanej po kliknięciu na przycisk, wartość domyślna: ""
  • params- typ array, lista parametrów akcji przycisku, parametry są podawane w formie obiektu o następujących właściwościach, wartość domyślna: []:
    • viewName - typ String, nazwa parametru (etykieta pola), wartość domyślna: ""
    • realName - typ String, identyfikator parametru, wartość domyślna: ""
    • type - typ String, typ parametru (typ pola), dozwolone wartości to: string, boolean, int, docclass, wartość domyślna: string
    • defaultValue - typ zależny od wartości parametru type, wartość początkowa pola wartości parametru, wartość domyślna zależna od wartości parametru type
Definicja akcji przycisku tabeli dynamicznej
var CUF = {
    DTButtons: {
        pl: {
            importFromXls: {
                name: 'Import pliku Excel',
                descr: 'Import linii tabeli z pliku Excel',
                buttonId: 'CUF_import_from_xls_button',
                text: 'Importuj',
                icon: 'style/img/fam/page_excel.png',
                tooltip: 'Importuj linie z pliku',
                handler: 'CUF.table.service.TableButton.importFromExcel',
                params: [ {
                    viewName: 'Uwzględnij ukryte kolumny',
                    realName: 'showHidden',
                    type: 'boolean',
                    defaultValue: false
                },{
                    viewName: 'Zapisz dane po wczytaniu',
                    realName: 'saveData',
                    type: 'boolean',
                    defaultValue: true
                }, {
                    viewName: 'Przycisk wyboru pliku',
                    realName: 'fileButtonLabel',
                    type: 'string',
                    defaultValue: 'Wybierz plik'
                }, {
                    viewName: 'Przycisk importowania',
                    realName: 'loadButtonLabel',
                    type: 'string',
                    defaultValue: 'Importuj'
                }, {
                    viewName: 'Tytuł okna',
                    realName: 'windowTitle',
                    type: 'string',
                    defaultValue: 'Import pliku Excel'
                }, {
                    viewName: 'Dodatkowa funkcja',
                    realName: 'functionName',
                    type: 'string',
                    defaultValue: ''
                } ]
            }
		}
	}
};

5. Akcje przycisków akceptacji

Ich definicja znajduje się w pliku CUFdefs.js w projekcie CUF w lokalizacji scripts/external/CommonUsedFunctions. Plik js zawiera zmienną CUF, która jest obiektem. Posiada on właściwość AcceptButtonFunctions, który także jest obiektem. Kolejne właściwości definiują obiekty zawierające tłumaczenia (np. pl, en). Wewnątrz nich znajdują się właściwości określające akcje przycisków (nazwa właściwości jest identyfikatorem przycisku). Obiekt definicji akcji przycisku tabeli dynamicznej zawiera następujące pola:

  • descr - typ String, opis akcji przycisku, wartość domyślna: ""
  • handler - typ String, nazwa funkcji js wykonywanej po kliknięciu na przycisk, wartość domyślna: ""
Definicja akcji przycisku akceptacji
var CUF = {
    AcceptButtonFunctions: {
        pl: {
            checkComment: {
                handler: 'CUF_checkComment',
                descr: 'Sprawdza, czy w obecnym zadaniu został dodany komentarz'
            }
		}
	}
};

 

setFieldStoreParameter

  • No labels