Package org.aperteworkflow.editor.stepeditor.user

Source Code of org.aperteworkflow.editor.stepeditor.user.WidgetFormWindow

package org.aperteworkflow.editor.stepeditor.user;


import com.vaadin.ui.Label;
import com.vaadin.ui.Panel;
import com.vaadin.ui.TabSheet;
import com.vaadin.ui.VerticalLayout;
import com.vaadin.ui.themes.Reindeer;
import org.aperteworkflow.editor.domain.Permission;
import org.aperteworkflow.editor.ui.permission.PermissionDefinition;
import org.aperteworkflow.editor.ui.permission.PermissionEditor;
import org.aperteworkflow.editor.ui.permission.PermissionProvider;
import org.aperteworkflow.editor.ui.property.PropertiesPanel;
import pl.net.bluesoft.rnd.util.i18n.I18NSource;

import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedHashSet;
import java.util.Set;

public class WidgetFormWindow extends Panel  {

    private WidgetItemInStep widget;

    // TODO this class and method needs a a major rework
  public void loadWidget(final WidgetItemInStep widget, boolean reloadProperties) {
        this.widget = widget;
        I18NSource messages = I18NSource.ThreadUtil.getThreadI18nSource();
    removeAllComponents();
        setStyleName(Reindeer.PANEL_LIGHT);
    if (widget == null) {
        setCaption("");
        return;
        }
        VerticalLayout layout = (VerticalLayout) getContent();
    layout.addComponent(new Label(widget.getWidgetItem().getDescription()));       
    if ((widget.getProperties() == null || widget.getProperties().size() == 0) && (widget.getPermissions() == null || widget.getPermissions().size() == 0)) {
      layout.addComponent(new Label(messages.getMessage("form.no.parameters.defined")));
    } else {
            TabSheet ts = new TabSheet();
            ts.setWidth("100%");
            if (widget.hasProperties()) {
                if (reloadProperties) {
                    PropertiesPanel propertiesPanel = new PropertiesPanel();
                    propertiesPanel.init(widget.getWidgetItem().getClassInfo());
                    propertiesPanel.refreshForm(false, widget.getProperties());
                    widget.setWidgetPropertiesPanel(propertiesPanel);
                }
                ts.addTab(widget.getWidgetPropertiesPanel(), messages.getMessage("form.properties"));
            }
            if (widget.hasPermissions()) {
                PermissionEditor permissionEditor = new PermissionEditor();
                permissionEditor.setMargin(true);
                permissionEditor.setProvider(new PermissionProvider() {
                    @Override
                    public Collection<Permission> getPermissions() {
                        return new LinkedHashSet<Permission>(widget.getPermissions());
                    }

                    @Override
                    public Collection<PermissionDefinition> getPermissionDefinitions() {
                        return widget.getPermissionDefinitions();
                    }

                    @Override
                    public boolean isNewPermissionDefinitionAllowed() {
                        return false;
                    }

                    @Override
                    public void addPermission(Permission permission) {
                        Set<Permission> newPermissions = new LinkedHashSet<Permission>(widget.getPermissions());
                        newPermissions.add(permission);
                        widget.setPermissions(new ArrayList<Permission>(newPermissions));
                    }

                    @Override
                    public void removePermission(Permission permission) {
                        Set<Permission> newPermissions = new LinkedHashSet<Permission>(widget.getPermissions());
                        newPermissions.remove(permission);
                        widget.setPermissions(new ArrayList<Permission>(newPermissions));
                    }
                });
                permissionEditor.loadData();
                ts.addTab(permissionEditor, messages.getMessage("form.permissions"));

            }
            layout.addComponent(ts);
    }
  }

    public WidgetItemInStep getWidget() {
        return widget;
    }
}
TOP

Related Classes of org.aperteworkflow.editor.stepeditor.user.WidgetFormWindow

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.