В SapUI5 или OpenUI5 simple.GanttChartContainer как правильно выбрать выделенные фигуры? - PullRequest
0 голосов
/ 11 октября 2019

В SAPUI5 simple.GanttChartContainer я настроил настраиваемый объект параметров строки для всех моих различных типов объектов, проектов ... задач ... этапов ... значков. Я использовал ту же технику, что и в этом примере:

https://sapui5.hana.ondemand.com/#/entity/sap.gantt.simple.GanttChartWithTable/sample/sap.gantt.sample.GanttChart2Shapes

До этого я использовал агрегацию shape1, которая автоматически показывала границы выделения.

Кто-нибудь знает, каксделать так, чтобы диаграмма shapeSelectionSettings применялась к фигурам в моих пользовательских агрегатах? Или любое другое объяснение того, почему эти границы выбора не отображаются?

Я провел некоторое время, упрощая и возвращаясь назад - вот мое мнение. В настоящее время, несмотря на то, что Resize и Connect включены и подключены к обработчикам событий, а мои BaseRectangles имеют изменяемый размер и возможность подключения, выборки не отображаются, поля соединителей не отображаются и курсор EW не отображается при наведении курсора на маркер изменения размера. Контроллер только устанавливает ось и загружает данные. Я понятия не имею, почему это перестало работать - я даже пробовал более ранние версии SAPUI5.

Любая помощь приветствуется.

<View
    xmlns="sap.ui.core.mvc"
  xmlns:m="sap.m"
  xmlns:f="sap.ui.layout.form"
    xmlns:core="sap.ui.core"
    xmlns:gnt2="sap.gantt.simple"
  xmlns:projectpro="ProjectPro.controller"
  xmlns:gnt-cal="sap.gantt.def.cal"
  xmlns:axistime="sap.gantt.axistime"
    controllerName="ProjectPro.controller.MasterPlanning"
  id="MasterPlanningMain">

    <m:Page xmlns="sap.ui.table" title="{branding>/ProductName} Master Planning" showNavButton="false" contentOnlyBusy="true">
      <gnt2:GanttChartContainer id="container" enableTimeScrollSync="true">

        <!--Activities/Milestones/Relationships-->
        <gnt2:GanttChartWithTable id="ActivityView"
            shapeSelectionMode = "Single"
            shapeSelectionSettings="{color: 'red', strokeDasharray:'1,0'}"
            class="sapUiSizeCondensed"
            shapeResize="activities_shapeResize"
            shapeConnect="activities_shapeConnect"
            >
          <gnt2:table>
            <TreeTable
              selectionMode="None"
              visibleRowCountMode="Auto"
              rows="{
                          path: 'plandata>/data',
                parameters: { arrayNames: [ 'children' ] }
              }">
              <rowSettingsTemplate>
              <gnt2:GanttRowSettings rowId="{id}" relationships="{ path:'plandata>/links', templateShareable: 'true' }">
                  <gnt2:BaseRectangle 
                    shapeId="{plandata>id}"
                    time="{plandata>start_date}"
                    endTime="{plandata>end_date}"
                    resizable="true"
                    selectable="true"
                    draggable= "true"
                    connectable="true"
                    title="{plandata>text}" showTitle="true"
                    tooltip=""
                    fill="#4cc"
                    />
                <gnt2:relationships>
                  <gnt2:Relationship shapeId="{plandata>id}"
                  predecessor="{plandata>source}" successor="{plandata>target}" type="{plandata>gantttype}" tooltip="{= ${plandata>display_link} }"
                  selectable="true" />
                </gnt2:relationships>
              </gnt2:GanttRowSettings>
              </rowSettingsTemplate>

              <!--Tree Table Columns-->
              <Column sortProperty="text" filterProperty="text" width="30em">
                <m:Text text="Activity" wrapping="false"/>
                <template>
                  <m:Input value="{= ${plandata>text} }" change="nodeRenamed" class="activity_text" />
                </template>
              </Column>
            </TreeTable>
          </gnt2:table>
        </gnt2:GanttChartWithTable>
      </gnt2:GanttChartContainer>
    </m:Page>
</View>

1 Ответ

1 голос
/ 14 октября 2019

Я решил эту проблему и обнаружил, что проблема связана с привязкой rowId к GanttRowSettings. Это было связано с {id}, а моя модель данных на {plandata>}, поэтому она должна была быть {plandata>id} - изменение этого значения устранило проблему.

Даже при отсутствии привязки это rowId полностью нарушаетВстроенное поведение (выделение выделенной фигуры), SAP UI5 не выводит на консоль никаких ошибок или предупреждений, что говорит о том, что что-то не так с рендерингом Selection, поэтому на самом деле ничего не происходит, когда происходит сбой.

...