@@ -53,6 +53,7 @@ public CustomView createCustomView(String key, String title, String description)
5353 assertThatTheViewKeyIsSpecifiedAndUnique (key );
5454
5555 CustomView view = new CustomView (model , key , title , description );
56+ view .setOrder (getNextOrder ());
5657 view .setViewSet (this );
5758 customViews .add (view );
5859 return view ;
@@ -70,6 +71,7 @@ public SystemLandscapeView createSystemLandscapeView(String key, String descript
7071 assertThatTheViewKeyIsSpecifiedAndUnique (key );
7172
7273 SystemLandscapeView view = new SystemLandscapeView (model , key , description );
74+ view .setOrder (getNextOrder ());
7375 view .setViewSet (this );
7476 systemLandscapeViews .add (view );
7577 return view ;
@@ -89,6 +91,7 @@ public SystemContextView createSystemContextView(SoftwareSystem softwareSystem,
8991 assertThatTheViewKeyIsSpecifiedAndUnique (key );
9092
9193 SystemContextView view = new SystemContextView (softwareSystem , key , description );
94+ view .setOrder (getNextOrder ());
9295 view .setViewSet (this );
9396 systemContextViews .add (view );
9497 return view ;
@@ -108,6 +111,7 @@ public ContainerView createContainerView(SoftwareSystem softwareSystem, String k
108111 assertThatTheViewKeyIsSpecifiedAndUnique (key );
109112
110113 ContainerView view = new ContainerView (softwareSystem , key , description );
114+ view .setOrder (getNextOrder ());
111115 view .setViewSet (this );
112116 containerViews .add (view );
113117 return view ;
@@ -127,6 +131,7 @@ public ComponentView createComponentView(Container container, String key, String
127131 assertThatTheViewKeyIsSpecifiedAndUnique (key );
128132
129133 ComponentView view = new ComponentView (container , key , description );
134+ view .setOrder (getNextOrder ());
130135 view .setViewSet (this );
131136 componentViews .add (view );
132137 return view ;
@@ -144,6 +149,7 @@ public DynamicView createDynamicView(String key, String description) {
144149 assertThatTheViewKeyIsSpecifiedAndUnique (key );
145150
146151 DynamicView view = new DynamicView (model , key , description );
152+ view .setOrder (getNextOrder ());
147153 view .setViewSet (this );
148154 dynamicViews .add (view );
149155 return view ;
@@ -170,6 +176,7 @@ public DynamicView createDynamicView(SoftwareSystem softwareSystem, String key,
170176 assertThatTheViewKeyIsSpecifiedAndUnique (key );
171177
172178 DynamicView view = new DynamicView (softwareSystem , key , description );
179+ view .setOrder (getNextOrder ());
173180 view .setViewSet (this );
174181 dynamicViews .add (view );
175182 return view ;
@@ -197,6 +204,7 @@ public DynamicView createDynamicView(Container container, String key, String des
197204 assertThatTheViewKeyIsSpecifiedAndUnique (key );
198205
199206 DynamicView view = new DynamicView (container , key , description );
207+ view .setOrder (getNextOrder ());
200208 view .setViewSet (this );
201209 dynamicViews .add (view );
202210 return view ;
@@ -214,6 +222,7 @@ public DeploymentView createDeploymentView(String key, String description) {
214222 assertThatTheViewKeyIsSpecifiedAndUnique (key );
215223
216224 DeploymentView view = new DeploymentView (model , key , description );
225+ view .setOrder (getNextOrder ());
217226 view .setViewSet (this );
218227 deploymentViews .add (view );
219228 return view ;
@@ -233,6 +242,7 @@ public DeploymentView createDeploymentView(SoftwareSystem softwareSystem, String
233242 assertThatTheViewKeyIsSpecifiedAndUnique (key );
234243
235244 DeploymentView view = new DeploymentView (softwareSystem , key , description );
245+ view .setOrder (getNextOrder ());
236246 view .setViewSet (this );
237247 deploymentViews .add (view );
238248 return view ;
@@ -253,6 +263,7 @@ public FilteredView createFilteredView(StaticView view, String key, String descr
253263 assertThatTheViewKeyIsSpecifiedAndUnique (key );
254264
255265 FilteredView filteredView = new FilteredView (view , key , description , mode , tags );
266+ filteredView .setOrder (getNextOrder ());
256267 filteredViews .add (filteredView );
257268 return filteredView ;
258269 }
@@ -624,6 +635,21 @@ private void checkViewKeysAreUnique() {
624635 }
625636 }
626637
638+ private synchronized int getNextOrder () {
639+ int order = 0 ;
640+
641+ order = Math .max (order , customViews .stream ().max (Comparator .comparingInt (View ::getOrder )).map (View ::getOrder ).orElse (0 ));
642+ order = Math .max (order , systemLandscapeViews .stream ().max (Comparator .comparingInt (View ::getOrder )).map (View ::getOrder ).orElse (0 ));
643+ order = Math .max (order , systemContextViews .stream ().max (Comparator .comparingInt (View ::getOrder )).map (View ::getOrder ).orElse (0 ));
644+ order = Math .max (order , containerViews .stream ().max (Comparator .comparingInt (View ::getOrder )).map (View ::getOrder ).orElse (0 ));
645+ order = Math .max (order , componentViews .stream ().max (Comparator .comparingInt (View ::getOrder )).map (View ::getOrder ).orElse (0 ));
646+ order = Math .max (order , dynamicViews .stream ().max (Comparator .comparingInt (View ::getOrder )).map (View ::getOrder ).orElse (0 ));
647+ order = Math .max (order , deploymentViews .stream ().max (Comparator .comparingInt (View ::getOrder )).map (View ::getOrder ).orElse (0 ));
648+ order = Math .max (order , filteredViews .stream ().max (Comparator .comparingInt (FilteredView ::getOrder )).map (FilteredView ::getOrder ).orElse (0 ));
649+
650+ return order + 1 ;
651+ }
652+
627653 /**
628654 * Gets the configuration object associated with this set of views.
629655 *
0 commit comments