package org.aperteworkflow.editor.stepeditor.user;
import org.aperteworkflow.editor.domain.Permission;
import org.aperteworkflow.editor.ui.permission.PermissionDefinition;
import org.aperteworkflow.editor.ui.property.PropertiesPanel;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
public class WidgetItemInStep implements Serializable {
private static final long serialVersionUID = -4319558996871289010L;
private static final Logger logger = Logger.getLogger(WidgetItemInStep.class.getName());
private WidgetItem widgetItem;
private PropertiesPanel widgetPropertiesPanel;
private List<Property<?>> properties = new LinkedList<Property<?>>();
private List<Permission> permissions = new LinkedList<Permission>();
private List<PermissionDefinition> permissionDefinitions = new LinkedList<PermissionDefinition>();
public WidgetItemInStep(WidgetItem widgetItem, PropertiesPanel widgetPropertiesPanel, List<Property<?>> properties, List<PermissionDefinition> permissionDefinitions) {
this.widgetItem = widgetItem;
this.properties = properties;
this.permissionDefinitions = permissionDefinitions;
this.widgetPropertiesPanel = widgetPropertiesPanel;
}
public WidgetItemInStep(WidgetItem widgetItem) {
this.widgetItem = widgetItem;
if (widgetItem.getProperties() != null) {
for (Property<?> property : widgetItem.getProperties()) {
try {
properties.add((Property<?>) property.clone());
} catch (CloneNotSupportedException e) {
// should never happen
// if happens, we just log the exception and skip property
// that failed
logger.log(Level.SEVERE, "Clone not supported for property", e);
}
}
}
if (widgetItem.getPermissions() != null) {
for (PermissionDefinition perm : widgetItem.getPermissions()) {
permissionDefinitions.add(perm);
}
}
widgetPropertiesPanel = new PropertiesPanel();
widgetPropertiesPanel.init(widgetItem.getClassInfo());
widgetPropertiesPanel.refreshForm(false, properties);
}
public WidgetItem getWidgetItem() {
return widgetItem;
}
public void setWidgetItem(WidgetItem widgetItem) {
this.widgetItem = widgetItem;
}
public List<Property<?>> getProperties() {
return properties;
}
public void setProperties(List<Property<?>> properties) {
this.properties = properties;
}
public boolean hasProperties() {
return properties != null && properties.size() > 0;
}
public List<PermissionDefinition> getPermissionDefinitions() {
return permissionDefinitions;
}
public void setPermissionDefinitions(List<PermissionDefinition> permissionDefinitions) {
this.permissionDefinitions = permissionDefinitions;
}
public List<Permission> getPermissions() {
return permissions;
}
public void setPermissions(List<Permission> permissions) {
this.permissions = permissions;
}
public boolean hasPermissions() {
return permissionDefinitions != null && !permissionDefinitions.isEmpty();
}
public PropertiesPanel getWidgetPropertiesPanel() {
return widgetPropertiesPanel;
}
public void setWidgetPropertiesPanel(PropertiesPanel widgetPropertiesPanel) {
this.widgetPropertiesPanel = widgetPropertiesPanel;
}
}