@sapui5/sap.ui.vbm 1.93.1 → 1.96.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/ui/vbm/.library +1 -1
- package/src/sap/ui/vbm/Adapter.js +17 -13
- package/src/sap/ui/vbm/Adapter3D.js +1 -1
- package/src/sap/ui/vbm/Areas.js +7 -8
- package/src/sap/ui/vbm/Cluster.js +4 -3
- package/src/sap/ui/vbm/ClusterBase.js +4 -7
- package/src/sap/ui/vbm/ClusterRenderer.js +0 -1
- package/src/sap/ui/vbm/Containers.js +3 -5
- package/src/sap/ui/vbm/GeoJsonLayer.js +9 -10
- package/src/sap/ui/vbm/GeoMap.js +3 -2
- package/src/sap/ui/vbm/VBI.js +40 -8
- package/src/sap/ui/vbm/Viewport.js +6 -5
- package/src/sap/ui/vbm/VoAggregation.js +3 -5
- package/src/sap/ui/vbm/adapter3d/ModelHandler.js +1 -1
- package/src/sap/ui/vbm/adapter3d/ObjectFactory.js +1 -1
- package/src/sap/ui/vbm/adapter3d/PolygonHandler.js +1 -1
- package/src/sap/ui/vbm/adapter3d/SceneBuilder.js +270 -182
- package/src/sap/ui/vbm/adapter3d/VBIJSONParser.js +1 -1
- package/src/sap/ui/vbm/adapter3d/thirdparty/ColladaLoader.js +2267 -2509
- package/src/sap/ui/vbm/adapter3d/thirdparty/DecalGeometry.js +194 -266
- package/src/sap/ui/vbm/adapter3d/thirdparty/OrbitControls.js +1004 -700
- package/src/sap/ui/vbm/lib/sapactions.js +12 -9
- package/src/sap/ui/vbm/lib/sapautomations.js +12 -13
- package/src/sap/ui/vbm/lib/sapconfig.js +11 -3
- package/src/sap/ui/vbm/lib/sapdataprovider.js +11 -21
- package/src/sap/ui/vbm/lib/sapevents.js +11 -11
- package/src/sap/ui/vbm/lib/sapgeolocation.js +10 -3
- package/src/sap/ui/vbm/lib/sapgeomath.js +11 -4
- package/src/sap/ui/vbm/lib/sapgeotool.js +12 -3
- package/src/sap/ui/vbm/lib/sapheatmap.js +28 -25
- package/src/sap/ui/vbm/lib/saplabels.js +17 -11
- package/src/sap/ui/vbm/lib/saplassotrack.js +11 -5
- package/src/sap/ui/vbm/lib/sapmaplayer.js +13 -10
- package/src/sap/ui/vbm/lib/sapmapmanager.js +14 -4
- package/src/sap/ui/vbm/lib/sapmapprovider.js +11 -5
- package/src/sap/ui/vbm/lib/sapnavigation.js +11 -3
- package/src/sap/ui/vbm/lib/sapparsing.js +11 -1
- package/src/sap/ui/vbm/lib/sappositioning.js +12 -5
- package/src/sap/ui/vbm/lib/sapprojection.js +12 -5
- package/src/sap/ui/vbm/lib/saprecttrack.js +11 -5
- package/src/sap/ui/vbm/lib/sapresources.js +12 -6
- package/src/sap/ui/vbm/lib/sapscale.js +15 -5
- package/src/sap/ui/vbm/lib/sapscene.js +15 -13
- package/src/sap/ui/vbm/lib/saputilities.js +19 -91
- package/src/sap/ui/vbm/lib/sapvbcluster.js +14 -6
- package/src/sap/ui/vbm/lib/sapvbi.js +11 -42
- package/src/sap/ui/vbm/lib/sapvbicontext.js +11 -5
- package/src/sap/ui/vbm/lib/sapvbmenu.js +19 -13
- package/src/sap/ui/vbm/lib/sapvobase.js +17 -16
- package/src/sap/ui/vbm/lib/sapvoutils.js +14 -24
- package/src/sap/ui/vbm/lib/sapwindow.js +12 -12
- package/src/sap/ui/vbm/library.js +28 -31
- package/src/sap/ui/vbm/adapter3d/thirdparty/html2canvas.js +0 -6
package/package.json
CHANGED
package/src/sap/ui/vbm/.library
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<name>sap.ui.vbm</name>
|
|
4
4
|
<vendor>SAP SE</vendor>
|
|
5
5
|
<copyright>SAP UI development toolkit for HTML5 (SAPUI5) (c) Copyright 2009-2012 SAP AG. All rights reserved</copyright>
|
|
6
|
-
<version>1.
|
|
6
|
+
<version>1.96.1</version>
|
|
7
7
|
|
|
8
8
|
<documentation>SAP UI library: sap.ui.vbm</documentation>
|
|
9
9
|
|
|
@@ -23,7 +23,7 @@ sap.ui.define([
|
|
|
23
23
|
* @param {string} [sId] id for the new control, generated automatically if no id is given
|
|
24
24
|
* @param {object} [mSettings] initial settings for the new object
|
|
25
25
|
* @author SAP SE
|
|
26
|
-
* @version 1.
|
|
26
|
+
* @version 1.96.1
|
|
27
27
|
* @extends sap.ui.core.Element
|
|
28
28
|
* @constructor
|
|
29
29
|
* @public
|
|
@@ -1298,13 +1298,16 @@ sap.ui.define([
|
|
|
1298
1298
|
* @private
|
|
1299
1299
|
*/
|
|
1300
1300
|
Adapter.prototype._processDetailWindows = function(obj) {
|
|
1301
|
-
//No transformation needed for removal - pass it along to VBI as is.
|
|
1302
|
-
|
|
1303
1301
|
var oGeoMap = this._map();
|
|
1304
1302
|
var that = this;
|
|
1305
1303
|
|
|
1306
|
-
|
|
1307
|
-
if (obj.SAPVB.Windows.Set.
|
|
1304
|
+
// "Remove" and "Set" verbs supported only
|
|
1305
|
+
if (!obj.SAPVB.Windows.Set && !obj.SAPVB.Windows.Remove) {
|
|
1306
|
+
return this;
|
|
1307
|
+
}
|
|
1308
|
+
// No transformation needed for removal - pass it along to VBI as is.
|
|
1309
|
+
// Only delta supported for Windows - Set
|
|
1310
|
+
if (obj.SAPVB.Windows.Set && obj.SAPVB.Windows.Set.name) {
|
|
1308
1311
|
|
|
1309
1312
|
var findPredicate = function(prop, name) {
|
|
1310
1313
|
return function(d) {
|
|
@@ -1321,7 +1324,7 @@ sap.ui.define([
|
|
|
1321
1324
|
for (var sAttribute in wnd.Window) {
|
|
1322
1325
|
if (wnd.Window.hasOwnProperty(sAttribute)) {
|
|
1323
1326
|
if (sAttribute.endsWith(".bind")) {
|
|
1324
|
-
//Only known bound attribute is pos - known to have a value like Spots.+hY+jTn2HueNpLoqrc5IAg==.GeoPosition
|
|
1327
|
+
// Only known bound attribute is pos - known to have a value like Spots.+hY+jTn2HueNpLoqrc5IAg==.GeoPosition
|
|
1325
1328
|
if (sAttribute.startsWith("pos")) {
|
|
1326
1329
|
var aParameters = wnd.Window[sAttribute].split(".");
|
|
1327
1330
|
if (aParameters[0] in oModelData) {
|
|
@@ -1345,7 +1348,7 @@ sap.ui.define([
|
|
|
1345
1348
|
|
|
1346
1349
|
obj.SAPVB.Windows.Set = aWindows;
|
|
1347
1350
|
|
|
1348
|
-
//Dereference VOs
|
|
1351
|
+
// Dereference VOs
|
|
1349
1352
|
if (obj.SAPVB.Scenes && obj.SAPVB.Scenes.Set && obj.SAPVB.Scenes.Set.name && obj.SAPVB.Scenes.Set.Scene && obj.SAPVB.Scenes.Set.Scene.VO) {
|
|
1350
1353
|
|
|
1351
1354
|
var aVOs = [].concat(obj.SAPVB.Scenes.Set.Scene.VO).map(function(v) {
|
|
@@ -1374,18 +1377,18 @@ sap.ui.define([
|
|
|
1374
1377
|
for (var sAttribute in v) {
|
|
1375
1378
|
if (v.hasOwnProperty(sAttribute)) {
|
|
1376
1379
|
if (sAttribute.endsWith(".bind")) {
|
|
1377
|
-
//Only known bound attribute is text - has values like DetailData.0.Column.1.Text
|
|
1380
|
+
// Only known bound attribute is text - has values like DetailData.0.Column.1.Text
|
|
1378
1381
|
var aParameters = v[sAttribute].split(".");
|
|
1379
1382
|
|
|
1380
1383
|
if (obj.SAPVB.Data && obj.SAPVB.Data.Set) {
|
|
1381
|
-
//Only Delta supported for Detail Window
|
|
1384
|
+
// Only Delta supported for Detail Window
|
|
1382
1385
|
[].concat(obj.SAPVB.Data.Set).forEach(dereferenceBoundAttributes(oVO, sAttribute, aParameters), this);
|
|
1383
1386
|
}
|
|
1384
1387
|
}
|
|
1385
1388
|
}
|
|
1386
1389
|
}
|
|
1387
1390
|
|
|
1388
|
-
//Process relevant actions
|
|
1391
|
+
// Process relevant actions
|
|
1389
1392
|
if (obj.SAPVB.Actions && obj.SAPVB.Actions.Set) {
|
|
1390
1393
|
[].concat(obj.SAPVB.Actions.Set).filter(function(a) { return a.Action.refVO === oVO.id; }).forEach(function(fa) {
|
|
1391
1394
|
that._attachHandler.call(oGeoMap, fa.Action.name, that._handler, that);
|
|
@@ -1394,12 +1397,13 @@ sap.ui.define([
|
|
|
1394
1397
|
|
|
1395
1398
|
return oVO;
|
|
1396
1399
|
}, this);
|
|
1397
|
-
|
|
1398
|
-
//delete obj.SAPVB["Actions"];
|
|
1400
|
+
// delete obj.SAPVB["Actions"];
|
|
1399
1401
|
obj.SAPVB.Scenes.Set.Scene.VO = aVOs;
|
|
1400
1402
|
}
|
|
1401
|
-
oGeoMap.load(obj);
|
|
1402
1403
|
}
|
|
1404
|
+
// pass it to VBI (this is hazardous as if payload contains something not related to Detail Windows in Scene,
|
|
1405
|
+
// VO or Data sections then it will be processed twice with unpredictable results)
|
|
1406
|
+
oGeoMap.load(obj);
|
|
1403
1407
|
return this;
|
|
1404
1408
|
};
|
|
1405
1409
|
|
|
@@ -42,7 +42,7 @@ sap.ui.define([
|
|
|
42
42
|
* @param {string} [sId] id for the new control, generated automatically if no id is given
|
|
43
43
|
* @param {object} [mSettings] initial settings for the new object
|
|
44
44
|
* @author SAP SE
|
|
45
|
-
* @version 1.
|
|
45
|
+
* @version 1.96.1
|
|
46
46
|
* @extends sap.ui.core.Element
|
|
47
47
|
* @constructor
|
|
48
48
|
* @public
|
package/src/sap/ui/vbm/Areas.js
CHANGED
|
@@ -6,16 +6,17 @@
|
|
|
6
6
|
// Provides control sap.ui.vbm.Areas.
|
|
7
7
|
sap.ui.define([
|
|
8
8
|
"./VoAggregation",
|
|
9
|
+
"sap/ui/unified/Menu",
|
|
9
10
|
"sap/base/Log",
|
|
10
11
|
"./library"
|
|
11
|
-
], function(VoAggregation, Log, library) {
|
|
12
|
+
], function(VoAggregation, Menu, Log, library) {
|
|
12
13
|
"use strict";
|
|
13
14
|
|
|
14
15
|
var thisModule = "sap.ui.vbm.Areas";
|
|
15
16
|
|
|
16
17
|
/**
|
|
17
18
|
* Constructor for a new Areas.
|
|
18
|
-
*
|
|
19
|
+
*
|
|
19
20
|
* @param {string} [sId] id for the new control, generated automatically if no id is given
|
|
20
21
|
* @param {object} [mSettings] initial settings for the new control
|
|
21
22
|
* @class Type specific Visual Object aggregation for <i>Area</i> instances.
|
|
@@ -67,7 +68,7 @@ sap.ui.define([
|
|
|
67
68
|
*/
|
|
68
69
|
instance: {
|
|
69
70
|
type: "sap.ui.vbm.Area"
|
|
70
|
-
},
|
|
71
|
+
},
|
|
71
72
|
/**
|
|
72
73
|
* The number of the edge where the click occured. Edges are numbered zero based: e.g. edge from point 1 to point 2 has number
|
|
73
74
|
* 0
|
|
@@ -282,21 +283,19 @@ sap.ui.define([
|
|
|
282
283
|
if ((Area = this.findInstance(event.Action.instance))) {
|
|
283
284
|
var eventContext = {
|
|
284
285
|
data: event,
|
|
285
|
-
edge: parseInt(event.Action.Params.Param['2']['#'], 10)
|
|
286
|
+
edge: parseInt(event.Action.Params.Param['2']['#'], 10)
|
|
286
287
|
};
|
|
287
|
-
|
|
288
|
+
|
|
288
289
|
if (s == "edgeContextMenu") {
|
|
289
290
|
Area.mClickPos = [
|
|
290
291
|
event.Action.Params.Param[0]['#'], event.Action.Params.Param[1]['#']
|
|
291
292
|
];
|
|
292
|
-
// lazy load sap.ui.unified library for using the Menu
|
|
293
|
-
sap.ui.getCore().loadLibrary("sap.ui.unified");
|
|
294
293
|
|
|
295
294
|
if (this.oParent.mVBIContext.m_Menus) {
|
|
296
295
|
this.oParent.mVBIContext.m_Menus.deleteMenu("DynContextMenu");
|
|
297
296
|
}
|
|
298
297
|
// create an empty menu
|
|
299
|
-
var oMenuObject = new
|
|
298
|
+
var oMenuObject = new Menu();
|
|
300
299
|
oMenuObject.vbi_data = {};
|
|
301
300
|
oMenuObject.vbi_data.menuRef = "CTM";
|
|
302
301
|
oMenuObject.vbi_data.VBIName = "DynContextMenu";
|
|
@@ -7,13 +7,14 @@
|
|
|
7
7
|
sap.ui.define([
|
|
8
8
|
"sap/ui/core/Control",
|
|
9
9
|
"jquery.sap.global",
|
|
10
|
-
"./library"
|
|
11
|
-
|
|
10
|
+
"./library",
|
|
11
|
+
"./ClusterRenderer"
|
|
12
|
+
], function(Control, jQuery, library, ClusterRenderer) {
|
|
12
13
|
"use strict";
|
|
13
14
|
|
|
14
15
|
/**
|
|
15
16
|
* Constructor for a new Cluster.
|
|
16
|
-
*
|
|
17
|
+
*
|
|
17
18
|
* @param {string} [sId] id for the new control, generated automatically if no id is given
|
|
18
19
|
* @param {object} [mSettings] initial settings for the new control
|
|
19
20
|
* @class Cluster control to visualize clustered objects on a map. The Cluster control does not cluster anything itself, instead it only shows a
|
|
@@ -8,10 +8,11 @@ sap.ui.define([
|
|
|
8
8
|
"sap/ui/core/Element",
|
|
9
9
|
"sap/ui/core/theming/Parameters",
|
|
10
10
|
"./ClusterContainer",
|
|
11
|
+
"sap/ui/unified/Menu",
|
|
11
12
|
"jquery.sap.global",
|
|
12
13
|
"sap/base/Log",
|
|
13
14
|
"./library"
|
|
14
|
-
], function(Element, Parameters, ClusterContainer, jQuery, Log, library) {
|
|
15
|
+
], function(Element, Parameters, ClusterContainer, Menu, jQuery, Log, library) {
|
|
15
16
|
"use strict";
|
|
16
17
|
|
|
17
18
|
var thisModule = "sap.ui.vbm.ClusterBase";
|
|
@@ -390,14 +391,12 @@ sap.ui.define([
|
|
|
390
391
|
oVo.mClickPos = [
|
|
391
392
|
event.Action.Params.Param[0]['#'], event.Action.Params.Param[1]['#']
|
|
392
393
|
];
|
|
393
|
-
// lazy load sap.ui.unified library for using the Menu
|
|
394
|
-
sap.ui.getCore().loadLibrary("sap.ui.unified");
|
|
395
394
|
|
|
396
395
|
if (this.oParent.mVBIContext.m_Menus) {
|
|
397
396
|
this.oParent.mVBIContext.m_Menus.deleteMenu("DynContextMenu");
|
|
398
397
|
}
|
|
399
398
|
// create an empty menu
|
|
400
|
-
var oMenuObject = new
|
|
399
|
+
var oMenuObject = new Menu();
|
|
401
400
|
oMenuObject.vbi_data = {};
|
|
402
401
|
oMenuObject.vbi_data.menuRef = "CTM";
|
|
403
402
|
oMenuObject.vbi_data.VBIName = "DynContextMenu";
|
|
@@ -543,15 +542,13 @@ sap.ui.define([
|
|
|
543
542
|
oCluster.mClickPos = [
|
|
544
543
|
oEvent.clientX - oMapDiv.offsetLeft, oEvent.clientY - oMapDiv.offsetTop
|
|
545
544
|
];
|
|
546
|
-
// lazy load sap.ui.unified library for using the Menu
|
|
547
|
-
sap.ui.getCore().loadLibrary("sap.ui.unified");
|
|
548
545
|
|
|
549
546
|
try {
|
|
550
547
|
if (this.oParent.mVBIContext.m_Menus) {
|
|
551
548
|
this.oParent.mVBIContext.m_Menus.deleteMenu("DynContextMenu");
|
|
552
549
|
}
|
|
553
550
|
// create an empty menu
|
|
554
|
-
var oMenuObject = new
|
|
551
|
+
var oMenuObject = new Menu();
|
|
555
552
|
oMenuObject.vbi_data = {};
|
|
556
553
|
oMenuObject.vbi_data.menuRef = "CTM";
|
|
557
554
|
oMenuObject.vbi_data.VBIName = "DynContextMenu";
|
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
// Provides control sap.ui.vbm.Containers.
|
|
7
7
|
sap.ui.define([
|
|
8
8
|
"./VoAggregation",
|
|
9
|
+
"sap/ui/unified/Menu",
|
|
9
10
|
"./library"
|
|
10
|
-
], function(VoAggregation, library) {
|
|
11
|
+
], function(VoAggregation, Menu, library) {
|
|
11
12
|
"use strict";
|
|
12
13
|
|
|
13
14
|
/**
|
|
@@ -214,15 +215,12 @@ sap.ui.define([
|
|
|
214
215
|
oContainer.mClickPos = [
|
|
215
216
|
oEvent.clientX - oMapDivRect.left, oEvent.clientY - oMapDivRect.top
|
|
216
217
|
];
|
|
217
|
-
// lazy load sap.ui.unified library for using the Menu
|
|
218
|
-
sap.ui.getCore().loadLibrary("sap.ui.unified");
|
|
219
|
-
|
|
220
218
|
try {
|
|
221
219
|
if (this.oParent.mVBIContext.m_Menus) {
|
|
222
220
|
this.oParent.mVBIContext.m_Menus.deleteMenu("DynContextMenu");
|
|
223
221
|
}
|
|
224
222
|
// create an empty menu
|
|
225
|
-
var oMenuObject = new
|
|
223
|
+
var oMenuObject = new Menu();
|
|
226
224
|
oMenuObject.vbi_data = {};
|
|
227
225
|
oMenuObject.vbi_data.menuRef = "CTM";
|
|
228
226
|
oMenuObject.vbi_data.VBIName = "DynContextMenu";
|
|
@@ -7,17 +7,18 @@
|
|
|
7
7
|
sap.ui.define([
|
|
8
8
|
"sap/ui/core/Element",
|
|
9
9
|
"sap/ui/core/theming/Parameters",
|
|
10
|
+
"sap/ui/unified/Menu",
|
|
10
11
|
"jquery.sap.global",
|
|
11
12
|
"sap/base/Log",
|
|
12
13
|
"./library"
|
|
13
|
-
], function(Element, Parameters, jQuery, Log, library) {
|
|
14
|
+
], function(Element, Parameters, Menu, jQuery, Log, library) {
|
|
14
15
|
"use strict";
|
|
15
16
|
|
|
16
17
|
var thisModule = "sap.ui.vbm.GeoJsonLayer";
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
* Constructor for a new GeoJsonLayer.
|
|
20
|
-
*
|
|
21
|
+
*
|
|
21
22
|
* @param {string} [sId] id for the new control, generated automatically if no id is given
|
|
22
23
|
* @param {object} [mSettings] initial settings for the new control
|
|
23
24
|
* @class GeoJsonLayer aggregation container. A GeoJsonLayer can render the content of an assigned GeoJSON. The naming is associated to the
|
|
@@ -158,7 +159,7 @@ sap.ui.define([
|
|
|
158
159
|
|
|
159
160
|
/**
|
|
160
161
|
* Add GeoJSON object to the layer
|
|
161
|
-
*
|
|
162
|
+
*
|
|
162
163
|
* @param {object} aData GeoJSON object or an array of those
|
|
163
164
|
* @returns {void}
|
|
164
165
|
* @public
|
|
@@ -726,7 +727,7 @@ sap.ui.define([
|
|
|
726
727
|
}
|
|
727
728
|
// if( this.mEventRegistry[ "drop" ] || this.isEventRegistered( "drop" ) )
|
|
728
729
|
// aActions.push( { "id": id + "3", "name": "drop", "refScene": "MainScene", "refVO": id, "refEvent": "Drop" } );
|
|
729
|
-
//
|
|
730
|
+
//
|
|
730
731
|
// if( this.mEventRegistry[ "edgeClick" ] || this.isEventRegistered( "edgeClick" ) )
|
|
731
732
|
// aActions.push( { "id": id + "7", "name": "edgeClick", "refScene": "MainScene", "refVO": id, "refEvent": "EdgeClick" });
|
|
732
733
|
// if( this.mEventRegistry[ "edgeContextMenu" ] || this.isEventRegistered( "edgeContextMenu" ) )
|
|
@@ -737,7 +738,7 @@ sap.ui.define([
|
|
|
737
738
|
|
|
738
739
|
/**
|
|
739
740
|
* Returns Properties for Features like name, bounding box, and midpoint
|
|
740
|
-
*
|
|
741
|
+
*
|
|
741
742
|
* @param {string[]} aFeatureIds Array of Feature Ids. The Feature Id must match the GeoJSON tag.
|
|
742
743
|
* @returns {array} Array of Feature Information Objects. Each object in the array has the properties BBox: Bounding Box for the Feature in format
|
|
743
744
|
* "lonMin;latMin;lonMax;latMax", Midpoint: Centerpoint for Feature in format "lon;lat", Name: Name of the Feature, and Properties: Array
|
|
@@ -777,14 +778,12 @@ sap.ui.define([
|
|
|
777
778
|
oOverlay.mClickPos = [
|
|
778
779
|
event.Action.Params.Param[0]['#'], event.Action.Params.Param[1]['#']
|
|
779
780
|
];
|
|
780
|
-
// lazy load sap.ui.unified library for using the Menu
|
|
781
|
-
sap.ui.getCore().loadLibrary("sap.ui.unified");
|
|
782
781
|
|
|
783
782
|
if (this.oParent.mVBIContext.m_Menus) {
|
|
784
783
|
this.oParent.mVBIContext.m_Menus.deleteMenu("DynContextMenu");
|
|
785
784
|
}
|
|
786
785
|
// create an empty menu
|
|
787
|
-
var oMenuObject = new
|
|
786
|
+
var oMenuObject = new Menu();
|
|
788
787
|
oMenuObject.vbi_data = {};
|
|
789
788
|
oMenuObject.vbi_data.menuRef = "CTM";
|
|
790
789
|
oMenuObject.vbi_data.VBIName = "DynContextMenu";
|
|
@@ -812,7 +811,7 @@ sap.ui.define([
|
|
|
812
811
|
|
|
813
812
|
/**
|
|
814
813
|
* open a Detail Window
|
|
815
|
-
*
|
|
814
|
+
*
|
|
816
815
|
* @param {sap.ui.vbm.Feature} oFeature VO instance for which the Detail Window should be opened
|
|
817
816
|
* @param {object} oParams Parameter object
|
|
818
817
|
* @param {string} oParams.caption Text for Detail Window caption
|
|
@@ -835,7 +834,7 @@ sap.ui.define([
|
|
|
835
834
|
|
|
836
835
|
/**
|
|
837
836
|
* open the context menu
|
|
838
|
-
*
|
|
837
|
+
*
|
|
839
838
|
* @param {sap.ui.vbm.Feature} oFeature VO instance for which the Detail Window should be opened
|
|
840
839
|
* @param {object} oMenu the context menu to be opened
|
|
841
840
|
* @returns {void}
|
package/src/sap/ui/vbm/GeoMap.js
CHANGED
|
@@ -8,8 +8,9 @@ sap.ui.define([
|
|
|
8
8
|
"./VBI",
|
|
9
9
|
"jquery.sap.global",
|
|
10
10
|
"sap/base/Log",
|
|
11
|
-
"./library"
|
|
12
|
-
|
|
11
|
+
"./library",
|
|
12
|
+
"./GeoMapRenderer"
|
|
13
|
+
], function(VBI, jQuery, Log, library, GeoMapRenderer) {
|
|
13
14
|
"use strict";
|
|
14
15
|
|
|
15
16
|
var thisModule = "sap.ui.vbm.GeoMap";
|
package/src/sap/ui/vbm/VBI.js
CHANGED
|
@@ -10,13 +10,45 @@ sap.ui.define([
|
|
|
10
10
|
"sap/ui/core/RenderManager",
|
|
11
11
|
"jquery.sap.global",
|
|
12
12
|
"sap/base/Log",
|
|
13
|
+
"./library",
|
|
14
|
+
"./VBIRenderer",
|
|
13
15
|
"./lib/sapvbi",
|
|
14
|
-
"./
|
|
15
|
-
|
|
16
|
+
"./lib/saputilities", // utility functions
|
|
17
|
+
"./lib/sapvbicontext", // control context
|
|
18
|
+
"./lib/sapdataprovider", // data provider
|
|
19
|
+
"./lib/sapresources", // resources
|
|
20
|
+
"./lib/sapgeomath", // geo math functions
|
|
21
|
+
"./lib/sapmaplayer",
|
|
22
|
+
"./lib/sapmapprovider",
|
|
23
|
+
"./lib/sapmapmanager", // map support
|
|
24
|
+
"./lib/sapvoutils",
|
|
25
|
+
"./lib/sapvobase", // visual objects base and vo implementation
|
|
26
|
+
"./lib/sapevents", // event subscription
|
|
27
|
+
"./lib/saplabels", // labels
|
|
28
|
+
"./lib/sappositioning", // GetPosFrom/// and co
|
|
29
|
+
"./lib/sapscene", // scene handling, scenes
|
|
30
|
+
"./lib/sapwindow", // window handling, detail and so on
|
|
31
|
+
"./lib/sapactions", // actions handling, framework event subscription
|
|
32
|
+
"./lib/sapautomations",
|
|
33
|
+
"./lib/sapgeolocation",
|
|
34
|
+
"./lib/sapgeotool", // geo tools for VBI namespace
|
|
35
|
+
"./lib/sapscale",
|
|
36
|
+
"./lib/sapnavigation",
|
|
37
|
+
"./lib/sapvbmenu", // context menu
|
|
38
|
+
"./lib/sapprojection", // map projection (mercator, linear)
|
|
39
|
+
"./lib/sapvbcluster", // VO clustering
|
|
40
|
+
"./lib/sapparsing", // expression evaluation
|
|
41
|
+
"./lib/sapconfig",
|
|
42
|
+
"./lib/saplassotrack",
|
|
43
|
+
"./lib/saprecttrack",
|
|
44
|
+
"./lib/sapheatmap"
|
|
45
|
+
], function(Control, RenderManager, jQuery, Log, library, VBIRenderer) {
|
|
16
46
|
"use strict";
|
|
17
47
|
|
|
18
48
|
var thisModule = "sap.ui.vbm.VBI";
|
|
19
49
|
|
|
50
|
+
VBI.Utilities.GetTransparentImage();
|
|
51
|
+
|
|
20
52
|
/**
|
|
21
53
|
* Constructor for a new VBI.
|
|
22
54
|
*
|
|
@@ -872,13 +904,13 @@ sap.ui.define([
|
|
|
872
904
|
|
|
873
905
|
/**
|
|
874
906
|
* Retrieve information on a specific cluster object.
|
|
875
|
-
*
|
|
876
|
-
* Type :
|
|
907
|
+
*
|
|
908
|
+
* Type :
|
|
877
909
|
* <ul>
|
|
878
|
-
* <li>0 : contained VOs</li>
|
|
879
|
-
* <li>1 : child clusters (tree clustering only)</li>
|
|
880
|
-
* <li>2 : parent Node (tree clustering only)</li>
|
|
881
|
-
* <li>10 : Information on Node</li>
|
|
910
|
+
* <li>0 : contained VOs</li>
|
|
911
|
+
* <li>1 : child clusters (tree clustering only)</li>
|
|
912
|
+
* <li>2 : parent Node (tree clustering only)</li>
|
|
913
|
+
* <li>10 : Information on Node</li>
|
|
882
914
|
* <li>11 : Edges of the Voronoi Area (tree clustering only, not merged with rectangle)</li>
|
|
883
915
|
* </ul>
|
|
884
916
|
*
|
|
@@ -24,7 +24,7 @@ sap.ui.define([
|
|
|
24
24
|
*
|
|
25
25
|
* @public
|
|
26
26
|
* @author SAP SE
|
|
27
|
-
* @version 1.
|
|
27
|
+
* @version 1.96.1
|
|
28
28
|
* @extends sap.ui.core.Control
|
|
29
29
|
* @alias sap.ui.vbm.Viewport
|
|
30
30
|
*/
|
|
@@ -177,6 +177,7 @@ sap.ui.define([
|
|
|
177
177
|
this._bbox = new THREE.Box3(); // scene bounding box
|
|
178
178
|
|
|
179
179
|
this._cameraController = new OrbitControls(this._camera, this._renderer.domElement);
|
|
180
|
+
this._cameraController.listenToKeyEvents(this._renderer.domElement);
|
|
180
181
|
this._cameraController.addEventListener("end", this._cameraEnd.bind(this));
|
|
181
182
|
this._cameraController.addEventListener("change", this._cameraUpdate.bind(this));
|
|
182
183
|
this._cameraController.update();
|
|
@@ -489,7 +490,7 @@ sap.ui.define([
|
|
|
489
490
|
box.union(_box);
|
|
490
491
|
}
|
|
491
492
|
}
|
|
492
|
-
|
|
493
|
+
|
|
493
494
|
var children = object.children;
|
|
494
495
|
for (i = 0; i < children.length; ++i) {
|
|
495
496
|
calcBBox(children[i], box);
|
|
@@ -506,7 +507,7 @@ sap.ui.define([
|
|
|
506
507
|
}
|
|
507
508
|
return this._bbox;
|
|
508
509
|
};
|
|
509
|
-
|
|
510
|
+
|
|
510
511
|
// debug: visualize scene bounding box & sphere
|
|
511
512
|
// var sceneBox, sceneSphere;
|
|
512
513
|
|
|
@@ -569,13 +570,13 @@ sap.ui.define([
|
|
|
569
570
|
// private, update OrbitControls -> adjust target point so it's always on the ground (XZ) plane to ensure zoom is always works in a same way
|
|
570
571
|
Viewport.prototype._updateController = function() {
|
|
571
572
|
var dir = this._cameraController.target.clone().sub(this._camera.position).normalize();
|
|
572
|
-
var normal = new THREE.Vector3(0, this._camera.position.y > 0 ? 1 : -1, 0);
|
|
573
|
+
var normal = new THREE.Vector3(0, this._camera.position.y > 0 ? 1 : -1, 0);
|
|
573
574
|
var plane = new THREE.Plane(normal), target = new THREE.Vector3();
|
|
574
575
|
var ray = new THREE.Ray(this._camera.position, dir);
|
|
575
576
|
// adjust only if intersection exists
|
|
576
577
|
if (ray.intersectPlane(plane, target)) {
|
|
577
578
|
// when camera is almost on XZ plane, intersection point could be very far or very close
|
|
578
|
-
// setting it straight as camera target makes navigation unusable, as either
|
|
579
|
+
// setting it straight as camera target makes navigation unusable, as either
|
|
579
580
|
// small mouse movements results in huge move of camera in space (when intersection is far away)
|
|
580
581
|
// or huge mouse movements result in bearly visible camera move in space (when intersection point is too close)
|
|
581
582
|
// so don't update camera target in those extreme cases
|
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
// Provides control sap.ui.vbm.VoAggregation.
|
|
7
7
|
sap.ui.define([
|
|
8
8
|
"./VoAbstract",
|
|
9
|
+
"sap/ui/unified/Menu",
|
|
9
10
|
"jquery.sap.global",
|
|
10
11
|
"sap/base/Log",
|
|
11
12
|
"./library"
|
|
12
|
-
], function(VoAbstract, jQuery, Log, library) {
|
|
13
|
+
], function(VoAbstract, Menu, jQuery, Log, library) {
|
|
13
14
|
"use strict";
|
|
14
15
|
|
|
15
16
|
/**
|
|
@@ -808,14 +809,11 @@ sap.ui.define([
|
|
|
808
809
|
event.Action.Params.Param[0]['#'], event.Action.Params.Param[1]['#']
|
|
809
810
|
];
|
|
810
811
|
|
|
811
|
-
// lazy load sap.ui.unified library for using the Menu
|
|
812
|
-
sap.ui.getCore().loadLibrary("sap.ui.unified");
|
|
813
|
-
|
|
814
812
|
if (this.oParent.mVBIContext.m_Menus) {
|
|
815
813
|
this.oParent.mVBIContext.m_Menus.deleteMenu("DynContextMenu");
|
|
816
814
|
}
|
|
817
815
|
// create an empty menu
|
|
818
|
-
var oMenuObject = new
|
|
816
|
+
var oMenuObject = new Menu();
|
|
819
817
|
oMenuObject.vbi_data = {};
|
|
820
818
|
oMenuObject.vbi_data.menuRef = "CTM";
|
|
821
819
|
oMenuObject.vbi_data.VBIName = "DynContextMenu";
|
|
@@ -30,7 +30,7 @@ sap.ui.define([
|
|
|
30
30
|
*
|
|
31
31
|
* @private
|
|
32
32
|
* @author SAP SE
|
|
33
|
-
* @version 1.
|
|
33
|
+
* @version 1.96.1
|
|
34
34
|
* @alias sap.ui.vbm.adapter3d.ModelHandler
|
|
35
35
|
*/
|
|
36
36
|
var ModelHandler = BaseObject.extend("sap.ui.vbm.adapter3d.ModelHandler", /** @lends sap.ui.vbm.adapter3d.ModelHandler.prototype */ {
|
|
@@ -378,7 +378,7 @@ sap.ui.define([
|
|
|
378
378
|
*
|
|
379
379
|
* @private
|
|
380
380
|
* @author SAP SE
|
|
381
|
-
* @version 1.
|
|
381
|
+
* @version 1.96.1
|
|
382
382
|
* @alias sap.ui.vbm.adapter3d.ObjectFactory
|
|
383
383
|
*/
|
|
384
384
|
var ObjectFactory = BaseObject.extend("sap.ui.vbm.adapter3d.ObjectFactory", /** @lends sap.ui.vbm.adapter3d.ObjectFactory.prototype */ {});
|
|
@@ -33,7 +33,7 @@ sap.ui.define([
|
|
|
33
33
|
*
|
|
34
34
|
* @private
|
|
35
35
|
* @author SAP SE
|
|
36
|
-
* @version 1.
|
|
36
|
+
* @version 1.96.1
|
|
37
37
|
* @alias sap.ui.vbm.adapter3d.PolygonHandler
|
|
38
38
|
*/
|
|
39
39
|
var PolygonHandler = BaseObject.extend("sap.ui.vbm.adapter3d.PolygonHandler", /** @lends sap.ui.vbm.adapter3d.PolygonHandler.prototype */ {
|