CardInPage.java
3.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package cn.csbr.app.gui.page;
import cn.csbr.app.config.FxConfigure;
import cn.csbr.app.gui.handler.ReturnMainPageHandler;
import cn.csbr.app.gui.handler.ToUseHandler;
import cn.csbr.app.gui.util.ButtonSize;
import cn.csbr.app.gui.util.ButtonUtils;
import javafx.application.Platform;
import javafx.geometry.Insets;
import javafx.scene.Node;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import org.controlsfx.tools.Borders;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
/**
* 耗材柜登录类
*/
@Component
public class CardInPage extends AbstractPage {
@Autowired
private FxConfigure fxConfigure;
@Autowired
private ReturnMainPageHandler returnMainPageHandler;
@Autowired
private ToUseHandler toUseHandler;
private List<ScheduledExecutorService> eses = new ArrayList<>();
public CardInPage() {
}
@Override
protected Node constructNode() {
VBox vBox = new VBox();
vBox.setStyle("-fx-text-alignment:center;-fx-alignment:center;");
vBox.setPadding(new Insets(100, 0, 0, 0));
Label text = new Label();
text.setText("您已打开耗材柜进行操作:\n\n" +
"30秒后系统将按照取货操作进行记录!\n" +
"如您进行其他操作,请点击按钮进入导航页。\n");
text.setStyle("-fx-text-alignment:left;-fx-alignment:center-left;-fx-font-size:2.5em");
text.setMinWidth(800);
text.setMaxWidth(800);
Node wrappedText = Borders.wrap(text)
.lineBorder()
.title("提示信息")
.thickness(1)
.radius(0, 5, 5, 0)
.build()
.build();
Button nextBtn = ButtonUtils.createOkButton("下一步",
new ButtonSize(300, 200), e -> {
returnMainPageHandler.handle(e);
synchronized (eses) {
for (ScheduledExecutorService es : eses) {
if (es != null && !es.isShutdown()) {
es.shutdownNow();
}
}
eses.clear();
}
});
nextBtn.setStyle("-fx-font-size:2.5em");
vBox.getChildren().addAll(wrappedText, nextBtn);
return vBox;
}
@Override
public void refresh() {
synchronized (eses) {
ScheduledExecutorService es = Executors.newSingleThreadScheduledExecutor();
eses.add(es);
es.schedule(
() -> {
Platform.runLater(() -> {
toUseHandler.handle(null);
});
}, fxConfigure.getUsedelaytime(), TimeUnit.SECONDS);
}
}
}