001
014
015 package com.liferay.portal.kernel.template;
016
017 import com.liferay.portal.kernel.util.TextFormatter;
018 import com.liferay.portal.kernel.util.UniqueList;
019
020 import java.util.Collection;
021
022
025 public class TemplateVariableGroup {
026
027 public TemplateVariableGroup(String label) {
028 _label = label;
029 }
030
031 public TemplateVariableDefinition addCollectionVariable(
032 String collectionLabel, Class<?> collectionClazz, String collectionName,
033 String itemLabel, Class<?> itemClazz, String itemName,
034 String itemAccessor) {
035
036 TemplateVariableDefinition itemTemplateVariableDefinition =
037 new TemplateVariableDefinition(
038 itemLabel, itemClazz, itemName, itemAccessor);
039
040 TemplateVariableDefinition collectionTemplateVariableDefinition =
041 new TemplateVariableDefinition(
042 collectionLabel, collectionClazz, collectionName,
043 itemTemplateVariableDefinition);
044
045 _templateVariableDefinitions.add(collectionTemplateVariableDefinition);
046
047 return collectionTemplateVariableDefinition;
048 }
049
050 public TemplateVariableDefinition addFieldVariable(
051 String label, Class<?> clazz, String variableName, String help,
052 String dataType, boolean repeatable,
053 TemplateVariableCodeHandler templateVariableCodeHandler) {
054
055 TemplateVariableDefinition templateVariableDefinition =
056 new TemplateVariableDefinition(
057 label, clazz, dataType, variableName, null, help, repeatable,
058 templateVariableCodeHandler);
059
060 _templateVariableDefinitions.add(templateVariableDefinition);
061
062 return templateVariableDefinition;
063 }
064
065 public void addServiceLocatorVariables(Class<?>... serviceClasses) {
066 for (Class<?> serviceClass : serviceClasses) {
067 String label = TextFormatter.format(
068 serviceClass.getSimpleName(), TextFormatter.I);
069
070 label = TextFormatter.format(label, TextFormatter.K);
071
072 TemplateVariableDefinition templateVariableDefinition =
073 new TemplateVariableDefinition(
074 label, serviceClass, "service-locator",
075 serviceClass.getCanonicalName(), null, label + "-help",
076 false, null);
077
078 _templateVariableDefinitions.add(templateVariableDefinition);
079 }
080 }
081
082 public TemplateVariableDefinition addVariable(
083 String label, Class<?> clazz, String name) {
084
085 return addVariable(label, clazz, name, null);
086 }
087
088 public TemplateVariableDefinition addVariable(
089 String label, Class<?> clazz, String name, String accessor) {
090
091 TemplateVariableDefinition templateVariableDefinition =
092 new TemplateVariableDefinition(label, clazz, name, accessor);
093
094 _templateVariableDefinitions.add(templateVariableDefinition);
095
096 return templateVariableDefinition;
097 }
098
099 public void empty() {
100 _templateVariableDefinitions.clear();
101 }
102
103 public String getLabel() {
104 return _label;
105 }
106
107 public Collection<TemplateVariableDefinition>
108 getTemplateVariableDefinitions() {
109
110 return _templateVariableDefinitions;
111 }
112
113 public boolean isAutocompleteEnabled() {
114 return _autocompleteEnabled;
115 }
116
117 public void setAutocompleteEnabled(boolean autocompleteEnabled) {
118 _autocompleteEnabled = autocompleteEnabled;
119 }
120
121 public void setLabel(String label) {
122 _label = label;
123 }
124
125 private boolean _autocompleteEnabled = true;
126 private String _label;
127 private Collection<TemplateVariableDefinition>
128 _templateVariableDefinitions =
129 new UniqueList<TemplateVariableDefinition>();
130
131 }