Skip to content

Commit 0d0b9b5

Browse files
committed
Move component node iterators to Mediator
1 parent 10ab0b6 commit 0d0b9b5

File tree

4 files changed

+36
-37
lines changed

4 files changed

+36
-37
lines changed

mvvm4fx-core/src/main/java/com/techsenger/mvvm4fx/core/AbstractParentComponent.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,28 @@ public Mediator() {
4343
(v) -> v.getView().getViewModel());
4444
}
4545

46+
@Override
47+
public SubtreeIterator<ParentViewModel> depthFirstIterator() {
48+
return new AbstractDepthFirstIterator<ParentViewModel>(getView().getViewModel()) {
49+
50+
@Override
51+
List<ParentViewModel> getChildren(ParentViewModel parent) {
52+
return (List) children;
53+
}
54+
};
55+
}
56+
57+
@Override
58+
public SubtreeIterator<ParentViewModel> breadthFirstIterator() {
59+
return new AbstractBreadthFirstIterator<ParentViewModel>(getView().getViewModel()) {
60+
61+
@Override
62+
List<ParentViewModel> getChildren(ParentViewModel parent) {
63+
return (List) children;
64+
}
65+
};
66+
}
67+
4668
@Override
4769
public ObservableList<ChildViewModel> getChildren() {
4870
return children;

mvvm4fx-core/src/main/java/com/techsenger/mvvm4fx/core/AbstractParentViewModel.java

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616

1717
package com.techsenger.mvvm4fx.core;
1818

19-
import java.util.List;
20-
2119
/**
2220
*
2321
* @author Pavel Castornii
@@ -28,27 +26,6 @@ public AbstractParentViewModel() {
2826
super();
2927
}
3028

31-
@Override
32-
public SubtreeIterator<ParentViewModel> depthFirstIterator() {
33-
return new AbstractDepthFirstIterator<ParentViewModel>(this) {
34-
35-
@Override
36-
List<ParentViewModel> getChildren(ParentViewModel parent) {
37-
return (List) getMediator().getChildren();
38-
}
39-
};
40-
}
41-
42-
@Override
43-
public SubtreeIterator<ParentViewModel> breadthFirstIterator() {
44-
return new AbstractBreadthFirstIterator<ParentViewModel>(this) {
45-
46-
@Override
47-
List<ParentViewModel> getChildren(ParentViewModel parent) {
48-
return (List) getMediator().getChildren();
49-
}
50-
};
51-
}
5229

5330
@Override
5431
public ParentMediator getMediator() {

mvvm4fx-core/src/main/java/com/techsenger/mvvm4fx/core/ParentMediator.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,18 @@ public interface ParentMediator extends ComponentMediator {
3030
* @return a non-null, unmodifiable observable list of child ViewModels
3131
*/
3232
ObservableList<ChildViewModel> getChildren();
33+
34+
/**
35+
* Returns an iterator that traverses the component subtree starting from this component in depth-first order.
36+
*
37+
* @return an {@link Iterator} that iterates over this component and all of its descendants
38+
*/
39+
SubtreeIterator<ParentViewModel> depthFirstIterator();
40+
41+
/**
42+
* Returns an iterator that traverses the component subtree starting from this component in breadth-first order.
43+
*
44+
* @return an {@link Iterator} that iterates over this component and all of its descendants
45+
*/
46+
SubtreeIterator<ParentViewModel> breadthFirstIterator();
3347
}

mvvm4fx-core/src/main/java/com/techsenger/mvvm4fx/core/ParentViewModel.java

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,6 @@
2222
*/
2323
public interface ParentViewModel extends ComponentViewModel {
2424

25-
/**
26-
* Returns an iterator that traverses the component subtree starting from this component in depth-first order.
27-
*
28-
* @return an {@link Iterator} that iterates over this component and all of its descendants
29-
*/
30-
SubtreeIterator<ParentViewModel> depthFirstIterator();
31-
32-
/**
33-
* Returns an iterator that traverses the component subtree starting from this component in breadth-first order.
34-
*
35-
* @return an {@link Iterator} that iterates over this component and all of its descendants
36-
*/
37-
SubtreeIterator<ParentViewModel> breadthFirstIterator();
38-
3925
@Override
4026
ParentMediator getMediator();
4127
}

0 commit comments

Comments
 (0)