1 31 32 package org.opencms.workplace.demos.widget; 33 34 import org.opencms.jsp.CmsJspActionElement; 35 import org.opencms.main.CmsContextInfo; 36 import org.opencms.scheduler.CmsScheduledJobInfo; 37 import org.opencms.widgets.A_CmsWidget; 38 import org.opencms.widgets.CmsCheckboxWidget; 39 import org.opencms.widgets.CmsDownloadGalleryWidget; 40 import org.opencms.widgets.CmsHtmlGalleryWidget; 41 import org.opencms.widgets.CmsImageGalleryWidget; 42 import org.opencms.widgets.CmsInputWidget; 43 import org.opencms.widgets.CmsLinkGalleryWidget; 44 import org.opencms.widgets.CmsTableGalleryWidget; 45 import org.opencms.widgets.CmsTextareaWidget; 46 import org.opencms.widgets.CmsVfsFileWidget; 47 import org.opencms.widgets.I_CmsWidget; 48 import org.opencms.workplace.CmsWidgetDialog; 49 import org.opencms.workplace.CmsWidgetDialogParameter; 50 import org.opencms.workplace.CmsWorkplaceSettings; 51 52 import java.util.ArrayList ; 53 import java.util.Iterator ; 54 import java.util.List ; 55 56 import javax.servlet.http.HttpServletRequest ; 57 import javax.servlet.http.HttpServletResponse ; 58 import javax.servlet.jsp.PageContext ; 59 60 70 public class CmsAdminWidgetDemo7 extends CmsWidgetDialog { 71 72 73 public static final String DIALOG_TYPE = "widgetdemo4"; 74 75 76 CmsContextInfo m_contextInfo; 77 78 79 CmsScheduledJobInfo m_jobInfo; 80 81 86 public CmsAdminWidgetDemo7(CmsJspActionElement jsp) { 87 88 super(jsp); 89 } 90 91 98 public CmsAdminWidgetDemo7(PageContext context, HttpServletRequest req, HttpServletResponse res) { 99 100 this(new CmsJspActionElement(context, req, res)); 101 } 102 103 106 public void actionCommit() { 107 108 110 } 111 112 117 public String buildDemo7Form() { 118 119 StringBuffer result = new StringBuffer (1024); 120 121 try { 122 123 result.append(createDialogHtml()); 125 126 } catch (Throwable t) { 127 } 129 return result.toString(); 130 } 131 132 138 protected String createDialogRowHtml(CmsWidgetDialogParameter base) { 139 140 StringBuffer result = new StringBuffer (256); 141 142 List sequence = (List )getParameters().get(base.getName()); 143 int count = sequence.size(); 144 145 boolean addValue = false; 147 if (count < base.getMaxOccurs()) { 148 addValue = true; 149 } 150 boolean removeValue = false; 151 if (count > base.getMinOccurs()) { 152 removeValue = true; 153 } 154 155 boolean disabledElement = false; 157 if (count < 1) { 158 sequence = new ArrayList (); 160 sequence.add(base); 161 count = 1; 162 if (base.getMinOccurs() == 0) { 163 disabledElement = true; 164 } 165 } 166 167 for (int j = 0; j < count; j++) { 169 170 CmsWidgetDialogParameter p = (CmsWidgetDialogParameter)sequence.get(j); 172 I_CmsWidget widget = p.getWidget(); 173 174 result.append("<tr>"); 176 result.append("<td class=\"xmlLabel"); 177 if (disabledElement) { 178 result.append("Disabled"); 180 } 181 result.append("\">"); 182 result.append(keyDefault(A_CmsWidget.getLabelKey(p), p.getName())); 183 if (count > 1) { 184 result.append(" [").append(p.getIndex() + 1).append("]"); 185 } 186 result.append(": </td>"); 187 if (p.getIndex() == 0) { 188 result.append(widget.getHelpBubble(getCms(), this, p)); 190 } else { 191 result.append(dialogHorizontalSpacer(16)); 193 } 194 195 if (!disabledElement) { 197 result.append(widget.getDialogWidget(getCms(), this, p)); 199 } else { 200 result.append("<td class=\"xmlTdDisabled maxwidth\">"); 202 result.append(Messages.get().getBundle(getLocale()).key( 203 Messages.GUI_EDITOR_XMLCONTENT_OPTIONALELEMENT_0)); 204 result.append("</td>"); 205 } 206 207 result.append(dialogHorizontalSpacer(5)); 209 result.append("<td>"); 210 if (addValue || removeValue) { 211 result.append("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>"); 212 213 if (!addValue) { 214 result.append(dialogHorizontalSpacer(24)); 215 } else { 216 result.append("<td><table class=\"editorbuttonbackground\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>"); 217 result.append(buildAddElement(base.getName(), p.getIndex(), addValue)); 218 } 219 220 if (removeValue) { 221 if (!addValue) { 222 result.append("<td><table class=\"editorbuttonbackground\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>"); 223 } 224 result.append(buildRemoveElement(base.getName(), p.getIndex(), removeValue)); 225 } 226 227 result.append("</tr></table></td>"); 228 229 result.append("</tr></table>"); 230 } 231 result.append("</td>"); 232 result.append("</tr>\n"); 234 } 235 236 return result.toString(); 237 } 238 239 242 protected void defineWidgets() { 243 244 m_jobInfo = new CmsScheduledJobInfo(); 245 m_contextInfo = new CmsContextInfo(); 246 247 addWidget(new CmsWidgetDialogParameter("stringwidget", new CmsInputWidget(), 0, 5)); 248 addWidget(new CmsWidgetDialogParameter("textwidget", new CmsTextareaWidget(), 0, 5)); 249 addWidget(new CmsWidgetDialogParameter("boolwidget", new CmsCheckboxWidget())); 251 addWidget(new CmsWidgetDialogParameter("vfsfilewidget", new CmsVfsFileWidget(), 0, 5)); 252 addWidget(new CmsWidgetDialogParameter("imagegalwidget", new CmsImageGalleryWidget(), 0, 5)); 253 addWidget(new CmsWidgetDialogParameter("downgalwidget", new CmsDownloadGalleryWidget(), 0, 5)); 254 addWidget(new CmsWidgetDialogParameter("htmlgalwidget", new CmsHtmlGalleryWidget(), 0, 5)); 255 addWidget(new CmsWidgetDialogParameter("tablegalwidget", new CmsTableGalleryWidget(), 0, 5)); 256 addWidget(new CmsWidgetDialogParameter("extgalwidget", new CmsLinkGalleryWidget(), 0, 5)); 257 } 258 259 262 protected String [] getPageArray() { 263 264 return new String [] {"page1"}; 265 } 266 267 270 protected void initMessages() { 271 272 addMessages(Messages.get().getBundleName()); 274 addMessages(org.opencms.workplace.demos.Messages.get().getBundleName()); 276 super.initMessages(); 277 } 278 279 282 protected void initWorkplaceRequestValues(CmsWorkplaceSettings settings, HttpServletRequest request) { 283 284 setParamDialogtype(DIALOG_TYPE); 286 287 fillParamValues(request); 289 290 defineWidgets(); 292 fillWidgetValues(request); 293 294 if (DIALOG_SAVE.equals(getParamAction())) { 296 setAction(ACTION_SAVE); 298 List errors = commitWidgetValues(); 299 if (errors.size() > 0) { 300 Iterator i = errors.iterator(); 301 while (i.hasNext()) { 302 Exception e = (Exception )i.next(); 303 System.err.println(e.getMessage()); 304 if (e.getCause() != null) { 305 System.err.println("Cause: " + e.getCause().getMessage()); 306 } 307 } 308 setAction(ACTION_DEFAULT); 309 } 310 } else if (DIALOG_OK.equals(getParamAction())) { 311 setAction(ACTION_CANCEL); 313 } else if (DIALOG_CANCEL.equals(getParamAction())) { 314 setAction(ACTION_CANCEL); 316 } else if (EDITOR_ACTION_ELEMENT_ADD.equals(getParamAction())) { 317 setAction(ACTION_ELEMENT_ADD); 318 actionToggleElement(); 319 setAction(ACTION_DEFAULT); 320 } else if (EDITOR_ACTION_ELEMENT_REMOVE.equals(getParamAction())) { 321 setAction(ACTION_ELEMENT_REMOVE); 322 actionToggleElement(); 323 setAction(ACTION_DEFAULT); 324 } else { 325 setAction(ACTION_DEFAULT); 327 } 328 } 329 } 330 | Popular Tags |