Skip to content
Snippets Groups Projects
Commit ff50b404 authored by Sergey Linev's avatar Sergey Linev
Browse files

eve7: change the way application is loading

Now Component.js and mainfest.json are used to configure libs, css, main
application and top view.

Some minor parts are not yet working (like routing and css), but main
application is runs!
parent 135ddb5f
No related branches found
No related tags found
No related merge requests found
sap.ui.define(['sap/ui/core/UIComponent'],
function(UIComponent) {
sap.ui.define([
'sap/ui/core/UIComponent', 'sap/ui/core/mvc/XMLView', 'sap/m/routing/Router' /* Router is only needed for packaging */
], function(UIComponent, XMLView) {
"use strict";
var Component = UIComponent.extend("eve.Component", {
metadata : {
rootView : "eve.Main",
dependencies : {
libs : [
"sap.ui.commons",
"sap.ui.layout"
]
},
config : {
sample : {
files : [
"Main.view.xml",
"Main.controller.js",
"GL.view.xml",
"GL.controller.js",
"Summary.view.xml",
"Summary.controller.js"
]
}
}
manifest: "json"
},
onAfterRendering : function() {
init: function() {
UIComponent.prototype.init.apply(this, arguments);
this.getRouter().initialize();
}
});
......
sap.ui.define([
'sap/ui/core/Component',
'sap/ui/core/UIComponent',
'sap/ui/core/mvc/Controller',
'sap/ui/model/json/JSONModel',
"sap/ui/core/ResizeHandler",
'rootui5/eve7/lib/EveManager',
'rootui5/eve7/lib/EveElements',
'rootui5/eve7/lib/EveScene'
], function (Controller, JSONModel, ResizeHandler, EveManager, EveElements, EveScene) {
'rootui5/eve7/lib/EveManager'
], function (Component, UIComponent, Controller, JSONModel, ResizeHandler, EveManager) {
"use strict";
// for debug purposes - do not create geometry painter, just three.js renderer
var direct_threejs = false;
var EveScene = null;
return Controller.extend("rootui5.eve7.controller.GL", {
......@@ -18,7 +21,49 @@ sap.ui.define([
var id = this.getView().getId();
console.log("eve.GL.onInit id = ", id);
var data = this.getView().getViewData();
var viewData = this.getView().getViewData();
if (viewData) {
console.log("Create with view data");
this.createXXX(viewData);
}
var oRouter = UIComponent.getRouterFor(this);
if (oRouter) oRouter.getRoute("View").attachPatternMatched(this._onObjectMatched, this);
ResizeHandler.register(this.getView(), this.onResize.bind(this));
this.fast_event = [];
this._load_scripts = false;
this._render_html = false;
this.geo_painter = null;
// this.painter_ready = false;
JSROOT.AssertPrerequisites("geom", this.onLoadScripts.bind(this));
},
onLoadScripts: function()
{
var pthis = this;
sap.ui.define(['rootui5/eve7/lib/EveScene'], function (_handle) {
EveScene = _handle;
pthis._load_scripts = true;
pthis.checkViewReady();
});
},
_onObjectMatched: function(oEvent) {
var args = oEvent.getParameter("arguments");
this.createXXX(Component.getOwnerComponentFor(this.getView()).getComponentData(), args.viewName);
},
createXXX: function(data, viewName) {
if (viewName) {
data.standalone = viewName;
data.kind = viewName;
}
//var data = this.getView().getViewData();
// console.log("VIEW DATA", data);
if (data.standalone && data.conn_handle)
......@@ -35,15 +80,6 @@ sap.ui.define([
this.kind = data.kind;
}
ResizeHandler.register(this.getView(), this.onResize.bind(this));
this.fast_event = [];
this._load_scripts = false;
this._render_html = false;
this.geo_painter = null;
// this.painter_ready = false;
JSROOT.AssertPrerequisites("geom", this.onLoadScripts.bind(this));
},
// MT-HAKA
......@@ -171,12 +207,6 @@ sap.ui.define([
this.renderer.render( this.scene, this.camera );
},
onLoadScripts: function()
{
this._load_scripts = true;
this.checkViewReady();
},
onManagerUpdate: function()
{
// called when manager was updated, need only in standalone modes to detect own element id
......
sap.ui.define(['sap/ui/core/mvc/Controller',
sap.ui.define(['sap/ui/core/Component',
'sap/ui/core/mvc/Controller',
'sap/ui/layout/Splitter',
'sap/ui/layout/SplitterLayoutData',
'rootui5/eve7/lib/EveManager'
], function(Controller, Splitter, SplitterLayoutData, EveManager) {
], function(Component, Controller, Splitter, SplitterLayoutData, EveManager) {
"use strict";
......@@ -13,11 +14,13 @@ sap.ui.define(['sap/ui/core/mvc/Controller',
this.mgr = new EveManager();
this.mgr.UseConnection(this.getView().getViewData().conn_handle);
var conn_handle = Component.getOwnerComponentFor(this.getView()).getComponentData().conn_handle;
this.mgr.UseConnection(conn_handle);
// this.mgr.UseConnection(this.getView().getViewData().conn_handle);
// method to found summary controller by ID and set manager to it
var elem = this.byId("Summary");
var ctrl = sap.ui.getCore().byId(elem.getId()).getController();
var ctrl = elem.getController();
ctrl.SetMgr(this.mgr);
this.mgr.RegisterUpdate(this, "onManagerUpdate");
......
......@@ -5,7 +5,6 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Eve7</title>
<script type="text/javascript" src="jsrootsys/scripts/JSRootCore.js"></script>
<!-- link rel="stylesheet" type="text/css" href="evedir/eve.css"/-->
<style>
html { height: 100%; }
body { min-height: 100%; margin: 0; overflow: hidden }
......@@ -30,34 +29,29 @@
function InitUI(handle) {
var kind = JSROOT.GetUrlOption('view');
if (!kind) {
new JSROOT.sap.ui.xmlview({
id: "TopEveId",
viewName: "rootui5.eve7.view.Main",
viewData: { conn_handle: handle }
}).placeAt("EveDiv");
} else {
new JSROOT.sap.ui.xmlview({
id: "TopGlId",
viewName: "rootui5.eve7.view.GL",
viewData: { conn_handle: handle, standalone: kind }
}).placeAt("EveDiv");
}
sap.ui.require(["sap/ui/core/ComponentContainer"], function(ComponentContainer) {
new ComponentContainer({
name: "rootui5.eve7",
manifest: true,
async: true,
settings: {
componentData: {
conn_handle: handle
}
},
height: "100%"
}).placeAt("EveDiv")
});
}
if (JSROOT.GetUrlOption('nogl')!==null) JSROOT.gStyle.NoWebGL = true;
if (JSROOT.GetUrlOption('libs')!==null) JSROOT.use_full_libs = true;
var jsroot_prereq = "openui5";
if (JSROOT.GetUrlOption('view')) jsroot_prereq += ";geom";
JSROOT.ConnectWebWindow({
prereq: jsroot_prereq,
prereq: "openui5",
// openui5src: "jsroot", // use JSROOT provided package, experimental
openui5src: "https://openui5.hana.ondemand.com/",
openui5libs: "sap.m, sap.ui.layout, sap.ui.table, sap.ui.commons", // customize openui5 libs
openui5libs: "sap.ui.core", // customize openui5 libs
prereq_logdiv: "EveDiv",
callback: InitUI
});
......
{
"sap.app": {
"id": "rootui5.eve7"
},
"sap.ui5": {
"rootView": {
"viewName": "rootui5.eve7.view.MainMain",
"type": "XML",
"async": true,
"id": "app"
},
"resources": {
"css": [
{
"uri": "rootui5/eve7/css/eve.css"
}
]
},
"dependencies": {
"libs": {
"sap.ui.core": {},
"sap.ui.layout": {},
"sap.m": {},
"sap.uxap": {},
"sap.ui.table": {}
}
},
"routing": {
"config": {
"routerClass": "sap.m.routing.Router",
"viewType": "XML",
"async": true,
"viewPath": "rootui5.eve7.view",
"controlAggregation": "pages",
"controlId": "myApp"
},
"routes": [{
"name": "Default",
"pattern": "",
"target": ["Main"]
}, {
"name": "View",
"pattern": "view/:viewName:",
"target": ["GL"]
}],
"targets": {
"Main": {
"transition": "slide",
"clearAggregation": true,
"viewName": "Main"
},
"GL": {
"transition": "slide",
"clearAggregation": true,
"viewName": "GL"
}
}
}
}
}
\ No newline at end of file
<mvc:View height="100%" class="sapUiSizeCompact"
xmlns:mvc="sap.ui.core.mvc"
xmlns="sap.m">
<App id="myApp"></App>
</mvc:View>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment