Skip to content

Commit cadf03a

Browse files
committed
添加久坐提醒工具。
1 parent e8999b3 commit cadf03a

8 files changed

Lines changed: 461 additions & 279 deletions

File tree

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,8 @@ Mac OS X x64 [xJavaFxTool-0.1.6-macosx-x64.pkg](https://dev.tencent.com/s/c5ffd1
135135

136136
46、FileMergeTool:文件合并工具(支持对xls、xlsx、csv及文件进行合并操作);
137137

138+
47、SedentaryReminderTool:久坐提醒工具;
139+
138140
传输工具目前支持功能如下:
139141

140142
Receiver接收器:
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package com.xwintop.xJavaFxTool.controller.littleTools;
2+
3+
import com.xwintop.xJavaFxTool.services.littleTools.SedentaryReminderToolService;
4+
import com.xwintop.xJavaFxTool.utils.JavaFxViewUtil;
5+
import com.xwintop.xJavaFxTool.view.littleTools.SedentaryReminderToolView;
6+
import javafx.event.ActionEvent;
7+
import javafx.fxml.FXML;
8+
import lombok.Getter;
9+
import lombok.Setter;
10+
import lombok.extern.slf4j.Slf4j;
11+
12+
import java.net.URL;
13+
import java.util.ResourceBundle;
14+
15+
/**
16+
* @ClassName: SedentaryReminderToolController
17+
* @Description: 久坐提醒工具
18+
* @author: xufeng
19+
* @date: 2019/6/12 0012 23:08
20+
*/
21+
22+
@Getter
23+
@Setter
24+
@Slf4j
25+
public class SedentaryReminderToolController extends SedentaryReminderToolView {
26+
private SedentaryReminderToolService sedentaryReminderToolService = new SedentaryReminderToolService(this);
27+
28+
@Override
29+
public void initialize(URL location, ResourceBundle resources) {
30+
initView();
31+
initEvent();
32+
initService();
33+
}
34+
35+
private void initView() {
36+
JavaFxViewUtil.setSpinnerValueFactory(timeSpinner, 1, Integer.MAX_VALUE, 10);
37+
}
38+
39+
private void initEvent() {
40+
}
41+
42+
private void initService() {
43+
}
44+
45+
@FXML
46+
private void remindAction(ActionEvent event) {
47+
if ("开启提醒".equals(remindButton.getText())) {
48+
sedentaryReminderToolService.remindAction();
49+
remindButton.setText("停止提醒");
50+
} else {
51+
sedentaryReminderToolService.stopAction();
52+
remindButton.setText("开启提醒");
53+
}
54+
}
55+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package com.xwintop.xJavaFxTool.services.littleTools;
2+
3+
import com.xwintop.xJavaFxTool.controller.littleTools.SedentaryReminderToolController;
4+
import com.xwintop.xcore.util.javafx.TooltipUtil;
5+
import javafx.geometry.Pos;
6+
import lombok.Getter;
7+
import lombok.Setter;
8+
import lombok.extern.slf4j.Slf4j;
9+
10+
import java.util.Timer;
11+
import java.util.TimerTask;
12+
13+
/**
14+
* @ClassName: SedentaryReminderToolService
15+
* @Description: 久坐提醒工具
16+
* @author: xufeng
17+
* @date: 2019/6/12 0012 23:08
18+
*/
19+
20+
@Getter
21+
@Setter
22+
@Slf4j
23+
public class SedentaryReminderToolService {
24+
private SedentaryReminderToolController sedentaryReminderToolController;
25+
private Timer timer;
26+
27+
public SedentaryReminderToolService(SedentaryReminderToolController sedentaryReminderToolController) {
28+
this.sedentaryReminderToolController = sedentaryReminderToolController;
29+
}
30+
31+
public void remindAction() {
32+
Integer time = sedentaryReminderToolController.getTimeSpinner().getValue();
33+
if (timer == null) {
34+
timer = new Timer();
35+
timer.schedule(new TimerTask() {
36+
@Override
37+
public void run() {
38+
TooltipUtil.showToast("久坐提醒", sedentaryReminderToolController.getMessageTextArea().getText(), Pos.BOTTOM_RIGHT);
39+
}
40+
}, time * 1000 * 60, time * 1000 * 60);
41+
}
42+
}
43+
44+
public void stopAction() {
45+
if (timer != null) {
46+
timer.cancel();
47+
timer = null;
48+
}
49+
}
50+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.xwintop.xJavaFxTool.view.littleTools;
2+
3+
import javafx.fxml.FXML;
4+
import javafx.fxml.Initializable;
5+
import javafx.scene.control.Button;
6+
import javafx.scene.control.Spinner;
7+
import javafx.scene.control.TextArea;
8+
import lombok.Getter;
9+
import lombok.Setter;
10+
11+
/**
12+
* @ClassName: SedentaryReminderToolView
13+
* @Description: 久坐提醒工具
14+
* @author: xufeng
15+
* @date: 2019/6/12 0012 23:08
16+
*/
17+
18+
@Getter
19+
@Setter
20+
public abstract class SedentaryReminderToolView implements Initializable {
21+
@FXML
22+
protected Spinner<Integer> timeSpinner;
23+
@FXML
24+
protected TextArea messageTextArea;
25+
@FXML
26+
protected Button remindButton;
27+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
3+
4+
<?import javafx.scene.control.*?>
5+
<?import javafx.scene.layout.AnchorPane?>
6+
<?import javafx.scene.text.*?>
7+
<AnchorPane prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.xwintop.xJavaFxTool.controller.littleTools.SedentaryReminderToolController">
8+
<children>
9+
<Label layoutX="47.0" layoutY="21.0" text="提醒时间:">
10+
<font>
11+
<Font size="24.0" />
12+
</font>
13+
</Label>
14+
<Label layoutX="47.0" layoutY="68.0" text="">
15+
<font>
16+
<Font size="24.0" />
17+
</font>
18+
</Label>
19+
<Spinner fx:id="timeSpinner" editable="true" layoutX="77.0" layoutY="73.0" prefHeight="23.0" prefWidth="103.0" />
20+
<Label layoutX="192.0" layoutY="69.0" text="分钟提醒我活动一下">
21+
<font>
22+
<Font size="24.0" />
23+
</font>
24+
</Label>
25+
<Label layoutX="47.0" layoutY="128.0" text="自定义提醒内容:">
26+
<font>
27+
<Font size="24.0" />
28+
</font>
29+
</Label>
30+
<TextArea fx:id="messageTextArea" layoutX="47.0" layoutY="169.0" prefHeight="156.0" prefWidth="499.0" text="站起来伸个懒腰&#10;转动几下脖子&#10;绕地球走几圈">
31+
<font>
32+
<Font size="24.0" />
33+
</font>
34+
</TextArea>
35+
<Button fx:id="remindButton" layoutX="233.0" layoutY="338.0" mnemonicParsing="false" onAction="#remindAction" text="开启提醒">
36+
<font>
37+
<Font size="24.0" />
38+
</font>
39+
</Button>
40+
</children>
41+
</AnchorPane>

0 commit comments

Comments
 (0)