在 SapUI5 或 OpenUI5 simple.GanttChartContainer 中,如何正确选择形状高亮显示?
In SapUI5 or OpenUI5 simple.GanttChartContainer, how can I have selected shapes hilight properly?
在 SAPUI5 simple.GanttChartContainer 中,我已经为所有不同的对象类型、项目..任务...里程碑...图标设置了自定义行设置对象。我使用了与此示例相同的技术:
在此之前,我使用了 shapes1 聚合,它会自动显示选择边框。
有人知道如何将图表 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>
我解决了这个问题,发现 GanttRowSettings
上的 rowId
绑定是问题所在。这绑定到 {id}
而我的数据模型在 {plandata>}
,所以它应该是 {plandata>id}
- 更改此值解决了问题。
即使不绑定此 rowId
会完全破坏内置行为(选定形状突出显示),SAP UI5 不会向控制台输出任何错误或警告,表明选择渲染有任何问题,因此出问题真的没什么好继续的。
在 SAPUI5 simple.GanttChartContainer 中,我已经为所有不同的对象类型、项目..任务...里程碑...图标设置了自定义行设置对象。我使用了与此示例相同的技术:
在此之前,我使用了 shapes1 聚合,它会自动显示选择边框。
有人知道如何将图表 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>
我解决了这个问题,发现 GanttRowSettings
上的 rowId
绑定是问题所在。这绑定到 {id}
而我的数据模型在 {plandata>}
,所以它应该是 {plandata>id}
- 更改此值解决了问题。
即使不绑定此 rowId
会完全破坏内置行为(选定形状突出显示),SAP UI5 不会向控制台输出任何错误或警告,表明选择渲染有任何问题,因此出问题真的没什么好继续的。