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 21 Next »

Skrypty dostarczające formularze będą dynamicznie ładowane w PWE: Wstrzykiwanie skryptów

Komponent budowałby formularz za pomocą funkcji np.: buildForm( form, options ), gdzie parametr form byłby kontenerem parametrów, a parametr options zawierał dodatkowe informacje, takie jak:

  1. destination - dostępny tylko dla akcji formularza, informuje o tym, do jakiego komponentu formularza akcja jest dodawana, dostępne wartości, to:
    1. FORM - formularz
    2. VARIABLE - zmienna
    3. VARIABLESET - tabela dynamiczna
    4. BUTTON - przycisk

 

Komponent w zależności od typu należy zarejestrować za pomocą metody:

  • dla akcji formularza - PWE.integrationComponent.registerFormAction( id_komponentu, rejestracja )
  • dla walidatora - PWE.integrationComponent.registerValidator( id_komponentu, rejestracja )
  • dla klasy ustawiającej zmienne - PWE.integrationComponent.registerVariablesSetter( id_komponentu, rejestracja )
  • dla aplikacji systemowej - PWE.integrationComponent.registerApplication( id_komponentu, rejestracja )
  • dla data chooser'a - PWE.integrationComponent.registerDataChooser( id_komponentu, rejestracja )

Obiekt rejestracja musi posiadać następujące właściwości:

  1. buildForm - funkcja budująca formularz parametrów

Założenia

  1. Możliwość rozmieszczania parametrów w miarę dowolny sposób.
  2. Możliwość podpinania zdarzeń pod pola parametrów:
    1. change
    2. blur
  3. Grupowanie parametrów (chyba tylko tablicowych) - chodzi o to, żeby mając np 2 parametry tablicowe, które są ze sobą powiązane (np ustawianie zmiennych - jeden parametr ze zmiennymi, a drugi z wartościami do ustawienia) była możliwość przedstawienia ich jako pary dla której byłby tylko jeden przycisk dodawania kolejnego elementu tablicy i ten przycisk jednocześnie dodawałby pola dla wszystkich zgrupowanych parametrów (wink)
  4. Ukrywanie / pokazywanie parametrów.
  5. Możliwość zdefiniowania wybieracza z wartościami dla parametru z określeniem czy można wpisać własną wartość lub wybrać funkcję, czy zmienną. Wydaje mi się, że będzie to mieć sens tylko dla parametrów o podstawowych typach.
  6. Możliwość filtrowania wartości, np.: dla parametru typu VARIABLE, możnaby przefiltrować jakie zmienne miałyby być wyświetlane. Np, gdy chcielibyśmy tylko zmienne typu FLOAT.
  7. Możliwość dodania zwykłego labela, chyba będzie przydatne do grupowania parametrów.
  8. Możliwość dodania checkboxa - umożliwiałby pokazywanie i ukrywanie parametrów.
  9. Możliwość definiowania sekcji, którą możnaby było zwinąć, taki fieldset zwijany.

Definicja formularza mogłaby wyglądać następująco:

buildForm: function( form ) {
	//dodanie parametru w podstawowej formie
	form.addField("parameter_id"); //parameter_id to id parametru zdefiniowanego w komponencie
	
	//dodanie parameteru ze zdarzeniem change
	form.addField({
		id: "param_id",
		onChange: function(value) {
			if(value) {
				form.showField("hiddenParam");	
			}
			else {
				form.hideField("hiddenParam");
			}
		}
	});
 
	//dodanie parametru, który jest ukryty podczas inicjalizacji
	form.addField({
		id: "hiddenParam",
		hidden: true //domyślnie false
	});
}

API FORMULARZA

  1. addField (Object / parameterId) - dodaje pole parametru.
  2. removeField(parameterId) - usuwa pole parametru
  3. hideField (parameterId) - ukrywa parametr.
  4. showField(parameterId) - pokazuje parametr
  5. focusField(parameterId) - ustawia kursor w polu parametru
  6. addLabel("Label text") - dodaje label
  7. addCheckbox(Object) - dodaje checkbox
  8. addCombobox(Object) - dodale listę rozwijaną

WŁAŚCIWOŚCI POLA PARAMETRU (FIELD)

  • id,
  • onChange,
  • onBlur,
  • hidden,
  • optional,
  • value,
  • readOnly
  • hideLabel
  • values - lista obiektów wartości listy rozwijanej, każdy obiekt zawiera właściwości id (identyfikator wartości), display (wartość wyświetlana na liście), description (opis wartości na liście)
  • No labels