r930 - in trunk/wikitty-publication/src/main: java/org/nuiton/wikitty/publication java/org/nuiton/wikitty/publication/action webapp/WEB-INF/jsp
Author: mfortun Date: 2011-05-30 17:37:13 +0200 (Mon, 30 May 2011) New Revision: 930 Url: http://nuiton.org/repositories/revision/wikitty/930 Log: * Improve codeMirror integration inside edit page Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/CodeMirrorWrapper.java trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/SelectOption.java Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/CodeMirrorWrapper.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/CodeMirrorWrapper.java (rev 0) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/CodeMirrorWrapper.java 2011-05-30 15:37:13 UTC (rev 930) @@ -0,0 +1,82 @@ +package org.nuiton.wikitty.publication; + +import java.util.LinkedList; +import java.util.List; + +/** + * class used as a collection of option and param to fill edit page with + * -codemirror css and script and supported langages + * + * @author mfortun + * + */ +public class CodeMirrorWrapper { + + static public List<String> codeMirrorCssImport = new LinkedList<String>(); + static public List<String> codeMirrorScriptImport = new LinkedList<String>(); + + static public List<SelectOption> langages = new LinkedList<SelectOption>(); + + static { + // TODO mfortun-2011-05-30 maybe change this + + codeMirrorScriptImport + .add("/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/javascript/javascript.js"); + codeMirrorScriptImport + .add("/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/clike/clike.js"); + codeMirrorScriptImport + .add("/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/css/css.js"); + codeMirrorScriptImport + .add("/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/diff/diff.js"); + codeMirrorScriptImport + .add("/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/haskell/haskell.js"); + codeMirrorScriptImport + .add("/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/htmlmixed/htmlmixed.js"); + codeMirrorScriptImport + .add("/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/php/php.js"); + codeMirrorScriptImport + .add("/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/stex/stex.js"); + + codeMirrorScriptImport + .add("/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/xml/xml.js"); + + codeMirrorCssImport + .add("/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/diff/diff.css"); + codeMirrorCssImport + .add("/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/stex/stex.css"); + codeMirrorCssImport + .add("/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/haskell/haskell.css"); + codeMirrorCssImport + .add("/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/css/css.css"); + codeMirrorCssImport + .add("/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/clike/clike.css"); + codeMirrorCssImport + .add("/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/javascript/javascript.css"); + codeMirrorCssImport + .add("/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/xml/xml.css"); + + langages.add(new SelectOption("clike", "clike", false)); + langages.add(new SelectOption("javascript", "javascript", false)); + langages.add(new SelectOption("css", "css", false)); + langages.add(new SelectOption("diff", "diff", false)); + langages.add(new SelectOption("haskell", "haskell", false)); + langages.add(new SelectOption("htmlmixed", "htmlmixed", false)); + langages.add(new SelectOption("stex", "stex", false)); + langages.add(new SelectOption("php", "php", false)); + langages.add(new SelectOption("xml", "xml", false)); + } + + static public String modeForMime(String mime) { + // TODO mfortun-2011-05-30 really implements this + return "javascript"; + } + + public List<SelectOption> getLangages() { + return langages; + } + + public void setLangages(List<SelectOption> langages) { + this.langages = langages; + } + +} Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/CodeMirrorWrapper.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/SelectOption.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/SelectOption.java (rev 0) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/SelectOption.java 2011-05-30 15:37:13 UTC (rev 930) @@ -0,0 +1,40 @@ +package org.nuiton.wikitty.publication; + +public class SelectOption { + + protected String value; + protected String desc; + + protected boolean isSelected; + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public boolean isSelected() { + return isSelected; + } + + public void setSelected(boolean isSelected) { + this.isSelected = isSelected; + } + + public SelectOption(String value, String desc, boolean isSelected) { + this.value = value; + this.desc = desc; + this.isSelected = isSelected; + } + +} Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/SelectOption.java ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java 2011-05-30 12:53:38 UTC (rev 929) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java 2011-05-30 15:37:13 UTC (rev 930) @@ -8,7 +8,6 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; - import org.nuiton.util.FileUtil; import org.nuiton.util.StringUtil; import org.nuiton.wikitty.WikittyProxy; @@ -20,6 +19,8 @@ import org.nuiton.wikitty.entities.FieldType.TYPE; import org.nuiton.wikitty.publication.entities.WikittyPubData; import org.nuiton.wikitty.publication.entities.WikittyPubDataHelper; +import org.nuiton.wikitty.publication.entities.WikittyPubText; +import org.nuiton.wikitty.publication.entities.WikittyPubTextHelper; import org.nuiton.wikitty.search.Criteria; import org.nuiton.wikitty.search.operators.Element; @@ -34,7 +35,7 @@ protected Wikitty wikitty; - private HashMap<String, Object> wikittyFieldMap; + protected HashMap<String, Object> wikittyFieldMap; protected WikittyProxy proxy; @@ -45,10 +46,12 @@ protected File uploadedFile; - private String uploadFileName; + protected String uploadFileName; - private String uploadContentType; + protected String uploadContentType; + + static public PublicationActionEdit getAction() { return (PublicationActionEdit) ActionContext.getContext().get( CONTEXT_ACTION_KEY); @@ -56,7 +59,7 @@ @Override public String execute() throws Exception { - + proxy = getWikittyPublicationProxy(); Map<String, Object> param = ActionContext.getContext().getParameters(); this.formatArgs(param); @@ -161,8 +164,6 @@ if (wikitty.hasField(ext, fieldName)) { if (!"true".equals(getArgument("isNull-" + key, "false"))) { - - System.out.println("not null + " + key); value = field.getValue(); } @@ -320,4 +321,14 @@ .put(ARGS_KEY, Element.ELT_ID + ":" + id); } + + public String getMimeType (){ + if (wikitty.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)){ + return WikittyPubTextHelper.getMimeType(wikitty); + } + return ""; + } + + + } Modified: trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp =================================================================== --- trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp 2011-05-30 12:53:38 UTC (rev 929) +++ trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp 2011-05-30 15:37:13 UTC (rev 930) @@ -28,6 +28,8 @@ Author : poussin --%> +<%@page import="org.nuiton.wikitty.publication.CodeMirrorWrapper"%> +<%@page import="org.nuiton.wikitty.publication.SelectOption"%> <%@page import="org.nuiton.wikitty.publication.action.PublicationActionEdit"%> <%@page import="org.apache.commons.lang.StringEscapeUtils"%> <%@page import="org.nuiton.wikitty.entities.FieldType"%> @@ -44,27 +46,27 @@ Wikitty wikitty = action.getWikitty(); - - - - - %> <script src="/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/lib/codemirror.js"></script> <link rel="stylesheet" href="/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/lib/codemirror.css"> -<script src="/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/javascript/javascript.js"></script> -<link rel="stylesheet" href="/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/javascript/javascript.css"> -<script src="/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/clike/clike.js"></script> -<link rel="stylesheet" href="/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/clike/clike.css"> - <script src="/wikitty-publication/js/codemirror-ui/js/codemirror-ui.js" type="text/javascript"></script> <link rel="stylesheet" href="/wikitty-publication/js/codemirror-ui/css/codemirror-ui.css" type="text/css" media="screen" /> +<% for (String uri : CodeMirrorWrapper.codeMirrorCssImport) { %> +<link rel="stylesheet" href="<%=uri%>"> +<% } %> +<% for (String uri : CodeMirrorWrapper.codeMirrorScriptImport) { %> +<script src="<%=uri%>"></script> +<% } %> + +<script src="/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/xml/xml.js"></script> +<link rel="stylesheet" href="/wikitty-publication/js/codemirror-ui/lib/CodeMirror-2.0/mode/xml/xml.css"> + <style type="text/css"> .CodeMirror { border-top: 1px solid black; @@ -77,8 +79,18 @@ <pre><%=StringEscapeUtils.escapeHtml(String.valueOf(wikitty))%></pre> +<script type="text/javascript"> +<!-- +var uiCodeMiror=""; +function changeModeBy(select){ + uiCodeMiror.mirror.setOption("mode",select.value); + uiCodeMiror.reindent(); +} +//--> +</script> + <form class="edit" action="<%=action.getPostUrl()%>" method="post" enctype="multipart/form-data" > <input type="hidden" name="id" value="<%=wikitty.getId()%>" /> <input type="hidden" name="version" value="<%=wikitty.getVersion()%>" /> @@ -156,26 +168,28 @@ %> +<select name="langageSelection" onchange="changeModeBy(this)"> +<% for(SelectOption otpion : CodeMirrorWrapper.langages) { %> +<option value="<%=otpion.getValue()%>" selected="<%=otpion.isSelected()%>"><%=otpion.getDesc()%></option> +<% } %> +</select> + <textarea id="<%=extName%>.<%=fieldName%>" cols="80" rows="20" name="<%=extName%>.<%=fieldName%>"><%=valueString%></textarea> <script type="text/javascript"> <!-- var textarea = document.getElementById("<%=extName%>.<%=fieldName%>"); + var codeMirrorOptions = { lineNumbers: true, - matchBrackets: true + matchBrackets: true, + mode: "<%=CodeMirrorWrapper.modeForMime(action.getMimeType())%>" }; var uiOptions = { path : '/wikitty-publication/js/codemirror-ui/js/', searchMode : 'popup' }; -var uiCodeMiror = new CodeMirrorUI(textarea,uiOptions,codeMirrorOptions); - -uiCodeMiror.mirror.setOption("mode","text/x-csrc"); - - - - +uiCodeMiror = new CodeMirrorUI(textarea,uiOptions,codeMirrorOptions); //--> </script> <%
participants (1)
-
mfortun@users.nuiton.org