Definice GUI pro feature
Každé rozšíření (feature) umožňuje definovat vlastní GUI. Stačí implementovat rozhraní com.fg.cps.eshop.feature.type.EdeeModuleFeatureWithGui.
Princip
Od verze v10 se GUI definuje pouze pro AR (administrační rozhraní). Pro FE (frontend) se vrací data prostřednictvím API.
Princip zpracování GUI v rámci EdeeShop je následující:
- Modul nejprve zaregistruje globální slovník pro celý modul. Globální slovník je definován zde.
- Následně systém projde všechna zapnutá rozšíření a pomocí metody
EdeeModuleFeatureWithGui#getDictionaryGuiConfigsnačte a zaregistruje všechny slovníky. Tyto slovníky jednotlivých features závisejí na globálním slovníku. - Poté se zpracují projektové slovníky.
- Nakonec se zpracuje pomocné GUI, tzv. "dictionaryFinish", které závisejí na všech slovnících. Zároveň na něm závisí všechna setup-GUI. Tím je zajištěno, že nejprve se zpracují všechny slovníky a až následně všechna setup-GUI.
- Po zpracování všech slovníků se začnou zpracovávat setup-GUI. Nejprve se zpracují GUI jednotlivých features a poté se zpracují projektová rozšíření GUI.
Projektové rozšíření GUI
GUI každé feature je možné na projektu konfiguračně rozšířit pomocí elementů dictionaryExtension a guiExtension.
Element dictionaryExtension rozšiřuje slovník dané feature a je zpracován před všemi setup-GUI.
Element guiExtension rozšiřuje GUI dané feature a je zpracován až po zpracování všech slovníků a GUI dané feature.
Pro úpravy existujících administračních editorů (skrytí pole, náhrada widgetu, doplnění sekce) se používá samostatný mechanismus XML modifikací — viz Projektové úpravy administračního GUI.
Příklad konfigurace:
<order> <dictionaryExtension> <!-- Definice projektového rozšíření slovníku --> </dictionaryExtension> <guiExtension> <!-- Definice projektového rozšíření GUI --> </guiExtension></order>Struktura GUI
GUI každé feature má vlastní kořenový uzel. Podle tohoto uzlu je možné rozpoznat, do jaké feature GUI patří.
- /edee/edeeShop - kořenový uzel administrace.- /edee/edeeShop/{featureId}/ - root uzel pro každou feature, kde `featureId` je standardně název (simpleName s malým počátečným písmenem) třídy dané feature. Development režim
Pomocí property dev.edeeShop.devSourcePathPrefix je možné specifikovat seznam (oddělený čárkou) root-adresářů, ve kterém se má EdeeShop pokusit nalézt GUI definované na classpath.
Pokud EdeeShop takový zdroj nalezne, nastaví nad tímto zdrojem monitoring změn. Případná změna v GUI se pak projeví téměř ihned, bez nutnosti buildu projektu a jeho opětovného spuštění.
Př.: dev.edeeShop.devSourcePathPrefix=file:/www/edee/eshop/lib_eshop_edee/src/main/resources,file:/www/edee/eshop/lib_eshop_fulltext/src/main/resources,file:/www/edee/eshop/lib_eshop_import/src/main/resources,file:/www/edee/eshop/lib_eshop_catalog/src/main/resources
