From: <pb...@fe...> - 2012-12-17 09:07:01
|
Author: pboy Date: 2012-12-17 09:06:50 +0000 (Mon, 17 Dec 2012) New Revision: 2400 Added: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultComponent.java Removed: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultPane.java Modified: releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.html releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.js Log: ImageSelectResultComponment: Fixed Javascript, added missing class; OpenCCM Xinha plugin: Preview works now, (on behalf of quasimodo) Added: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultComponent.java =================================================================== --- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultComponent.java (rev 0) +++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultComponent.java 2012-12-17 09:06:50 UTC (rev 2400) @@ -0,0 +1,86 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package com.arsdigita.cms.ui; + +import com.arsdigita.bebop.PageState; +import com.arsdigita.bebop.Resettable; +import com.arsdigita.bebop.SimpleContainer; +import com.arsdigita.cms.ImageAsset; +import com.arsdigita.cms.Service; +import com.arsdigita.web.URL; +import com.arsdigita.xml.Element; + +/** + * A component which will insert a javascript to the xml output with the + * image information for the OpenCCM plugin for Xinha editor. + * + * @author Sören Bernstein (quasimodo) <sbe...@ze...> + */ +public class ImageSelectResultComponent extends SimpleContainer implements Resettable { + + boolean m_valid = false; + ImageAsset m_image; + + public ImageSelectResultComponent() { + super(); + } + + /** + * Save image imformation + * + * @param iamge an {@link ImageAsset} + */ + public void setResult(final ImageAsset image/*, final String name, final BigDecimal id, final BigDecimal width, final BigDecimal height*/) { + m_image = image; + m_valid = (m_image != null); + } + + @Override + public void generateXML(PageState state, Element parent) { + + Element scriptElem = parent.newChildElement("script"); + scriptElem.addAttribute("type", "text/javascript"); + + StringBuilder script = new StringBuilder(1000); + + script.append("function selectImage(button) {"); + if (m_valid) { + + script.append("if(button.id == \"save\" ) {"); + + script.append("window.opener.openCCM.imageSet({"); + script.append(" src : \""); + script.append(URL.getDispatcherPath()); + script.append(Service.getImageURL(m_image)); + script.append("\", "); + script.append(" name : \""); + script.append(m_image.getDisplayName()); + script.append("\", "); + script.append(" width : \""); + script.append(m_image.getWidth()); + script.append("\", "); + script.append(" height : \""); + script.append(m_image.getHeight()); + script.append("\""); + script.append("});"); + script.append("}"); + + script.append("self.close();"); + + } + script.append("return false;"); + script.append("}"); + scriptElem.setText(script.toString()); + } + + /** + * Reset this component. + * + * @param state Page state + */ + public void reset(PageState state) { + setResult(null); + } +} Deleted: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultPane.java =================================================================== --- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultPane.java 2012-12-17 08:45:13 UTC (rev 2399) +++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultPane.java 2012-12-17 09:06:50 UTC (rev 2400) @@ -1,81 +0,0 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ -package com.arsdigita.cms.ui; - -import com.arsdigita.bebop.PageState; -import com.arsdigita.bebop.Resettable; -import com.arsdigita.bebop.SimpleContainer; -import com.arsdigita.xml.Element; -import java.math.BigDecimal; - -/** - * - * @author Sören Bernstein (quasimodo) <sbe...@ze...> - */ -public class ImageSelectResultPane extends SimpleContainer implements Resettable { - - boolean m_valid = false; - String m_name; - BigDecimal m_id; - BigDecimal m_width; - BigDecimal m_height; - - public ImageSelectResultPane() { - super(); - } - - public void setResult(final String name, final BigDecimal id, final BigDecimal width, final BigDecimal height) { - m_name = name; - m_id = id; - m_width = width; - m_height = height; - m_valid = true; - } - - @Override - public void generateXML(PageState state, Element parent) { - - Element scriptElem = parent.newChildElement("script"); - scriptElem.addAttribute("type", "text/javascript"); - - StringBuilder script = new StringBuilder(1000); - - script.append("function selectImage(button) {"); - if (m_valid) { - - script.append("if(button.id == \"save\" ) {"); - - script.append("window.opener.openCCM.imageSet({"); - script.append(" src : \"/ccm/cms-service/stream/image/?image_id="); - script.append(m_id); - script.append("\", "); - script.append(" name : \""); - script.append(m_name); - script.append("\", "); - script.append(" width : \""); - script.append(m_width); - script.append("\", "); - script.append(" height : \""); - script.append(m_height); - script.append("\""); - script.append("});"); - script.append("}"); - - script.append("self.close();"); - - } - script.append("return false;"); - script.append("}"); - scriptElem.setText(script.toString()); - } - - public void reset(PageState state) { - m_name = null; - m_id = null; - m_width = null; - m_height = null; - m_valid = false; - } -} Modified: releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.html =================================================================== --- releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.html 2012-12-17 08:45:13 UTC (rev 2399) +++ releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.html 2012-12-17 09:06:50 UTC (rev 2400) @@ -111,7 +111,7 @@ --> <input type="hidden" name="[src]" id="[src]"/> - <fieldset> + <fieldset id="[layout]"> <legend> <l10n>Layout</l10n> </legend> @@ -146,7 +146,7 @@ </div> </fieldset> - <fieldset> + <fieldset id="[dimensions]"> <legend> <l10n>Dimension</l10n> </legend> Modified: releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.js =================================================================== --- releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.js 2012-12-17 08:45:13 UTC (rev 2399) +++ releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.js 2012-12-17 09:06:50 UTC (rev 2400) @@ -87,14 +87,7 @@ // OnResize this.dialogs["images"].onresize = function () { - var newHeightForPreview = - parseInt(this.height, 10) -// - this.getElementById("h1").offsetHeight -// - this.getElementById("buttons").offsetHeight -// - this.getElementById("inputs").offsetHeight - - parseInt(this.rootElem.style.paddingBottom, 10); - this.getElementById("preview").style.height = ((newHeightForPreview > 0) ? newHeightForPreview : 0) + "px"; - this.getElementById("preview").style.width = "98%"; + self.resizePreview(this); }; this.imageDialogReady = true; @@ -299,19 +292,32 @@ OpenCCM.prototype.imageSet = function(imageData) { - var dialog = this.dialogs["images"]; + var dialog = this.dialogs["images"] dialog.getElementById(dialog.id["src"]).value = imageData.src; dialog.getElementById(dialog.id["ipreview"]).src = imageData.src; dialog.getElementById(dialog.id["width"]).value = imageData.width; dialog.getElementById(dialog.id["height"]).value = imageData.height; dialog.getElementById(dialog.id["name"]).value = imageData.name; dialog.getElementById(dialog.id["aspect"]).value = dialog.getElementById(dialog.id["width"]).value / dialog.getElementById(dialog.id["height"]).value; + + this.resizePreview(dialog); + if(imageData.src != "") { dialog.getElementById(dialog.id["preview"]).style.display = "block"; + } else { + dialog.getElementById(dialog.id["preview"]).style.display = "none"; } }; +OpenCCM.prototype.resizePreview = function(dialog) { + var aspect = dialog.getElementById(dialog.id["aspect"]).value; + var previewWidth = dialog.width - 22; + + dialog.getElementById(dialog.id["ipreview"]).style.height = Math.round(previewWidth / aspect) + "px"; + dialog.getElementById(dialog.id["ipreview"]).style.width = previewWidth + "px"; +}; + OpenCCM.prototype.calcWidth = function() { var dialog = this.dialogs["images"]; |