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.CmsImageGalleryWidget; 40 import org.opencms.widgets.CmsInputWidget; 41 import org.opencms.widgets.CmsTextareaWidget; 42 import org.opencms.widgets.CmsVfsFileWidget; 43 import org.opencms.widgets.I_CmsWidget; 44 import org.opencms.workplace.CmsWidgetDialog; 45 import org.opencms.workplace.CmsWidgetDialogParameter; 46 import org.opencms.workplace.CmsWorkplaceSettings; 47 48 import java.util.ArrayList ; 49 import java.util.Iterator ; 50 import java.util.List ; 51 52 import javax.servlet.http.HttpServletRequest ; 53 import javax.servlet.http.HttpServletResponse ; 54 import javax.servlet.jsp.PageContext ; 55 56 import org.apache.commons.logging.Log; 57 58 68 public class CmsAdminWidgetDemo3 extends CmsWidgetDialog { 69 70 71 public static final String DIALOG_TYPE = "widgetdemo3"; 72 73 74 private static final Log LOG = CmsLog.getLog(CmsAdminWidgetDemo3.class); 75 76 81 public CmsAdminWidgetDemo3(CmsJspActionElement jsp) { 82 83 super(jsp); 84 } 85 86 93 public CmsAdminWidgetDemo3(PageContext context, HttpServletRequest req, HttpServletResponse res) { 94 95 this(new CmsJspActionElement(context, req, res)); 96 } 97 98 101 public void actionCommit() { 102 103 105 } 106 107 112 public String buildDemo3Form() { 113 114 StringBuffer result = new StringBuffer (1024); 115 CmsMessages messages = Messages.get().getBundle(getLocale()); 116 117 try { 118 119 result.append("<table class=\"xmlTable\">\n"); 121 122 Iterator i = getWidgets().iterator(); 123 while (i.hasNext()) { 125 126 CmsWidgetDialogParameter base = (CmsWidgetDialogParameter)i.next(); 128 List sequence = (List )getParameters().get(base.getName()); 129 int count = sequence.size(); 130 131 if ((count < 1) && (base.getMinOccurs() > 0)) { 132 sequence = new ArrayList (); 134 sequence.add(base); 135 count = 1; 136 } 137 138 boolean addValue = false; 140 if (count < base.getMaxOccurs()) { 141 addValue = true; 142 } 143 boolean removeValue = false; 144 if (count > base.getMinOccurs()) { 145 removeValue = true; 146 } 147 148 boolean disabledElement = false; 149 150 for (int j = 0; j < count; j++) { 152 153 CmsWidgetDialogParameter p = (CmsWidgetDialogParameter)sequence.get(j); 155 I_CmsWidget widget = p.getWidget(); 156 157 result.append("<tr>"); 159 result.append("<td class=\"xmlLabel"); 160 if (disabledElement) { 161 result.append("Disabled"); 163 } 164 result.append("\">"); 165 result.append(keyDefault(A_CmsWidget.getLabelKey(p), p.getName())); 166 if (count > 1) { 167 result.append(" [").append(p.getIndex() + 1).append("]"); 168 } 169 result.append(": </td>"); 170 if (p.getIndex() == 0) { 171 result.append(p.getWidget().getHelpBubble(getCms(), this, p)); 173 } else { 174 result.append(buttonBarSpacer(16)); 176 } 177 178 if (!disabledElement) { 180 result.append(widget.getDialogWidget(getCms(), this, p)); 182 } else { 183 result.append("<td class=\"xmlTdDisabled maxwidth\">"); 185 result.append(messages.key(Messages.GUI_EDITOR_XMLCONTENT_OPTIONALELEMENT_0)); 186 result.append("</td>"); 187 } 188 189 result.append("<td style=\"vertical-align: top;\"><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>"); 191 result.append(buildAddElement(base.getName(), p.getIndex(), addValue)); 192 result.append(buildRemoveElement(base.getName(), p.getIndex(), removeValue)); 193 result.append("</tr></table></td>"); 194 result.append("</tr>\n"); 196 197 } 198 } 199 result.append("</table>\n"); 201 } catch (Throwable t) { 202 LOG.error(org.opencms.workplace.editors.Messages.get().getBundle().key( 203 org.opencms.workplace.editors.Messages.ERR_XML_EDITOR_0), t); 204 } 205 return result.toString(); 206 } 207 208 211 protected void defineWidgets() { 212 213 addWidget(new CmsWidgetDialogParameter("stringwidget", new CmsInputWidget())); 214 addWidget(new CmsWidgetDialogParameter("textwidget", new CmsTextareaWidget())); 215 addWidget(new CmsWidgetDialogParameter("boolwidget", new CmsCheckboxWidget())); 216 addWidget(new CmsWidgetDialogParameter("vfsfilewidget", new CmsVfsFileWidget())); 217 addWidget(new CmsWidgetDialogParameter("imagegalwidget", new CmsImageGalleryWidget())); 218 } 219 220 223 protected String [] getPageArray() { 224 225 return new String [] {"page1"}; 226 } 227 228 231 protected void initMessages() { 232 233 addMessages(Messages.get().getBundleName()); 235 addMessages(org.opencms.workplace.demos.Messages.get().getBundleName()); 237 super.initMessages(); 238 } 239 240 243 protected void initWorkplaceRequestValues(CmsWorkplaceSettings settings, HttpServletRequest request) { 244 245 setParamDialogtype(DIALOG_TYPE); 247 248 fillParamValues(request); 250 251 defineWidgets(); 253 fillWidgetValues(request); 254 255 if (DIALOG_SAVE.equals(getParamAction())) { 257 setAction(ACTION_SAVE); 259 } else if (DIALOG_OK.equals(getParamAction())) { 260 setAction(ACTION_CANCEL); 262 } else if (DIALOG_CANCEL.equals(getParamAction())) { 263 setAction(ACTION_CANCEL); 265 } else { 266 setAction(ACTION_DEFAULT); 268 } 269 } 270 } 271 | Popular Tags |