adjusted legal info, Saiku integration frame
diff --git a/org.eclipse.osbp.utils.ui.feature/feature.xml b/org.eclipse.osbp.utils.ui.feature/feature.xml
index 6999342..5bb540e 100644
--- a/org.eclipse.osbp.utils.ui.feature/feature.xml
+++ b/org.eclipse.osbp.utils.ui.feature/feature.xml
@@ -17,7 +17,7 @@
         label="%featureName"
         version="0.9.0.qualifier"
         provider-name="%providerName"
-		plugin="org.eclipse.osbp.utils.ui">
+		plugin="org.eclipse.osbp.license">
         
     <description>
         %description
diff --git a/org.eclipse.osbp.utils.ui/.classpath b/org.eclipse.osbp.utils.ui/.classpath
index 30a5795..43b9862 100644
--- a/org.eclipse.osbp.utils.ui/.classpath
+++ b/org.eclipse.osbp.utils.ui/.classpath
@@ -2,8 +2,6 @@
 <classpath>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src/"/>
-	<classpathentry kind="src" path="src-gen/"/>
-	<classpathentry kind="src" path="test/"/>
+	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="target/classes"/>
 </classpath>
diff --git a/org.eclipse.osbp.utils.ui/META-INF/MANIFEST.MF b/org.eclipse.osbp.utils.ui/META-INF/MANIFEST.MF
index 39e7f6b..bdc6bd3 100644
--- a/org.eclipse.osbp.utils.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.utils.ui/META-INF/MANIFEST.MF
@@ -8,7 +8,8 @@
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.osbp.utils.vaadin;version="0.9.0",
  org.eclipse.osbp.utils.vaadin.beeper;version="0.9.0",
- org.eclipse.osbp.utils.vaadin.bpmn;version="0.9.0"
+ org.eclipse.osbp.utils.vaadin.bpmn;version="0.9.0",
+ org.eclipse.osbp.utils.vaadin.saiku
 Require-Bundle: com.vaadin.server;bundle-version="[7.7.6,7.8.0)",
  com.vaadin.shared;bundle-version="[7.7.6,7.8.0)",
  com.vaadin.client;bundle-version="[7.7.6,7.8.0)",
@@ -31,13 +32,12 @@
  org.eclipse.osbp.vaadin.emf.api;bundle-version="0.9.0",
  org.eclipse.osbp.vaadin.emf;bundle-version="0.9.0",
  org.eclipse.osbp.dsl.entity.xtext;bundle-version="0.9.0",
- javax.persistence;bundle-version="2.1.0"
+ javax.persistence;bundle-version="2.1.0",
+ mondrian.osgi
 Bundle-Vendor: Eclipse OSBP
 Import-Package: com.google.gwt.dev.json;version="2.7.0",
  com.vaadin.ui,
  javax.inject;version="1.0.0",
- mondrian.olap;version="3.5.0",
- mondrian.rolap;version="3.5.0",
  org.eclipse.core.runtime;version="3.5.0",
  org.eclipse.e4.core.contexts,
  org.eclipse.e4.core.di.annotations,
