From 110d8f0b923f031d2fe2d3c82e07106666d1a2a2 Mon Sep 17 00:00:00 2001
From: Sergey Linev <S.Linev@gsi.de>
Date: Thu, 23 Mar 2023 10:50:38 +0100
Subject: [PATCH] [webcanvas] add vertical splitter from beginning

fix several warnings from openui5
---
 ui5/canv/controller/Canvas.controller.js      | 62 ++++++++-----------
 ui5/canv/controller/CanvasPanel.controller.js |  3 +-
 ui5/canv/controller/Panel.controller.js       | 21 ++-----
 ui5/canv/view/Canvas.view.xml                 | 17 +++--
 ui5/canv/view/CanvasPanel.view.xml            |  7 ++-
 ui5/canv/view/Panel.view.xml                  |  7 ++-
 6 files changed, 55 insertions(+), 62 deletions(-)

diff --git a/ui5/canv/controller/Canvas.controller.js b/ui5/canv/controller/Canvas.controller.js
index 0ed5e96c1c9..97fdac00ea9 100644
--- a/ui5/canv/controller/Canvas.controller.js
+++ b/ui5/canv/controller/Canvas.controller.js
@@ -12,14 +12,26 @@ sap.ui.define([
    'sap/m/ButtonType',
    'sap/ui/layout/Splitter',
    'sap/ui/layout/SplitterLayoutData'
-], function (Controller, Component, JSONModel, XMLView, MessageToast, Dialog, List, InputListItem, Input, Button, ButtonType, Splitter, SplitterLayoutData) {
+], function (Controller,
+             Component,
+             JSONModel,
+             XMLView,
+             MessageToast,
+             Dialog,
+             List,
+             InputListItem,
+             Input,
+             Button,
+             ButtonType,
+             Splitter,
+             SplitterLayoutData) {
    "use strict";
 
    function chk_icon(flag) {
       return flag ? "sap-icon://accept" : "sap-icon://decline";
    }
 
-   let CController = Controller.extend("rootui5.canv.controller.Canvas", {
+   return Controller.extend('rootui5.canv.controller.Canvas', {
 
       onInit() {
          this._Page = this.getView().byId("CanvasMainPage");
@@ -280,18 +292,15 @@ sap.ui.define([
       },
 
       onInterruptPress() {
-         let p = this.getCanvasPainter();
-         if (p) p.sendWebsocket("INTERRUPT");
+         this.getCanvasPainter()?.sendWebsocket("INTERRUPT");
       },
 
       onQuitRootPress() {
-         let p = this.getCanvasPainter();
-         if (p) p.sendWebsocket("QUIT");
+         this.getCanvasPainter()?.sendWebsocket("QUIT");
       },
 
       onReloadPress() {
-         let p = this.getCanvasPainter();
-         if (p) p.sendWebsocket("RELOAD");
+         this.getCanvasPainter()?.sendWebsocket("RELOAD");
       },
 
       isGedEditor() {
@@ -394,12 +403,10 @@ sap.ui.define([
 
       getBottomController() {
          if (!this.bottomVisible) return null;
-         let split = this.getView().byId("MainAreaSplitter"),
+         let split = this.getView().byId('BottomAreaSplitter'),
              cont = split.getContentAreas(),
-             vsplit = cont[cont.length-1],
-             vcont = vsplit.getContentAreas(),
-             bottom = vcont[vcont.length-1];
-         return bottom ? bottom.getController() : null;
+             bottom = cont[cont.length-1];
+         return bottom?.getController();
       },
 
       drawInProjectionArea(obj, opt, kind) {
@@ -444,7 +451,8 @@ sap.ui.define([
          if (fullHeight && sz[0]) {
             // ctrl.getView().setHeight(Math.round(sz[0]/fullHeight) + '%');
             ctrl.getView().$().height(sz[0] + 'px');
-            ctrl.invokeResizeTimeout(10);
+            if (typeof ctrl.invokeResizeTimeout == 'function')
+               ctrl.invokeResizeTimeout(10);
          }
       },
 
@@ -453,7 +461,7 @@ sap.ui.define([
          if (this.bottomVisible == is_on)
             return Promise.resolve(this.getBottomController());
 
-         let split = this.getView().byId("MainAreaSplitter");
+         let split = this.getView().byId("BottomAreaSplitter");
          if (!split) return Promise.resolve(null);
 
          let cont = split.getContentAreas();
@@ -461,25 +469,11 @@ sap.ui.define([
          this.bottomVisible = !this.bottomVisible;
 
          if (!this.bottomVisible) {
-            // vertical splitter exists - toggle it
-            let vsplit = cont[cont.length-1],
-                main = vsplit.removeContentArea(0);
-
-            vsplit.destroyContentAreas();
-            split.removeContentArea(vsplit);
-            split.addContentArea(main);
+            // just remove bottom controller
+            split.removeContentArea(cont.length-1);
             return Promise.resolve(null);
          }
 
-         // remove panel with normal drawing
-         let mainPanel = split.removeContentArea(cont.length-1);
-
-         let vsplit = new Splitter({ orientation: 'Vertical' });
-
-         split.addContentArea(vsplit);
-
-         vsplit.addContentArea(mainPanel);
-
          let h = this.getView().$().height();
 
          return XMLView.create({
@@ -488,9 +482,9 @@ sap.ui.define([
             layoutData: new SplitterLayoutData({ resizable: true, size: Math.round(h*0.25) + 'px'}),
             height: '100%'
          }).then(oView => {
-            vsplit.addContentArea(oView);
+            split.addContentArea(oView);
             if (with_handler)
-               vsplit.attachResize(null, this.handleBottomResize, this);
+               split.attachResize(null, this.handleBottomResize, this);
             return oView.getController();
          });
       },
@@ -661,6 +655,4 @@ sap.ui.define([
       }
    });
 
-   return CController;
-
 });
diff --git a/ui5/canv/controller/CanvasPanel.controller.js b/ui5/canv/controller/CanvasPanel.controller.js
index d66eb65515e..0fdd828773a 100644
--- a/ui5/canv/controller/CanvasPanel.controller.js
+++ b/ui5/canv/controller/CanvasPanel.controller.js
@@ -1,7 +1,8 @@
 sap.ui.define([
    'sap/ui/core/mvc/Controller',
    'sap/ui/core/ResizeHandler'
-], function (Controller, ResizeHandler) {
+], function (Controller,
+             ResizeHandler) {
    "use strict";
 
    return Controller.extend('rootui5.canv.controller.CanvasPanel', {
diff --git a/ui5/canv/controller/Panel.controller.js b/ui5/canv/controller/Panel.controller.js
index 56687572915..7a98ab1d019 100644
--- a/ui5/canv/controller/Panel.controller.js
+++ b/ui5/canv/controller/Panel.controller.js
@@ -11,30 +11,22 @@ sap.ui.define([
       },
 
       onExit() {
-         if (this.object_painter) {
-            this.object_painter.cleanup();
-            delete this.object_painter;
-         }
+         this.object_painter?.cleanup();
+         delete this.object_painter;
       },
 
       onBeforeRendering() {
-         if (this.object_painter) {
-            this.object_painter.cleanup();
-            delete this.object_painter;
-         }
+         this.object_painter?.cleanup();
+         delete this.object_painter;
          this.rendering_perfromed = false;
       },
 
       onAfterRendering() {
-
          ResizeHandler.register(this.getView(), () => this.onResize());
-
          this.rendering_perfromed = true;
-
          let arr = this.renderFuncs;
          delete this.renderFuncs;
-         if (arr)
-            arr.forEach(func => func(this.getView().getDomRef()));
+         arr?.forEach(func => func(this.getView().getDomRef()));
       },
 
       setObjectPainter(painter) {
@@ -59,8 +51,7 @@ sap.ui.define([
 
       onResizeTimeout() {
          delete this.resize_tmout;
-         if (this.object_painter)
-            this.object_painter.checkResize();
+         this.object_painter?.checkResize();
       }
 
    });
diff --git a/ui5/canv/view/Canvas.view.xml b/ui5/canv/view/Canvas.view.xml
index 0b7bb601cd9..61da295506e 100644
--- a/ui5/canv/view/Canvas.view.xml
+++ b/ui5/canv/view/Canvas.view.xml
@@ -1,5 +1,11 @@
-<mvc:View height="100%" class="sapUiSizeCompact" controllerName="rootui5.canv.controller.Canvas"
-   xmlns:mvc="sap.ui.core.mvc" xmlns:l="sap.ui.layout" xmlns="sap.m">
+<mvc:View
+   height="100%"
+   class="sapUiSizeCompact"
+   controllerName="rootui5.canv.controller.Canvas"
+   async="true"
+   xmlns:mvc="sap.ui.core.mvc"
+   xmlns:l="sap.ui.layout"
+   xmlns="sap.m">
    <Page title="" showNavButton="false" showFooter="false"
       showSubHeader="false" id="CanvasMainPage">
       <customHeader>
@@ -109,9 +115,10 @@
       </subHeader>
       <content>
          <l:Splitter orientation="Horizontal" id="MainAreaSplitter">
-            <mvc:XMLView id="MainPanel" width="100%"
-               height="100%" viewName="rootui5.canv.view.CanvasPanel">
-            </mvc:XMLView>
+            <l:Splitter orientation="Vertical" id="BottomAreaSplitter">
+               <mvc:XMLView id="MainPanel" width="100%" height="100%" viewName="rootui5.canv.view.CanvasPanel">
+               </mvc:XMLView>
+            </l:Splitter>
          </l:Splitter>
       </content>
       <footer>
diff --git a/ui5/canv/view/CanvasPanel.view.xml b/ui5/canv/view/CanvasPanel.view.xml
index c23fdb5ab1c..691d56d5a35 100644
--- a/ui5/canv/view/CanvasPanel.view.xml
+++ b/ui5/canv/view/CanvasPanel.view.xml
@@ -1,5 +1,6 @@
-<core:View
+<mvc:View
    xmlns="sap.m"
-   xmlns:core="sap.ui.core"
+   xmlns:mvc="sap.ui.core.mvc"
+   async="true"
    controllerName="rootui5.canv.controller.CanvasPanel">
-</core:View>
\ No newline at end of file
+</mvc:View>
diff --git a/ui5/canv/view/Panel.view.xml b/ui5/canv/view/Panel.view.xml
index 3e16efb7577..62ce7e317d4 100644
--- a/ui5/canv/view/Panel.view.xml
+++ b/ui5/canv/view/Panel.view.xml
@@ -1,5 +1,6 @@
-<core:View
+<mvc:View
    xmlns="sap.m"
-   xmlns:core="sap.ui.core"
+   xmlns:mvc="sap.ui.core.mvc"
+   async="true"
    controllerName="rootui5.canv.controller.Panel">
-</core:View>
\ No newline at end of file
+</mvc:View>
-- 
GitLab