Skip to content

Commit b847d59

Browse files
committed
Refactor demo
1 parent 99c82cc commit b847d59

File tree

4 files changed

+86
-65
lines changed

4 files changed

+86
-65
lines changed

patternfx-demo/src/main/java/com/techsenger/patternfx/demo/PersonDialogView.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,12 +102,11 @@ protected void bind() {
102102
var vm = getViewModel();
103103
dialog.titleProperty().bind(vm.titleProperty());
104104

105-
firstNameTextField.textProperty().bindBidirectional(vm.getPerson().firstNameProperty());
105+
firstNameTextField.textProperty().bindBidirectional(vm.firstNameProperty());
106106
bindValid(firstNameTextField, vm.firstNameValidProperty());
107-
lastNameTextField.textProperty().bindBidirectional(vm.getPerson().lastNameProperty());
107+
lastNameTextField.textProperty().bindBidirectional(vm.lastNameProperty());
108108
bindValid(lastNameTextField, vm.lastNameValidProperty());
109-
ageTextField.textProperty().bindBidirectional(vm.getPerson().ageProperty(),
110-
new IntegerStringConverter());
109+
ageTextField.textProperty().bindBidirectional(vm.ageProperty(), new IntegerStringConverter());
111110
bindValid(ageTextField, vm.ageValidProperty());
112111
}
113112

patternfx-demo/src/main/java/com/techsenger/patternfx/demo/PersonDialogViewModel.java

Lines changed: 62 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@
2020
import com.techsenger.patternfx.core.ParentMediator;
2121
import com.techsenger.patternfx.demo.model.Person;
2222
import javafx.beans.property.BooleanProperty;
23+
import javafx.beans.property.ObjectProperty;
2324
import javafx.beans.property.SimpleBooleanProperty;
25+
import javafx.beans.property.SimpleObjectProperty;
2426
import javafx.beans.property.SimpleStringProperty;
2527
import javafx.beans.property.StringProperty;
2628

@@ -32,20 +34,56 @@ public class PersonDialogViewModel extends AbstractParentViewModel<ParentMediato
3234

3335
private final StringProperty title = new SimpleStringProperty("New Person");
3436

35-
private final Person person = new Person();
37+
private final StringProperty firstName = new SimpleStringProperty();
38+
39+
private final StringProperty lastName = new SimpleStringProperty();
40+
41+
private final ObjectProperty<Integer> age = new SimpleObjectProperty();
3642

3743
private final BooleanProperty firstNameValid = new SimpleBooleanProperty(true);
3844

3945
private final BooleanProperty lastNameValid = new SimpleBooleanProperty(true);
4046

4147
private final BooleanProperty ageValid = new SimpleBooleanProperty(true);
4248

