Skip to content

Commit 69a9d06

Browse files
committed
Refactor port
1 parent d304d05 commit 69a9d06

12 files changed

Lines changed: 36 additions & 137 deletions

File tree

patternfx-demo/src/main/java/com/techsenger/patternfx/demo/mvp/DialogPort.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,6 @@
2626
public interface DialogPort extends ParentPort {
2727

2828
Person getResult();
29+
30+
void deinitialize();
2931
}

patternfx-demo/src/main/java/com/techsenger/patternfx/demo/mvp/DialogPresenter.java

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,8 @@
2727
*
2828
* @author Pavel Castornii
2929
*/
30-
public class DialogPresenter<T extends DialogView> extends AbstractParentPresenter<T, ParentComposer> {
31-
32-
protected class Port extends AbstractParentPresenter<T, ParentComposer>.Port implements DialogPort {
33-
34-
@Override
35-
public Person getResult() {
36-
return DialogPresenter.this.result;
37-
}
38-
}
30+
public class DialogPresenter<T extends DialogView> extends AbstractParentPresenter<T, ParentComposer>
31+
implements DialogPort {
3932

4033
private String firstName;
4134

@@ -50,8 +43,8 @@ public DialogPresenter(T view) {
5043
}
5144

5245
@Override
53-
public Port getPort() {
54-
return (Port) super.getPort();
46+
public Person getResult() {
47+
return DialogPresenter.this.result;
5548
}
5649

5750
@Override
@@ -81,15 +74,6 @@ protected boolean onOk() {
8174
return true;
8275
}
8376

84-
protected Person getResult() {
85-
return result;
86-
}
87-
88-
@Override
89-
protected Port createPort() {
90-
return new DialogPresenter.Port();
91-
}
92-
9377
private boolean checkIfValid() {
9478
var v = getView();
9579
var firstNameValid = PersonValidator.isFirstNameValid(this.result.getFirstName());

patternfx-demo/src/main/java/com/techsenger/patternfx/demo/mvp/RegistryFxView.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,15 @@ public DialogPort showDialog() {
5050
var p = new DialogPresenter<>(v);
5151
p.initialize();
5252
v.getDialog().showAndWait();
53-
return p.getPort();
53+
return p;
5454
}
5555

5656
@Override
5757
public ReportPort getReport() {
5858
if (view.getReport() == null) {
5959
return null;
6060
}
61-
return view.getReport().getPresenter().getPort();
61+
return view.getReport().getPresenter();
6262
}
6363

6464
@Override

patternfx-demo/src/main/java/com/techsenger/patternfx/demo/mvp/RegistryPresenter.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,4 @@ private void updateReport() {
110110
report.refresh(persons);
111111
}
112112
}
113-
114-
@Override
115-
protected Port createPort() {
116-
return new AbstractParentPresenter.Port();
117-
}
118113
}

patternfx-demo/src/main/java/com/techsenger/patternfx/demo/mvp/ReportPresenter.java

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -27,39 +27,21 @@
2727
*
2828
* @author Pavel Castornii
2929
*/
30-
public class ReportPresenter extends AbstractChildPresenter<ReportView, ChildComposer> {
31-
32-
private final class Port extends AbstractChildPresenter<ReportView, ChildComposer>.Port implements ReportPort {
33-
34-
@Override
35-
public void refresh(List<Person> persons) {
36-
ReportPresenter.this.refresh(persons);
37-
}
38-
39-
}
30+
public class ReportPresenter extends AbstractChildPresenter<ReportView, ChildComposer> implements ReportPort {
4031

4132
public ReportPresenter(ReportView view) {
4233
super(view);
4334
}
4435

4536
@Override
46-
protected Descriptor createDescriptor() {
47-
return new Descriptor(DemoNames.PERSON_REPORT);
48-
}
49-
50-
@Override
51-
public Port getPort() {
52-
return (Port) super.getPort();
53-
}
54-
55-
@Override
56-
protected Port createPort() {
57-
return new ReportPresenter.Port();
58-
}
59-
60-
private void refresh(List<Person> persons) {
37+
public void refresh(List<Person> persons) {
6138
double average = persons.stream().mapToDouble(Person::getAge).average().orElse(0.0);
6239
getView().setAverageAge(String.valueOf(average));
6340
getView().setTotalPeople(String.valueOf(persons.size()));
6441
}
42+
43+
@Override
44+
protected Descriptor createDescriptor() {
45+
return new Descriptor(DemoNames.PERSON_REPORT);
46+
}
6547
}

patternfx-mvp/src/main/java/com/techsenger/patternfx/mvp/AbstractChildFxView.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public ParentPort getParent() {
3636
if (parent == null) {
3737
return null;
3838
}
39-
return parent.getPresenter().getPort();
39+
return parent.getPresenter();
4040
}
4141
}
4242

patternfx-mvp/src/main/java/com/techsenger/patternfx/mvp/AbstractChildPresenter.java

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,27 +23,12 @@
2323
public abstract class AbstractChildPresenter<V extends ChildView, C extends ChildComposer>
2424
extends AbstractParentPresenter<V, C> implements ChildPresenter<V, C> {
2525

26-
protected class Port extends AbstractParentPresenter<V, C>.Port implements ChildPort {
27-
28-
public Port() {
29-
// empty
30-
}
31-
32-
@Override
33-
public ParentPort getParent() {
34-
return getComposer().getParent();
35-
}
36-
}
37-
3826
public AbstractChildPresenter(V view) {
3927
super(view);
4028
}
4129

4230
@Override
43-
public Port getPort() {
44-
return (Port) super.getPort();
31+
public ParentPort getParent() {
32+
return getComposer().getParent();
4533
}
46-
47-
@Override
48-
protected abstract Port createPort();
4934
}

patternfx-mvp/src/main/java/com/techsenger/patternfx/mvp/AbstractParentFxView.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public void compose(ComposeParameters params) {
4444

4545
@Override
4646
public List<? extends ChildPort> getChildren() {
47-
return view.getChildren().stream().map(v -> v.getPresenter().getPort()).collect(Collectors.toList());
47+
return view.getChildren().stream().map(v -> v.getPresenter()).collect(Collectors.toList());
4848
}
4949

5050
@Override
@@ -58,7 +58,7 @@ protected List<ParentFxView<?>> getChildren(ParentFxView<?> parent) {
5858

5959
@Override
6060
protected ParentPort map(ParentFxView<?> value) {
61-
return value.getPresenter().getPort();
61+
return value.getPresenter();
6262
}
6363
};
6464
}
@@ -74,7 +74,7 @@ protected List<ParentFxView<?>> getChildren(ParentFxView<?> parent) {
7474

7575
@Override
7676
protected ParentPort map(ParentFxView<?> value) {
77-
return value.getPresenter().getPort();
77+
return value.getPresenter();
7878
}
7979
};
8080
}

patternfx-mvp/src/main/java/com/techsenger/patternfx/mvp/AbstractParentPresenter.java

Lines changed: 13 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -29,49 +29,12 @@ public abstract class AbstractParentPresenter<V extends ParentView, C extends Pa
2929

3030
private static final Logger logger = LoggerFactory.getLogger(AbstractParentPresenter.class);
3131

32-
protected class Port implements ParentPort {
33-
34-
private final AbstractParentPresenter<?, ?> presenter = AbstractParentPresenter.this;
35-
36-
public Port() {
37-
// empty
38-
}
39-
40-
@Override
41-
public void requestFocus() {
42-
getView().requestFocus();
43-
}
44-
45-
@Override
46-
public Descriptor getDescriptor() {
47-
return presenter.getDescriptor();
48-
}
49-
50-
@Override
51-
public void initialize() {
52-
presenter.initialize();
53-
}
54-
55-
@Override
56-
public void deinitialize() {
57-
presenter.deinitialize();
58-
}
59-
60-
@Override
61-
public List<? extends ChildPort> getChildren() {
62-
return getComposer().getChildren();
63-
}
64-
}
65-
66-
private final Port port;
67-
6832
private C composer;
6933

7034
private ComposeParameters parameters;
7135

7236
public AbstractParentPresenter(V view) {
7337
super(view);
74-
this.port = createPort();
7538
this.parameters = createParameters();
7639
}
7740

@@ -80,11 +43,6 @@ public C getComposer() {
8043
return this.composer;
8144
}
8245

83-
@Override
84-
public Port getPort() {
85-
return this.port;
86-
}
87-
8846
@Override
8947
public void deinitializeTree() {
9048
if (logger.isDebugEnabled()) {
@@ -93,10 +51,22 @@ public void deinitializeTree() {
9351
}
9452
var iterator = composer.breadthFirstIterator();
9553
while (iterator.hasNext()) {
96-
iterator.next().deinitialize();
54+
var port = iterator.next();
55+
var presenter = (ParentPresenter<?, ?>) port;
56+
presenter.deinitialize();
9757
}
9858
}
9959

60+
@Override
61+
public List<? extends ChildPort> getChildren() {
62+
return getComposer().getChildren();
63+
}
64+
65+
@Override
66+
public void requestFocus() {
67+
getView().requestFocus();
68+
}
69+
10070
@Override
10171
protected void postInitialize() {
10272
super.postInitialize();
@@ -108,10 +78,6 @@ protected void setComposer(ParentComposer composer) {
10878
this.composer = (C) composer;
10979
}
11080

111-
protected Port createPort() {
112-
return new Port();
113-
}
114-
11581
/**
11682
* Creates the parameters to be passed to {@link ParentComposer#compose(ComposerParameters)} during the static
11783
* composition phase. After composition completes, the instance is set to {@code null} and is no longer accessible.

patternfx-mvp/src/main/java/com/techsenger/patternfx/mvp/ChildPresenter.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020
*
2121
* @author Pavel Castornii
2222
*/
23-
public interface ChildPresenter<V extends ChildView, C extends ChildComposer> extends ParentPresenter<V, C> {
23+
public interface ChildPresenter<V extends ChildView, C extends ChildComposer> extends ParentPresenter<V, C>, ChildPort {
2424

25-
@Override
26-
ChildPort getPort();
2725
}

0 commit comments

Comments
 (0)