Skip to content

Commit a1f5b5e

Browse files
committed
more privacy and change of algorithm for chunk alignment: compare with first element.
1 parent 4dc589c commit a1f5b5e

File tree

2 files changed

+52
-38
lines changed

2 files changed

+52
-38
lines changed

src/main/java/net/itarray/automotion/internal/ResponsiveUIChunkValidatorBase.java

Lines changed: 47 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -320,51 +320,65 @@ private void validateGridAlignment(List<UIElement> elements, int columns, int ro
320320
}
321321

322322
private void validateRightAlignedWithChunk(List<UIElement> elements) {
323-
int oldErrorsSize = errors.getMessages().size();
324-
for (int i = 0; i < elements.size() - 1; i++) {
325-
UIElement element = elements.get(i);
326-
UIElement elementToCompare = elements.get(i + 1);
327-
element.validateRightAlignedWith(elementToCompare, errors);
328-
}
329-
if (errors.getMessages().size() != oldErrorsSize) {
330-
Vector onLine = elements.get(0).getCorner();
331-
drawVerticalLine(onLine);
323+
if (!elements.isEmpty()) {
324+
int oldErrorsSize = errors.getMessages().size();
325+
int pickedIndex = 0;
326+
UIElement element = elements.get(pickedIndex);
327+
for (int i = 0; i < elements.size(); i++) {
328+
if (i != pickedIndex) {
329+
UIElement elementToCompare = elements.get(i);
330+
element.validateRightAlignedWith(elementToCompare, errors);
331+
}
332+
}
333+
if (errors.getMessages().size() != oldErrorsSize) {
334+
Vector onLine = elements.get(pickedIndex).getCorner();
335+
drawVerticalLine(onLine);
336+
}
332337
}
333338
}
334339

335340
private void validateLeftAlignedWithChunk(List<UIElement> elements) {
336-
int oldErrorsSize = errors.getMessages().size();
337-
for (int i = 0; i < elements.size() - 1; i++) {
338-
UIElement element = elements.get(i);
339-
UIElement elementToCompare = elements.get(i + 1);
340-
element.validateLeftAlignedWith(elementToCompare, errors);
341-
}
342-
if (errors.getMessages().size() != oldErrorsSize) {
343-
drawVerticalLine(elements.get(0).getOrigin());
341+
if (!elements.isEmpty()) {
342+
int oldErrorsSize = errors.getMessages().size();
343+
int pickedIndex = 0;
344+
UIElement element = elements.get(pickedIndex);
345+
for (int i = 0; i < elements.size(); i++) {
346+
UIElement elementToCompare = elements.get(i);
347+
element.validateLeftAlignedWith(elementToCompare, errors);
348+
}
349+
if (errors.getMessages().size() != oldErrorsSize) {
350+
drawVerticalLine(elements.get(pickedIndex).getOrigin());
351+
}
344352
}
345353
}
346354

347355
private void validateTopAlignedWithChunk(List<UIElement> elements) {
348-
int oldErrorsSize = errors.getMessages().size();
349-
for (int i = 0; i < elements.size() - 1; i++) {
350-
UIElement element = elements.get(i);
351-
UIElement elementToCompare = elements.get(i + 1);
352-
element.validateTopAlignedWith(elementToCompare, errors);
353-
}
354-
if (errors.getMessages().size() != oldErrorsSize) {
355-
drawHorizontalLine(elements.get(0).getOrigin());
356+
if (!elements.isEmpty()) {
357+
int oldErrorsSize = errors.getMessages().size();
358+
int pickedIndex = 0;
359+
UIElement element = elements.get(pickedIndex);
360+
for (int i = 0; i < elements.size(); i++) {
361+
UIElement elementToCompare = elements.get(i);
362+
element.validateTopAlignedWith(elementToCompare, errors);
363+
}
364+
if (errors.getMessages().size() != oldErrorsSize) {
365+
drawHorizontalLine(elements.get(pickedIndex).getOrigin());
366+
}
356367
}
357368
}
358369

359370
private void validateBottomAlignedWithChunk(List<UIElement> elements) {
360-
int oldErrorsSize = errors.getMessages().size();
361-
for (int i = 0; i < elements.size() - 1; i++) {
362-
UIElement element = elements.get(i);
363-
UIElement elementToCompare = elements.get(i + 1);
364-
element.validateBottomAlignedWith(elementToCompare, this.errors);
365-
}
366-
if (errors.getMessages().size() != oldErrorsSize) {
367-
drawHorizontalLine(elements.get(0).getCorner());
371+
if (!elements.isEmpty()) {
372+
int oldErrorsSize = errors.getMessages().size();
373+
int pickedIndex = 0;
374+
UIElement element = elements.get(pickedIndex);
375+
for (int i = 0; i < elements.size(); i++) {
376+
UIElement elementToCompare = elements.get(i);
377+
element.validateBottomAlignedWith(elementToCompare, this.errors);
378+
}
379+
if (errors.getMessages().size() != oldErrorsSize) {
380+
drawHorizontalLine(elements.get(pickedIndex).getCorner());
381+
}
368382
}
369383
}
370384

src/main/java/net/itarray/automotion/internal/UIElement.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -171,19 +171,19 @@ public boolean overlaps(UIElement other, Context context) {
171171
Condition.lessThan(getBottom()).isSatisfiedOn(other.getTop(), context, DOWN);
172172
}
173173

174-
public Scalar getOffset(Direction direction, UIElement page) {
174+
private Scalar getOffset(Direction direction, UIElement page) {
175175
return direction.signedDistance(getEnd(direction), page.getEnd(direction));
176176
}
177177

178-
public boolean hasEqualOppositeOffsets(Direction direction, UIElement page, Context context) {
178+
private boolean hasEqualOppositeOffsets(Direction direction, UIElement page, Context context) {
179179
return getOffset(direction, page).equals(getOffset(direction.opposite(), page));
180180
}
181181

182-
public boolean hasSuccessor(Direction direction, UIElement possibleSuccessor) {
182+
private boolean hasSuccessor(Direction direction, UIElement possibleSuccessor) {
183183
return signedDistanceToSuccessor(direction, possibleSuccessor).isGreaterOrEqualTo(scalar(0));
184184
}
185185

186-
public Scalar signedDistanceToSuccessor(Direction direction, UIElement successor) {
186+
private Scalar signedDistanceToSuccessor(Direction direction, UIElement successor) {
187187
return direction.signedDistance(direction.end(rectangle), direction.begin(successor.rectangle));
188188
}
189189

@@ -195,7 +195,7 @@ public boolean hasBelowElement(UIElement bottomElement) {
195195
return hasSuccessor(DOWN, bottomElement);
196196
}
197197

198-
public String getCssValue(String cssProperty) {
198+
private String getCssValue(String cssProperty) {
199199
return cssSource.getCssValue(cssProperty);
200200
}
201201

0 commit comments

Comments
 (0)