
it.amattioli.multimodule.zk.menu.MultimoduleToolbar Maven / Gradle / Ivy
package it.amattioli.multimodule.zk.menu;
import java.util.ArrayList;
import java.util.List;
import java.util.ServiceLoader;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.util.GenericComposer;
import org.zkoss.zul.Tab;
import org.zkoss.zul.Tabbox;
import org.zkoss.zul.Tabpanel;
import org.zkoss.zul.Toolbar;
import org.zkoss.zul.Toolbarbutton;
public class MultimoduleToolbar extends GenericComposer {
private List menus = new ArrayList();
public MultimoduleToolbar() {
for (MultimoduleMenuProvider provider: ServiceLoader.load(MultimoduleMenuProvider.class)) {
for (MultimoduleMenu menu: provider.getMenus()) {
menus.add(menu);
}
}
}
public void onCreate(Event evt) {
Tabbox tabbox = (Tabbox)evt.getTarget();
for (MultimoduleMenu menu: menus) {
Tab tab = createTab(menu);
tab.setParent(tabbox.getTabs());
Tabpanel panel = createPanel(menu);
panel.setParent(tabbox.getTabpanels());
}
}
private Tab createTab(MultimoduleMenu menu) {
Tab tab = new Tab();
tab.setLabel(menu.getDescription());
return tab;
}
private Tabpanel createPanel(MultimoduleMenu menu) {
Tabpanel panel = new Tabpanel();
panel.setStyle("padding: 0px");
panel.setVflex("1");
Toolbar toolbar = new Toolbar();
toolbar.setOrient("vertical");
toolbar.setAlign("center");
toolbar.setVflex("1");
for (MultimoduleMenuItem item: menu.getItems()) {
Toolbarbutton buttonitem = createButtonItem(item);
buttonitem.setParent(toolbar);
}
toolbar.setParent(panel);
return panel;
}
private Toolbarbutton createButtonItem(MultimoduleMenuItem item) {
Toolbarbutton menuitem = new Toolbarbutton();
menuitem.setLabel(item.getLabel());
menuitem.setImage(item.getImageUrl());
menuitem.setOrient("vertical");
menuitem.setHref("menutarget.zul?targeturl="+item.getTargetUrl()+"&title="+item.getLabel());
return menuitem;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy