From: <die...@us...> - 2011-10-01 06:10:11
|
Revision: 3671 http://openutils.svn.sourceforge.net/openutils/?rev=3671&view=rev Author: diego_schivo Date: 2011-10-01 06:10:03 +0000 (Sat, 01 Oct 2011) Log Message: ----------- CONTROLS-41 Grid: add editcode column type Added Paths: ----------- trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/configuration/EditCodeGridColumnType.java trunk/openutils-mgnlcontrols/src/main/resources/mgnl-bootstrap/controls/config.modules.controls.gridColumnTypes.editcode.xml trunk/openutils-mgnlcontrols/src/main/resources/mgnl-resources/controls/grid-editcode.html trunk/openutils-mgnlcontrols/src/main/resources/mgnl-resources/controls/js/EditCodeField.js Added: trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/configuration/EditCodeGridColumnType.java =================================================================== --- trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/configuration/EditCodeGridColumnType.java (rev 0) +++ trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/configuration/EditCodeGridColumnType.java 2011-10-01 06:10:03 UTC (rev 3671) @@ -0,0 +1,36 @@ +package net.sourceforge.openutils.mgnlcontrols.configuration; + +import info.magnolia.cms.i18n.Messages; +import info.magnolia.context.MgnlContext; + +import java.util.Map; + + +/** + * @author diego + * @version $Id: $ + */ +public class EditCodeGridColumnType extends AbstractGridColumnType +{ + + /** + * {@inheritDoc} + */ + @Override + public String getHeadSnippet() + { + return "<script type=\"text/javascript\" src=\"" + + MgnlContext.getContextPath() + + "/.resources/controls/js/EditCodeField.js\"></script>"; + } + + /** + * {@inheritDoc} + */ + @Override + protected void addColumnData(Map<String, String> column, String propertyName, int colIndex, Map colMap, + Messages msgs) + { + column.put("editor", "new Ed(new EditCodeField())"); + } +} Added: trunk/openutils-mgnlcontrols/src/main/resources/mgnl-bootstrap/controls/config.modules.controls.gridColumnTypes.editcode.xml =================================================================== --- trunk/openutils-mgnlcontrols/src/main/resources/mgnl-bootstrap/controls/config.modules.controls.gridColumnTypes.editcode.xml (rev 0) +++ trunk/openutils-mgnlcontrols/src/main/resources/mgnl-bootstrap/controls/config.modules.controls.gridColumnTypes.editcode.xml 2011-10-01 06:10:03 UTC (rev 3671) @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<sv:node sv:name="editcode" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:contentNode</sv:value> + </sv:property> + <sv:property sv:name="jcr:mixinTypes" sv:type="Name" sv:multiple="true"> + <sv:value>mix:lockable</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>b8f0adfd-bc15-41bb-9203-d9ce78d2425c</sv:value> + </sv:property> + <sv:property sv:name="class" sv:type="String"> + <sv:value>net.sourceforge.openutils.mgnlcontrols.configuration.EditCodeGridColumnType</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activated" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="Date"> + <sv:value>2010-06-18T11:41:55.562+02:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2011-10-01T06:50:31.114+02:00</sv:value> + </sv:property> + </sv:node> +</sv:node> Added: trunk/openutils-mgnlcontrols/src/main/resources/mgnl-resources/controls/grid-editcode.html =================================================================== --- trunk/openutils-mgnlcontrols/src/main/resources/mgnl-resources/controls/grid-editcode.html (rev 0) +++ trunk/openutils-mgnlcontrols/src/main/resources/mgnl-resources/controls/grid-editcode.html 2011-10-01 06:10:03 UTC (rev 3671) @@ -0,0 +1,73 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html> + <head> + <title>Edit Code</title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <script type="text/javascript" src="../../.magnolia/pages/javascript.js"></script> + <script type="text/javascript" src="../../.resources/admin-js/dialogs/dialogs.js"></script> + <link rel="stylesheet" type="text/css" href="../../.resources/admin-css/admin-all.css" /> + + <script type="text/javascript" src="../../.resources/js/codemirror/codemirror-min.js"></script> + <style type="text/css"> + .CodeMirror-line-numbers { + background-color: #eee; + text-align: right; + font-family: monospace; + font-size: 10pt; + color: #aaa; + line-height: 16px; + padding: .4em; + width: 2.2em; + } + </style> + <script type="text/javascript"> +var editor; +MgnlDHTMLUtil.addOnLoad(function(){ + document.getElementById("grid").value = window.opener.getEditCodeValue().replace(/&/g, "&").replace(/"/g, "\"").replace(/</g, "<").replace(/>/g, ">").replace(/\\(.)/g, function(all, c) { + switch(c){ + case "\\": + return "\\"; + case "t": + return "\t"; + case "n": + return "\n"; + case "r": + return "\r"; + default: + return all; + } + }); + editor = CodeMirror.fromTextArea("grid", { + path: "../../.resources/js/codemirror/", + textWrapping: false, + height: "400px", + basefiles: ["codemirror-base.min.js"], + parserfile: ["allinone.js"], + stylesheet: ["../../.resources/js/codemirror/css/jscolors.css","../../.resources/js/codemirror/css/csscolors.css","../../.resources/js/codemirror/css/xmlcolors.css","../../.resources/js/codemirror/css/freemarkercolors.css","../../.resources/js/codemirror/css/groovycolors.css"], + lineNumbers:true, + initCallback:function(e){ + e.setParser('HTMLMixedParser'); + e.focus(); + } + }); +}); +function getValue() { + return editor.getCode().replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">").replace(/\\/g, "\\\\").replace(/\t/g, "\\t").replace(/\n/g, "\\n").replace(/\r/g, "\\r"); +} + </script> + </head> + <body style="padding:0;margin:0"> + <h1 style="background-color:#F0F2E6; color:#396101; font-size:11pt; border-bottom:1px solid #999;margin:0;padding:3px 10px">Edit Code</h1> + <div style="margin: 10px;"> + <div class="editorWrapper" style="border: 1px solid #999; padding: 3px;"> + <textarea class="mgnlDialogControlEdit" cols="30" rows="20" id="grid" name="grid" style="display: none;"></textarea> + </div> + </div> + <div class="mgnlDialogTabsetSaveBar"> + <span class="mgnlControlButton" onclick="window.opener.setEditCodeValue(getValue()); mgnlShiftPushButtonClick(this); window.opener.focus(); window.close();" onmouseout="mgnlShiftPushButtonOut(this);" + onmousedown="mgnlShiftPushButtonDown(this);"> + OK + </span> + </div> + </body> +</html> \ No newline at end of file Added: trunk/openutils-mgnlcontrols/src/main/resources/mgnl-resources/controls/js/EditCodeField.js =================================================================== --- trunk/openutils-mgnlcontrols/src/main/resources/mgnl-resources/controls/js/EditCodeField.js (rev 0) +++ trunk/openutils-mgnlcontrols/src/main/resources/mgnl-resources/controls/js/EditCodeField.js 2011-10-01 06:10:03 UTC (rev 3671) @@ -0,0 +1,14 @@ +var EditCodeField = Ext.extend(Ext.form.TriggerField, { + + triggerClass: 'x-form-editcode-trigger', + + onTriggerClick: function() { + if (this.disabled) return; + window.getEditCodeValue = this.getValue.createDelegate(this); + window.setEditCodeValue = function(value) { + this.setValue(value); + }.createDelegate(this); + mgnlOpenWindow('/.resources/controls/grid-editcode.html', 640, 480); + } + +}); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |