Rozszerzanie kreatora
Dodawanie nowego dialogu konfiguracyjnego dla typu danych
Dodanie nowego typu danych do importera wystarczy, aby typ ten został wyświetlony w comboboxach na stronie kreatora, służącej do wyboru typów danych. Jeżeli jednak chcemy w określony sposób skonfigurować analizator, odpowiadający danemu typowi danych, musimy dodać również odpowiedni dialog konfiguracyjny.
Aby dodać do importera nowy dialog konfiguracyjny dla typu danych należy:
- Utworzyć nowy dialog, spełniający następujące warunki:
- klasa dialogu musi rozszerzać klasę abstrakcyjną AbstractDataTypeConfigDialog
- metoda createContents musi definiować graficzną zawartość dialogu
- dla spójności systemu, dialog powinien posiadać przyciski Resetuj, Zapisz oraz Anuluj
- Resetuj usuwa wszystkie ustawienia dialogu
- Zapisz zapisuje zmiany konfiguracji analizatora; informuje mediator, czyli instancję klasy ComboBoxTableCreator o zmianie konfiguracji analizatora poprzez wywołanie metody mediator.widgetModified
- Anuluj zamyka dialog bez modyfikowania konfiguracji analizatora
- Dodać nowy dialog jako extension do punktu rozszerzeń pl.edu.agh.cast.importer.wizard.datatypeconfig
- wartość atrybutu point musi wskazywać na klasę nowego dialogu konfiguracyjnego dla typu danych
- wartość atrybutu id musi wskazywać na id pluginu typu danych, konfigurowanego przez nowy dialog
Dodawanie nowego dialogu konfiguracyjnego dla reguły konwersji
Dodanie nowej reguły konwersji do importera wystarczy, aby reguła ta została wyświetlona w comboboxach na stronie kreatora, służącej do wyboru reguł konwersji. Jeżeli jednak chcemy w określony sposób skonfigurować tę regułę, musimy dodać również odpowiedni dialog konfiguracyjny.
Aby dodać do importera nowy dialog konfiguracyjny dla reguły konwersji należy:
- Utworzyć nowy dialog, spełniający następujące warunki:
- klasa dialogu musi rozszerzać klasę abstrakcyjną AbstractConversionRuleConfigDialog
- metoda createContents musi definiować graficzną zawartość dialogu
- dla spójności systemu, dialog powinien posiadać przyciski Resetuj, Zapisz oraz Anuluj
- Zapisz zapisuje zmiany konfiguracji reguły konwersji; informuje mediator, czyli instancję strony kreatora wyboru reguł konwersji o zmianie konfiguracji reguły poprzez wywołanie metody mediator.widgetModified oraz odświeża podgląd konwersji poprzez wywołanie metody mediator.refreshConversionPreview
- Anuluj zamyka dialog bez modyfikowania konfiguracji reguły
- Dodać nowy dialog jako extension do punktu rozszerzeń pl.edu.agh.cast.importer.wizard.rulesconfig
- wartość atrybutu point musi wskazywać na klasę nowego dialogu konfiguracyjnego dla reguły konwersji
- wartość atrybutu id musi wskazywać na id pluginu reguły konwersji, konfigurowanej przez nowy dialog
Dodawanie nowej strony wyboru reguł konwersji
Umożliwenie konfiguracji dowolnego modelu dziedzinowego w kreatorze importu wymaga, aby dla każdego modelu utworzena została, specyficznej dla niego, strona wyboru reguł konwersji.
Aby dodać do importera nową stronę wyboru reguł konwersji należy:
- Utworzyć nowy stronę wizarda WizardPage spełniającą następujące warunki:
- klasa strony kreatora musi rozszerzać klasę abstrakcyjną AbstractConversionRulesSelectionPage
- dla każdego pola dziedzinowego, strona kreatora musi posiadać możliwość wyboru reguły konwersji oraz jej konfiguracji
- metoda isComplete musi sprawdzać czy dana strona kreatora jest poprawnie wypełniona - czy dla wszystkich wymaganych pól dziedzinowych wybrana została i poprawnie skonfigurowana reguła konwersji
- metoda canFinish musi sprawdzać stan wypełnienia strony (za pomocą metody isComplete) oraz, jeśli strona została całkowicie wypełniona, musi tworzyć odpowiedni konwerter, ustawiać mu odpowiednie reguły konwersji i ustawiać nowo-utworzony konwerter całemu kreatorowi importu
- metoda refreshConversionPreview musi odświeżać podgląd konwersji
- metoda refreshCombosBlocking musi blokować i odblokowywać odpowiednie comboboxy na stronie kreatora, bazując na informacji, która reguła konwersji została aktualnie wybrana. Problem ten dotyczy reguł ustawiających wartości dla więcej niż jednego pola dziedzinowego - wtedy wybór reguły dla kolejnych pól powinien zostać zablokowany. Np. reguła DirectedGraphConversionRule ustawia wartości dla pola węzła źródłowego oraz pola węzła docelowego, więc jeżeli zostanie ona wybrana jako reguła konfigurująca pole węzła źródłowego, to pole wyboru reguł dla węzła docelowego powinno zostać zablokowane, i vice versa
- metoda refreshSelectedData jest wywoływana przez poprzednią stronę kreatora, więc musi sprawdzać czy wybrane dane się zmieniły i, jeżeli tak, odpowiednio odświeżać stronę
- metoda showWarningMsgBox może wyświetlać dialog ostrzegawczy przed zakończeniem działania kreatora importu (jeżeli zachodzi taka potrzeba)
- wszystkie metody obsługujące wybór reguły dla pola dziedzinowego, muszą wywoływać metodę checkBlocking klasy abstrakcyjnej strony kreatora, aby po wyborze reguły sprawdzona została konieczność blokowania i odblokowywania (innych niż wybrany) comboboxów przechowujących reguły konwersji
- Dodać nową stronę wyboru reguł konwersji jako extension do punktu rozszerzeń pl.edu.agh.cast.importer.wizard.rulespage
- wartość atrybutu point musi wskazywać na klasę nowej strony wyboru reguł konwersji
- wartość atrybutu id musi wskazywać na id pluginu modelu, dla którego strona wyboru reguł została stworzona