1 31 32 package org.opencms.workplace.galleries; 33 34 import org.opencms.file.CmsProperty; 35 import org.opencms.file.CmsPropertyDefinition; 36 import org.opencms.file.CmsResource; 37 import org.opencms.file.types.CmsResourceTypeImage; 38 import org.opencms.jsp.CmsJspActionElement; 39 import org.opencms.loader.CmsImageLoader; 40 import org.opencms.loader.CmsImageScaler; 41 import org.opencms.main.CmsException; 42 import org.opencms.main.CmsLog; 43 import org.opencms.util.CmsStringUtil; 44 45 import java.awt.Color ; 46 47 import javax.servlet.http.HttpServletRequest ; 48 import javax.servlet.http.HttpServletResponse ; 49 import javax.servlet.jsp.PageContext ; 50 51 61 public class CmsImageGallery extends A_CmsGallery { 62 63 64 public static final String URI_GALLERY = PATH_GALLERIES + "img_fs.jsp"; 65 66 67 private static final Integer ORDER_GALLERY = new Integer (10); 68 69 70 private CmsImageScaler m_defaultScaleParams; 71 72 75 public CmsImageGallery() { 76 77 } 79 80 85 public CmsImageGallery(CmsJspActionElement jsp) { 86 87 super(jsp); 88 } 89 90 97 public CmsImageGallery(PageContext context, HttpServletRequest req, HttpServletResponse res) { 98 99 this(new CmsJspActionElement(context, req, res)); 100 } 101 102 105 public String applyButton() { 106 107 String width = null; 108 String height = null; 109 if (MODE_VIEW.equals(getParamDialogMode())) { 110 return button(null, null, "apply_in.png", Messages.GUI_BUTTON_PASTE_0, 0); 112 } else { 113 String uri = getParamResourcePath(); 115 if (CmsStringUtil.isEmpty(getParamDialogMode())) { 116 uri = getJsp().link(uri); 118 if (CmsImageLoader.isEnabled()) { 119 try { 122 CmsProperty imageSize = getJsp().getCmsObject().readPropertyObject( 123 getParamResourcePath(), 124 CmsPropertyDefinition.PROPERTY_IMAGE_SIZE, 125 false); 126 if (!imageSize.isNullProperty()) { 127 CmsImageScaler scaler = new CmsImageScaler(imageSize.getValue()); 129 if (scaler.getWidth() > 0) { 131 width = String.valueOf(scaler.getWidth()); 132 } 133 if (scaler.getHeight() > 0) { 134 height = String.valueOf(scaler.getHeight()); 135 } 136 } 137 } catch (CmsException e) { 138 } 141 } 142 } 143 return button("javascript:pasteImage('" 144 + uri 145 + "',document.form.title.value, document.form.title.value," 146 + width 147 + "," 148 + height 149 + ");", null, "apply.png", Messages.GUI_BUTTON_PASTE_0, 0); 150 } 151 } 152 153 158 public String buildGalleryItemPreview() { 159 160 StringBuffer html = new StringBuffer (16); 161 try { 162 if (CmsStringUtil.isNotEmpty(getParamResourcePath())) { 163 CmsResource res = getCms().readResource(getParamResourcePath()); 164 if (res != null) { 165 html.append("<img alt=\"\" SRC=\""); 166 html.append(getJsp().link(getParamResourcePath())); 167 html.append("\" border=\"0\">"); 168 } 169 } 170 } catch (CmsException e) { 171 CmsLog.getLog(CmsImageGallery.class).error(e); 173 } 174 175 return html.toString(); 176 } 177 178 181 public int getGalleryItemsTypeId() { 182 183 return CmsResourceTypeImage.getStaticTypeId(); 184 } 185 186 191 public Integer getOrder() { 192 193 return ORDER_GALLERY; 194 } 195 196 199 public String getPreviewBodyStyle() { 200 201 return ""; 202 } 203 204 207 public void init() { 208 209 if (CmsImageLoader.isEnabled()) { 210 m_defaultScaleParams = new CmsImageScaler(getGalleryTypeParams()); 211 if (!m_defaultScaleParams.isValid()) { 212 m_defaultScaleParams.setType(0); 214 m_defaultScaleParams.setPosition(0); 215 m_defaultScaleParams.setWidth(120); 216 m_defaultScaleParams.setHeight(90); 217 m_defaultScaleParams.setColor(new Color (221, 221, 221)); 218 } 219 } else { 220 m_defaultScaleParams = null; 221 } 222 } 223 224 227 public String previewButton() { 228 229 return ""; 230 } 231 232 235 public String targetSelectBox() { 236 237 return ""; 238 } 239 240 243 protected String buildGalleryItemListCustomEndCols(CmsResource res, String tdClass) { 244 245 if (!CmsImageLoader.isEnabled()) { 246 247 return super.buildGalleryItemListCustomEndCols(res, tdClass); 249 } 250 251 StringBuffer result = new StringBuffer (128); 252 CmsImageScaler scaler = new CmsImageScaler(getCms(), res); 253 254 result.append("\t<td class=\""); 255 result.append(tdClass); 256 result.append("\" style=\"text-align: right;\">"); 257 if (scaler.isValid()) { 258 result.append(scaler.getWidth()); 260 result.append("*"); 261 result.append(scaler.getHeight()); 262 result.append(" "); 263 result.append(key(Messages.GUI_LABEL_PIXELS_0)); 264 result.append(" / "); 265 } 266 result.append(res.getLength() / 1024); 267 result.append(" "); 268 result.append(key(Messages.GUI_LABEL_KILOBYTES_0)); 269 result.append("</td>\n"); 270 271 return result.toString(); 272 } 273 274 277 protected String buildGalleryItemListCustomStartCols(CmsResource res, String tdClass) { 278 279 if (!CmsImageLoader.isEnabled()) { 280 281 return super.buildGalleryItemListCustomStartCols(res, tdClass); 283 } 284 285 CmsProperty sizeProp = CmsProperty.getNullProperty(); 286 try { 287 sizeProp = getCms().readPropertyObject(res, CmsPropertyDefinition.PROPERTY_IMAGE_SIZE, false); 288 } catch (Exception e) { 289 } 291 if (sizeProp.isNullProperty()) { 292 return super.buildGalleryItemListCustomStartCols(res, tdClass); 294 } 295 296 StringBuffer result = new StringBuffer (128); 297 298 if ((m_defaultScaleParams != null) && m_defaultScaleParams.isValid()) { 299 String resPath = getCms().getSitePath(res); 300 301 result.append("\t<td class=\""); 302 result.append(tdClass); 303 result.append("\">"); 304 result.append("<a class=\""); 305 result.append(tdClass); 306 result.append("\" HREF=\"javascript: preview(\'"); 307 result.append(resPath); 308 result.append("\');\" title=\""); 309 result.append(key(Messages.GUI_BUTTON_PREVIEW_0)); 310 result.append("\">"); 311 result.append("<img SRC=\""); 312 result.append(getJsp().link(resPath)); 313 result.append(m_defaultScaleParams.toRequestParam()); 314 result.append("\" border=\"0\" width=\""); 315 result.append(m_defaultScaleParams.getWidth()); 316 result.append("\" height=\""); 317 result.append(m_defaultScaleParams.getHeight()); 318 result.append("\"></a></td>\n"); 319 result.append("</td>\n"); 320 } else { 321 result.append(super.buildGalleryItemListCustomStartCols(res, tdClass)); 322 } 323 324 return result.toString(); 325 } 326 } | Popular Tags |