All Downloads are FREE. Search and download functionalities are using the official Maven repository.

tools.dynamia.zk.ui.ZKUIToolsProvider Maven / Gradle / Ivy

There is a newer version: 5.2.1
Show newest version
package tools.dynamia.zk.ui;

import tools.dynamia.integration.sterotypes.Component;
import tools.dynamia.ui.*;
import tools.dynamia.web.util.HttpUtils;
import tools.dynamia.zk.util.ZKUtil;

import java.util.List;

/**
 * ZK Implementation of {@link UIToolsProvider}
 * This class is used to provide UI tools for the ZK UI framework.
 * It is annotated with @Component to make it a Spring-managed bean.
 */
@Component
public class ZKUIToolsProvider implements UIToolsProvider {

    @Override
    public boolean isInEventThread() {
        return ZKUtil.isInEventListener();
    }

    @Override
    public DialogComponent createDialog(String title) {
        ZKDialog dialog = new ZKDialog();
        dialog.setTitle(title);
        dialog.setClosable(true);
        dialog.setBorder("normal");
        dialog.setPage(ZKUtil.getFirstPage());
        return dialog;
    }

    @Override
    public DialogComponent showDialog(String title, Object content, Object data, String width, String height, EventCallback onClose) {
        var dialog = createDialog(title);
        dialog.setContent(content);
        dialog.setData(data);
        dialog.onClose(onClose);
        dialog.setWidth(width);
        dialog.setHeight(height);
        dialog.show();


        if (HttpUtils.isSmartphone()) {
            dialog.setWidth("99%");
            dialog.setHeight("99%");
            dialog.setDraggable(false);
        }


        return dialog;
    }

    @Override
    public  ListboxComponent createListbox(List data) {
        ZKListbox listbox = new ZKListbox<>();
        listbox.setData(data);
        return listbox;
    }

    @Override
    public  ComboboxComponent createCombobox(List data) {
        ZKCombobox combobox = new ZKCombobox<>();
        combobox.setData(data);
        return combobox;
    }

    @Override
    public ButtonComponent createButton(String label, EventCallback onClick) {
        ZKButton button = new ZKButton();
        button.setLabel(label);
        if (onClick != null) {
            button.onClick(onClick);
        }
        return button;
    }

    @Override
    public  DialogComponent showTableSelector(String title, String label, List columns, List data, SelectEventCallback onSelect) {
        ZKTableSelector selector = new ZKTableSelector<>(label, columns, data);
        selector.onSelect(onSelect);
        return showDialog(title, selector, null, "90%", "90%", null);
    }

    @Override
    public  DialogComponent showTableMultiSelector(String title, String label, List columns, List data, SelectionEventCallback onSelect) {
        ZKTableSelector selector = new ZKTableSelector<>(label, columns, data, true);
        selector.onSelection(onSelect);
        return showDialog(title, selector, null, "90%", "90%", null);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy