001/*
002 * (C) Copyright 2010 Nuxeo SA (http://nuxeo.com/) and contributors.
003 *
004 * All rights reserved. This program and the accompanying materials
005 * are made available under the terms of the GNU Lesser General Public License
006 * (LGPL) version 2.1 which accompanies this distribution, and is available at
007 * http://www.gnu.org/licenses/lgpl.html
008 *
009 * This library is distributed in the hope that it will be useful,
010 * but WITHOUT ANY WARRANTY; without even the implied warranty of
011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
012 * Lesser General Public License for more details.
013 *
014 * Contributors:
015 *     Anahide Tchertchian
016 */
017package org.nuxeo.ecm.platform.forms.layout.demo.service;
018
019import java.io.Serializable;
020import java.util.List;
021import java.util.Map;
022
023/**
024 * Default implementation of the widget type demo
025 *
026 * @author Anahide Tchertchian
027 */
028public class DemoWidgetTypeImpl implements DemoWidgetType {
029
030    private static final long serialVersionUID = 1L;
031
032    protected String name;
033
034    protected String label;
035
036    protected String viewId;
037
038    protected String category;
039
040    protected String widgetTypeCategory;
041
042    protected boolean previewEnabled;
043
044    protected boolean previewHideViewMode;
045
046    protected boolean previewHideEditMode;
047
048    protected List<String> fields;
049
050    protected Map<String, Serializable> defaultProperties;
051
052    protected List<DemoLayout> demoLayouts;
053
054    public DemoWidgetTypeImpl(String name, String label, String viewId, String category, String widgetTypeCategory,
055            boolean previewEnabled, boolean previewHideViewMode, boolean previewHideEditMode, List<String> fields,
056            Map<String, Serializable> defaultProperties, List<DemoLayout> demoLayouts) {
057        super();
058        this.name = name;
059        this.label = label;
060        this.viewId = viewId;
061        this.category = category;
062        this.widgetTypeCategory = widgetTypeCategory;
063        this.previewEnabled = previewEnabled;
064        this.previewHideViewMode = previewHideViewMode;
065        this.previewHideEditMode = previewHideEditMode;
066        this.fields = fields;
067        this.defaultProperties = defaultProperties;
068        this.demoLayouts = demoLayouts;
069    }
070
071    public String getName() {
072        return name;
073    }
074
075    public String getLabel() {
076        return label;
077    }
078
079    public String getViewId() {
080        return viewId;
081    }
082
083    public String getUrl() {
084        return LayoutDemoManager.APPLICATION_PATH + viewId;
085    }
086
087    public String getCategory() {
088        return category;
089    }
090
091    @Override
092    public String getWidgetTypeCategory() {
093        return widgetTypeCategory;
094    }
095
096    public boolean isPreviewEnabled() {
097        return previewEnabled;
098    }
099
100    @Override
101    public boolean isPreviewHideViewMode() {
102        return previewHideViewMode;
103    }
104
105    @Override
106    public boolean isPreviewHideEditMode() {
107        return previewHideEditMode;
108    }
109
110    public List<String> getFields() {
111        return fields;
112    }
113
114    public List<DemoLayout> getDemoLayouts() {
115        return demoLayouts;
116    }
117
118    @Override
119    public Map<String, Serializable> getDefaultProperties() {
120        return defaultProperties;
121    }
122
123    @Override
124    public boolean equals(Object other) {
125        if (other instanceof DemoWidgetType) {
126            DemoWidgetType oWidget = (DemoWidgetType) other;
127            String oName = oWidget.getName();
128            if (name == null && oName != null) {
129                return false;
130            } else if (!name.equals(oName)) {
131                return false;
132            }
133            return true;
134        }
135        return false;
136    }
137
138    @Override
139    public String toString() {
140        return String.format("DemoWidgetTypeImpl [name=%s, label=%s, " + "viewId=%s, category=%s]", name, label,
141                viewId, category);
142    }
143
144}