From 1b04d1effc740bd9b2861d11a3e8c4fe521caa28 Mon Sep 17 00:00:00 2001 From: Pablo Luna Date: Sun, 13 Mar 2011 16:24:26 +0000 Subject: [PATCH] Adding Google Chrome Framework for IE<9 --- .../controller/MindmapEditorController.java | 12 +++++-- .../com/wisemapping/filter/UserAgent.java | 11 +++++++ .../main/webapp/WEB-INF/defs/definitions.xml | 1 + wise-webapp/src/main/webapp/js/editor.js | 2 +- .../src/main/webapp/jsp/installCFG.jsp | 33 +++++++++++++++++++ .../src/main/webapp/jsp/mindmapEditor.jsp | 4 +++ 6 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 wise-webapp/src/main/webapp/jsp/installCFG.jsp diff --git a/wise-webapp/src/main/java/com/wisemapping/controller/MindmapEditorController.java b/wise-webapp/src/main/java/com/wisemapping/controller/MindmapEditorController.java index 7fea62c0..ea5ffe94 100644 --- a/wise-webapp/src/main/java/com/wisemapping/controller/MindmapEditorController.java +++ b/wise-webapp/src/main/java/com/wisemapping/controller/MindmapEditorController.java @@ -18,6 +18,7 @@ package com.wisemapping.controller; +import com.wisemapping.filter.UserAgent; import com.wisemapping.model.MindMap; import com.wisemapping.security.Utils; import org.springframework.web.servlet.ModelAndView; @@ -38,19 +39,26 @@ public class MindmapEditorController extends BaseMultiActionController { public ModelAndView open(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { + ModelAndView view; + + UserAgent userAgent = UserAgent.create(httpServletRequest); + if(userAgent.needsGCF()){ + view = new ModelAndView("installCFG"); + } + else{ final String mindmapId = httpServletRequest.getParameter(MINDMAP_ID_PARAMETER); final int mapId = Integer.parseInt(mindmapId); final MindMap mindmap = getMindmapService().getMindmapById(mapId); // Mark as try mode... - final ModelAndView view = new ModelAndView("mindmapEditor", "mindmap", mindmap); + view = new ModelAndView("mindmapEditor", "mindmap", mindmap); view.addObject("editorTryMode", false); final boolean showHelp = isWelcomeMap(mindmap); view.addObject("showHelp", showHelp); final String xmlMap = mindmap.getNativeXmlAsJsLiteral(); view.addObject(MAP_XML_PARAM, xmlMap); view.addObject("user", Utils.getUser()); - + } return view; } diff --git a/wise-webapp/src/main/java/com/wisemapping/filter/UserAgent.java b/wise-webapp/src/main/java/com/wisemapping/filter/UserAgent.java index cc6d0ede..30e58deb 100644 --- a/wise-webapp/src/main/java/com/wisemapping/filter/UserAgent.java +++ b/wise-webapp/src/main/java/com/wisemapping/filter/UserAgent.java @@ -30,6 +30,7 @@ public class UserAgent implements Serializable { private Product product; private OS os; private final org.apache.commons.logging.Log logger = LogFactory.getLog(UserAgent.class.getName()); + private boolean hasGCFInstalled = false; public static void main(final String argv[]) { UserAgent explorer = UserAgent.create("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"); @@ -65,6 +66,10 @@ public class UserAgent implements Serializable { return this.versionMajor > mayor || (mayor == this.versionMajor && this.versionVariation >= variation); } + public boolean isVersionLessThan(final int mayor) { + return this.versionMajor < mayor; + } + public int getVersionMajor() { return versionMajor; } @@ -127,6 +132,7 @@ public class UserAgent implements Serializable { // Explorer Parse ... this.product = Product.EXPLORER; + this.hasGCFInstalled = productDetails.indexOf("chromeframe")!=-1; } else if (userAgentHeader.indexOf("iCab") != -1 || userAgentHeader.indexOf("Safari") != -1) { // Safari: //Formats: Mozilla/5.0 (Windows; U; Windows NT 5.1; en) AppleWebKit/522.13.1 (KHTML, like Gecko) Version/3.0.2 Safari/522.13.1 @@ -334,4 +340,9 @@ public class UserAgent implements Serializable { return result; } + public boolean needsGCF(){ + final UserAgent.Product product = this.getProduct(); + return product == UserAgent.Product.EXPLORER && this.isVersionLessThan(9) && this.getOs() == UserAgent.OS.WINDOWS && !this.hasGCFInstalled; + } + } diff --git a/wise-webapp/src/main/webapp/WEB-INF/defs/definitions.xml b/wise-webapp/src/main/webapp/WEB-INF/defs/definitions.xml index 90e54b5d..a60aef69 100644 --- a/wise-webapp/src/main/webapp/WEB-INF/defs/definitions.xml +++ b/wise-webapp/src/main/webapp/WEB-INF/defs/definitions.xml @@ -15,6 +15,7 @@ + diff --git a/wise-webapp/src/main/webapp/js/editor.js b/wise-webapp/src/main/webapp/js/editor.js index fdcdb514..dcf74c52 100644 --- a/wise-webapp/src/main/webapp/js/editor.js +++ b/wise-webapp/src/main/webapp/js/editor.js @@ -23,7 +23,7 @@ function afterCoreLoading() // Uncomment for debug ... if (core.UserAgent.isVMLSupported()) { - $import("../js/mindplot.vml.js"); +// $import("../js/mindplot.vml.js"); } else { $import("../js/mindplot.svg.js"); diff --git a/wise-webapp/src/main/webapp/jsp/installCFG.jsp b/wise-webapp/src/main/webapp/jsp/installCFG.jsp new file mode 100644 index 00000000..28b6d644 --- /dev/null +++ b/wise-webapp/src/main/webapp/jsp/installCFG.jsp @@ -0,0 +1,33 @@ + + + + + + +
+ you need to install Google Chrome Frame. +
+
click here
+
+ +
+ +
+ + + \ No newline at end of file diff --git a/wise-webapp/src/main/webapp/jsp/mindmapEditor.jsp b/wise-webapp/src/main/webapp/jsp/mindmapEditor.jsp index 639da6e8..cd119b00 100644 --- a/wise-webapp/src/main/webapp/jsp/mindmapEditor.jsp +++ b/wise-webapp/src/main/webapp/jsp/mindmapEditor.jsp @@ -12,6 +12,10 @@ + + <spring:message code="SITE.TITLE"/> - ${mindmap.title}