File tree Expand file tree Collapse file tree 3 files changed +35
-8
lines changed
src/ProjectData/Screen/Area Expand file tree Collapse file tree 3 files changed +35
-8
lines changed Original file line number Diff line number Diff line change @@ -43,11 +43,38 @@ private function add(AbstractArea $area): AreaCollection
43
43
{
44
44
$ this ->iteratorItems [] = $ area ;
45
45
$ this ->areas [] = $ area ;
46
- $ this ->areasAssocArray [$ area ->getOrder ()] = $ area ;
46
+
47
+ $ currentOrderings = array_keys ($ this ->areasAssocArray );
48
+ if (array_key_exists ($ area ->getOrder (), $ currentOrderings )) {
49
+ $ maxOrdering = max ($ currentOrderings );
50
+ $ this ->areasAssocArray [$ maxOrdering + 1 ] = $ area ;
51
+ } else {
52
+ $ this ->areasAssocArray [$ area ->getOrder ()] = $ area ;
53
+ }
54
+
55
+ $ this ->normalizeOrdering ();
47
56
48
57
return $ this ;
49
58
}
50
59
60
+ private function normalizeOrdering ()
61
+ {
62
+ $ fixedItems = [];
63
+ $ currentItems = $ this ->areasAssocArray ;
64
+ ksort ($ currentItems );
65
+
66
+ $ startOrdering = 0 ;
67
+ foreach ($ currentItems as $ item ) {
68
+ $ item ->setOrder ($ startOrdering );
69
+ $ fixedItems [$ startOrdering ] = $ item ;
70
+ $ startOrdering ++;
71
+ }
72
+
73
+ $ this ->areasAssocArray = $ fixedItems ;
74
+ $ this ->iteratorItems = array_values ($ fixedItems );
75
+ $ this ->areas = array_values ($ fixedItems );
76
+ }
77
+
51
78
/**
52
79
* @param array $areaCollectionArrayData
53
80
* @throws \Exception
Original file line number Diff line number Diff line change @@ -159,7 +159,7 @@ public function getOrder(): int
159
159
* @param int $order
160
160
* @return $this
161
161
*/
162
- private function setOrder (int $ order )
162
+ public function setOrder (int $ order )
163
163
{
164
164
$ this ->order = $ order ;
165
165
Original file line number Diff line number Diff line change @@ -111,16 +111,16 @@ private function setFont($font): TextArea
111
111
/**
112
112
* @return int
113
113
*/
114
- public function getOriginalHeight (): int
114
+ public function getOriginalHeight (): ? int
115
115
{
116
116
return $ this ->originalHeight ;
117
117
}
118
118
119
119
/**
120
- * @param int $originalHeight
120
+ * @param ? int $originalHeight
121
121
* @return TextArea
122
122
*/
123
- public function setOriginalHeight (int $ originalHeight ): TextArea
123
+ public function setOriginalHeight (? int $ originalHeight ): TextArea
124
124
{
125
125
$ this ->originalHeight = $ originalHeight ;
126
126
@@ -130,16 +130,16 @@ public function setOriginalHeight(int $originalHeight): TextArea
130
130
/**
131
131
* @return int
132
132
*/
133
- public function getOriginalWidth (): int
133
+ public function getOriginalWidth (): ? int
134
134
{
135
135
return $ this ->originalWidth ;
136
136
}
137
137
138
138
/**
139
- * @param int $originalWidth
139
+ * @param ? int $originalWidth
140
140
* @return TextArea
141
141
*/
142
- public function setOriginalWidth (int $ originalWidth ): TextArea
142
+ public function setOriginalWidth (? int $ originalWidth ): TextArea
143
143
{
144
144
$ this ->originalWidth = $ originalWidth ;
145
145
You can’t perform that action at this time.
0 commit comments