43-
StringProperty titleProperty() {
44-
return title;
49+
public String getFirstName() {
50+
return firstName.get();
51+
}
52+
53+
public void setFirstName(String firstName) {
54+
this.firstName.set(firstName);
55+
}
56+
57+
public StringProperty firstNameProperty() {
58+
return firstName;
59+
}
60+
61+
public String getLastName() {
62+
return lastName.get();
63+
}
64+
65+
public void setLastName(String lastName) {
66+
this.lastName.set(lastName);
67+
}
68+
69+
public StringProperty lastNameProperty() {
70+
return lastName;
4571
}
4672

47-
Person getPerson() {
48-
return person;
73+
public Integer getAge() {
74+
return age.get();
75+
}
76+
77+
public void setAge(Integer age) {
78+
this.age.set(age);
79+
}
80+
81+
public ObjectProperty<Integer> ageProperty() {
82+
return age;
83+
}
84+
85+
StringProperty titleProperty() {
86+
return title;
4987
}
5088

5189
BooleanProperty firstNameValidProperty() {
@@ -61,14 +99,29 @@ BooleanProperty ageValidProperty() {
6199
}
62100

63101
boolean isPersonValid() {
64-
firstNameValid.set(person.isFirstNameValid());
65-
lastNameValid.set(person.isLastNameValid());
66-
ageValid.set(person.isAgeValid());
102+
firstNameValid.set(isFirstNameValid());
103+
lastNameValid.set(isLastNameValid());
104+
ageValid.set(isAgeValid());
67105
return firstNameValid.get() && lastNameValid.get() && ageValid.get();
68106
}
69107

70108
Person createPerson() {
71-
var newPerson = new Person(person.getFirstName(), person.getLastName(), person.getAge());
109+
var newPerson = new Person(getFirstName(), getLastName(), getAge());
72110
return newPerson;
73111
}
112+
113+
private boolean isFirstNameValid() {
114+
var name = getFirstName();
115+
return name != null && !name.isBlank();
116+
}
117+
118+
private boolean isLastNameValid() {
119+
var name = getLastName();
120+
return name != null && !name.isBlank();
121+
}
122+
123+
private boolean isAgeValid() {
124+
var a = getAge();
125+
return a != null && a >= 0 && a <= 125;
126+
}
74127
}

patternfx-demo/src/main/java/com/techsenger/patternfx/demo/PersonRegistryView.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
import com.techsenger.patternfx.core.AbstractParentView;
2020
import com.techsenger.patternfx.demo.model.Person;
21+
import javafx.beans.property.SimpleObjectProperty;
22+
import javafx.beans.property.SimpleStringProperty;
2123
import javafx.geometry.Insets;
2224
import javafx.scene.Scene;
2325
import javafx.scene.control.Button;
@@ -68,13 +70,13 @@ protected void build() {
6870
personTable.setItems(getViewModel().getPersons());
6971
personTable.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
7072
var idColumn = new TableColumn<Person, Integer>("Id");
71-
idColumn.setCellValueFactory(data -> data.getValue().idProperty());
73+
idColumn.setCellValueFactory(data -> new SimpleObjectProperty<>(data.getValue().getId()));
7274
var firstNameColumn = new TableColumn<Person, String>("First Name");
73-
firstNameColumn.setCellValueFactory(data -> data.getValue().firstNameProperty());
75+
firstNameColumn.setCellValueFactory(data -> new SimpleStringProperty(data.getValue().getFirstName()));
7476
var lastNameColumn = new TableColumn<Person, String>("Last Name");
75-
lastNameColumn.setCellValueFactory(data -> data.getValue().lastNameProperty());
77+
lastNameColumn.setCellValueFactory(data -> new SimpleStringProperty(data.getValue().getLastName()));
7678
var ageColumn = new TableColumn<Person, Integer>("Age");
77-
ageColumn.setCellValueFactory(data -> data.getValue().ageProperty());
79+
ageColumn.setCellValueFactory(data -> new SimpleObjectProperty<>(data.getValue().getAge()));
7880
personTable.getColumns().addAll(idColumn, firstNameColumn, lastNameColumn, ageColumn);
7981

8082
VBox.setVgrow(content, Priority.ALWAYS);

patternfx-demo/src/main/java/com/techsenger/patternfx/demo/model/Person.java

Lines changed: 15 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -16,92 +16,59 @@
1616

1717
package com.techsenger.patternfx.demo.model;
1818

19-
import javafx.beans.property.ObjectProperty;
20-
import javafx.beans.property.SimpleObjectProperty;
21-
import javafx.beans.property.SimpleStringProperty;
22-
import javafx.beans.property.StringProperty;
23-
2419
/**
2520
*
2621
* @author Pavel Castornii
2722
*/
2823
public class Person {
2924

30-
private final ObjectProperty<Integer> id = new SimpleObjectProperty<>();
25+
private Integer id;
3126

32-
private final StringProperty firstName = new SimpleStringProperty();
27+
private String firstName;
3328

34-
private final StringProperty lastName = new SimpleStringProperty();
29+
private String lastName;
3530

36-
private final ObjectProperty<Integer> age = new SimpleObjectProperty<>();
31+
private Integer age;
3732

3833
public Person() {
3934

4035
}
4136

4237
public Person(String firstName, String lastName, Integer age) {
43-
setFirstName(firstName);
44-
setLastName(lastName);
45-
setAge(age);
38+
this.firstName = firstName;
39+
this.lastName = lastName;
40+
this.age = age;
4641
}
4742

4843
public Integer getId() {
49-
return id.get();
50-
}
51-
52-
public void setId(Integer value) {
53-
id.set(value);
54-
}
55-
56-
public ObjectProperty<Integer> idProperty() {
5744
return id;
5845
}
5946

60-
public StringProperty firstNameProperty() {
61-
return firstName;
47+
public void setId(Integer id) {
48+
this.id = id;
6249
}
6350

6451
public String getFirstName() {
65-
return firstName.get();
52+
return firstName;
6653
}
6754

6855
public void setFirstName(String firstName) {
69-
this.firstName.set(firstName);
70-
}
71-
72-
public boolean isFirstNameValid() {
73-
return firstName.get() != null && !firstName.get().isBlank();
74-
}
75-
76-
public StringProperty lastNameProperty() {
77-
return lastName;
56+
this.firstName = firstName;
7857
}
7958

8059
public String getLastName() {
81-
return lastName.get();
60+
return lastName;
8261
}
8362

8463
public void setLastName(String lastName) {
85-
this.lastName.set(lastName);
86-
}
87-
88-
public boolean isLastNameValid() {
89-
return lastName.get() != null && !lastName.get().isBlank();
90-
}
91-
92-
public ObjectProperty<Integer> ageProperty() {
93-
return age;
64+
this.lastName = lastName;
9465
}
9566

9667
public Integer getAge() {
97-
return age.get();
68+
return age;
9869
}
9970

10071
public void setAge(Integer age) {
101-
this.age.set(age);
102-
}
103-
104-
public boolean isAgeValid() {
105-
return age.get() != null && age.get() >= 0 && age.get() <= 125;
72+
this.age = age;
10673
}
10774
}

0 commit comments

Comments
 (0)