1 31 32 package org.opencms.workplace.demos.widget; 33 34 import org.opencms.i18n.CmsMessages; 35 import org.opencms.jsp.CmsJspActionElement; 36 import org.opencms.main.CmsLog; 37 import org.opencms.widgets.A_CmsWidget; 38 import org.opencms.widgets.CmsCheckboxWidget; 39 import org.opencms.widgets.CmsComboWidget; 40 import org.opencms.widgets.CmsDownloadGalleryWidget; 41 import org.opencms.widgets.CmsHtmlGalleryWidget; 42 import org.opencms.widgets.CmsImageGalleryWidget; 43 import org.opencms.widgets.CmsInputWidget; 44 import org.opencms.widgets.CmsLinkGalleryWidget; 45 import org.opencms.widgets.CmsSelectWidgetOption; 46 import org.opencms.widgets.CmsTableGalleryWidget; 47 import org.opencms.widgets.CmsTextareaWidget; 48 import org.opencms.widgets.CmsVfsFileWidget; 49 import org.opencms.widgets.I_CmsWidget; 50 import org.opencms.workplace.CmsWidgetDialog; 51 import org.opencms.workplace.CmsWidgetDialogParameter; 52 import org.opencms.workplace.CmsWorkplaceSettings; 53 54 import java.util.ArrayList ; 55 import java.util.Iterator ; 56 import java.util.List ; 57 58 import javax.servlet.http.HttpServletRequest ; 59 import javax.servlet.http.HttpServletResponse ; 60 import javax.servlet.jsp.PageContext ; 61 62 import org.apache.commons.logging.Log; 63 64 74 public class CmsAdminWidgetDemo4 extends CmsWidgetDialog { 75 76 77 public static final String DIALOG_TYPE = "widgetdemo4"; 78 79 80 private static final Log LOG = CmsLog.getLog(CmsAdminWidgetDemo3.class); 81 82 87 public CmsAdminWidgetDemo4(CmsJspActionElement jsp) { 88 89 super(jsp); 90 } 91 92 99 public CmsAdminWidgetDemo4(PageContext context, HttpServletRequest req, HttpServletResponse res) { 100 101 this(new CmsJspActionElement(context, req, res)); 102 } 103 104 107 public void actionCommit() { 108 109 } 111 112 117 public String buildDemo4Form() { 118 119 StringBuffer result = new StringBuffer (1024); 120 121 try { 122 123 result.append("<table class=\"xmlTable\">\n"); 125 126 Iterator i = getWidgets().iterator(); 127 while (i.hasNext()) { 129 130 CmsWidgetDialogParameter base = (CmsWidgetDialogParameter)i.next(); 132 List sequence = (List )getParameters().get(base.getName()); 133 int count = sequence.size(); 134 135 boolean addValue = false; 137 if (count < base.getMaxOccurs()) { 138 addValue = true; 139 } 140 boolean removeValue = false; 141 if (count > base.getMinOccurs()) { 142 removeValue = true; 143 } 144 145 boolean disabledElement = false; 147 if (count < 1) { 148 sequence = new ArrayList (); 150 sequence.add(base); 151 count = 1; 152 if (base.getMinOccurs() == 0) { 153 disabledElement = true; 154 } 155 } 156 157 for (int j = 0; j < count; j++) { 159 160 CmsWidgetDialogParameter p = (CmsWidgetDialogParameter)sequence.get(j); 162 I_CmsWidget widget = p.getWidget(); 163 164 result.append("<tr>"); 166 result.append("<td class=\"xmlLabel"); 167 if (disabledElement) { 168 result.append("Disabled"); 170 } 171 result.append("\">"); 172 result.append(keyDefault(A_CmsWidget.getLabelKey(p), p.getName())); 173 if (count > 1) { 174 result.append(" [").append(p.getIndex() + 1).append("]"); 175 } 176 result.append(": </td>"); 177 if (p.getIndex() == 0) { 178 result.append(p.getWidget().getHelpBubble(getCms(), this, p)); 180 } else { 181 result.append(dialogHorizontalSpacer(16)); 183 } 184 185 if (!disabledElement) { 187 result.append(widget.getDialogWidget(getCms(), this, p)); 189 } else { 190 result.append("<td class=\"xmlTdDisabled maxwidth\">"); 192 result.append(Messages.get().getBundle(getLocale()).key( 193 Messages.GUI_EDITOR_XMLCONTENT_OPTIONALELEMENT_0)); 194 result.append("</td>"); 195 } 196 197 result.append(dialogHorizontalSpacer(5)); 199 result.append("<td>"); 200 if (addValue || removeValue) { 201 result.append("<table class=\"editorbuttonbackground\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>"); 202 result.append(buildAddElement(base.getName(), p.getIndex(), addValue)); 203 result.append(buildRemoveElement(base.getName(), p.getIndex(), removeValue)); 204 result.append("</tr></table>"); 205 } 206 result.append("</td>"); 207 result.append("</tr>\n"); 209 210 } 211 } 212 result.append("</table>\n"); 214 } catch (Throwable t) { 215 LOG.error(org.opencms.workplace.editors.Messages.get().getBundle().key( 216 org.opencms.workplace.editors.Messages.ERR_XML_EDITOR_0), t); 217 } 218 return result.toString(); 219 } 220 221 224 protected void defineWidgets() { 225 226 addWidget(new CmsWidgetDialogParameter("stringwidget", new CmsInputWidget(), 0, 5)); 227 addWidget(new CmsWidgetDialogParameter("textwidget", new CmsTextareaWidget(), 0, 5)); 228 addWidget(new CmsWidgetDialogParameter("boolwidget", new CmsCheckboxWidget())); 230 addWidget(new CmsWidgetDialogParameter("vfsfilewidget", new CmsVfsFileWidget(), 0, 5)); 231 addWidget(new CmsWidgetDialogParameter("imagegalwidget", new CmsImageGalleryWidget(), 0, 5)); 232 addWidget(new CmsWidgetDialogParameter("downgalwidget", new CmsDownloadGalleryWidget(), 0, 5)); 233 addWidget(new CmsWidgetDialogParameter("htmlgalwidget", new CmsHtmlGalleryWidget(), 0, 5)); 234 addWidget(new CmsWidgetDialogParameter("tablegalwidget", new CmsTableGalleryWidget(), 0, 5)); 235 addWidget(new CmsWidgetDialogParameter("extgalwidget", new CmsLinkGalleryWidget(), 0, 5)); 236 237 CmsMessages messages = Messages.get().getBundle(getLocale()); 238 239 String val1 = messages.key(Messages.GUI_WIDGETDEMO_DEMOVALUE_1, new Integer (1)); 240 List widgetOptions = new ArrayList (); 241 widgetOptions.add(new CmsSelectWidgetOption(val1, false, null, messages.key( 242 Messages.GUI_WIDGETDEMO_DEMOHELP_1, 243 val1))); 244 widgetOptions.add(new CmsSelectWidgetOption( 245 messages.key(Messages.GUI_WIDGETDEMO_DEMOVALUE_1, new Integer (2)), 246 true, 247 null, 248 messages.key(Messages.GUI_WIDGETDEMO_DEMOHELP_VAL2_0))); 249 widgetOptions.add(new CmsSelectWidgetOption(messages.key(Messages.GUI_WIDGETDEMO_DEMOVALUE_1, new Integer (2)))); 250 addWidget(new CmsWidgetDialogParameter("combowidget", new CmsComboWidget(widgetOptions), 0, 2)); 251 } 252 253 256 protected String [] getPageArray() { 257 258 return new String [] {"page1"}; 259 } 260 261 264 protected void initMessages() { 265 266 addMessages(Messages.get().getBundleName()); 268 addMessages(org.opencms.workplace.demos.Messages.get().getBundleName()); 270 super.initMessages(); 271 } 272 273 276 protected void initWorkplaceRequestValues(CmsWorkplaceSettings settings, HttpServletRequest request) { 277 278 setParamDialogtype(DIALOG_TYPE); 280 281 fillParamValues(request); 283 284 defineWidgets(); 286 fillWidgetValues(request); 287 288 if (DIALOG_SAVE.equals(getParamAction())) { 290 setAction(ACTION_SAVE); 292 } else if (DIALOG_OK.equals(getParamAction())) { 293 setAction(ACTION_CANCEL); 295 } else if (DIALOG_CANCEL.equals(getParamAction())) { 296 setAction(ACTION_CANCEL); 298 } else if (EDITOR_ACTION_ELEMENT_ADD.equals(getParamAction())) { 299 setAction(ACTION_ELEMENT_ADD); 300 actionToggleElement(); 301 setAction(ACTION_DEFAULT); 302 } else if (EDITOR_ACTION_ELEMENT_REMOVE.equals(getParamAction())) { 303 setAction(ACTION_ELEMENT_REMOVE); 304 actionToggleElement(); 305 setAction(ACTION_DEFAULT); 306 } else { 307 setAction(ACTION_DEFAULT); 309 } 310 } 311 } 312 | Popular Tags |