diff --git a/org.eclipse.osbp.utils.ui/resources/index.html b/org.eclipse.osbp.utils.ui/resources/index.html
new file mode 100644
index 0000000..3d6c877
--- /dev/null
+++ b/org.eclipse.osbp.utils.ui/resources/index.html
@@ -0,0 +1,1006 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta http-equiv="cache-control" content="max-age=0" />
+    <meta http-equiv="cache-control" content="no-cache" />
+    <meta http-equiv="expires" content="0" />
+    <meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
+    <meta http-equiv="pragma" content="no-cache" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+
+    <title>Saiku - Next Generation Open Source Analytics</title>
+
+    <!--[if lt IE 9]><script type="text/javascript" src="js/svgweb/svg.js" data-path="js/svgweb/"></script><![endif]-->
+    <meta name="svg.render.forceflash" content="true">
+
+    <link rel="stylesheet" href="css/saiku/src/bootstrap.css"/>
+    <link rel="stylesheet" href="js/tourist/tourist.css" type="text/css">
+    <link rel="stylesheet" href="js/intro/introjs.min.css">
+    <link rel="stylesheet" href="js/qtip/jquery.qtip.min.css" type="text/css"/>
+
+    <!--  jQuery CSS -->
+    <link rel="stylesheet" href="css/jquery/spectrum.css" type="text/css" media="all"/>
+    <link rel="stylesheet" href="css/jquery/jquery-ui.css" type="text/css" media="all" />
+    <link rel="stylesheet" href="css/saiku/src/giveitsomestyle.css" type="text/css" media="screen"/>
+    <link rel="stylesheet" href="js/fancybox/jquery.fancybox.css" type="text/css" media="screen" />
+    <link rel="stylesheet" href="js/jquery/jquery.contextMenu.css" type="text/css" media="screen" />
+
+    <!-- Saiku CSS -->
+    <link rel="stylesheet" href="css/saiku/src/styles.css" type="text/css">
+    <link rel="stylesheet" href="css/saiku/src/saiku.table.css" type="text/css">
+    <link rel="stylesheet" href="css/saiku/src/saiku.dropzone.css" type="text/css">
+
+    <!-- CHOSEN CSS PLACEHOLDER-->
+
+    <link rel="shortcut icon" href="favicon.ico">
+
+</head>
+<body>
+<div id="header" class="hide" style="display:none"></div>
+
+<div class="processing_container"></div>
+<div class="processing">
+    <div class="processing_inner">
+        <span class="saiku_logo">&nbsp;</span>
+        <div class="processing_content">
+            <span class="processing_image">&nbsp;</span>
+            <span class="processing_message i18n">Loading...</span>
+        </div>
+    </div>
+</div>
+
+<!--
+<script type="text/javascript" src="//www.google.com/jsapi" defer></script>
+<script src="//maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true&libraries=visualization&sensor=false&callback=initialize" defer></script>
+<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.3/leaflet.css">
+<script src="//cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.3/leaflet.js"></script>
+-->
+
+<!--MAP PLACEHOLDER-->
+
+<!--  jQuery 1.7.2 , jQuery UI 1.8.14-->
+<script src="js/jquery/jquery.min.js" type="text/javascript"></script>
+<script src="js/jquery/jquery-ui.min.js" type="text/javascript"></script>
+<script src="js/jquery/jquery.contextMenu.js" type="text/javascript"></script>
+<script src="js/jquery/jquery-mobile-touch.js" type="text/javascript"></script>
+<script type="text/javascript" src="js/jquery/jquery.blockUI.js"></script>
+<script type="text/javascript" src="js/jquery/spectrum.js"></script>
+<script type="text/javascript" src="js/js-yaml/js-yaml.min.js"></script>
+<script type="text/javascript" src="js/fancybox/jquery.fancybox.pack.js"></script>
+
+
+<!-- CHOSEN PLACEHOLDER -->
+<script type="text/javascript">
+
+    // Replace the normal jQuery getScript function with one that supports
+    // debugging and which references the script files as external resources
+    // rather than inline.
+    jQuery.extend({
+        getScript: function(url, callback) {
+            var head = document.getElementsByTagName("head")[0];
+            var script = document.createElement("script");
+            script.src = url;
+
+            // Handle Script loading
+            {
+                var done = false;
+
+                // Attach handlers for all browsers
+                script.onload = script.onreadystatechange = function(){
+                    if ( !done && (!this.readyState ||
+                            this.readyState == "loaded" || this.readyState == "complete") ) {
+                        done = true;
+                       if (callback)
+                            callback();
+
+                        // Handle memory leak in IE
+                        script.onload = script.onreadystatechange = null;
+                    }
+                };
+            }
+
+            head.appendChild(script);
+
+            // We handle everything using the script element injection
+            return undefined;
+        }
+    });
+</script>
+<!-- Backbone.js and deps -->
+
+<script type="text/javascript" src="js/backbone/underscore.js"></script>
+<script type="text/javascript" src="js/backbone/json2.js"></script>
+<script type="text/javascript" src="js/backbone/backbone.js"></script>
+<script src="js/backbone/backbone-model-file-upload.js" ></script>
+<script src="js/notify/notify.min.js"></script>
+<script src="js/fitvids/jquery.fitvids.js"></script>
+<script src="js/notify/styles/bootstrap/notify-bootstrap.js"></script>
+<script src="js/qtip/imagesloaded.pkg.min.js"></script>
+<script src="js/qtip/jquery.qtip.min.js"></script>
+<script type="text/javascript" src="js/tourist/tourist.js"></script>
+<script type="text/javascript" src="js/ozpIwc/ozpIwc-client.min.js"></script>
+<script type="text/javascript" src="js/intro/intro.min.js"></script>
+<!-- Loggly error logging service -->
+<script type="text/javascript" src="js/logger/janky.post.min.js"></script>
+<script type="text/javascript" src="js/logger/Logger.js" defer></script>
+
+<!-- D3 Library -->
+<script src="js/d3/d3.v3.min.js"></script>
+
+<!-- Saiku Project -->
+<script type="text/javascript" src="js/saiku/Settings.js"></script>
+
+<!-- CUT HERE -->
+<script type="text/javascript" src="js/saiku/models/SaikuOlapQuery.js"></script>
+<script type="text/javascript" src="js/saiku/models/DateFilter.js"></script>
+<script type="text/javascript" src="js/saiku/models/Level.js"></script>
+<script type="text/javascript" src="js/saiku/render/SaikuRenderer.js"></script>
+<script type="text/javascript" src="js/saiku/render/SaikuTableRenderer.js"></script>
+<script type="text/javascript" src="js/saiku/render/SaikuChartRenderer.js"></script>
+<script type="text/javascript" src="js/saiku/models/Dimension.js"></script>
+<script type="text/javascript" src="js/saiku/views/DimensionList.js"></script>
+<script type="text/javascript" src="js/saiku/views/Toolbar.js"></script>
+<script type="text/javascript" src="js/saiku/views/Upgrade.js"></script>
+<script type="text/javascript" src="js/saiku/views/Modal.js"></script>
+<script type="text/javascript" src="js/saiku/views/MDXModal.js"></script>
+<script type="text/javascript" src="js/saiku/views/SelectionsModal.js"></script>
+<script type="text/javascript" src="js/saiku/views/DrillthroughModal.js"></script>
+<script type="text/javascript" src="js/saiku/views/DrillAcrossModal.js"></script>
+<script type="text/javascript" src="js/saiku/views/PermissionsModal.js"></script>
+<script type="text/javascript" src="js/saiku/views/DemoLoginForm.js"></script>
+<script type="text/javascript" src="js/saiku/views/LoginForm.js"></script>
+<script type="text/javascript" src="js/saiku/views/AboutModal.js"></script>
+<script type="text/javascript" src="js/saiku/views/OverwriteModal.js"></script>
+<script type="text/javascript" src="js/saiku/views/AddFolderModal.js"></script>
+<script type="text/javascript" src="js/saiku/views/FilterModal.js"></script>
+<script type="text/javascript" src="js/saiku/views/CustomFilterModal.js"></script>
+<script type="text/javascript" src="js/saiku/views/CalculatedMemberModal.js"></script>
+<script type="text/javascript" src="js/saiku/views/ParentMemberSelectorModal.js"></script>
+<script type="text/javascript" src="js/saiku/views/DataSourcesModal.js"></script>
+<script type="text/javascript" src="js/saiku/views/QueryToolbar.js"></script>
+<script type="text/javascript" src="js/saiku/views/WorkspaceToolbar.js"></script>
+<script type="text/javascript" src="js/saiku/views/WorkspaceDropZone.js"></script>
+<script type="text/javascript" src="js/saiku/views/Table.js"></script>
+<script type="text/javascript" src="js/saiku/views/Workspace.js"></script>
+<script type="text/javascript" src="js/saiku/views/DeleteRepositoryObject.js"></script>
+<script type="text/javascript" src="js/saiku/views/MoveRepositoryObject.js"></script>
+<script type="text/javascript" src="js/saiku/views/OpenQuery.js"></script>
+<script type="text/javascript" src="js/saiku/views/SaveQuery.js"></script>
+<script type="text/javascript" src="js/saiku/views/OpenDialog.js"></script>
+<script type="text/javascript" src="js/saiku/views/TabSet.js"></script>
+<script type="text/javascript" src="js/saiku/views/Tab.js"></script>
+<script type="text/javascript" src="js/saiku/models/Repository.js"></script>
+<script type="text/javascript" src="js/saiku/models/Result.js"></script>
+<script type="text/javascript" src="js/saiku/models/QueryAction.js"></script>
+<script type="text/javascript" src="js/saiku/models/QueryScenario.js"></script>
+<script type="text/javascript" src="js/saiku/models/Query.js"></script>
+<script type="text/javascript" src="js/saiku/views/SessionErrorModal.js"></script>
+<script type="text/javascript" src="js/saiku/views/WarningModal.js"></script>
+<script type="text/javascript" src="js/saiku/views/ReportTitlesModal.js"></script>
+<script type="text/javascript" src="js/saiku/views/GrowthModal.js"></script>
+<script type="text/javascript" src="js/saiku/views/FormatAsPercentageModal.js"></script>
+<script type="text/javascript" src="js/saiku/models/Session.js"></script>
+<script type="text/javascript" src="js/saiku/views/SplashScreen.js"></script>
+<script type="text/javascript" src="js/saiku/models/SessionWorkspace.js"></script>
+<script type="text/javascript" src="js/saiku/models/Member.js"></script>
+<script type="text/javascript" src="js/saiku/models/Plugin.js"></script>
+<script type="text/javascript" src="js/saiku/models/Settings.js"></script>
+<script type="text/javascript" src="js/saiku/models/License.js"></script>
+<script type="text/javascript" src="js/saiku/models/DataSources.js"></script>
+<script type="text/javascript" src="js/saiku/Saiku.js"></script>
+<script type="text/javascript" src="js/saiku/views/DateFilterModal.js"></script>
+<script type="text/javascript" src="js/saiku/adapters/SaikuServer.js"></script>
+<script type="text/javascript" src="js/saiku/routers/QueryRouter.js"></script>
+<script type="text/javascript" src="js/saiku/views/Tour.js"></script>
+
+<!-- END CUT HERE -->
+
+<!-- Saiku Minified - remove all of the above and uncomment the following -->
+<!--
+<script type="text/javascript" src="saiku.min.js"></script>
+-->
+
+<!--
+<script src="js/leaflet/leaflet-heat.js"></script>
+-->
+
+<script type="text/javascript" src="js/saiku/plugins/I18n/plugin.js"></script>
+<script type="text/javascript" src="js/saiku/plugins/Intro/plugin.js"></script>
+<!-- Saiku plugins -->
+
+
+<!-- FILTER PLUGIN disabled by default
+<script type="text/javascript" src="js/saiku/plugins/filters/filterconfig.js" defer></script>
+<script type="text/javascript" src="js/saiku/plugins/filters/plugin_disabled.js" defer></script>
+-->
+
+<!-- CCC dependencies -->
+<script type="text/javascript" src="js/saiku/plugins/CCC_Chart2/jquery.tipsy.js"></script>
+<link type="text/css" href="js/saiku/plugins/CCC_Chart2/tipsy.css" rel="stylesheet" media="screen" />
+<script type="text/javascript" src="js/saiku/plugins/CCC_Chart2/protovis.js"></script>
+<script type="text/javascript" src="js/saiku/plugins/CCC_Chart2/protovis-msie.js"></script>
+<script type="text/javascript" src="js/saiku/plugins/CCC_Chart2/tipsy.js"></script>
+<script type="text/javascript" src="js/saiku/plugins/CCC_Chart2/def.js"></script>
+<script type="text/javascript" src="js/saiku/plugins/CCC_Chart2/cdo.js"></script>
+<script type="text/javascript" src="js/saiku/plugins/CCC_Chart2/pvc.js"></script>
+
+<!-- CCC dependencies -->
+<!--script type="text/javascript" src="js/saiku/plugins/CCC_Chart/def.js"></script>
+<script type="text/javascript" src="js/saiku/plugins/CCC_Chart/protovis.js"></script>
+<script type="text/javascript" src="js/saiku/plugins/CCC_Chart/protovis-msie.js"></script>
+<script type="text/javascript" src="js/saiku/plugins/CCC_Chart/cdo.js"></script>
+<script type="text/javascript" src="js/saiku/plugins/CCC_Chart/pvc.js"></script>
+
+<script type="text/javascript" src="js/saiku/plugins/CCC_Chart/jquery.tipsy.js"></script>
+<script type="text/javascript" src="js/saiku/plugins/CCC_Chart/tipsy.js"></script>
+<link type="text/css" href="js/saiku/plugins/CCC_Chart/tipsy.css" rel="stylesheet"/-->
+
+<!--<script type="text/javascript" src="../js/saiku/render/SaikuRenderer.js"></script>
+<script type="text/javascript" src="../js/saiku/render/SaikuTableRenderer.js"></script>
+<script type="text/javascript" src="../js/saiku/render/SaikuChartRenderer.js"></script>
+<script type="text/javascript" src="../js/saiku/embed/SaikuEmbed.js"></script>-->
+
+<script type="text/javascript" src="js/saiku/embed/SaikuEmbed.js"></script>
+<!-- ACE Editor for MDX -->
+<script type="text/javascript" src="js/ace/ace.js" charset="utf-8"></script>
+
+
+
+<!-- Templates -->
+<script type="text/x-jquery-tmpl" id="template-toolbar">
+            <ul>
+                    <li><a id='new_query' href='#new_query' title='New query' class='new_tab i18n sprite'></a></li>
+                    <li class='separator'>&nbsp;</li>
+                    <li><a id='open_query' href='#open_query' title='Open query' class='open_query i18n sprite'></a></li>
+                    <% if (!data.buttons) { %>
+                    <li class='separator'>&nbsp;</li>
+                    <li><a id='logout' href='#logout' title='Logout' class='logout i18n sprite'></a></li>
+
+                    <li class='separator'>&nbsp;</li>
+                    <li><a id='about' href='#about' title='About' class='about i18n sprite'></a></li>
+                    <li class='separator'>&nbsp;</li>
+                    <li><a id='help_icon' href='#help' target='_blank' title='Help' class='help i18n sprite'></a></li>
+
+                    <li class='separator'>&nbsp;</li>
+                    <% } %>
+<!--                    <li><a id='issue_tracker' href='#issue_tracker' title='Issue Tracker' class='bug i18n sprite'></a></li>-->
+            </ul>
+
+            <%= data.logo %>
+        </script>
+
+<script type="text/x-jquery-tmpl" id="template-upgrade">
+            <div class="upgradeheader">
+                You are using Saiku Community Edition, please consider <a target="_blank" href="http://saiku.meteorite.bi/support">purchasing support, or entering a sponsorship agreement with us</a> to support development. <a href="mailto:info@meteorite.bi?subject=Supporting Saiku">info@meteorite.bi</a><span class="close_tab sprite"></span>
+            </div>
+        </script>
+<script type="text/x-jquery-tmpl" id="template-logincount">
+            <div class="upgradeheader">
+
+            </div>
+        </script>
+<script type="text/x-jquery-tmpl" id="template-cubes">
+            <div >
+            <select  id="cubesselect" class="form-control cubes ui-widget">
+                <option value="" class="i18n">Select a cube</option>
+                <% _.each(connections, function(connection) { %>
+                    <% _.each(connection.catalogs, function(catalog) { %>
+                        <% _.each(catalog.schemas, function(schema) {
+                            if (schema.cubes.length > 0) { %>
+                                <optgroup label="<%= ( schema.name != "" ? schema.name : catalog.name) +'  (' + connection.name + ')' %>">
+                                <% _.each(schema.cubes, function(cube) { %>
+                                    <% if (typeof cube["visible"] == "undefined" || cube["visible"]) { %>
+                                        <option value="<%= connection.name %>/<%= catalog.name %>/<%=  ((schema.name == '' || schema.name == null) ? 'null' : schema.name)  %>/<%= encodeURIComponent(cube.name) %>"><%= ((cube.caption == '' || cube.caption == null) ? cube.name : cube.caption) %></option>
+                                    <% } %>
+                                <% }); %>
+                                </optgroup>
+                            <% } %>
+                        <% }); %>
+                    <% }); %>
+                <% }); %>
+            </select>
+            </div>
+        </script>
+
+<script type="text/x-jquery-tmpl" id="template-dimensions">
+        <ul>
+        <% _.each(dimensions, function(dimension) { %>
+        <% if (dimension.name != 'Measures' && (typeof dimension["visible"] == "undefined" || dimension["visible"])) { %>
+            <li class='parent_dimension'>
+                <span class="root collapsed sprite"></span>
+                <a class="folder_collapsed sprite" href="#" title="<%= dimension.description ? dimension.description : dimension.caption %>"><%= dimension.caption %></a>
+                <ul>
+                <% _.each(dimension.hierarchies, function(hierarchy) { %>
+                    <% if (typeof hierarchy["visible"] == "undefined" || hierarchy["visible"]) { %>
+                        <% if ((Settings.DIMENSION_HIDE_HIERARCHY === 'NONE' && dimension.hierarchies.length > 1)
+                        		|| (Settings.DIMENSION_HIDE_HIERARCHY === 'SINGLE_LEVEL' && ((Settings.DIMENSION_SHOW_ALL && hierarchy["levels"].length > 3) || (!Settings.DIMENSION_SHOW_ALL && hierarchy["levels"].length > 2)))) { %>
+                            <li class="hierarchy hide">
+                                <a class="dimension" title="<%= hierarchy.description ? hierarchy.description : hierarchy.caption %>" href="#"  hierarchy="<%= hierarchy.name %>"><%= hierarchy.caption %></a>
+                            </li>
+                        <% } %>
+                        <ul class="d_hierarchy" hierarchy="<%= hierarchy.uniqueName %>" hierarchycaption="<%= hierarchy.caption %>">
+                        <div class="hgroup treehidden"><%= hierarchy.caption %></div>
+                        <% _.each(hierarchy.levels, function(level) { %>
+                            <% if ((Settings.DIMENSION_SHOW_ALL || level.name != "(All)") && (typeof level["visible"] == "undefined" || level["visible"])) { %>
+                                <li class="hide d_level">
+                                <a title="<%= (Settings.DIMENSION_HIDE_HIERARCHY === 'SINGLE_LEVEL' || Settings.DIMENSION_HIDE_HIERARCHY === 'ALL') && dimension.hierarchies.length > 1? hierarchy.caption + ' - ' : '' %><%= level.description ? level.description : level.caption %>" level="<%= level.name %>" hierarchy="<%= hierarchy.uniqueName %>"
+                                    class="level" href="#<%= encodeURIComponent(hierarchy.uniqueName) %>/<%= encodeURIComponent(level.name) %>"><%= level.caption %></a>
+                                </li>
+                            <% } %>
+                        <% }); %>
+                        </ul>
+                    <% } %>
+                <% }); %>
+                </ul>
+        <% } %>
+        <% }); %>
+        </ul>
+        </script>
+
+<script type="text/x-jquery-tmpl" id="template-measures">
+                <ul>
+                <% var g = _.groupBy(measures, 'measureGroup'); %>
+                <% _.each(g, function(group, key) { %>
+                    <% if(key != "null") { %>
+                    <li class='parent_dimension'>
+                    <span class="root <%= Settings.MEASURE_GROUPS_COLLAPSED ? 'collapsed' : 'expand' %> sprite"></span>
+                      <a class="folder_expand sprite" href="#" title="<%= key %>"><%= key %></a>
+                        <ul>
+                        <% _.each(group, function(measure) { %>
+                        <% if (typeof measure["visible"] == "undefined" || measure["visible"]) { %>
+                        <li class="d_measure <%= Settings.MEASURE_GROUPS_COLLAPSED ? 'hide' : '' %>"><a title="<%= measure.description ? measure.description : measure.uniqueName %>"
+                                measure="<%= measure.name %>" type="EXACT"
+                            class="measure" href="#Measures/member/<%= encodeURIComponent(measure.uniqueName) %>"><%= measure.caption %></a>
+                        </li>
+
+                        <% } %>
+                        <% }); %>
+                        </ul>
+                        </li>
+                    <% } else {%>
+                    <li class='parent_dimension'>
+                    <span class="root <%= Settings.MEASURE_GROUPS_COLLAPSED ? 'collapsed' : 'expand' %> sprite"></span>
+                      <a class="folder_expand sprite" href="#" title=" "> </a>
+                        <ul>
+                    <% _.each(group, function(measure) { %>
+
+                        <li class="d_measure <%= Settings.MEASURE_GROUPS_COLLAPSED ? 'hide' : '' %>"><a title="<%= measure.description ? measure.description : measure.uniqueName %>"
+                                measure="<%= measure.name %>" type="EXACT"
+                            class="measure" href="#Measures/member/<%= encodeURIComponent(measure.uniqueName) %>"><%= measure.caption %></a>
+                        </li>
+
+                        <% }); %>
+                      </ul>
+                      </li>
+                    <% } %>
+                <% }); %>
+                </ul>
+        </script>
+<script type="text/x-jquery-tmpl" id="template-calculated-measures">
+        <ul>
+            <li>
+                <span class="root expand sprite"></span>
+                   <a href="#" title="Calculated Measures" class="folder_expand sprite i18n">Calculated Measures</a>
+                <% if (measures) { %>
+                <ul>
+                <% _.each(measures, function(measure) { %>
+
+                        <li class="d_measure"><a title="<%= measure.name %>"
+                                measure="<%= measure.name %>" type="CALCULATED"
+                            class="measure" href="#Measures/member/<%= encodeURIComponent(measure.uniqueName) %>"><%= measure.name %></a>
+                        </li>
+
+                <% }); %>
+                <% } %>
+                </ul>
+            </li>
+        </ul>
+        </script>
+<script type="text/x-jquery-tmpl" id="template-calculated-member">
+    <% if (member) { %>
+        <li class="hide d_level dimension-level-calcmember">
+            <a title="<%= member.name %>" level="<%= member.name %>" hierarchy="<%= member.hierarchyName %>" uniquename="<%= member.uniqueName %>" class="level level-calcmember" href="#<%= encodeURIComponent(member.hierarchyName) %>/<%= encodeURIComponent(member.name) %>" style="color: #1e7145;"><%= member.name %></a>
+        </li>
+    <% } %>
+</script>
+<script type="text/x-jquery-tmpl" id="template-workspace">
+        <div class="workspace">
+            <div class="workspace_inner">
+                <div class="query_toolbar"></div>
+                <div class="workspace_toolbar"></div>
+                <div class="upgrade"></div>
+                <div class="parameter_input" />
+                <div class="workspace_editor hide">
+                    <div id='mdx_editor' class='mdx_input hide'>
+                    </div>
+                    <span class="editor_info hide"></span>
+
+                </div>
+                <div id="query_processing" class="query_processing" style="display:none;"><span class="processing_image">&nbsp;&nbsp;</span> <span class="i18n">Running query...</span>  [&nbsp;<a class="cancel i18n" href="#cancel">Cancel</a>&nbsp;]</div>
+
+                <div class="workspace_results_info" align="right" />
+                <div class="workspace_results_titles" align="center"/>
+                <div class="workspace_results">
+
+                </div>
+            </div>
+        </div>
+        <div class="sidebar">
+            <div>
+                <h3 class="top i18n">Cubes</h3>
+                <div class="refresh_cubes_nav">
+                    <a id="refresh_icon" href="#refresh_cubes"
+                        class="i18n button refresh_cubes"
+                        title="Refresh Cubes (Clear Cache)"></a>
+                </div>
+                <div class="admin_console_nav"></div>
+            </div>
+            <div class="sidebar_inner">
+                <%= cube_navigation %>
+            </div>
+            <div class="metadata_attribute_wrapper">
+                <%=  _.template($("#template-attributes").html())() %>
+            </div>
+
+        </div>
+
+        <div class="sidebar_separator"></div>
+        <div class="clear"></div>
+        </script>
+
+<script type="text/x-jquery-tmpl" id="template-attributes">
+
+        <div class="metadata_attribute_container">
+            <h3 class="measure_caption"><span class="i18n">Measures</span><a class="button addMeasure i18n" style="display:none;">Add</a></h3>
+            <div class="sidebar_inner measure_tree">
+                <% if (typeof cube != "undefined" && cube && cube.dimensions) { %>
+                    <%= _.template($("#template-measures").html(), { measures: cube.measures }) %>
+                <% } else { %>
+                    <span class="i18n loading hide">Loading...</span>
+                <% } %>
+                <div class="calculated_measures" style="display:none;"></div>
+                <div class="calculated_members" style="display:none;"></div>
+            </div>
+            <h3 class="i18n dimension_header">Dimensions</h3>
+            <div class="sidebar_inner dimension_tree">
+                <% if (typeof cube != "undefined" && cube && cube.dimensions) { %>
+                    <%=  _.template($("#template-dimensions").html(), { dimensions: cube.dimensions }) %>
+                <% } else { %>
+                    <span class="i18n loading hide">Loading...</span>
+                <% } %>
+
+            </div>
+        </div>
+
+        </script>
+
+
+<script type="text/x-jquery-tmpl" id="template-workspace-dropzones">
+        <div class="workspace_fields disabled">
+            <div class="fields_list details_fields" title="DETAILS">
+                <div class="fields_list_header measure_fields disabled_toolbar"><span class="i18n">Measures</span><span class="dropdown"></span></div>
+                <div class="fields_list_body details">
+                    <ul class="connectable"></ul>
+                </div>
+                <span class="clear_axis i18n hide" title="Clear Axis"></span>
+                <div class="clear"></div>
+            </div>
+            <div class="fields_list columns_fields" title="COLUMNS">
+                <div class="fields_list_header axis_fields_header disabled_toolbar"><span class="i18n">Columns</span><span class="dropdown"></span></div>
+                <div class="fields_list_body columns axis_fields">
+                    <ul class="connectable"></ul>
+                </div>
+                <span class="clear_axis i18n hide" title="Clear Axis"></span>
+                <div class="clear"></div>
+            </div>
+            <div class="fields_list rows_fields" title="ROWS">
+                <div class="fields_list_header axis_fields_header disabled_toolbar"><span class="i18n">Rows</span><span class="dropdown"></span></div>
+                <div class="fields_list_body rows axis_fields">
+                    <ul class="connectable"></ul>
+                </div>
+                <span class="clear_axis i18n hide" title="Clear Axis"></span>
+                <div class="clear"></div>
+            </div>
+            <div class="fields_list filter_fields" title="FILTER">
+                <div class="fields_list_header axis_fields_header disabled_toolbar"><span class="i18n">Filter</span><span class="dropdown"></span></div>
+                <div class="fields_list_body filter axis_fields">
+                    <ul class="connectable"></ul>
+                </div>
+                <span class="clear_axis i18n hide" title="Clear Axis"></span>
+                <div class="clear"></div>
+            </div>
+        </div>
+        </script>
+
+<script type="text/x-jquery-tmpl" id="template-workspace-toolbar">
+        <ul>
+            <li><a href="#open_query"
+                class="i18n open button sprite"
+                title="Open query" id="new_icon"></a></li>
+            <li><a href="#save_query" id="save_icon"
+                class="i18n save button disabled_toolbar sprite"
+                title="Save query"></a></li>
+            <li class="seperator"><a href="#new_query"
+                class="i18n new disabled_toolbar button sprite"
+                title="Reset query"></a></li>
+            <li><a href="#edit_query"
+                class="i18n edit button on disabled_toolbar sprite"
+                title="Edit query" id="edit_icon"></a></li>
+            <li class="seperator"><a href="#run_query" id="run_icon"
+                class="i18n run button disabled_toolbar sprite"
+                title="Run query"></a></li>
+            <li><a href="#automatic_execution" id="automatic_icon"
+                class="i18n auto button disabled_toolbar sprite"
+                title="Automatic execution"></a></li>
+<!--
+            <li><a href="#toggle_fields"
+                class="i18n toggle_fields button sprite"
+                title="Toggle fields"></a></li>
+            <li><a href="#toggle_sidebar"
+                class="i18n toggle_sidebar button sprite"
+                title="Toggle sidebar"></a></li>
+-->
+            <li class="seperator"><a href="#group_parents" id="group_icon"
+                class="i18n group_parents button disabled_toolbar sprite"
+                title="Hide Parents"></a></li>
+            <li><a href="#non_empty" id="non_empty_icon"
+                class="i18n non_empty button disabled_toolbar sprite"
+                title="Non-empty"></a></li>
+            <li><a href="#swap_axis" id="swap_axis_icon"
+                class="i18n swap_axis button disabled_toolbar sprite"
+                title="Swap axis"></a></li>
+            <li><a href="#show_mdx" id="show_mdx_icon"
+                class="i18n mdx button disabled_toolbar sprite"
+                title="Show MDX"></a></li>
+            <!-- <li><a href="#explain_query"
+                class="i18n explain_query button disabled_toolbar sprite"
+                title="Show Explain Plan"></a></li> -->
+            <li class="seperator"><a href="#zoom_mode" id="zoom_mode_icon"
+                class="i18n table_mode zoom_mode button disabled_toolbar"
+                title="Zoom into table"></a></li>
+            <li class="seperator"><a href="#query_scenario"
+                class="i18n table_mode query_scenario button disabled_toolbar sprite"
+                title="Query Scenario"></a></li>
+            <% if (Settings.REPORT_TITLES) { %>
+                <li class="seperator">
+                    <a href="#workspace_report_titles"
+                      class="i18n workspace_report_titles button disabled_toolbar sprite"
+                      title="Report Titles"></a>
+                </li>
+            <% } %>
+	<li class="seperator"><a href="#drillacross" id="drillacross_icon"
+class="i18n table_mode drillacross button disabled_toolbar sprite"
+title="Drill across on cell"></a></li>
+            <li class="seperator"><a href="#drillthrough" id="drillthrough_icon"
+                class="i18n table_mode drillthrough button disabled_toolbar sprite"
+                title="Drill through on cell"></a></li>
+            <li><a href="#export_drillthrough" id="export_drillthrough_icon"
+                class="i18n table_mode drillthrough_export button disabled_toolbar sprite"
+                title="Export Drill-Through on cell to CSV"></a></li>
+            <li class="seperator"><a href="#export_xls" id="export_xls_icon"
+                class="i18n export_xls button disabled_toolbar sprite"
+                title="Export XLS"></a></li>
+            <li><a href="#export_csv" id="export_csv_icon"
+                class="i18n export_csv button disabled_toolbar sprite"
+                title="Export CSV"></a></li>
+            <li><a href="#export_pdf" id="export_pdf_icon"
+                class="i18n export_pdf button disabled_toolbar sprite"
+                title="EXPERIMENTAL: Export PDF"></a></li>
+            <li><a href="#switch_to_mdx" id="switch_to_mdx_icon"
+                class="i18n switch_to_mdx button disabled_toolbar"
+                title="Switch to MDX Mode"></a></li>
+            <% if (Settings.BIPLUGIN5 == true) { %>
+            <li class="seperator"><a href="#about"
+                class="i18n about button sprite"
+                title="About"></a></li>
+             <% } %>
+        </ul>
+
+        </script>
+
+<script type="text/x-jquery-tmpl" id="template-query-toolbar">
+        <div class="query_toolbar_vertical">
+        <ul class="renderer">
+            <li><a href="#switch_render_button" id="table_icon"
+                class="i18n render_table button disabled_toolbar on"
+                title="Table Mode"></a></li>
+            <li><a href="#switch_render_button" id="chart_icon"
+                class="i18n render_chart button disabled_toolbar"
+                title="Chart Mode"></a></li>
+        </ul>
+        <ul class='options table hide'>
+                        <!--<li class="seperator_vertical label"><a class="i18n label disabled_toolbar">Options:</a></li> -->
+
+            <li class="seperator_vertical"><a href="#spark_bar" id="spark_bar_icon"
+                class="i18n spark_bar tablebutton button disabled_toolbar"
+                title="Spark Bar"></a></li>
+            <li><a href="#spark_line" id="spark_line_icon"
+                class="i18n spark_line button disabled_toolbar"
+                title="Spark Line"></a></li>
+           <!-- <li><a href="#asdf"
+                class="i18n button disabled_toolbar"
+                title="Spark Lines">Show Totals</a></li> -->
+
+        </ul>
+        <ul class='options chart hide'>
+            <li class="seperator_vertical"><a href ="#export_button"
+                class="disabled_toolbar export_button menu button"><span class="i18n">Export</span><span class="dropdown"></span></a></li>
+            <li><a href="#bar"
+                class="i18n bar chartoption button disabled_toolbar"
+                title="Bar"></a></li>
+            <li><a href="#stackedBar"
+                class="i18n stackedBar chartoption on button disabled_toolbar"
+                title="Stacked Bar"></a></li>
+            <li><a href="#stackedBar100"
+                class="i18n stackedBar100 chartoption button disabled_toolbar"
+                title="Bar 100%"></a></li>
+            <li><a href="#multiplebar"
+                class="i18n multiple chartoption button disabled_toolbar"
+                title="Multiple Bar Chart"></a></li>
+            <li><a href="#line"
+                class="i18n line chartoption button disabled_toolbar"
+                title="Line"></a></li>
+            <li><a href="#area"
+                class="i18n area chartoption button disabled_toolbar"
+                title="Area"></a></li>
+            <li><a href="#heatgrid"
+                class="i18n heatgrid chartoption button disabled_toolbar"
+                title="Heat Grid"></a></li>
+            <li><a href="#treemap"
+                class="i18n treemap chartoption button disabled_toolbar"
+                title="Tree Map"></a></li>
+            <li><a href="#sunburst"
+                class="i18n sunburst chartoption button disabled_toolbar"
+                title="Sunburst"></a></li>
+            <li><a href="#multiplesunburst"
+                class="i18n multiplesunburst chartoption button disabled_toolbar"
+                title="Multi Sunburst"></a></li>
+            <li><a href="#dot"
+                class="i18n dot chartoption button disabled_toolbar"
+                title="Dot"></a></li>
+            <li><a href="#waterfall"
+                class="i18n waterfall chartoption button disabled_toolbar"
+                title="Waterfall"></a></li>
+            <li><a href="#pie"
+                class="i18n pie chartoption button disabled_toolbar"
+                title="Pie"></a></li>
+            <li><a href="#radar"
+                class="i18n radar chartoption button disabled_toolbar"
+                title="Radar"></a></li>
+            <li><a href="#timewheel"
+                class="i18n timewheel chartoption button disabled_toolbar"
+                title="Time Wheel"></a></li>
+           <!-- <li><a href="#chart_editor"
+                class="i18n custom_chart button disabled_toolbar"
+                title="Custom">Custom</a></li> -->
+        </ul>
+        </div>
+        </script>
+
+<script type="text/x-jquery-tmpl" id="template-open-dialog">
+            <div class="workspace" style="margin-left: -305px">
+                <div class="workspace_inner" style="margin-left: 305px">
+                    <div class="workspace_toolbar hide">
+                    <ul>
+                        <li class='for_queries hide'><a href="#open_query" class="run button sprite"></a></li>
+                        <li class='for_queries hide'><a href="#edit_query" class="edit button sprite"></a></li>
+                        <li class='for_queries hide'><a href="#delete_query" class="delete button sprite"></a></li>
+                        <li class='for_queries hide'><a href="#edit_permissions" class="edit_permissions button sprite"></a></li>
+                        <!--
+                        <li class='for_folder hide'><a href="#edit_folder" class="edit_folder button"></a></li>
+                        -->
+                        <li class='for_folder hide'><a href="#delete_folder" class="delete button sprite"></a></li>
+                        <li class='for_folder hide'><a href="#edit_permissions" class="edit_permissions button sprite"></a></li>
+                    </ul>
+                    </div>
+                    <div class="workspace_results">
+                    </div>
+                </div>
+            </div>
+
+            <div class="sidebar queries" style="width: 300px;">
+                <h3 class="top" style="padding-top: 3px; padding-bottom: 2px;">
+                    <div class="form-inline">
+                        <label class="i18n">Search:</label> &nbsp;
+                        <input type="text" class="repository_search_file form-control" style="padding-right: 0; width: 230px;"></input>
+                        <span class="cancel_search" style="position: absolute; top: 8px; left: 270px;"></span>
+                        <span class="add_folder_button"><a href="#" class="add_folder"></a></span>
+                    </div>
+                </h3>
+                <div class="sidebar_inner">
+                    <ul id="queries" class="RepositoryObjects">
+                        <li class="i18n">Loading...</li>
+                    </ul>
+                </div>
+            </div>
+
+            <div class="sidebar_separator"></div>
+            <div class="clear"></div>
+        </script>
+
+<script type="text/x-jquery-tmpl" id="template-repository-objects">
+            <% _.each( repoObjects, function( entry ) { %>
+                <% if( entry.type === 'FOLDER' ) { %>
+                   <%= _.template($("#template-repository-folder").html())({ entry: entry }) %>
+                <% } else { %>
+                    <%= _.template($("#template-repository-file").html())({ entry: entry }) %>
+                <% } %>
+            <% } ); %>
+        </script>
+<script type="text/x-jquery-tmpl" id="template-repository-folder">
+            <% if(!Settings.REPOSITORY_LAZY) { %>
+                <li class='folder'>
+                    <div class='folder_row'>
+                        <span class='sprite folder collapsed'></span>
+                        <a href="#<%= entry.path %>"><%= entry.name %></a>
+                    </div>
+
+                    <ul class='hide folder_content'>
+
+                        <%= _.template($("#template-repository-objects").html())( { repoObjects: entry.repoObjects }) %>
+                    </ul>
+                </li>
+            <% } else { %>
+                <li class='folder'>
+                    <div class='folder_row'>
+                        <span class='sprite folder collapsed'></span>
+                        <a href="#<%= entry.path %>"><%= entry.name %></a>
+                    </div>
+                </li>
+            <% } %>
+        </script>
+
+<script type="text/x-jquery-tmpl" id="template-repository-folder-lazyload">
+                <ul class='folder_content'>
+                    <%= _.template($("#template-repository-objects").html())( { repoObjects: repoObjects }) %>
+                </ul>
+        </script>
+
+<script type="text/x-jquery-tmpl" id="template-repository-file">
+            <li class='query'>
+            <% if (Settings.ICON_16) { %>
+                <span class='icon_override' style='background-image: url(<%= Settings.ICON_16 %>);'></span>
+            <% } else { %>
+                <span class='icon'></span>
+            <% } %>
+                <a href="#<%= entry.path %>"><%= entry.name %></a>
+            </li>
+        </script>
+
+<script type="text/x-jquery-tmpl" id="template-selections">
+            <div class="form-inline header_selections">
+                <label for="filter_selections" class="i18n">Search:</label> &nbsp;<input name="filter_selections"
+                id="filter_selections" disabled="true" type="text" class="form-control filterbox" /> <input class="i18n form-control search_term form_button" type="submit" value="Pre-Filter on Server" /><input class="i18n form-control clear_search form_button" type="submit" value="Clear Filter" /><br />
+            </div>
+            <div class="available_selections form-inline caption">
+                <span class="i18n">Available members:</span><br/>
+                    <div class="selection_options" ><ul></ul></div>
+            </div>
+            <div class="selection_buttons">
+                <a class="form_button btn btn-default" href="#move_selection" id="add_members">&nbsp;&gt;&nbsp;
+                </a><br><br>
+                <a class="form_button btn btn-default" href="#move_selection" id="add_all_members">&gt;&gt;</a><br><br>
+                <a class="form_button btn btn-default" href="#move_selection" id="remove_all_members">&lt;&lt;</a><br><br>
+                <a class="form_button btn btn-default" href="#move_selection" id="remove_members">&nbsp;&lt;&nbsp;</a>
+            </div>
+            <div class="used_selections form-inline caption">
+                <span class="i18n">Used members:</span>
+				<span>
+	 			<input class="selection_type selection_type_inclusion" type="radio" name="inclusion_type" value="INCLUSION" checked="true"><span class="i18n">Include</span>
+	 			<input class="selection_type selection_type_exclusion" type="radio" name="inclusion_type"
+	 			 value="EXCLUSION"><span class="i18n">Exclude</span>
+	 			</span>
+	 			<br/>
+                    <div class="selection_options" ><ul></ul></div>
+            </div>
+            <div class="updown_buttons">
+                <a class="form_button" href="#up" id="up_members">&nbsp;&uarr;&nbsp;</a><br><br>
+                <a class="form_button" href="#down" id="down_members">&nbsp;&darr;&nbsp;</a><br><br>
+            </div>
+
+            <div class="options form-inline">
+                <input class="form-control" name="show_unique" id="show_unique" type="checkbox" />&nbsp;<label
+                for="show_unique"
+                class="i18n">Show Unique Names</label><br />
+                <input name="use_result" class="form-control" id="use_result" type="checkbox" />&nbsp;<label for="use_result"
+                class="i18n">Use Result</label><br />
+				<div id="div-totals-container">
+                    <div class="totals_container">
+                        <label for="per_metrics_totals_checkbox" class="i18n">Totals per metrics</label>
+                        <input type="checkbox" id="per_metrics_totals_checkbox"/>
+                        &nbsp;
+                    </div>
+                    <div class="totals_container all_metrics_container">
+                        <strong>All Measures - </strong>
+                        <label for="show_totals" class="i18n">Sub totals</label>
+                        <select class="form-control" id="all_measures_select">
+                            <option class="i18n" value="not" selected="selected">None</option>
+                            <option class="i18n" value="sum">Sum</option>
+                            <option class="i18n" value="min">Min</option>
+                            <option class="i18n" value="max">Max</option>
+                            <option class="i18n" value="avg">Avg</option>
+                        </select>
+                    </div>
+                </div>
+				<div class="form-inline">
+                <label for="parameter" class="parameter hidden i18n">Parameter Name</label>&nbsp;<input
+                name="parameter" id="parameter" class="form-control parameter hidden" type="text" /></div>
+            </div>
+            <div class="info">
+                <div><label for="items_size" class="i18n">Items</label>: <span class="items_size"></span></div>
+                <div><span class="warning i18n"></span></div>
+            </div>
+
+            <div class="hint">
+                <div><label for="search_limit" class="i18n">Display Limit</label>: <span class="members_limit"></span></div>
+                <div><label for="search_limit" class="i18n">Filter Limit</label>: <span class="search_limit"></span></div>
+            </div>
+
+            <div class="autocomplete"></div>
+        </script>
+<script type="text/x-jquery-tmpl" id="template-selections-totals">
+    <div class="totals_container per_metrics_container">
+        <strong><%= measure.name %> - </strong>
+        <label for="show_totals" class="i18n">Sub totals</label>
+        <select class="form-control show_totals_select">
+            <option class="i18n" value="nil" selected="selected">None</option>
+            <option class="i18n" value="sum">Sum</option>
+            <option class="i18n" value="min">Min</option>
+            <option class="i18n" value="max">Max</option>
+            <option class="i18n" value="avg">Avg</option>
+        </select>
+        &nbsp;
+    </div>
+</script>
+<script type="text/x-jquery-tmpl" id="template-selections-options">
+            <ul>
+            <li class="i18n all_options"><input type="checkbox" class="check_all_option"
+            id="check_all_option"><label for="check_all_option" class="i18n">All Members</label></li>
+            <%  var counter = 0;
+                _.each(options, function(option) {
+                    counter++; %>
+                <% if (!option.calc) { %>
+                    <li class="option_value">
+                        <input type="checkbox" class="check_option"
+                            value="<%= encodeURIComponent(option.obj ? option.obj.uniqueName : option.uniqueName) %>" name="selections_checker"
+                            id="selections_checker<%= counter %>"
+                            label="<%= encodeURIComponent(option.obj ? option.obj.caption : option.caption) %>" />
+                            <label for="selections_checker<%= counter %>" class="caption"><%= option.obj ? option.obj.caption : option.caption
+                            %></label>
+                            <label for="selections_checker<%= counter %>" class="unique"><%= option.obj ? option.obj.uniqueName : option.uniqueName
+                            %></label>
+                    </li>
+                <% } else { %>
+                    <li class="option_value">
+                        <input type="checkbox" class="check_option cmember"
+                            value="<%= encodeURIComponent(option.obj ? option.obj.uniqueName : option.uniqueName) %>" name="selections_checker"
+                            id="selections_checker<%= counter %>"
+                            label="<%= encodeURIComponent(option.obj ? option.obj.caption : option.caption) %>" />
+                            <label for="selections_checker<%= counter %>" class="caption" style="color: blue;"><%=
+                            option.obj ? option.obj.caption : option.caption %></label>
+                            <label for="selections_checker<%= counter %>" class="unique" style="color: blue;"><%=
+                            option.obj ? option.obj.uniqueName : option.uniqueName %></label>
+                    </li>
+                <% } %>
+            <% }); %>
+            </ul>
+        </script>
+
+
+<script type="text/x-jquery-tmpl" id="template-permissions">
+            <div class="permissions">
+
+                        <label for="filter_roles" class="i18n">Add role permission:</label>
+                        <br />
+                        <form class="form-inline">
+                            <input name="filter_roles" id="filter_roles" type="text" class="filterbox form-control" />
+                            <input type="submit" value="Add" class="i18n add_role btn btn-primary" />
+                        </form>
+                        <input type="checkbox" class="acl" value="READ" /><span class="i18n">READ</span>
+                        <input type="checkbox" class="acl" value="WRITE" /><span class="i18n">WRITE</span>
+                        <input type="checkbox" class="acl" value="GRANT" /><span class="i18n">GRANT</span>
+                <br />
+                <br />
+                <span class="i18n">Roles:</span>
+                <div class="rolelist"></div>
+                <br />
+                <input type="submit" value="Remove permission" class="i18n btn btn-danger remove_acl" />
+            </div>
+            <br />
+            <div class="private">
+                <input type="checkbox" class="private" value="PRIVATE" /><span class="i18n">Keep this file private to me</span> (<b><%= Saiku.session.username %></b>)
+                <br /><br />
+                <span class="private_owner" style="display:none;"><span class="i18n">Currently private to:</span>&nbsp;<span class="owner"></span></span>
+            </div>
+            <br />
+        </script>
+<script type="text/x-jquery-tmpl" id="template-permissions-rolelist">
+            <select class="select_roles" multiple size="4">
+                <% _.each(roles, function(grants, role) {
+                    var aclstring ="";
+                     _.each(grants, function(grant, index) {
+                        aclstring += (index > 0 ? (", " + grant) : grant);
+                    });
+                %>
+                    <option value="<%=role %>"><%= role + " [" + aclstring + "]" %></option>
+                <% }); %>
+            </select>
+        </script>
+
+<script type="text/x-jquery-tmpl" id="template-drillthrough">
+            <div class="row_limit">
+                <br />
+                <span class="i18n">Row Limit: (0 = none)</span> <input id="maxrows" name="maxrows" class="maxrows" type="text" />
+                <br />
+                <span class="i18n"><b>CAUTION:</b> The number of rows can have a significant impact on the performance of the following action.</span>
+            </div>
+        </script>
+<script type="text/x-jquery-tmpl" id="template-drillacross">
+</script>
+<script type="text/x-jquery-tmpl" id="template-drillthrough-list">
+        <div class="sidebar" style="border:1px solid #CCCCCC">
+            <h3><input type="checkbox" class="all_dimensions"/> &nbsp;<span class="i18n">Dimensions</span></h3>
+            <div class="sidebar_inner dimension_tree"></div>
+            <h3><input type="checkbox" class="all_measures"/> &nbsp;<span class="i18n">Measures</span></h3>
+            <div class="sidebar_inner measure_tree"></div>
+        </div>
+
+        <div class="sidebar_separator"></div>
+        <div class="clear"></div>
+        </script>
+<script type="text/x-jquery-tmpl" id="template-drillthrough-dimensions">
+<ul>
+<% _.each(dimensions, function(dimension) { %>
+<% if (dimension.name != 'Measures' && (typeof dimension["visible"] == "undefined" || dimension["visible"])) { %>
+<li class='parent_dimension'>
+<span class="root collapsed sprite"></span>
+<input type="checkbox" class="check_dimension" />
+<a class="folder_collapsed sprite" href="#" title="<%= dimension.description ? dimension.description : dimension.caption %>"><%= dimension.caption %></a>
+<ul>
+<% _.each(dimension.hierarchies, function(hierarchy) { %>
+<% if (typeof hierarchy["visible"] == "undefined" || hierarchy["visible"]) { %>
+<% if (dimension.hierarchies.length > 1) { %>
+<li class="hierarchy hide">
+<a class="dimension" title="<%= hierarchy.description ? hierarchy.description : hierarchy.caption %>" href="#" key="<%= dimension.name %>###<%= hierarchy.name %>"><%= hierarchy.caption %></a>
+</li>
+<% } %>
+<% } %>
+<% _.each(hierarchy.levels, function(level) { %>
+<% if (typeof level["visible"] == "undefined" || level["visible"]) { %>
+<% if (level.caption !== "(All)" || level.levelType !== "All" || level.levelType !== "ALL") { %>
+<li class="hide"> &nbsp;&nbsp;&nbsp;&nbsp;
+<input type="checkbox" class="check_level" value="<%= level.uniqueName %>" key="<%= dimension.name %>###<%= hierarchy.name %>"> <%= level.caption %></input>
+</li>
+<% } %>
+<% } %>
+<% }); %>
+<% }); %>
+</ul>
+<% } %>
+<% }); %>
+</ul>
+</script>
+
+<script type="text/x-jquery-tmpl" id="template-drillthrough-measures">
+<ul>
+<li>
+<span class="root expand sprite"></span>
+<a href="#" title="Measures" class="folder_expand i18n sprite">Measures</a>
+<ul>
+<% _.each(measures, function(measure) { %>
+<% if (typeof measure["visible"] == "undefined" || measure["visible"]) { %>
+<% if(typeof measure.calculated == "undefined" || (measure.calculated == false || allMeasures)) { %>
+<li> &nbsp;&nbsp;&nbsp;&nbsp;
+<input type="checkbox" class="check_level" value="<%= measure.uniqueName %>" key="Measures###<%= measure.name %>"> <%= measure.caption %></input>
+</li>
+<% } %>
+<% } %>
+<% }); %>
+</ul>
+</li>
+</ul>
+</script>
+<script type="text/javascript" src="js/ga.js"></script>
+</body>
+</html>
diff --git a/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/DTOInfoDialog.java b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/DTOInfoDialog.java
index d6ecc39..93a7633 100644
--- a/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/DTOInfoDialog.java
+++ b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/DTOInfoDialog.java
@@ -133,6 +133,9 @@
 	}
 	
 	public void setDto(Object dto) {
+		if(dto == null) {
+			return;
+		}
 		String createUser = BeanUtils.getCreateUser(dto);
 		if(createUser != null) {
 			createdByProp.setValue(createUser);
diff --git a/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/MDXDialog.java b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/MDXDialog.java
index e861fc9..55fea35 100644
--- a/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/MDXDialog.java
+++ b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/MDXDialog.java
@@ -15,7 +15,10 @@
  */
 package org.eclipse.osbp.utils.vaadin;
 
+import java.sql.Connection;
+import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.sql.Statement;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
@@ -44,6 +47,7 @@
 import com.vaadin.ui.VerticalLayout;
 import com.vaadin.ui.Window;
 
+import mondrian.olap4j.MondrianOlap4jDriver;
 import mondrian.rolap.RolapConnection;
 
 public class MDXDialog extends Window implements DetachListener { // NOSONAR
@@ -134,7 +138,18 @@
 		if (tableLayout != null) {
 			subLayout.removeComponent(tableLayout);
 		}
-		DerivedCellSet cellSet = new DerivedCellSet(persistenceService.sendQuery(connection, input.getValue()),
+		RolapConnection rolapConnection = connection;
+		Connection connection;
+		// (JCD) : temporarily disabled to avoid errors with mondrian 4
+//		try {
+//			connection = new MondrianOlap4jDriver().connect(rolapConnection);
+//			Statement statement = connection.createStatement();
+//			ResultSet result = statement.executeQuery(input.getValue());
+//		} catch (SQLException e) {
+//			// TODO Auto-generated catch block
+//			e.printStackTrace();
+//		}
+		DerivedCellSet cellSet = new DerivedCellSet(persistenceService.sendQuery(this.connection, input.getValue()),
 				dslMetadataService, user);
 		coordinateSystem.clear();
 		for (int axis = 0; axis < cellSet.getAxes().size(); axis++) {
diff --git a/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/ViewLayoutManager.java b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/ViewLayoutManager.java
index 91e8d70..9b77443 100644
--- a/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/ViewLayoutManager.java
+++ b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/ViewLayoutManager.java
@@ -15,10 +15,14 @@
  */
 package org.eclipse.osbp.utils.vaadin;
 
+import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.osbp.ui.api.layout.IViewLayoutManager;
 import org.eclipse.osbp.ui.api.themes.EnumCssClass;
+import org.eclipse.osbp.ui.api.themes.IThemeResourceService;
+import org.eclipse.osbp.ui.api.themes.IThemeResourceService.ThemeResourceType;
 
 import com.vaadin.server.Extension;
+import com.vaadin.server.Page;
 import com.vaadin.ui.AbstractOrderedLayout;
 import com.vaadin.ui.HorizontalLayout;
 import com.vaadin.ui.Label;
@@ -33,9 +37,15 @@
 	private HorizontalLayout topArea;
 	private VerticalLayout sideArea;
 	private VerticalLayout dataArea;
+	private String caption;
 
 	@Override
 	public void init(AbstractOrderedLayout parent) {
+		init(parent, null, null);
+	}
+	
+	@Override
+	public void init(AbstractOrderedLayout parent, String styleName, String imagePath) {
 		label = new Label();
 		label.addStyleName(EnumCssClass.VIEW_HEADER_H2.toString());
 		label.setSizeUndefined();
@@ -51,7 +61,11 @@
 	    dataArea = new VerticalLayout();
 	    dataArea.addStyleName(EnumCssClass.DATA_AREA.toString());
 	    dataArea.setSizeFull();
-
+	    if(imagePath != null) {
+		    dataArea.addStyleName(styleName);
+	    	addStyle(styleName, imagePath);
+	    }
+	    
 	    HorizontalLayout multiArea = new HorizontalLayout(sideArea, dataArea);
 	    multiArea.addStyleName(EnumCssClass.MULTI_AREA.toString());
 	    multiArea.setSizeFull();
@@ -71,6 +85,17 @@
 	    }
 	}
 
+	private void addStyle(String styleName, String imagePath) {
+    	String style = "."+styleName+" { background: url(\""+
+    	imagePath+
+    	"\") no-repeat ;" +			// center center fixed
+    	"-webkit-background-size: cover;" +
+    	"-moz-background-size: cover;" +
+    	"-o-background-size: cover;" +
+    	"background-size: cover; }";
+    	Page.getCurrent().getStyles().add(style);
+	}
+
 	@Override
 	public void addExtension(Extension extension) {
 		workArea.addExtension(extension);
@@ -83,6 +108,7 @@
 
 	@Override
 	public void setLabelValue(String text) {
+		this.caption = text;
 		if(text == null || text.isEmpty()) {
 			label.setWidth("0px");
 			label.setHeight("0px");
@@ -105,5 +131,9 @@
 	public VerticalLayout getDataArea() {
 		return dataArea;
 	}
-	
+
+	@Override
+	public String getCaption() {
+		return caption;
+	}
 }
diff --git a/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/bpmn/BpmnRenderer.java b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/bpmn/BpmnRenderer.java
index c1f0004..d1e584a 100644
--- a/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/bpmn/BpmnRenderer.java
+++ b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/bpmn/BpmnRenderer.java
@@ -5,7 +5,6 @@
 
 import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.osbp.bpm.api.IBPMEngine;
-import org.eclipse.osbp.bpm.api.IBlipBPMFunctionProvider;
 import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent;
 import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent.EventDispatcherCommand;
 import org.eclipse.osbp.runtime.common.event.IEventDispatcher;
@@ -32,7 +31,6 @@
 
 	private transient BpmnConverter bpmnConverter;
 	private transient IBPMEngine bpmEngine;
-	private transient IBlipBPMFunctionProvider blip;
 	private transient IDSLMetadataService dslMetadataService;
 	private transient IUser user;
 	private String processId;
@@ -43,7 +41,7 @@
 	private Locale locale;
 	private YesNoDialog yesnoWindow;
 	private String yesNoUuid;
-	private IEventDispatcher eventDispatcher;
+	private transient IEventDispatcher eventDispatcher;
 
 	@Override
 	public boolean equals(Object obj) {
@@ -55,9 +53,8 @@
 		return super.hashCode();
 	}
 
-	public BpmnRenderer(IBPMEngine bpmEngine, IBlipBPMFunctionProvider blip, IEclipseContext context) {
+	public BpmnRenderer(IBPMEngine bpmEngine, IEclipseContext context) {
 		this.bpmEngine = bpmEngine;
-		this.blip = blip;
 		user = context.get(IUser.class);
 		dslMetadataService = context.get(IDSLMetadataService.class);
 		eventDispatcher = context.get(IEventDispatcher.class);
@@ -146,7 +143,7 @@
 				UI.getCurrent().removeWindow(yesnoWindow);
 				yesnoWindow = null;
 			}
-			blip.startProcess(processId);
+			bpmEngine.startProcess(processId);
 		}
 		if(event.getCommand() == EventDispatcherCommand.NO && event.getSender().equals(getClass().getCanonicalName()) && event.getTopic().equals(yesNoUuid)) {
 			if(yesnoWindow != null) {
diff --git a/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/bpmn/BpmnView.java b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/bpmn/BpmnView.java
index d7a3a06..1248c40 100644
--- a/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/bpmn/BpmnView.java
+++ b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/bpmn/BpmnView.java
@@ -50,10 +50,6 @@
 	@Optional
 	private IBPMEngine bpmEngine;
 
-	@Inject
-	@Named("Blip")
-	private IBlipBPMFunctionProvider blip;
-
 	private VerticalLayout workArea;
 
 	private BpmnRenderer bpmnRenderer;
@@ -74,7 +70,7 @@
 	@PostConstruct
 	public void createView(final VerticalLayout parent) {
 		parent.setPrimaryStyleName("osbp");
-		bpmnRenderer = new BpmnRenderer(bpmEngine, blip, eclipseContext);
+		bpmnRenderer = new BpmnRenderer(bpmEngine, eclipseContext);
 		
 		VerticalLayout inner = new VerticalLayout();
 		inner.setMargin(false);
diff --git a/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/bpmn/BpmnWindow.java b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/bpmn/BpmnWindow.java
index 06b70de..ccbd3fe 100644
--- a/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/bpmn/BpmnWindow.java
+++ b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/bpmn/BpmnWindow.java
@@ -37,7 +37,7 @@
 	private float height = 650;
 	private VerticalLayout inner;
 	
-	public BpmnWindow(IBPMEngine bpmEngine, IBlipBPMFunctionProvider blip, IEclipseContext context) {
+	public BpmnWindow(IBPMEngine bpmEngine, IEclipseContext context) {
 		super();
 		setClosable(true);
 		setModal(false);
@@ -47,7 +47,7 @@
 		setContent(inner);
 		inner.setPrimaryStyleName("osbp");
 		addDetachListener(this);
-		bpmnRenderer = new BpmnRenderer(bpmEngine, blip, context);
+		bpmnRenderer = new BpmnRenderer(bpmEngine, context);
 		inner.addComponent(bpmnRenderer);
 	}
 
diff --git a/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/saiku/SaikuRenderState.java b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/saiku/SaikuRenderState.java
new file mode 100644
index 0000000..368a146
--- /dev/null
+++ b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/saiku/SaikuRenderState.java
@@ -0,0 +1,57 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the terms of the Eclipse Public License 2.0        
+ *  which accompanies this distribution, and is available at                  
+ *  https://www.eclipse.org/legal/epl-2.0/                                 
+ *                                 
+ *  SPDX-License-Identifier: EPL-2.0                                 
+ *                                                                            
+ *  Contributors:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.utils.vaadin.saiku;
+
+import com.vaadin.shared.ui.JavaScriptComponentState;
+
+
+@SuppressWarnings("all")
+public class SaikuRenderState extends JavaScriptComponentState {
+  public String htmlTagId = "SaikuWindowJs";
+  
+  public String saikuJsJQueryPlaceHolderCode = "";
+  
+  public String saikuJQueryTemplateToolbarCode = "";
+  public String saikuJQueryTemplateUpgradeCode = "";
+  public String saikuJQueryTemplateLogincountCode = "";
+  public String saikuJQueryTemplateCubesCode = "";
+  public String saikuJQueryTemplateDimensionsCode = "";
+  public String saikuJQueryTemplateMeasuresCode = "";
+  public String saikuJQueryTemplateCalculatedMeasuresCode = "";
+  public String saikuJQueryTemplateCalculatedMemberCode = "";
+  public String saikuJQueryTemplateWorkspaceCode = "";
+  public String saikuJQueryTemplateAttributesCode = "";
+  public String saikuJQueryTemplateWorkspaceDropzonesCode = "";
+  public String saikuJQueryTemplateWorkspaceToolbarCode = "";
+  public String saikuJQueryTemplateQueryToolbarCode = "";
+  public String saikuJQueryTemplateOpenDialogCode = "";
+  public String saikuJQueryTemplateRepositoryObjectsCode = "";
+  public String saikuJQueryTemplateRepositoryFolderCode = "";
+  public String saikuJQueryTemplateRepositoryFolderLazyloadCode = "";
+  public String saikuJQueryTemplateRepositoryFileCode = "";
+  public String saikuJQueryTemplateSelectionsCode = "";
+  public String saikuJQueryTemplateSelectionsTotalsCode = "";
+  public String saikuJQueryTemplateSelectionsOptionsCode = "";
+  public String saikuJQueryTemplatePermissionsCode = "";
+  public String saikuJQueryTemplatePermissionsRolelistCode = "";
+  public String saikuJQueryTemplateDrillthroughCode = "";
+  public String saikuJQueryTemplateDrillacrossCode = "";
+  public String saikuJQueryTemplateDrillthroughListCode = "";
+  public String saikuJQueryTemplateDrillthroughDimensionsCode = "";
+  public String saikuJQueryTemplateDrillthroughMeasuresCode = "";
+
+  
+}
diff --git a/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/saiku/SaikuRenderer.java b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/saiku/SaikuRenderer.java
new file mode 100644
index 0000000..627bb67
--- /dev/null
+++ b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/saiku/SaikuRenderer.java
@@ -0,0 +1,365 @@
+package org.eclipse.osbp.utils.vaadin.saiku;
+
+import java.util.Locale;
+import java.util.UUID;
+
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent;
+import org.eclipse.osbp.runtime.common.event.IEventDispatcher;
+import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService;
+import org.eclipse.osbp.ui.api.user.IUser;
+import org.eclipse.osbp.utils.vaadin.YesNoDialog;
+import org.slf4j.Logger;
+
+import com.vaadin.annotations.JavaScript;
+import com.vaadin.annotations.StyleSheet;
+import com.vaadin.server.Page;
+import com.vaadin.shared.communication.PushMode;
+import com.vaadin.ui.AbstractJavaScriptComponent;
+import com.vaadin.ui.JavaScriptFunction;
+import com.vaadin.ui.Notification;
+import com.vaadin.ui.UI;
+
+import elemental.json.JsonArray;
+
+
+@StyleSheet({
+    "theme://plugin/saiku.osgi/resources/css/saiku/src/bootstrap.css",  
+    "theme://plugin/saiku.osgi/resources/js/tourist/tourist.css",  
+    "theme://plugin/saiku.osgi/resources/js/intro/introjs.min.css", 
+    "theme://plugin/saiku.osgi/resources/js/qtip/jquery.qtip.min.css", 
+
+    // <!--  jQuery CSS -->
+    "theme://plugin/saiku.osgi/resources/css/jquery/spectrum.css", 
+    "theme://plugin/saiku.osgi/resources/css/jquery/jquery-ui.css", 
+    "theme://plugin/saiku.osgi/resources/css/saiku/src/giveitsomestyle.css", 
+    "theme://plugin/saiku.osgi/resources/js/fancybox/jquery.fancybox.css", 
+    "theme://plugin/saiku.osgi/resources/js/jquery/jquery.contextMenu.css", 
+
+    // <!-- Saiku CSS -->
+    "theme://plugin/saiku.osgi/resources/css/saiku/src/styles.css", 
+    "theme://plugin/saiku.osgi/resources/css/saiku/src/saiku.table.css", 
+    "theme://plugin/saiku.osgi/resources/css/saiku/src/saiku.dropzone.css", 
+
+    // <!-- CCC dependencies -->
+    "theme://plugin/saiku.osgi/resources/js/saiku/plugins/CCC_Chart2/tipsy.css" 
+
+})
+
+@JavaScript({ 
+//		"theme://plugin/saiku.osgi/resources/js/ccMxClient.js", 
+		//<!--  jQuery 1.7.2 , jQuery UI 1.8.14-->
+//		"theme://plugin/saiku.osgi/resources/js/jquery/jquery.min.js", 
+		"theme://plugin/saiku.osgi/resources/js/jquery/jquery-3.3.1.js", 
+		"theme://plugin/saiku.osgi/resources/js/jquery/jquery-ui.min.js", 
+		"theme://plugin/saiku.osgi/resources/js/jquery/jquery.contextMenu.js", 
+		"theme://plugin/saiku.osgi/resources/js/jquery/jquery-mobile-touch.js", 
+		"theme://plugin/saiku.osgi/resources/js/jquery/jquery.blockUI.js", 
+		"theme://plugin/saiku.osgi/resources/js/jquery/spectrum.js", 
+		"theme://plugin/saiku.osgi/resources/js/js-yaml/js-yaml.min.js", 
+		"theme://plugin/saiku.osgi/resources/js/fancybox/jquery.fancybox.pack.js", 
+		// <!-- Backbone.js and deps -->
+		"theme://plugin/saiku.osgi/resources/js/backbone/underscore.js", 
+		"theme://plugin/saiku.osgi/resources/js/backbone/json2.js", 
+		"theme://plugin/saiku.osgi/resources/js/backbone/backbone.js", 
+		"theme://plugin/saiku.osgi/resources/js/backbone/backbone-model-file-upload.js" , 
+		"theme://plugin/saiku.osgi/resources/js/notify/notify.min.js", 
+		"theme://plugin/saiku.osgi/resources/js/fitvids/jquery.fitvids.js", 
+		"theme://plugin/saiku.osgi/resources/js/notify/styles/bootstrap/notify-bootstrap.js", 
+		"theme://plugin/saiku.osgi/resources/js/qtip/imagesloaded.pkg.min.js", 
+		"theme://plugin/saiku.osgi/resources/js/qtip/jquery.qtip.min.js", 
+		"theme://plugin/saiku.osgi/resources/js/tourist/tourist.js", 
+		"theme://plugin/saiku.osgi/resources/js/ozpIwc/ozpIwc-client.min.js", 
+		"theme://plugin/saiku.osgi/resources/js/intro/intro.min.js", 
+		// <!-- Saiku Project -->
+		"theme://plugin/saiku.osgi/resources/js/saiku/Settings.js", 
+		//<!-- Loggly error logging service -->
+		"theme://plugin/saiku.osgi/resources/js/logger/janky.post.min.js", 
+		"theme://plugin/saiku.osgi/resources/js/logger/Logger.js", 
+		// <!-- D3 Library -->
+		"theme://plugin/saiku.osgi/resources/js/d3/d3.v3.min.js", 
+		// <!-- Rest -->
+		"theme://plugin/saiku.osgi/resources/js/saiku/models/SaikuOlapQuery.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/models/DateFilter.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/models/Level.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/render/SaikuRenderer.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/render/SaikuTableRenderer.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/render/SaikuChartRenderer.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/models/Dimension.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/DimensionList.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/Toolbar.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/Upgrade.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/Modal.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/MDXModal.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/SelectionsModal.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/DrillthroughModal.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/DrillAcrossModal.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/PermissionsModal.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/DemoLoginForm.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/LoginForm.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/AboutModal.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/OverwriteModal.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/AddFolderModal.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/FilterModal.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/CustomFilterModal.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/CalculatedMemberModal.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/ParentMemberSelectorModal.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/DataSourcesModal.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/QueryToolbar.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/WorkspaceToolbar.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/WorkspaceDropZone.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/Table.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/Workspace.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/DeleteRepositoryObject.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/MoveRepositoryObject.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/OpenQuery.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/SaveQuery.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/OpenDialog.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/TabSet.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/Tab.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/models/Repository.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/models/Result.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/models/QueryAction.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/models/QueryScenario.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/models/Query.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/SessionErrorModal.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/WarningModal.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/ReportTitlesModal.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/GrowthModal.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/FormatAsPercentageModal.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/models/Session.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/SplashScreen.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/models/SessionWorkspace.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/models/Member.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/models/Plugin.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/models/Settings.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/models/License.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/models/DataSources.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/Saiku.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/DateFilterModal.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/adapters/SaikuServer.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/routers/QueryRouter.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/views/Tour.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/plugins/I18n/plugin.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/plugins/Intro/plugin.js", 
+		//<!-- CCC dependencies -->
+		"theme://plugin/saiku.osgi/resources/js/saiku/plugins/CCC_Chart2/jquery.tipsy.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/plugins/CCC_Chart2/protovis.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/plugins/CCC_Chart2/protovis-msie.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/plugins/CCC_Chart2/tipsy.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/plugins/CCC_Chart2/def.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/plugins/CCC_Chart2/cdo.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/plugins/CCC_Chart2/pvc.js", 
+		"theme://plugin/saiku.osgi/resources/js/saiku/embed/SaikuEmbed.js", 
+		//<!-- ACE Editor for MDX -->
+		"theme://plugin/saiku.osgi/resources/js/ace/ace.js", 
+		
+		//"theme://plugin/saiku.osgi/resources/js/ga.js", 
+
+
+		"js/SaikuRendererJsClass.js" })
+
+
+public class SaikuRenderer extends AbstractJavaScriptComponent implements IUser.UserLocaleListener, IEventDispatcher.Receiver {
+	private static final long serialVersionUID = 1025480199756469267L;
+	private static Logger log = org.slf4j.LoggerFactory.getLogger(SaikuRenderer.class);
+
+//	private transient BpmnConverter bpmnConverter;
+	private transient IDSLMetadataService dslMetadataService;
+	private transient IUser user;
+	private String processId;
+	private YesNoDialog yesnoDialog;
+	private String startProcessText;
+	private String answerYesText;
+	private String answerNoText;
+	private Locale locale;
+	private YesNoDialog yesnoWindow;
+	private String yesNoUuid;
+	private IEventDispatcher eventDispatcher;
+	private SaikujQueryTemplates queryTemplates;
+	@Override
+	public boolean equals(Object obj) {
+		return super.equals(obj);
+	}
+
+	@Override
+	public int hashCode() {
+		return super.hashCode();
+	}
+
+	public SaikuRenderer(IEclipseContext context) {
+		user = context.get(IUser.class);
+		dslMetadataService = context.get(IDSLMetadataService.class);
+		eventDispatcher = context.get(IEventDispatcher.class);
+		user.addUserLocaleListener(this);
+	    locale = user.getLocale();
+	    eventDispatcher.addEventReceiver(this);
+	    localeChanged(locale);
+		queryTemplates = new SaikujQueryTemplates();
+		addFunction("onStartClick", new JavaScriptFunction() {
+			@Override
+	    	public void call(JsonArray arguments){
+	    		// ask to start process
+				yesNoUuid = UUID.randomUUID().toString();
+				yesnoWindow = yesnoDialog.init(eventDispatcher, SaikuRenderer.this.getClass().getCanonicalName(), yesNoUuid, null, startProcessText, answerYesText, answerNoText);
+				UI.getCurrent().addWindow(yesnoWindow);
+	    	}
+	    });
+		addFunction("onSelectedClick", new JavaScriptFunction() {
+			@Override
+			public void call(JsonArray arguments){
+				// start task
+			}
+		});
+	}
+
+	public boolean drawSaiku() {
+		log.debug("start creating saiku");
+		setSizeFull();
+		getState().saikuJsJQueryPlaceHolderCode = getSaikuJsJQueryPlaceHolderCode();
+		getState().saikuJQueryTemplateToolbarCode = queryTemplates.getTemplateToolbar();
+		getState().saikuJQueryTemplateUpgradeCode = queryTemplates.getTemplateUpgrade();
+		getState().saikuJQueryTemplateLogincountCode = queryTemplates.getTemplateLogincount();
+		getState().saikuJQueryTemplateCubesCode = queryTemplates.getTemplateCubes();
+		getState().saikuJQueryTemplateDimensionsCode = queryTemplates.getTemplateDimensions();
+		getState().saikuJQueryTemplateMeasuresCode = queryTemplates.getTemplateMeasures();
+		getState().saikuJQueryTemplateCalculatedMeasuresCode = queryTemplates.getTemplateCalculatedMeasures();
+		getState().saikuJQueryTemplateCalculatedMemberCode = queryTemplates.getTemplateCalculatedMember();
+		getState().saikuJQueryTemplateWorkspaceCode = queryTemplates.getTemplateWorkspace();
+		getState().saikuJQueryTemplateAttributesCode = queryTemplates.getTemplateAttributes();
+		getState().saikuJQueryTemplateWorkspaceDropzonesCode = queryTemplates.getTemplateWorkspaceDropzones();
+		getState().saikuJQueryTemplateWorkspaceToolbarCode = queryTemplates.getTemplateWorkspaceToolbar();
+		getState().saikuJQueryTemplateQueryToolbarCode = queryTemplates.getTemplateQueryToolbar();
+		getState().saikuJQueryTemplateOpenDialogCode = queryTemplates.getTemplateOpenDialog();
+		getState().saikuJQueryTemplateRepositoryObjectsCode = queryTemplates.getTemplateRepositoryObjects();
+		getState().saikuJQueryTemplateRepositoryFolderCode = queryTemplates.getTemplateRepositoryFolder();
+		getState().saikuJQueryTemplateRepositoryFolderLazyloadCode = queryTemplates.getTemplateRepositoryFolderLazyLoad();
+		getState().saikuJQueryTemplateRepositoryFileCode = queryTemplates.getTemplateRepositoryFile();
+		getState().saikuJQueryTemplateSelectionsCode = queryTemplates.getTemplateSelections();
+		getState().saikuJQueryTemplateSelectionsTotalsCode = queryTemplates.getTemplateSelectionsTotals();
+		getState().saikuJQueryTemplateSelectionsOptionsCode = queryTemplates.getTemplateSelectionsOptions();
+		getState().saikuJQueryTemplatePermissionsCode = queryTemplates.getTemplatePermissions();
+		getState().saikuJQueryTemplatePermissionsRolelistCode = queryTemplates.getTemplatePermissionsRolelist();
+		getState().saikuJQueryTemplateDrillthroughCode = queryTemplates.getTemplateDrillthrough();
+//		getState().saikuJQueryTemplateDrillacrossCode = queryTemplates.getTemplateDrillacross();
+		getState().saikuJQueryTemplateDrillthroughListCode = queryTemplates.getTemplateDrillthroughList();
+		getState().saikuJQueryTemplateDrillthroughDimensionsCode = queryTemplates.getTemplateDrillthroughDimensions();
+		getState().saikuJQueryTemplateDrillthroughMeasuresCode = queryTemplates.getTemplateDrillthroughMeasures();
+
+		log.debug("finished creating saiku");
+		return true;
+	}
+
+	@Override
+	public SaikuRenderState getState() {
+		return (SaikuRenderState) super.getState();
+	}
+
+	public void dispose() {
+		user.removeUserLocaleListener(this);
+	    eventDispatcher.removeEventReceiver(this);
+	}
+
+	@Override
+	public void localeChanged(Locale locale) {
+	    this.locale = locale;
+	    startProcessText = dslMetadataService.translate(locale.toLanguageTag(),"startProcessText");
+	    answerYesText = dslMetadataService.translate(locale.toLanguageTag(),"yes");
+	    answerNoText = dslMetadataService.translate(locale.toLanguageTag(),"no");
+	}
+
+	@Override
+	public void receiveEvent(EventDispatcherEvent event) {
+//		if(event.getCommand() == EventDispatcherCommand.BPMN) {
+			processId = event.getTopic();
+			UI.getCurrent().access(new Runnable() {
+				@Override
+				public void run() {
+//					UI.getCurrent().getPushConfiguration().setPushMode(PushMode.DISABLED);
+//					UI.getCurrent().setPollInterval(-1);
+//                    Notification.show("Push disabled!");
+					drawSaiku();
+					Page.getCurrent().getJavaScript().execute("document.readyState = \"loading\"");
+//					Page.getCurrent().getJavaScript().execute("window.document.dispatchEvent(new Event('DOMContentLoaded', {" +
+//							"  bubbles: true," +
+//							"  cancelable: false" + 
+//							"}))");
+
+				}
+			});
+//		}
+	}
+	
+	private String getSaikuJsJQueryPlaceHolderCode() {
+		String placeHolderScript = String.join("\n",
+//		"<!-- CHOSEN PLACEHOLDER -->",
+//		"<script type=\"text/javascript\">",
+//		"",
+		"    // Replace the normal jQuery getScript function with one that supports",
+		"    // debugging and which references the script files as external resources",
+		"    // rather than inline.",
+		"    jQuery.extend({",
+		"        getScript: function(url, callback) {",
+		"            var head = document.getElementsByTagName(\"head\")[0];",
+		"            var script = document.createElement(\"script\");",
+		"            script.src = url;",
+		"",	
+		"	         // Handle Script loading",
+		"	         {",
+		"	              var done = false;",
+		"",
+		"              // Attach handlers for all browsers",
+		"              script.onload = script.onreadystatechange = function(){",
+		"                   if ( !done && (!this.readyState || this.readyState == \"loaded\" || this.readyState == \"complete\") ) {",
+		"                       done = true;",
+		"                      	if (callback)",
+		"                           callback();",
+		"",	
+		"	                    // Handle memory leak in IE",
+		"						script.onload = script.onreadystatechange = null;",
+		"                   }",
+		"               };",
+		"           }",
+		"",	
+		"           head.appendChild(script);",
+		"	",
+		"           // We handle everything using the script element injection",
+		"           return undefined;",
+		"       }",
+		"   });"/*,
+		"</script>"*/);
+		StringBuffer strBuf = new StringBuffer(placeHolderScript);
+//		StringBuffer strBuf = new StringBuffer();
+//		strBuf.append(queryTemplates.getTemplateToolbar());
+//		strBuf.append(queryTemplates.getTemplateUpgrade());
+//		strBuf.append(queryTemplates.getTemplateLogincount());
+//		strBuf.append(queryTemplates.getTemplateCubes());
+//		strBuf.append(queryTemplates.getTemplateDimensions());
+//		strBuf.append(queryTemplates.getTemplateMeasures());
+//		strBuf.append(queryTemplates.getTemplateCalculatedMeasures());
+//		strBuf.append(queryTemplates.getTemplateCalculatedMember());
+//		strBuf.append(queryTemplates.getTemplateWorkspace());
+//		strBuf.append(queryTemplates.getTemplateAttributes());
+//		strBuf.append(queryTemplates.getTemplateWorkspaceDropzones());
+//		strBuf.append(queryTemplates.getTemplateWorkspaceToolbar());
+//		strBuf.append(queryTemplates.getTemplateQueryToolbar());
+//		strBuf.append(queryTemplates.getTemplateOpenDialog());
+//		strBuf.append(queryTemplates.getTemplateRepositoryObjects());
+//		strBuf.append(queryTemplates.getTemplateRepositoryFolder());
+//		strBuf.append(queryTemplates.getTemplateRepositoryFolderLazyLoad());
+//		strBuf.append(queryTemplates.getTemplateRepositoryFile());
+//		strBuf.append(queryTemplates.getTemplateSelections());
+//		strBuf.append(queryTemplates.getTemplateSelectionsTotals());
+//		strBuf.append(queryTemplates.getTemplateSelectionsOptions());
+//		strBuf.append(queryTemplates.getTemplatePermissions());
+//		strBuf.append(queryTemplates.getTemplatePermissionsRolelist());
+//		strBuf.append(queryTemplates.getTemplateDrillthrough());
+//		strBuf.append(queryTemplates.getTemplateDrillacross());
+//		strBuf.append(queryTemplates.getTemplateDrillthroughList());
+//		strBuf.append(queryTemplates.getTemplateDrillthroughDimensions());
+//		strBuf.append(queryTemplates.getTemplateDrillthroughMeasures());
+		return strBuf.toString();
+	}
+
+
+}
diff --git a/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/saiku/SaikuView.java b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/saiku/SaikuView.java
new file mode 100644
index 0000000..41eed0c
--- /dev/null
+++ b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/saiku/SaikuView.java
@@ -0,0 +1,133 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the terms of the Eclipse Public License 2.0        
+ *  which accompanies this distribution, and is available at                  
+ *  https://www.eclipse.org/legal/epl-2.0/                                 
+ *                                 
+ *  SPDX-License-Identifier: EPL-2.0                                 
+ *                                                                            
+ *  Contributors:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.utils.vaadin.saiku;
+
+import java.io.BufferedReader;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.StringBufferInputStream;
+import java.net.URL;
+import java.util.stream.Collectors;
+
+import javax.annotation.PostConstruct;
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.model.application.MApplication;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.impl.UIElementImpl;
+import org.eclipse.e4.ui.model.application.ui.impl.UiPackageImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.bpm.api.IBPMEngine;
+import org.eclipse.osbp.bpm.api.IBlipBPMFunctionProvider;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.slf4j.Logger;
+
+import com.vaadin.annotations.JavaScript;
+import com.vaadin.server.Page;
+import com.vaadin.server.Page.BrowserWindowResizeEvent;
+import com.vaadin.server.Page.BrowserWindowResizeListener;
+import com.vaadin.shared.ui.label.ContentMode;
+import com.vaadin.ui.AbstractComponent;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.UI;
+import com.vaadin.ui.VerticalLayout;
+
+@JavaScript({ 
+	//<!--  jQuery 1.7.2 , jQuery UI 1.8.14-->
+	"theme://plugin/saiku.osgi/resources/js/jquery/jquery.min.js"
+})
+
+
+@SuppressWarnings("all")
+public class SaikuView {
+	private static Logger log = org.slf4j.LoggerFactory
+			.getLogger(SaikuView.class);
+
+	private HorizontalLayout lowerArea;
+
+	private VerticalLayout workArea;
+
+	private SaikuRenderer saikuRenderer;
+	
+	private AbstractComponent label = null;
+	
+	private String processId;
+
+	private VerticalLayout parent;
+
+	private IEclipseContext eclipseContext;
+
+	@Inject
+	public SaikuView(final VerticalLayout parent, final IEclipseContext context,
+			final MApplication app) {
+		this.parent = parent;
+		this.eclipseContext = context;
+	}
+
+	@PostConstruct
+	public void createView(final VerticalLayout parent) {
+		parent.setPrimaryStyleName("osbp");
+		saikuRenderer = new SaikuRenderer(eclipseContext);
+		
+		VerticalLayout inner = new VerticalLayout();
+		inner.setMargin(false);
+		inner.setSizeFull();
+		inner.setPrimaryStyleName("osbp");
+		inner.addComponent(saikuRenderer);
+		parent.addComponent(inner);
+		
+		
+		
+//		if (label != null) {
+//			parent.removeComponent(label);
+//		}
+//		label = new Label(getSaikuIndexHTMLCode(), ContentMode.HTML);
+//		label.setSizeFull();
+//		parent.addComponent(label);
+//		parent.setMargin(true);
+
+	}
+	
+	private String getSaikuIndexHTMLCode() {
+		BundleContext context = FrameworkUtil.getBundle(this.getClass()).getBundleContext();
+		
+		
+		Bundle bundle = context.getBundle(); 
+		URL url = bundle.getEntry("/resources/index.html");
+		String path = url.getPath();
+		try {
+			InputStream inputStream = url.openStream();
+			String result = new BufferedReader(new InputStreamReader(inputStream)).lines()
+					   .parallel().collect(Collectors.joining("\n"));
+			return result;
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return "";
+	}
+	
+}
diff --git a/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/saiku/SaikujQueryTemplates.java b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/saiku/SaikujQueryTemplates.java
new file mode 100644
index 0000000..6c12c5b
--- /dev/null
+++ b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/saiku/SaikujQueryTemplates.java
@@ -0,0 +1,913 @@
+package org.eclipse.osbp.utils.vaadin.saiku;
+
+public class SaikujQueryTemplates {
+	private String templateToolbar = String.join("\n", 
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-toolbar\">",
+            "<ul>",
+            "        <li><a id='new_query' href='#new_query' title='New query' class='new_tab i18n sprite'></a></li>",
+            "        <li class='separator'>&nbsp;</li>",
+            "        <li><a id='open_query' href='#open_query' title='Open query' class='open_query i18n sprite'></a></li>",
+            "        <% if (!data.buttons) { %>",
+            "        <li class='separator'>&nbsp;</li>",
+            "        <li><a id='logout' href='#logout' title='Logout' class='logout i18n sprite'></a></li>",
+
+            "        <li class='separator'>&nbsp;</li>",
+            "        <li><a id='about' href='#about' title='About' class='about i18n sprite'></a></li>",
+            "        <li class='separator'>&nbsp;</li>",
+            "        <li><a id='help_icon' href='#help' target='_blank' title='Help' class='help i18n sprite'></a></li>",
+
+            "        <li class='separator'>&nbsp;</li>",
+            "        <% } %>",
+            "</ul>",
+
+            "<%= data.logo %>"//,
+//        "</script>"
+            );
+	
+	
+	private String templateUpgrade = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-upgrade\">",
+		"	<div class=\"upgradeheader\">",
+		"        You are using Saiku Community Edition, please consider <a target=\"_blank\" href=\"http://saiku.meteorite.bi/support\">purchasing support, or entering a sponsorship agreement with us</a> to support development. <a href=\"mailto:info@meteorite.bi?subject=Supporting Saiku\">info@meteorite.bi</a><span class=\"close_tab sprite\"></span>",
+		"	</div>"//,
+//		"</script>"
+		);
+	
+	private String templateLogincount = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-logincount\">",
+		"	<div class=\"upgradeheader\">",
+		"	</div>"//,
+//		"</script>"
+		);
+		
+	private String templateCubes = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-cubes\">",
+		"    <div>",
+		"    <select  id=\"cubesselect\" class=\"form-control cubes ui-widget\">",
+		"        <option value=\"\" class=\"i18n\">Select a cube</option>",
+		"        <% _.each(connections, function(connection) { %>",
+		"            <% _.each(connection.catalogs, function(catalog) { %>",
+		"                <% _.each(catalog.schemas, function(schema) {",
+		"                    if (schema.cubes.length > 0) { %>",
+		"                        <optgroup label=\"<%= ( schema.name != \"\" ? schema.name : catalog.name) +'  (' + connection.name + ')' %>\">",
+		"                        <% _.each(schema.cubes, function(cube) { %>",
+		"                           <% if (typeof cube[\"visible\"] == \"undefined\" || cube[\"visible\"]) { %>",
+		"                                <option value=\"<%= connection.name %>/<%= catalog.name %>/<%=  ((schema.name == '' || schema.name == null) ? 'null' : schema.name)  %>/<%= encodeURIComponent(cube.name) %>><%= ((cube.caption == '' || cube.caption == null) ? cube.name : cube.caption) %></option>",
+		"                            <% } %>",
+		"                        <% }); %>",
+		"                        </optgroup>",
+		"                    <% } %>",
+		"                <% }); %>",
+		"            <% }); %>",
+		"        <% }); %>",
+		"    </select>",
+		"    </div>"//,
+//		"</script>"
+		);
+	
+	private String templateDimensions = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-dimensions\">",
+		"	<ul>",
+		"	<% _.each(dimensions, function(dimension) { %>",
+		"	<% if (dimension.name != 'Measures' && (typeof dimension[\"visible\"] == \"undefined\" || dimension[\"visible\"])) { %>",
+		"	    <li class='parent_dimension'>",
+		"	        <span class=\"root collapsed sprite\"></span>",
+		"	        <a class=\"folder_collapsed sprite\" href=\"#\" title=\"<%= dimension.description ? dimension.description : dimension.caption %>\"><%= dimension.caption %></a>",
+		"	        <ul>",
+		"	        <% _.each(dimension.hierarchies, function(hierarchy) { %>",
+		"	            <% if (typeof hierarchy[\"visible\"] == \"undefined\" || hierarchy[\"visible\"]) { %>",
+		"	                <% if ((Settings.DIMENSION_HIDE_HIERARCHY === 'NONE' && dimension.hierarchies.length > 1)",
+		"	                		|| (Settings.DIMENSION_HIDE_HIERARCHY === 'SINGLE_LEVEL' && ((Settings.DIMENSION_SHOW_ALL && hierarchy[\"levels\"].length > 3) || (!Settings.DIMENSION_SHOW_ALL && hierarchy[\"levels\"].length > 2)))) { %>",
+		"	                    <li class=\"hierarchy hide\">",
+		"	                        <a class=\"dimension\" title=\"<%= hierarchy.description ? hierarchy.description : hierarchy.caption %>\" href=\"#\"  hierarchy=\"<%= hierarchy.name %>\"><%= hierarchy.caption %></a>",
+		"	                    </li>",
+		"	                <% } %>",
+		"	                <ul class=\"d_hierarchy\" hierarchy=\"<%= hierarchy.uniqueName %>\" hierarchycaption=\"<%= hierarchy.caption %>\">",
+		"	                <div class=\"hgroup treehidden\"><%= hierarchy.caption %></div>",
+		"	                <% _.each(hierarchy.levels, function(level) { %>",
+		"	                    <% if ((Settings.DIMENSION_SHOW_ALL || level.name != \"(All)\") && (typeof level[\"visible\"] == \"undefined\" || level[\"visible\"])) { %>",
+		"	                        <li class=\"hide d_level\">",
+		"	                        <a title=\"<%= (Settings.DIMENSION_HIDE_HIERARCHY === 'SINGLE_LEVEL' || Settings.DIMENSION_HIDE_HIERARCHY === 'ALL') && dimension.hierarchies.length > 1? hierarchy.caption + ' - ' : '' %><%= level.description ? level.description : level.caption %>\" level=\"<%= level.name %>\" hierarchy=\"<%= hierarchy.uniqueName %>\"",
+		"                            class=\"level\" href=\"#<%= encodeURIComponent(hierarchy.uniqueName) %>/<%= encodeURIComponent(level.name) %>\"><%= level.caption %></a>",
+		"	                        </li>",
+		"	                    <% } %>",
+		"	                <% }); %>",
+		"	                </ul>",
+		"	            <% } %>",
+		"	        <% }); %>",
+		"	        </ul>",
+		"	<% } %>",
+		"	<% }); %>",
+		"	</ul>"//,
+//		"</script>"
+		);
+		
+	private String templateMeasures = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-measures\">",
+		"        <ul>",
+		"        <% var g = _.groupBy(measures, 'measureGroup'); %>",
+		"        <% _.each(g, function(group, key) { %>",
+		"            <% if(key != \"null\") { %>",
+		"            <li class='parent_dimension'>",
+		"            <span class=\"root <%= Settings.MEASURE_GROUPS_COLLAPSED ? 'collapsed' : 'expand' %> sprite\"></span>",
+		"              <a class=\"folder_expand sprite\" href=\"#\" title=\"<%= key %>\"><%= key %></a>",
+		"                <ul>",
+		"                <% _.each(group, function(measure) { %>",
+		"                <% if (typeof measure[\"visible\"] == \"undefined\" || measure[\"visible\"]) { %>",
+		"                <li class=\"d_measure <%= Settings.MEASURE_GROUPS_COLLAPSED ? 'hide' : '' %>\"><a title=\"<%= measure.description ? measure.description : measure.uniqueName %>\"",
+		"                        measure=\"<%= measure.name %>\" type=\"EXACT\"",
+		"                    class=\"measure\" href=\"#Measures/member/<%= encodeURIComponent(measure.uniqueName) %>\"><%= measure.caption %></a>",
+		"                </li>",
+		
+		"                <% } %>",
+		"                <% }); %>",
+		"                </ul>",
+		"                </li>",
+		"            <% } else {%>",
+		"            <li class='parent_dimension'>",
+		"            <span class=\"root <%= Settings.MEASURE_GROUPS_COLLAPSED ? 'collapsed' : 'expand' %> sprite\"></span>",
+		"              <a class=\"folder_expand sprite\" href=\"#\" title=\" \"> </a>",
+		"                <ul>",
+		"            <% _.each(group, function(measure) { %>",
+		
+		"                <li class=\"d_measure <%= Settings.MEASURE_GROUPS_COLLAPSED ? 'hide' : '' %>\"><a title=\"<%= measure.description ? measure.description : measure.uniqueName %>\"",
+		"                        measure=\"<%= measure.name %>\" type=\"EXACT\"",
+		"                    class=\"measure\" href=\"#Measures/member/<%= encodeURIComponent(measure.uniqueName) %>\"><%= measure.caption %></a>",
+		"                </li>",
+		
+		"                <% }); %>",
+		"                </ul>",
+		"                </li>",
+		"            <% } %>",
+		"        <% }); %>",
+		"        </ul>"//,
+//		"</script>"
+		);
+	
+	private String templateCalculatedMeasures = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-calculated-measures\">",
+		"	<ul>",
+		"		<li>",
+		"	        <span class=\"root expand sprite\"></span>",
+		"	           <a href=\"#\" title=\"Calculated Measures\" class=\"folder_expand sprite i18n\">Calculated Measures</a>",
+		"	        <% if (measures) { %>",
+		"        	<ul>",
+		"        	<% _.each(measures, function(measure) { %>",
+		
+		"                <li class=\"d_measure\"><a title=\"<%= measure.name %>\"",
+		"                        measure=\"<%= measure.name %>\" type=\"CALCULATED\"",
+		"                    class=\"measure\" href=\"#Measures/member/<%= encodeURIComponent(measure.uniqueName) %>\"><%= measure.name %></a>",
+		"                </li>",
+		
+		"        	<% }); %>",
+		"        	<% } %>",
+		"			</ul>",
+		"		<li>",
+		"	</ul>"//,
+//		"</script>"
+		);
+	
+	private String templateCalculatedMember = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-calculated-member\">",
+		"	<% if (member) { %>",
+		"		<li class=\"hide d_level dimension-level-calcmember\">",
+		"		    <a title=\"<%= member.name %>\" level=\"<%= member.name %>\" hierarchy=\"<%= member.hierarchyName %>\" uniquename=\"<%= member.uniqueName %>\" class=\"level level-calcmember\" href=\"#<%= encodeURIComponent(member.hierarchyName) %>/<%= encodeURIComponent(member.name) %>\" style=\"color: #1e7145;\"><%= member.name %></a>",
+		"		</li>",
+		"	<% } %>"//,
+//		"</script>"
+		);
+	
+private String templateWorkspace = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-workspace\">",
+		"	<div class=\"workspace\">",
+		"    	<div class=\"workspace_inner\">",
+		"        	<div class=\"query_toolbar\"></div>",
+		"        	<div class=\"workspace_toolbar\"></div>",
+		"        	<div class=\"upgrade\"></div>",
+		"        	<div class=\"parameter_input\" />",
+		"        	<div class=\"workspace_editor hide\">",
+		"            	<div id='mdx_editor' class='mdx_input hide'>",
+		"            	</div>",
+		"            	<span class=\"editor_info hide\"></span>",
+		"        	</div>",
+		"        	<div id=\"query_processing\" class=\"query_processing\" style=\"display:none;\"><span class=\"processing_image\">&nbsp;&nbsp;</span> <span class=\"i18n\">Running query...</span>  [&nbsp;<a class=\"cancel i18n\" href=\"#cancel\">Cancel</a>&nbsp;]</div>",
+		"        	<div class=\"workspace_results_info\" align=\"right\" />",
+		"        	<div class=\"workspace_results_titles\" align=\"center\"/>",
+		"        	<div class=\"workspace_results\">",
+		"    		</div>",
+		"	    </div>",
+		"	</div>",
+		"	<div class=\"sidebar\">",
+		"    	<div>",
+		"        	<h3 class=\"top i18n\">Cubes</h3>",
+		"        	<div class=\"refresh_cubes_nav\">",
+		"	            <a id=\"refresh_icon\" href=\"#refresh_cubes\"",
+		"  		            class=\"i18n button refresh_cubes\"",
+		"	                title=\"Refresh Cubes (Clear Cache)\"></a>",
+		"       </div>",
+		"       <div class=\"admin_console_nav\"></div>",
+		"       </div>",
+		"       <div class=\"sidebar_inner\">",
+		"       	<%= cube_navigation %>",
+		"       </div>",
+		"       <div class=\"metadata_attribute_wrapper\">",
+		"       	<%=  _.template($(\"#template-attributes\").html())() %>",
+		"       </div>",
+		"	</div>",
+		"	<div class=\"sidebar_separator\"></div>",
+		"	<div class=\"clear\"></div>"//,
+//		"</script>"
+		);
+		
+		private String templateAttributes = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-attributes\">",
+		"	<div class=\"metadata_attribute_container\">",
+		"   	<h3 class=\"measure_caption\"><span class=\"i18n\">Measures</span><a class=\"button addMeasure i18n\" style=\"display:none;\">Add</a></h3>",
+		"    	<div class=\"sidebar_inner measure_tree\">",
+		"       	<% if (typeof cube != \"undefined\" && cube && cube.dimensions) { %>",
+		"           	<%= _.template($(\"#template-measures\").html(), { measures: cube.measures }) %>",
+		"			<% } else { %>",
+		"	           <span class=\"i18n loading hide\">Loading...</span>",
+		"			<% } %>",
+		"        <div class=\"calculated_measures\" style=\"display:none;\"></div>",
+		"        <div class=\"calculated_members\" style=\"display:none;\"></div>",
+		"	     </div>",
+		"	     <h3 class=\"i18n dimension_header\">Dimensions</h3>",
+		"    	 <div class=\"sidebar_inner dimension_tree\">",
+		"	        <% if (typeof cube != \"undefined\" && cube && cube.dimensions) { %>",
+		"           	<%=  _.template($(\"#template-dimensions\").html(), { dimensions: cube.dimensions }) %>",
+		"	        <% } else { %>",
+		"           	<span class=\"i18n loading hide\">Loading...</span>",
+		"	        <% } %>",
+		"	    </div>",
+		"	</div>"//,
+//		"</script>"
+		);
+		
+		private String templateWorkspaceDropzones = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-workspace-dropzones\">",
+		"	<div class=\"workspace_fields disabled\">",
+		"   	<div class=\"fields_list details_fields\" title=\"DETAILS\">",
+		"       	<div class=\"fields_list_header measure_fields disabled_toolbar\"><span class=\"i18n\">Measures</span><span class=\"dropdown\"></span>,</div>",
+		"       	<div class=\"fields_list_body details\">",
+		"	           <ul class=\"connectable\"></ul>",
+		"		    </div>",
+		"	        <span class=\"clear_axis i18n hide\" title=\"Clear Axis\"></span>",
+		"        	<div class=\"clear\"></div>",
+		"    	</div>",
+		"    	<div class=\"fields_list columns_fields\" title=\"COLUMNS\">",
+		"        	<div class=\"fields_list_header axis_fields_header disabled_toolbar\"><span class=\"i18n\">Columns</span><span class=\"dropdown\"></span></div>",
+		"        	<div class=\"fields_list_body columns axis_fields\">",
+		"	           <ul class=\"connectable\"></ul>",
+		"	        </div>",
+		"	        <span class=\"clear_axis i18n hide\" title=\"Clear Axis\"></span>",
+		"       	<div class=\"clear\"></div>",
+		"    	</div>",
+		"    	<div class=\"fields_list rows_fields\" title=\"ROWS\">",
+		"        	<div class=\"fields_list_header axis_fields_header disabled_toolbar\"><span class=\"i18n\">Rows</span><span class=\"dropdown\"></span></div>",
+		"        	<div class=\"fields_list_body rows axis_fields\">",
+		"	           <ul class=\"connectable\"></ul>",
+		"    		</div>",
+		"	        <span class=\"clear_axis i18n hide\" title=\"Clear Axis\"></span>",
+		"        	<div class=\"clear\"></div>",
+		"	    </div>",
+		"    	<div class=\"fields_list filter_fields\" title=\"FILTER\">",
+		"        	<div class=\"fields_list_header axis_fields_header disabled_toolbar\"><span class=\"i18n\">Filter</span><span class=\"dropdown\"></span></div>",
+		"        	<div class=\"fields_list_body filter axis_fields\">",
+		"	           <ul class=\"connectable\"></ul>",
+		"    		</div>",
+		"	        <span class=\"clear_axis i18n hide\" title=\"Clear Axis\"></span>",
+		"        	<div class=\"clear\"></div>",
+		"	    </div>",
+		"	</div>"//,
+//		"</script>"
+		);
+		
+		private String templateWorkspaceToolbar = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-workspace-toolbar\">",
+		"	<ul>",
+		"	   <li><a href=\"#open_query\"",
+		"       	class=\"i18n open button sprite\"",
+		"       	title\"Open query\" id=\"new_icon\"></a></li>",
+		"	   <li><a href=\"#save_query\" id=\"save_icon\"",
+		"       	class=\"i18n save button disabled_toolbar sprite\"",
+		"       	title\"Save query\"></a></li>",
+		"       	<li class=\"seperator\"><a href=\"#new_query\"",
+		"       	class=\"i18n new disabled_toolbar button sprite\"",
+		"       	title\"Reset query\"></a></li>",
+		"	   <li><a href=\"#edit_query\"",
+		"       	class=\"i18n edit button on disabled_toolbar sprite\"",
+		"       	title\"Edit query\" id=\"edit_icon\"></a></li>",
+		"       	<li class=\"seperator\"><a href=\"#run_query\" id=\"run_icon\"",
+		"       	class=\"i18n run button disabled_toolbar sprite\"",
+		"       	title\"Run query\"></a></li>",
+		"	   <li><a href=\"#automatic_execution\" id=\"automatic_icon\"",
+		"       	class=\"i18n auto button disabled_toolbar sprite\"",
+		"       	title\"Automatic execution\"></a></li>",
+		"       	<li class=\"seperator\"><a href=\"#group_parents\" id=\"group_icon\"",
+		"       	class=\"i18n group_parents button disabled_toolbar sprite\"",
+		"       	title\"Hide Parents\"></a></li>",
+		"	   <li><a href=\"#non_empty\" id=\"non_empty_icon\"",
+		"       	class=\"i18n non_empty button disabled_toolbar sprite\"",
+		"       	title\"Non-empty\"></a></li>",
+		"	   <li><a href=\"#swap_axis\" id=\"swap_axis_icon\"",
+		"       	class=\"i18n swap_axis button disabled_toolbar sprite\"",
+		"       	title\"Swap axis\"></a></li>",
+		"	   <li><a href=\"#show_mdx\" id=\"show_mdx_icon\"",
+		"       	class=\"i18n mdx button disabled_toolbar sprite\"",
+		"       	title\"Show MDX\"></a></li>",
+		"       	<li class=\"seperator\"><a href=\"#zoom_mode\" id=\"zoom_mode_icon\"",
+		"       	class=\"i18n table_mode zoom_mode button disabled_toolbar\"",
+		"       	title\"Zoom into table\"></a></li>",
+		"       	<li class=\"seperator\"><a href=\"#query_scenario\"",
+		"       	class=\"i18n table_mode query_scenario button disabled_toolbar sprite\"",
+		"       	title\"Query Scenario\"></a></li>",
+		"		<% if (Settings.REPORT_TITLES) { %>",
+		"			<li class=\"seperator\">",
+		"	            <a href=\"#workspace_report_titles\"",
+		"	              class=\"i18n workspace_report_titles button disabled_toolbar sprite\"",
+		"	              title=\"Report Titles\"></a>",
+		"	        </li>",
+		"	    <% } %>",
+		"		<li class=\"seperator\"><a href=\"#drillacross\" id=\"drillacross_icon\"",
+		"			class=\"i18n table_mode drillacross button disabled_toolbar sprite\"",
+		"			title=\"Drill across on cell\"></a></li>",
+		"       <li class=\"seperator\"><a href=\"#drillthrough\" id=\"drillthrough_icon\"",
+		"		    class=\"i18n table_mode drillthrough button disabled_toolbar sprite\"",
+		"       	title\"Drill through on cell\"></a></li>",
+		"	   	<li><a href=\"#export_drillthrough\" id=\"export_drillthrough_icon\"",
+		"       	class=\"i18n table_mode drillthrough_export button disabled_toolbar sprite\"",
+		"       	title\"Export Drill-Through on cell to CSV\"></a></li>",
+		"       <li class=\"seperator\"><a href=\"#export_xls\" id=\"export_xls_icon\"",
+		"       	class=\"i18n export_xls button disabled_toolbar sprite\"",
+		"       	title\"Export XLS\"></a></li>",
+		"	   	<li><a href=\"#export_csv\" id=\"export_csv_icon\"",
+		"       	class=\"i18n export_csv button disabled_toolbar sprite\"",
+		"       	title\"Export CSV\"></a></li>",
+		"	   	<li><a href=\"#export_pdf\" id=\"export_pdf_icon\"",
+		"       	class=\"i18n export_pdf button disabled_toolbar sprite\"",
+		"       	title\"EXPERIMENTAL: Export PDF\"></a></li>",
+		"	   	<li><a href=\"#switch_to_mdx\" id=\"switch_to_mdx_icon\"",
+		"       	class=\"i18n switch_to_mdx button disabled_toolbar\"",
+		"       	title\"Switch to MDX Mode\"></a></li>",
+		"	   	<% if (Settings.BIPLUGIN5 == true) { %>",
+		"       <li class=\"seperator\"><a href=\"#about\"",
+		"       	class=\"i18n about button sprite\"",
+		"       	title\"About\"></a></li>",
+		"		<% } %>",
+		"	</ul>"//,
+//		"</script>"
+		);
+		
+		private String templateQueryToolbar = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-query-toolbar\">",
+		"	<div class=\"query_toolbar_vertical\">",
+		"	<ul class=\"renderer\">",
+		"	   <li><a href=\"#switch_render_button\" id=\"table_icon\"",
+		"       	class=\"i18n render_table button disabled_toolbar on\"",
+		"       	title\"Table Mode\"></a></li>",
+		"	   <li><a href=\"#switch_render_button\" id=\"chart_icon\"",
+		"       	class=\"i18n render_chart button disabled_toolbar\"",
+		"       	title\"Chart Mode\"></a></li>",
+		"	</ul>",
+		"	<ul class='options table hide'>",
+		"       	<li class=\"seperator_vertical\"><a href=\"#spark_bar\" id=\"spark_bar_icon\"",
+		"       	class=\"i18n spark_bar tablebutton button disabled_toolbar\"",
+		"       	title\"Spark Bar\"></a></li>",
+		"	   <li><a href=\"#spark_line\" id=\"spark_line_icon\"",
+		"       	class=\"i18n spark_line button disabled_toolbar\"",
+		"       	title\"Spark Line\"></a></li>",
+		"	</ul>",
+		"	<ul class='options chart hide'>",
+		"      <li class=\"seperator_vertical\"><a href =\"#export_button\"",
+		"       	class=\"disabled_toolbar export_button menu button\"><span class=\"i18n\">Export</span><span class=\"dropdown\"></span></a></li>",
+		"	   <li><a href=\"#bar\"",
+		"       	class=\"i18n bar chartoption button disabled_toolbar\"",
+		"       	title\"Bar\"></a></li>",
+		"	   <li><a href=\"#stackedBar\"",
+		"       	class=\"i18n stackedBar chartoption on button disabled_toolbar\"",
+		"       	title\"Stacked Bar\"></a></li>",
+		"	   <li><a href=\"#stackedBar100\"",
+		"       	class=\"i18n stackedBar100 chartoption button disabled_toolbar\"",
+		"       	title\"Bar 100%\"></a></li>",
+		"	   <li><a href=\"#multiplebar\"",
+		"       	class=\"i18n multiple chartoption button disabled_toolbar\"",
+		"       	title\"Multiple Bar Chart\"></a></li>",
+		"	   <li><a href=\"#line\"",
+		"       	class=\"i18n line chartoption button disabled_toolbar\"",
+		"       	title\"Line\"></a></li>",
+		"	   <li><a href=\"#area\"",
+		"       	class=\"i18n area chartoption button disabled_toolbar\"",
+		"       	title\"Area\"></a></li>",
+		"	   <li><a href=\"#heatgrid\"",
+		"       	class=\"i18n heatgrid chartoption button disabled_toolbar\"",
+		"       	title\"Heat Grid\"></a></li>",
+		"	   <li><a href=\"#treemap\"",
+		"       	class=\"i18n treemap chartoption button disabled_toolbar\"",
+		"       	title\"Tree Map\"></a></li>",
+		"	   <li><a href=\"#sunburst\"",
+		"       	class=\"i18n sunburst chartoption button disabled_toolbar\"",
+		"       	title\"Sunburst\"></a></li>",
+		"	   <li><a href=\"#multiplesunburst\"",
+		"       	class=\"i18n multiplesunburst chartoption button disabled_toolbar\"",
+		"       	title\"Multi Sunburst\"></a></li>",
+		"	   <li><a href=\"#dot\"",
+		"       	class=\"i18n dot chartoption button disabled_toolbar\"",
+		"       	title\"Dot\"></a></li>",
+		"	   <li><a href=\"#waterfall\"",
+		"       	class=\"i18n waterfall chartoption button disabled_toolbar\"",
+		"       	title\"Waterfall\"></a></li>",
+		"	   <li><a href=\"#pie\"",
+		"       	class=\"i18n pie chartoption button disabled_toolbar\"",
+		"       	title\"Pie\"></a></li>",
+		"	   <li><a href=\"#radar\"",
+		"       	class=\"i18n radar chartoption button disabled_toolbar\"",
+		"       	title\"Radar\"></a></li>",
+		"	   <li><a href=\"#timewheel\"",
+		"       	class=\"i18n timewheel chartoption button disabled_toolbar\"",
+		"       	title\"Time Wheel\"></a></li>",
+		"	</ul>",
+		"	</div>"//,
+//		"</script>"
+		);
+		
+		private String templateOpenDialog = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-open-dialog\">",
+		"    <div class=\"workspace\" style=\"margin-left: -305px\">",
+		"        <div class=\"workspace_inner\" style=\"margin-left: 305px\">",
+		"           <div class=\"workspace_toolbar hide\">",
+		"           <ul>",
+		"               <li class='for_queries hide'><a href=\"#open_query\" class=\"run button sprite\"></a></li>",
+		"               <li class='for_queries hide'><a href=\"#edit_query\" class=\"edit button sprite\"></a></li>",
+		"               <li class='for_queries hide'><a href=\"#delete_query\" class=\"delete button sprite\"></a></li>",
+		"               <li class='for_queries hide'><a href=\"#edit_permissions\" class=\"edit_permissions button sprite\"></a></li>",
+		"               <li class='for_folder hide'><a href=\"#delete_folder\" class=\"delete button sprite\"></a></li>",
+		"               <li class='for_folder hide'><a href=\"#edit_permissions\" class=\"edit_permissions button sprite\"></a></li>",
+		"           </ul>",
+		"           </div>",
+		"           <div class=\"workspace_results\">",
+		"           </div>",
+		"    	</div>",
+		"    </div>",
+		"    <div class=\"sidebar queries\" style=\"width: 300px;\">",
+		"        <h3 class=\"top\" style=\"padding-top: 3px; padding-bottom: 2px;\">",
+		"           <div class=\"form-inline\">",
+		"               <label class=\"i18n\">Search:</label> &nbsp;",
+		"               <input type=\"text\" class=\"repository_search_file form-control\" style=\"padding-right: 0; width: 230px;\"></input>",
+		"               <span class=\"cancel_search\" style=\"position: absolute; top: 8px; left: 270px;\"></span>",
+		"               <span class=\"add_folder_button\"><a href=\"#\" class=\"add_folder\"></a></span>",
+		"           </div>",
+		"        </h3>",
+		"        <div class=\"sidebar_inner\">",
+		"           <ul id=\"queries\" class=\"RepositoryObjects\">",
+		"               <li class=\"i18n\">Loading...</li>",
+		"           </ul>",
+		"    	</div>",
+		"    </div>",
+		"    <div class=\"sidebar_separator\"></div>",
+		"    <div class=\"clear\"></div>"//,
+//		"</script>"
+		);
+		
+		private String templateRepositoryObjects = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-repository-objects\">",
+		"   <% _.each( repoObjects, function( entry ) { %>",
+		"       <% if( entry.type === 'FOLDER' ) { %>",
+		"          <%= _.template($(\"#template-repository-folder\").html())({ entry: entry }) %>",
+		"       <% } else { %>",
+		"            <%= _.template($(\"#template-repository-file\").html())({ entry: entry }) %>",
+		"       <% } %>",
+		"   <% } ); %>"//,
+//		"</script>"
+		);
+		
+		private String templateRepositoryFolder = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-repository-folder\">",
+		"   <% if(!Settings.REPOSITORY_LAZY) { %>",
+		"       <li class='folder'>",
+		"           <div class='folder_row'>",
+		"               <span class='sprite folder collapsed'></span>",
+		"               <a href=\"#<%= entry.path %>\"><%= entry.name %></a>",
+		"           </div>",
+		"	        <ul class='hide folder_content'>",
+		"	           <%= _.template($(\"#template-repository-objects\").html())( { repoObjects: entry.repoObjects }) %>",
+		"           </ul>",
+		"       </li>",
+		"   <% } else { %>",
+		"       <li class='folder'>",
+		"           <div class='folder_row'>",
+		"               <span class='sprite folder collapsed'></span>",
+		"               <a href=\"#<%= entry.path %>\"><%= entry.name %></a>",
+		"           </div>",
+		"       </li>",
+		"   <% } %>"//,
+//		"</script>"
+		);
+		
+		private String templateRepositoryFolderLazyLoad = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-repository-folder-lazyload\">",
+		"       <ul class='folder_content'>",
+		"            <%= _.template($(\"#template-repository-objects\").html())( { repoObjects: repoObjects }) %>",
+		"       </ul>"//,
+//		"</script>"
+		);
+		
+		private String templateRepositoryFile = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-repository-file\">",
+		"    <li class='query'>",
+		"    <% if (Settings.ICON_16) { %>",
+		"	     <span class='icon_override' style='background-image: url(<%= Settings.ICON_16 %>);'></span>",
+		"   <% } else { %>",
+		"	     <span class='icon'></span>",
+		"   <% } %>",
+		"       <a href=\"#<%= entry.path %>\"><%= entry.name %></a>",
+		"   </li>"//,
+//		"</script>"
+		);
+		
+		private String templateSelections = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-selections\">",
+		"    <div class=\"form-inline header_selections\">",
+		"       <label for=\"filter_selections\" class=\"i18n\">Search:</label> &nbsp;<input name=\"filter_selections\"",
+		"      		id=\"filter_selections\" disabled=\"true\" type=\"text\" class=\"form-control filterbox\" /> <input class=\"i18n form-control search_term form_button\" type=\"submit\" value=\"Pre-Filter on Server\" /><input class=\"i18n form-control clear_search form_button\" type=\"submit\" value=\"Clear Filter\" /><br/>",
+		"	 </div>",
+		"    <div class=\"available_selections form-inline caption\">",
+		"        <span class=\"i18n\">Available members:</span><br/>",
+		"           <div class=\"selection_options\" ><ul></ul></div>",
+		"	 </div>",
+		"    <div class=\"selection_buttons\">",
+		"       <a class=\"form_button btn btn-default\" href=\"#move_selection\" id=\"add_members\">&nbsp;&gt;&nbsp;",
+		"       </a><br><br>",
+		"       <a class=\"form_button btn btn-default\" href=\"#move_selection\" id=\"add_all_members\">&gt;&gt;</a><br><br>",
+		"       <a class=\"form_button btn btn-default\" href=\"#move_selection\" id=\"remove_all_members\">&lt;&lt;</a><br><br>",
+		"       <a class=\"form_button btn btn-default\" href=\"#move_selection\" id=\"remove_members\">&nbsp;&lt;&nbsp;</a>",
+		"	 </div>",
+		"    <div class=\"used_selections form-inline caption\">",
+		"	        <span class=\"i18n\">Used members:</span>",
+		"			<span>",
+		"				<input class=\"selection_type selection_type_inclusion\" type=\"radio\" name=\"inclusion_type\" value=\"INCLUSION\" checked=\"true\"><span class=\"i18n\">Include</span>",
+		"				<input class=\"selection_type selection_type_exclusion\" type=\"radio\" name=\"inclusion_type\" value=\"EXCLUSION\"><span class=\"i18n\">Exclude</span>",
+		"			</span>",
+		"			<br/>",
+		"           <div class=\"selection_options\" ><ul></ul></div>",
+		"	 </div>",
+		"    	<div class=\"updown_buttons\">",
+		"	        <a class=\"form_button\" href=\"#up\" id=\"up_members\">&nbsp;&uarr;&nbsp;</a><br><br>",
+		"	        <a class=\"form_button\" href=\"#down\" id=\"down_members\">&nbsp;&darr;&nbsp;</a><br><br>",
+		"	    </div>",
+		"    	<div class=\"options form-inline\">",
+		"	        <input class=\"form-control\" name=\"show_unique\" id=\"show_unique\" type=\"checkbox\" />&nbsp;<label for=\"show_unique class=\"i18n\">Show Unique Names</label><br/>",
+		"	        <input name=\"use_result\" class=\"form-control\" id=\"use_result\" type=\"checkbox\" />&nbsp;<label for=\"use_result\" class=\"i18n\">Use Result</label><br/>",
+		"		<div id=\"div-totals-container\">",
+		"           <div class=\"totals_container\">",
+		"                <label for=\"per_metrics_totals_checkbox\" class=\"i18n\">Totals per metrics</label>",
+		"                <input type=\"checkbox\" id=\"per_metrics_totals_checkbox\"/>",
+		"                &nbsp;",
+		"           </div>",
+		"           <div class=\"totals_container all_metrics_container\">",
+		"                <strong>All Measures - </strong>",
+		"                <label for=\"show_totals\" class=\"i18n\">Sub totals</label>",
+		"                <select class=\"form-control\" id=\"all_measures_select\">",
+		"                    <option class=\"i18n\" value=\"not\" selected=\"selected\">None</option>",
+		"                    <option class=\"i18n\" value=\"sum\">Sum</option>",
+		"                    <option class=\"i18n\" value=\"min\">Min</option>",
+		"                    <option class=\"i18n\" value=\"max\">Max</option>",
+		"                    <option class=\"i18n\" value=\"avg\">Avg</option>",
+		"                </select>",
+		"           </div>",
+		"    	</div>",
+		"		<div class=\"form-inline\">",
+		"	        <label for=\"parameter\" class=\"parameter hidden i18n\">Parameter Name</label>&nbsp;",
+		"			<input name=\"parameter\" id=\"parameter\" class=\"form-control parameter hidden\" type=\"text\" /></div>",
+		"	    </div>",
+		"    	<div class=\"info\">",
+		"        	<div><label for=\"items_size\" class=\"i18n\">Items</label>: <span class=\"items_size\"></span></div>",
+		"        	<div><span class=\"warning i18n\"></span></div>",
+		"	    </div>",
+		"    	<div class=\"hint\">",
+		"	        <div><label for=\"search_limit\" class=\"i18n\">Display Limit</label>: <span class=\"members_limit\"></span></div>",
+		"   	     <div><label for=\"search_limit\" class=\"i18n\">Filter Limit</label>: <span class=\"search_limit\"></span></div>",
+		"	    </div>",
+		"    	<div class=\"autocomplete\"></div>"//,
+//		"</script>"
+		);
+		
+		private String templateSelectionsTotals = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-selections-totals\">",
+		"	<div class=\"totals_container per_metrics_container\">",
+		"		<strong><%= measure.name %> - </strong>",
+		"		<label for=\"show_totals\" class=\"i18n\">Sub totals</label>",
+		"		<select class=\"form-control show_totals_select\">",
+		"		    <option class=\"i18n\" value=\"nil\" selected=\"selected\">None</option>",
+		"		    <option class=\"i18n\" value=\"sum\">Sum</option>",
+		"		    <option class=\"i18n\" value=\"min\">Min</option>",
+		"		    <option class=\"i18n\" value=\"max\">Max</option>",
+		"		    <option class=\"i18n\" value=\"avg\">Avg</option>",
+		"		</select>",
+		"		&nbsp;",
+		"	</div>"//,
+//		"</script>"
+		);
+		
+		private String templateSelectionsOptions = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-selections-options\">",
+		"    <ul>",
+		"      <li class=\"i18n all_options\"><input type=\"checkbox\" class=\"check_all_option\"",
+		"    		id=\"check_all_option\"><label for=\"check_all_option\" class=\"i18n\">All Members</label></li>",
+		"		    <%  var counter = 0;",
+		"        		_.each(options, function(option) {",
+		"            		counter++; %>",
+		"        	<% if (!option.calc) { %>",
+		"            	<li class=\"option_value\">",
+		"                	<input type=\"checkbox\" class=\"check_option\"",
+		"                    	value=\"<%= encodeURIComponent(option.obj ? option.obj.uniqueName : option.uniqueName) %>\" name=\"selections_checker\"",
+		"                    	id=\"selections_checker<%= counter %>\"",
+		"                    	label=\"<%= encodeURIComponent(option.obj ? option.obj.caption : option.caption) %>\" />",
+		"                   	 <label for=\"selections_checker<%= counter %>\" class=\"caption\"><%= option.obj ? option.obj.caption : option.caption %></label>",
+		"                    	<label for=\"selections_checker<%= counter %>\" class=\"unique\"><%= option.obj ? option.obj.uniqueName : option.uniqueName %></label>",
+		"            	</li>",
+		"        	<% } else { %>",
+		"            	<li class=\"option_value\">",
+		"                	<input type=\"checkbox\" class=\"check_option cmember\"",
+		"                    	value=\"<%= encodeURIComponent(option.obj ? option.obj.uniqueName : option.uniqueName) %>\" name=\"selections_checker\"",
+		"                    	id=\"selections_checker<%= counter %>\"",
+		"                    	label=\"<%= encodeURIComponent(option.obj ? option.obj.caption : option.caption) %>\" />",
+		"                    	<label for=\"selections_checker<%= counter %>\" class=\"caption\" style=\"color: blue;\"><%= option.obj ? option.obj.caption : option.caption %></label>",
+		"                    	<label for=\"selections_checker<%= counter %>\" class=\"unique\" style=\"color: blue;\"><%= option.obj ? option.obj.uniqueName : option.uniqueName %></label>",
+		"            </li>",
+		"        <% } %>",
+		"    <% }); %>",
+		"    </ul>"//,
+//		"</script>"
+		);
+		
+		private String templatePermissions = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-permissions\">",
+		"   <div class=\"permissions\">",
+		"        <label for=\"filter_roles\" class=\"i18n\">Add role permission:</label>",
+		"        <br/>",
+	    "            <form class=\"form-inline\">",
+	    "                <input name=\"filter_roles\" id=\"filter_roles\" type=\"text\" class=\"filterbox form-control\" />",
+	    "                <input type=\"submit\" value=\"Add\" class=\"i18n add_role btn btn-primary\" />",
+	    "            </form>",
+	    "            <input type=\"checkbox\" class=\"acl\" value=\"READ\" /><span class=\"i18n\">READ</span>",
+	    "            <input type=\"checkbox\" class=\"acl\" value=\"WRITE\" /><span class=\"i18n\">WRITE</span>",
+	    "            <input type=\"checkbox\" class=\"acl\" value=\"GRANT\" /><span class=\"i18n\">GRANT</span>",
+	    "        <br/><br/>",
+	    "	    <span class=\"i18n\">Roles:</span>",
+		"       <div class=\"rolelist\"></div>",
+		"        <br/>",
+		"       <input type=\"submit\" value=\"Remove permission\" class=\"i18n btn btn-danger remove_acl\" />",
+		"	</div>",
+		"   <br/>",
+		"   <div class=\"private\">",
+		"       <input type=\"checkbox\" class=\"private\" value=\"PRIVATE\" /><span class=\"i18n\">Keep this file private to me</span> (<b><%= Saiku.session.username %></b>)",
+	    "        <br/><br/>",
+		"	    <span class=\"private_owner\" style=\"display:none;\"><span class=\"i18n\">Currently private to:</span>&nbsp;<span class=\"owner\"></span></span>",
+		"	</div>",
+		"   <br/>"//,
+//		"</script>"
+		);
+		
+		private String templatePermissionsRolelist = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-permissions-rolelist\">",
+		"    <select class=\"select_roles\" multiple size=\"4\">",
+		"        <% _.each(roles, function(grants, role) {",
+		"            var aclstring =\"\";",
+		"             _.each(grants, function(grant, index) {",
+		"                aclstring += (index > 0 ? (\" \" + grant) : grant);",
+		"            });",
+		"        %>",
+		"            <option value=\"<%=role %>\"><%= role + \" [\" + aclstring + \"]\" %></option>",
+		"        <% }); %>",
+		"    </select>"//,
+//		"</script>"
+		);
+		
+		private String templateDrillthrough = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-drillthrough\">",
+		"	<div class=\"row_limit\">",
+		"		<br/>",
+		"	    <span class=\"i18n\">Row Limit: (0 = none)</span> <input id=\"maxrows\" name=\"maxrows\" class=\"maxrows\" type=\"text\" />",
+		"		<br/>",
+		"	    <span class=\"i18n\"><b>CAUTION:</b> The number of rows can have a significant impact on the performance of the following action.</span>",
+		"	</div>"//,
+//		"</script>"
+		);
+		
+//		private String templateDrillacross = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-drillacross\">",
+//		"</script>");
+		
+		private String templateDrillthroughList = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-drillthrough-list\">",
+		"	<div class=\"sidebar\" style=\"border:1px solid #CCCCCC\">",
+		"	    <h3><input type=\"checkbox\" class=\"all_dimensions\"/> &nbsp;<span class=\"i18n\">Dimensions</span></h3>",
+		"  		<div class=\"sidebar_inner dimension_tree\"></div>",
+		"	    <h3><input type=\"checkbox\" class=\"all_measures\"/> &nbsp;<span class=\"i18n\">Measures</span></h3>",
+		"   	<div class=\"sidebar_inner measure_tree\"></div>",
+		"	</div>",
+		"	<div class=\"sidebar_separator\"></div>",
+		"	<div class=\"clear\"></div>"//,
+//		"</script>"
+		);
+		
+		private String templateDrillthroughDimensions = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-drillthrough-dimensions\">",
+		"	<ul>",
+		"	<% _.each(dimensions, function(dimension) { %>",
+		"		<% if (dimension.name != 'Measures' && (typeof dimension[\"visible\"] == \"undefined\" || dimension[\"visible\"])) { %>",
+		"			<li class='parent_dimension'>",
+		"				<span class=\"root collapsed sprite\"></span>",
+		"				<input type=\"checkbox\" class=\"check_dimension\" />",
+		"				<a class=\"folder_collapsed sprite\" href=\"#\" title=\"<%= dimension.description ? dimension.description : dimension.caption %>\"><%= dimension.caption %></a>",
+		"				<ul>",
+		"					<% _.each(dimension.hierarchies, function(hierarchy) { %>",
+		"						<% if (typeof hierarchy[\"visible\"] == \"undefined\" || hierarchy[\"visible\"]) { %>",
+		"							<% if (dimension.hierarchies.length > 1) { %>",
+		"								<li class=\"hierarchy hide\">",
+		"									<a class=\"dimension\" title=\"<%= hierarchy.description ? hierarchy.description : hierarchy.caption %>\" href=\"#\" key=\"<%= dimension.name %>###<%= hierarchy.name %>\"><%= hierarchy.caption %></a>",
+		"								</li>",
+		"							<% } %>",
+		"						<% } %>",
+		"						<% _.each(hierarchy.levels, function(level) { %>",
+		"							<% if (typeof level[\"visible\"] == \"undefined\" || level[\"visible\"]) { %>",
+		"								<% if (level.caption !== \"(All)\" || level.levelType !== \"All\" || level.levelType !== \"ALL\") { %>",
+		"									<li class=\"hide\"> &nbsp;&nbsp;&nbsp;&nbsp;",
+		"										<input type=\"checkbox\" class=\"check_level\" value=\"<%= level.uniqueName %>\" key=\"<%= dimension.name %>###<%= hierarchy.name %>\"> <%= level.caption %></input>",
+		"									</li>",
+		"								<% } %>",
+		"							<% } %>",
+		"						<% }); %>",
+		"					<% }); %>",
+		"				</ul>",
+		"		<% } %>",
+		"	<% }); %>",
+		"	</ul>"//,
+//		"</script>"
+		);
+		
+		
+		private String templateDrillthroughMeasures = String.join("\n",
+//		"<script type=\"text/x-jquery-tmpl\" id=\"template-drillthrough-measures\">",
+		"	<ul>",
+		"		<li>",
+		"			<span class=\"root expand sprite\"></span>",
+		"			<a href=\"#\" title=\"Measures\" class=\"folder_expand i18n sprite\">Measures</a>",
+		"			<ul>",
+		"				<% _.each(measures, function(measure) { %>",
+		"					<% if (typeof measure[\"visible\"] == \"undefined\" || measure[\"visible\"]) { %>",
+		"						<% if(typeof measure.calculated == \"undefined\" || (measure.calculated == false || allMeasures)) { %>",
+		"							<li> &nbsp;&nbsp;&nbsp;&nbsp;",
+		"								<input type=\"checkbox\" class=\"check_level\" value=\"<%= measure.uniqueName %>\" key=\"Measures###<%= measure.name %>\"> <%= measure.caption %></input>",
+		"							</li>",
+		"						<% } %>",
+		"					<% } %>",
+		"				<% }); %>",
+		"			</ul>",
+		"		</li>",
+		"	</ul>"//,
+//		"</script>"
+		);
+
+
+		public String getTemplateToolbar() {
+			return templateToolbar;
+		}
+
+
+		public String getTemplateUpgrade() {
+			return templateUpgrade;
+		}
+
+
+		public String getTemplateLogincount() {
+			return templateLogincount;
+		}
+
+
+		public String getTemplateCubes() {
+			return templateCubes;
+		}
+
+
+		public String getTemplateDimensions() {
+			return templateDimensions;
+		}
+
+
+		public String getTemplateMeasures() {
+			return templateMeasures;
+		}
+
+
+		public String getTemplateCalculatedMeasures() {
+			return templateCalculatedMeasures;
+		}
+
+
+		public String getTemplateCalculatedMember() {
+			return templateCalculatedMember;
+		}
+
+
+		public String getTemplateWorkspace() {
+			return templateWorkspace;
+		}
+
+
+		public String getTemplateAttributes() {
+			return templateAttributes;
+		}
+
+
+		public String getTemplateWorkspaceDropzones() {
+			return templateWorkspaceDropzones;
+		}
+
+
+		public String getTemplateWorkspaceToolbar() {
+			return templateWorkspaceToolbar;
+		}
+
+
+		public String getTemplateQueryToolbar() {
+			return templateQueryToolbar;
+		}
+
+
+		public String getTemplateOpenDialog() {
+			return templateOpenDialog;
+		}
+
+
+		public String getTemplateRepositoryObjects() {
+			return templateRepositoryObjects;
+		}
+
+
+		public String getTemplateRepositoryFolder() {
+			return templateRepositoryFolder;
+		}
+
+
+		public String getTemplateRepositoryFolderLazyLoad() {
+			return templateRepositoryFolderLazyLoad;
+		}
+
+
+		public String getTemplateRepositoryFile() {
+			return templateRepositoryFile;
+		}
+
+
+		public String getTemplateSelections() {
+			return templateSelections;
+		}
+
+
+		public String getTemplateSelectionsTotals() {
+			return templateSelectionsTotals;
+		}
+
+
+		public String getTemplateSelectionsOptions() {
+			return templateSelectionsOptions;
+		}
+
+
+		public String getTemplatePermissions() {
+			return templatePermissions;
+		}
+
+
+		public String getTemplatePermissionsRolelist() {
+			return templatePermissionsRolelist;
+		}
+
+
+		public String getTemplateDrillthrough() {
+			return templateDrillthrough;
+		}
+
+
+//		public String getTemplateDrillacross() {
+//			return templateDrillacross;
+//		}
+
+
+		public String getTemplateDrillthroughList() {
+			return templateDrillthroughList;
+		}
+
+
+		public String getTemplateDrillthroughDimensions() {
+			return templateDrillthroughDimensions;
+		}
+
+
+		public String getTemplateDrillthroughMeasures() {
+			return templateDrillthroughMeasures;
+		}
+
+}
diff --git a/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/saiku/js/SaikuRendererJsClass.js b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/saiku/js/SaikuRendererJsClass.js
new file mode 100644
index 0000000..81ed10d
--- /dev/null
+++ b/org.eclipse.osbp.utils.ui/src/org/eclipse/osbp/utils/vaadin/saiku/js/SaikuRendererJsClass.js
@@ -0,0 +1,130 @@
+window.org_eclipse_osbp_utils_vaadin_saiku_SaikuRenderer = function() {
+
+    // Replace the normal jQuery getScript function with one that supports
+    // debugging and which references the script files as external resources
+    // rather than inline.
+/*  */  jQuery.extend({
+        getScript: function(url, callback) {
+            var head = document.getElementsByTagName("head")[0];
+            var script = document.createElement("script");
+            script.src = url;
+
+            // Handle Script loading
+            {
+                var done = false;
+
+                // Attach handlers for all browsers
+                script.onload = script.onreadystatechange = function(){
+                    if ( !done && (!this.readyState ||
+                            this.readyState == "loaded" || this.readyState == "complete") ) {
+                        done = true;
+                       if (callback)
+                            callback();
+
+                        // Handle memory leak in IE
+                        script.onload = script.onreadystatechange = null;
+                    }
+                };
+            }
+
+            head.appendChild(script);
+
+            // We handle everything using the script element injection
+            return undefined;
+        }
+    });
+
+
+//	saikuCreationCode = "";
+
+	//setCreationCode(this.getState().saikuCreationCode);
+	//this.onStateChange = function() {
+	//	setCreationCode(this.getState().saikuCreationCode);
+	//}
+	
+	//eval(saikuCreationCode);
+	
+	
+	var element = this.getElement();
+	var root = d3.select(element);
+	root.append("div").attr("id", "header").attr("class", "hide").attr("style", "display:none");
+	root.append("div").attr("class", "processing_container");
+	var processingDiv = root.append("div").attr("class", "processing");
+	var processingInnerDiv = processingDiv.append("div").attr("class", "processing_inner");
+	processingInnerDiv.append("span").attr("class", "saiku_logo");
+	var processingContentDiv = processingInnerDiv.append("div").attr("class", "processing_content");
+	processingContentDiv.append("span").attr("class", "processing_image").text("\&nbsp\;");
+	processingContentDiv.append("span").attr("class", "processing_message i18n").text("Loading...");
+	
+	
+	var body = d3.select("body")
+	
+	addJQueryTScriptElementToBody(root, "template-toolbar", this.getState().saikuJQueryTemplateToolbarCode);
+	addJQueryTScriptElementToBody(root, "template-upgrade", this.getState().saikuJQueryTemplateUpgradeCode);
+	addJQueryTScriptElementToBody(root, "template-logincount", this.getState().saikuJQueryTemplateLogincountCode);
+	addJQueryTScriptElementToBody(root, "template-cubes", this.getState().saikuJQueryTemplateCubesCode);
+	addJQueryTScriptElementToBody(root, "template-dimensions", this.getState().saikuJQueryTemplateDimensionsCode);
+	addJQueryTScriptElementToBody(root, "template-measures", this.getState().saikuJQueryTemplateMeasuresCode);
+	addJQueryTScriptElementToBody(root, "template-calculated-measures", this.getState().saikuJQueryTemplateCalculatedMeasuresCode);
+	addJQueryTScriptElementToBody(root, "template-calculated-member", this.getState().saikuJQueryTemplateCalculatedMemberCode);
+	addJQueryTScriptElementToBody(root, "template-workspace", this.getState().saikuJQueryTemplateWorkspaceCode);
+	addJQueryTScriptElementToBody(root, "template-attributes", this.getState().saikuJQueryTemplateAttributesCode);
+	addJQueryTScriptElementToBody(root, "template-workspace-dropzones", this.getState().saikuJQueryTemplateWorkspaceDropzonesCode);
+	addJQueryTScriptElementToBody(root, "template-workspace-toolbar", this.getState().saikuJQueryTemplateWorkspaceToolbarCode);
+	addJQueryTScriptElementToBody(root, "template-query-toolbar", this.getState().saikuJQueryTemplateQueryToolbarCode);
+	addJQueryTScriptElementToBody(root, "template-open-dialog", this.getState().saikuJQueryTemplateOpenDialogCode);
+	addJQueryTScriptElementToBody(root, "template-repository-objects", this.getState().saikuJQueryTemplateRepositoryObjectsCode);
+	addJQueryTScriptElementToBody(root, "template-repository-folder", this.getState().saikuJQueryTemplateRepositoryFolderCode);
+	addJQueryTScriptElementToBody(root, "template-folder-lazyload", this.getState().saikuJQueryTemplateRepositoryFolderLazyloadCode);
+	addJQueryTScriptElementToBody(root, "template-repository-file", this.getState().saikuJQueryTemplateRepositoryFileCode);
+	addJQueryTScriptElementToBody(root, "template-selections", this.getState().saikuJQueryTemplateSelectionsCode);
+	addJQueryTScriptElementToBody(root, "template-selections-totals", this.getState().saikuJQueryTemplateSelectionsTotalsCode);
+	addJQueryTScriptElementToBody(root, "template-selections-options", this.getState().saikuJQueryTemplateSelectionsOptionsCode);
+	addJQueryTScriptElementToBody(root, "template-permissions", this.getState().saikuJQueryTemplatePermissionsCode);
+	addJQueryTScriptElementToBody(root, "template-permissions-rolelist", this.getState().saikuJQueryTemplatePermissionsRolelistCode);
+	addJQueryTScriptElementToBody(root, "template-drillthrough", this.getState().saikuJQueryTemplateDrillthroughCode);
+	addJQueryTScriptElementToBody(root, "template-drillacross", this.getState().saikuJQueryTemplateDrillacrossCode);
+	addJQueryTScriptElementToBody(root, "template-drillthrough-list", this.getState().saikuJQueryTemplateDrillthroughListCode);
+	addJQueryTScriptElementToBody(root, "template-drillthrough-dimensions", this.getState().saikuJQueryTemplateDrillthroughDimensionsCode);
+	addJQueryTScriptElementToBody(root, "template-drillthrough-measures", this.getState().saikuJQueryTemplateDrillthroughMeasuresCode);
+	
+	//body.append("script").attr("src", "VAADIN/themes/osbp/plugin/saiku.osgi/resources/js/ga.js").attr("type", "text/javascript")
+	
+	//eval(this.getState().saikuJsJQueryPlaceHolderCode);
+	
+	//root.append("script").attr("type", "text/javascript").text(this.getState().saikuJsJQueryPlaceHolderCode);
+	
+	/*window.document.dispatchEvent(new Event('DOMContentLoaded', {
+												bubbles: true,
+												cancelable: true
+											 }));
+	
+	document.addEventListener("DOMContentLoaded", ready);
+	document.addEventListener('readystatechange', () => log('readyState:' + document.readyState));*/
+	
+	// Use the handy event callback
+	document.addEventListener( "DOMContentLoaded", completed );
+
+	// A fallback to window.onload, that will always work
+	window.addEventListener( "load", completed );
+	jQuery.isReady = false;
+	jQuery.ready();
+}
+
+// The ready event handler and self cleanup method
+function completed() {
+	document.removeEventListener( "DOMContentLoaded", completed );
+	window.removeEventListener( "load", completed );
+	jQuery.ready();
+}
+
+function addJQueryTScriptElementToBody(element, templateId, code) {
+	element.append("script").attr("id", templateId).attr("type", "text/x-jquery-tmpl").text(code);
+}
+
+function ready() {
+    alert('DOM is ready');
+}
+
+
+