1
1
import { race } from '../core/simple-event-race' ;
2
2
import { Vector } from '../core/vector' ;
3
- import { DefinitionWalker , Sequence , StepChildrenType } from '../definition' ;
4
3
import { DesignerContext } from '../designer-context' ;
5
4
import { ClickCommand , ClickDetails , Component , FoundPlaceholders } from './component' ;
6
5
import { WorkspaceView } from './workspace-view' ;
@@ -10,13 +9,14 @@ import { ClickBehaviorResolver } from '../behaviors/click-behavior-resolver';
10
9
import { BehaviorController } from '../behaviors/behavior-controller' ;
11
10
import { SimpleEvent } from '../core/simple-event' ;
12
11
import { ClickBehaviorWrapper , SequencePlaceIndicator , Viewport , WheelController } from '../designer-extension' ;
13
- import { DesignerApi } from '../api/designer-api' ;
14
12
import { StepComponent } from './step-component' ;
15
13
import { BadgesResultFactory } from './badges/badges-result-factory' ;
16
14
import { Services } from '../services' ;
17
15
import { findValidationBadgeIndex } from './badges/find-validation-badge-index' ;
18
16
import { ContextMenuController } from './context-menu/context-menu-controller' ;
19
17
import { ViewportApi } from '../api/viewport-api' ;
18
+ import { DesignerApi } from '../api/designer-api' ;
19
+ import { WorkspaceApi } from '../api/workspace-api' ;
20
20
import { DefinitionChangeType } from '../designer-configuration' ;
21
21
import { ContextMenuItemsBuilder } from './context-menu/context-menu-items-builder' ;
22
22
import { PinchToZoomController } from './viewport/pinch-to-zoom-controller' ;
@@ -33,6 +33,7 @@ export class Workspace implements WorkspaceController {
33
33
34
34
const contextMenuItemsBuilder = new ContextMenuItemsBuilder (
35
35
api . viewport ,
36
+ api . workspace ,
36
37
api . i18n ,
37
38
designerContext . stateModifier ,
38
39
designerContext . state ,
@@ -48,7 +49,6 @@ export class Workspace implements WorkspaceController {
48
49
49
50
const workspace = new Workspace (
50
51
view ,
51
- designerContext . definitionWalker ,
52
52
designerContext . state ,
53
53
designerContext . behaviorController ,
54
54
wheelController ,
@@ -57,6 +57,7 @@ export class Workspace implements WorkspaceController {
57
57
clickBehaviorResolver ,
58
58
clickBehaviorWrapper ,
59
59
api . viewport ,
60
+ api . workspace ,
60
61
designerContext . services
61
62
) ;
62
63
setTimeout ( ( ) => {
@@ -91,7 +92,6 @@ export class Workspace implements WorkspaceController {
91
92
92
93
private constructor (
93
94
private readonly view : WorkspaceView ,
94
- private readonly definitionWalker : DefinitionWalker ,
95
95
private readonly state : DesignerState ,
96
96
private readonly behaviorController : BehaviorController ,
97
97
private readonly wheelController : WheelController ,
@@ -100,34 +100,22 @@ export class Workspace implements WorkspaceController {
100
100
private readonly clickBehaviorResolver : ClickBehaviorResolver ,
101
101
private readonly clickBehaviorWrapper : ClickBehaviorWrapper ,
102
102
private readonly viewportApi : ViewportApi ,
103
+ private readonly workspaceApi : WorkspaceApi ,
103
104
private readonly services : Services
104
105
) { }
105
106
106
107
public updateRootComponent ( ) {
107
108
this . selectedStepComponent = null ;
108
109
109
- let parentSequencePlaceIndicator : SequencePlaceIndicator | null ;
110
- let sequence : Sequence ;
111
-
112
- const stepId = this . state . tryGetLastStepIdFromFolderPath ( ) ;
113
- if ( stepId ) {
114
- const parentSequence = this . definitionWalker . getParentSequence ( this . state . definition , stepId ) ;
115
- const children = this . definitionWalker . getChildren ( parentSequence . step ) ;
116
- if ( ! children || children . type !== StepChildrenType . sequence ) {
117
- throw new Error ( 'Cannot find single sequence in folder step' ) ;
118
- }
119
- sequence = children . items as Sequence ;
120
-
121
- parentSequencePlaceIndicator = {
122
- sequence : parentSequence . parentSequence ,
123
- index : parentSequence . index
124
- } ;
125
- } else {
126
- sequence = this . state . definition . sequence ;
127
- parentSequencePlaceIndicator = null ;
128
- }
110
+ const rootSequence = this . workspaceApi . getRootSequence ( ) ;
111
+ const parentPlaceIndicator : SequencePlaceIndicator | null = rootSequence . parentStep
112
+ ? {
113
+ sequence : rootSequence . parentStep . parentSequence ,
114
+ index : rootSequence . parentStep . index
115
+ }
116
+ : null ;
129
117
130
- this . view . render ( sequence , parentSequencePlaceIndicator ) ;
118
+ this . view . render ( rootSequence . sequence , parentPlaceIndicator ) ;
131
119
this . trySelectStepComponent ( this . state . selectedStepId ) ;
132
120
this . updateBadges ( ) ;
133
121
0 commit comments