add CourseTypeBuilder
This commit is contained in:
parent
2ad4db0efd
commit
30f294ca2c
|
@ -0,0 +1,102 @@
|
||||||
|
package org.cutem.cutecalendar.presenter.newitems;
|
||||||
|
|
||||||
|
import javafx.fxml.FXML;
|
||||||
|
import javafx.scene.control.ChoiceBox;
|
||||||
|
import javafx.scene.control.TextField;
|
||||||
|
import org.cutem.cutecalendar.model.TodoItem;
|
||||||
|
import org.cutem.cutecalendar.model.TodoItemFactory;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
public class CourseTypeBuilder extends NewItemBuilder {
|
||||||
|
|
||||||
|
public static class Factory implements IFactory {
|
||||||
|
@Override
|
||||||
|
public String getTypeName() {
|
||||||
|
return TYPE_NAME;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NewItemBuilder construct(@Nullable TodoItem parent) {
|
||||||
|
return new CourseTypeBuilder(parent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final String COURSE_TYPE_LAYOUT = "fxml/newitem_layouts/course_type_layout.fxml";
|
||||||
|
|
||||||
|
private static final int TYPE = TodoItem.COURSE;
|
||||||
|
|
||||||
|
private static final String TYPE_NAME = TodoItem.typeName(TYPE);
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private TextField bgnTimeText;
|
||||||
|
@FXML
|
||||||
|
private TextField endTimeText;
|
||||||
|
@FXML
|
||||||
|
private TextField repeatText;
|
||||||
|
@FXML
|
||||||
|
private TextField titleText;
|
||||||
|
@FXML
|
||||||
|
private TextField contentText;
|
||||||
|
@FXML
|
||||||
|
private TextField locationText;
|
||||||
|
@FXML
|
||||||
|
private TextField descriptionText;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private ChoiceBox<String> priorityBox;
|
||||||
|
@FXML
|
||||||
|
private ChoiceBox<String> importanceBox;
|
||||||
|
@FXML
|
||||||
|
private ChoiceBox<String> alarmMethodBox;
|
||||||
|
@FXML
|
||||||
|
private TextField alarmStartText;
|
||||||
|
@FXML
|
||||||
|
private TextField alarmIntervalText;
|
||||||
|
|
||||||
|
|
||||||
|
protected CourseTypeBuilder(TodoItem parent) {
|
||||||
|
super(parent);
|
||||||
|
loadLayout(COURSE_TYPE_LAYOUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private void initialize() {
|
||||||
|
addAutoCheckTime(bgnTimeText.textProperty(), endTimeText.textProperty());
|
||||||
|
|
||||||
|
addAutoSet(TodoItem.REPEAT_WEEKS, repeatText.textProperty(), "重复的周数不合法");
|
||||||
|
addAutoSet(TodoItem.TITLE, titleText.textProperty(), "请填写课程名");
|
||||||
|
addAutoSet("content", contentText.textProperty(), "请填写上课内容");
|
||||||
|
addAutoSet(TodoItem.LOCATION, locationText.textProperty(), "请填写地点");
|
||||||
|
addAutoSet(TodoItem.DESCRIPTION, descriptionText.textProperty(), "请填写备注");
|
||||||
|
addAutoSet(TodoItem.ALARM_START, alarmStartText.textProperty(), "提醒的开始时间不合法");
|
||||||
|
addAutoSet(TodoItem.ALARM_INTERVAL, alarmIntervalText.textProperty(), "提醒的间隔时间不合法");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getTypeName() {
|
||||||
|
return TYPE_NAME;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean check() {
|
||||||
|
return autoCheck();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Object make() {
|
||||||
|
TodoItemFactory fac = autoBuild();
|
||||||
|
|
||||||
|
String priority = priorityBox.getValue();
|
||||||
|
String importance = importanceBox.getValue();
|
||||||
|
String alarmMethod = alarmMethodBox.getValue();
|
||||||
|
|
||||||
|
return fac.type(TYPE)
|
||||||
|
.stringProperties(TodoItem.PRIORITY, priority)
|
||||||
|
.stringProperties(TodoItem.IMPORTANCE, importance)
|
||||||
|
.stringProperties(TodoItem.ALARM_METHOD, alarmMethod)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue