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}