From: <jum...@us...> - 2009-04-29 04:14:14
|
Revision: 898 http://zkforge.svn.sourceforge.net/zkforge/?rev=898&view=rev Author: jumperchen Date: 2009-04-29 04:14:05 +0000 (Wed, 29 Apr 2009) Log Message: ----------- add onSelection event and automatically grow the height of the component. Modified Paths: -------------- trunk/fckez/src/archive/META-INF/MANIFEST.MF trunk/fckez/src/archive/metainfo/zk/lang-addon.xml trunk/fckez/src/archive/web/js/fckez/fckez.js trunk/fckez/src/org/zkforge/fckez/FCKeditor.java trunk/fckez/src/org/zkforge/fckez/Version.java trunk/fckez/version Modified: trunk/fckez/src/archive/META-INF/MANIFEST.MF =================================================================== --- trunk/fckez/src/archive/META-INF/MANIFEST.MF 2009-04-15 07:27:43 UTC (rev 897) +++ trunk/fckez/src/archive/META-INF/MANIFEST.MF 2009-04-29 04:14:05 UTC (rev 898) @@ -1,8 +1,8 @@ Manifest-Version: 1.0 Specification-Title: FCKeditor Components for ZK -Specification-Version: 2.6.1_1 +Specification-Version: 2.6.1_2 Specification-Vendor: Potix Corporation Implementation-Title: org.zkforge.fckez Implementation-URL: http://www.zkforge.org/fckez -Implementation-Version: 2.6.1_1 +Implementation-Version: 2.6.1_2 Implementation-Vendor: Potix Corporation Modified: trunk/fckez/src/archive/metainfo/zk/lang-addon.xml =================================================================== --- trunk/fckez/src/archive/metainfo/zk/lang-addon.xml 2009-04-15 07:27:43 UTC (rev 897) +++ trunk/fckez/src/archive/metainfo/zk/lang-addon.xml 2009-04-29 04:14:05 UTC (rev 898) @@ -20,7 +20,7 @@ <version> <version-class>org.zkforge.fckez.Version</version-class> - <version-uid>2.6.1_1</version-uid> + <version-uid>2.6.1_2</version-uid> <zk-version>2.4.0</zk-version><!-- or later --> </version> @@ -32,7 +32,7 @@ browsers will reload them. Note: It defines only the version. It doesn't cause ZK to load it. --> - <javascript-module name="fckez.fckez" version="2.6.1_1"/> + <javascript-module name="fckez.fckez" version="2.6.1_2"/> <zscript> import org.zkforge.fckez.*; Modified: trunk/fckez/src/archive/web/js/fckez/fckez.js =================================================================== --- trunk/fckez/src/archive/web/js/fckez/fckez.js 2009-04-15 07:27:43 UTC (rev 897) +++ trunk/fckez/src/archive/web/js/fckez/fckez.js 2009-04-29 04:14:05 UTC (rev 898) @@ -22,6 +22,7 @@ fed.Events.AttachEvent("OnBlur", zkFCKed.onblur); fed.Events.AttachEvent("OnSave", zkFCKed.onsave); + fed.Events.AttachEvent("OnSelectionChange", zkFCKed.onselect); if (window.FCKed_OnComplete) window.FCKed_OnComplete(fed); } @@ -145,6 +146,57 @@ } return false }; +zkFCKed.onSize = function (cmp) { + cmp._hgh = null; //reset +} ; +zkFCKed.onselect = function (fed) { + var uuid = $uuid(fed.Name), + cmp = $e(uuid), + inner = $e(uuid + "!ed___Frame"), + selection = fed.EditorDocument.selection ? fed.EditorDocument.selection.createRange().text : fed.EditorWindow.getSelection().toString(); + + // ignore wrong selection for IE + if (zk.ie && cmp.zselection === String.fromCharCode(65279) || selection === String.fromCharCode(65279)) + return; + fed.zselection = selection; + if (zkau.asap(cmp, "onSelection")) { + if (cmp.zselection || fed.zselection) { + if (cmp.zselection != fed.zselection) { + cmp.zselection = fed.zselection; + zkau.send({uuid: cmp.id, cmd: "onSelection", + data: [0, 0, fed.zselection]}, + 100); + } + } + } + if (getZKAttr(cmp, "autohgh") == "true") { + var iframe = fed.EditingArea.IFrame, body = iframe.contentDocument ? iframe.contentDocument.body : iframe.contentWindow.document.body; + if (!cmp._hgh) + cmp._hgh = inner.offsetHeight - iframe.offsetHeight; + if (cmp._now && cmp._now > $now()) + return; + + cmp._now = $now() + 100; + if (body.scrollHeight + cmp._hgh > inner.offsetHeight) { + setTimeout(function() { + if (body.scrollHeight + cmp._hgh > inner.offsetHeight) + inner.style.height = body.scrollHeight + cmp._hgh + "px"; + + }, 100); + } else { + var hgh = $int(getZKAttr(cmp, "hgh")), + offHgh = zk.ie ? body.scrollHeight : body.offsetHeight; + + setTimeout(function() { + if (offHgh + cmp._hgh > hgh) + hgh = offHgh + cmp._hgh; + if (inner.style.height != hgh + "px") { + inner.style.height = hgh + "px"; + } + }, 100); + } + } +}; zkFCKed.onsave = function (fed, ahead) { var uuid = $uuid(fed.Name); var comp = $e(uuid); Modified: trunk/fckez/src/org/zkforge/fckez/FCKeditor.java =================================================================== --- trunk/fckez/src/org/zkforge/fckez/FCKeditor.java 2009-04-15 07:27:43 UTC (rev 897) +++ trunk/fckez/src/org/zkforge/fckez/FCKeditor.java 2009-04-29 04:14:05 UTC (rev 898) @@ -18,12 +18,12 @@ import org.zkoss.lang.Objects; +import org.zkoss.xml.HTMLs; import org.zkoss.zk.ui.AbstractComponent; import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.ext.client.Inputable; import org.zkoss.zk.au.Command; -import org.zkoss.zk.au.out.AuScript; import org.zkoss.zk.au.in.GenericCommand; /** @@ -47,6 +47,8 @@ /** Used by setTextByClient() to disable sending back the value */ private String _txtByClient; + private boolean _autoHeight; + /** * Returns the value in this FCKeditor. */ @@ -131,15 +133,39 @@ smartUpdate("height", height); } } + + /** + * Returns whether enable to automatically grow the height of the component or not. + * <p> Default: false. + * @since 2.6.1_2 + */ + public boolean isAutoHeight() { + return _autoHeight; + } /** + * Sets whether enable to automatically grow the height of the component or not. + * @param autoHeight + * @since 2.6.1_2 + */ + public void setAutoHeight(boolean autoHeight) { + if (_autoHeight != autoHeight) { + _autoHeight = autoHeight; + smartUpdate("z.autohgh", _autoHeight); + } + }; + + /** * Returns the HTML attributes for this tag. * <p> * Used only for component development, not for application developers. */ public String getOuterAttrs() { - return Events.isListened(this, "onChange", true) ? " z.onChange=\"true\"" - : null; + final StringBuffer sb = new StringBuffer(80); + appendAsapAttr(sb, Events.ON_CHANGE); + appendAsapAttr(sb, Events.ON_SELECTION); + if (_autoHeight) HTMLs.appendAttribute(sb, "z.autohgh", _autoHeight); + return sb.toString(); } /** @@ -195,12 +221,12 @@ /** * - * Used to catch "onSave" command from brower side. + * Used to catch "onSave" command from browser side. * <p> * Used only for component development, not for application developers. */ static { new GenericCommand("onSave", Command.IGNORE_OLD_EQUIV); - }; + } } Modified: trunk/fckez/src/org/zkforge/fckez/Version.java =================================================================== --- trunk/fckez/src/org/zkforge/fckez/Version.java 2009-04-15 07:27:43 UTC (rev 897) +++ trunk/fckez/src/org/zkforge/fckez/Version.java 2009-04-29 04:14:05 UTC (rev 898) @@ -25,5 +25,5 @@ public class Version { /** Returns the version UID. */ - public static final String UID = "2.6.1_1"; + public static final String UID = "2.6.1_2"; } Modified: trunk/fckez/version =================================================================== --- trunk/fckez/version 2009-04-15 07:27:43 UTC (rev 897) +++ trunk/fckez/version 2009-04-29 04:14:05 UTC (rev 898) @@ -1 +1 @@ -2.6.1_1 \ No newline at end of file +2.6.1_2 \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |