Skip to content

Commit 018e589

Browse files
committed
Refactoring: Add 'UsageUI' interface to guide proper use and Add UsageTextUI
1 parent 6a431bf commit 018e589

File tree

6 files changed

+88
-10
lines changed

6 files changed

+88
-10
lines changed

src/main/java/root/javafx/CustomView/UsageUI/UsageBarUI.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import javafx.scene.layout.AnchorPane;
1010
import root.core.domain.enums.UsageStatus;
1111

12-
public class UsageBarUI extends AnchorPane {
12+
public class UsageBarUI extends AnchorPane implements UsageUI {
1313

1414
@FXML
1515
ProgressBar usageUI;
@@ -39,15 +39,18 @@ public UsageBarUI(double usage, double baseline) {
3939
setColor();
4040
}
4141

42-
private void setUsageText() {
42+
@Override
43+
public void setUsageText() {
4344
usageLB.setText(usage == -1 ? "ERROR" : usage + "%");
4445
}
4546

46-
private void setUsage() {
47+
@Override
48+
public void setUsage() {
4749
usageUI.setProgress(usage == -1 ? ProgressBar.INDETERMINATE_PROGRESS : usage / 100.0);
4850
}
4951

50-
private void setColor() {
52+
@Override
53+
public void setColor() {
5154
UsageStatus type = usage >= baseline ? UsageStatus.DANGEROUS : UsageStatus.NORMAL;
5255
usageUI.setStyle("-fx-accent2:" + type.getColor());
5356
}

src/main/java/root/javafx/CustomView/UsageUI/UsageCircleUI.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import javafx.scene.layout.HBox;
1010
import root.core.domain.enums.UsageStatus;
1111

12-
public class UsageCircleUI extends HBox {
12+
public class UsageCircleUI extends HBox implements UsageUI {
1313

1414
@FXML
1515
ProgressIndicator usageUI;
@@ -39,15 +39,18 @@ public UsageCircleUI(double usage, double baseline) {
3939
setColor();
4040
}
4141

42-
private void setUsageText() {
42+
@Override
43+
public void setUsageText() {
4344
usageLB.setText(usage == -1 ? "ERROR" : usage + "%");
4445
}
4546

46-
private void setUsage() {
47+
@Override
48+
public void setUsage() {
4749
usageUI.setProgress(usage == -1 ? 0 : usage / 100.0);
4850
}
4951

50-
private void setColor() {
52+
@Override
53+
public void setColor() {
5154
String color = usage >= baseline ? UsageStatus.DANGEROUS.getColor() : UsageStatus.NORMAL.getColor();
5255
usageUI.setStyle("-fx-progress-color: " + color);
5356
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package root.javafx.CustomView.UsageUI;
2+
3+
import java.io.IOException;
4+
5+
import javafx.fxml.FXML;
6+
import javafx.fxml.FXMLLoader;
7+
import javafx.scene.control.Label;
8+
import javafx.scene.layout.AnchorPane;
9+
import root.core.domain.enums.UsageStatus;
10+
11+
public class UsageTextUI extends AnchorPane implements UsageUI {
12+
13+
@FXML
14+
Label usageLB;
15+
16+
private double usage;
17+
18+
private double baseline;
19+
20+
public UsageTextUI(double usage, double baseline) {
21+
this.usage = usage;
22+
this.baseline = baseline;
23+
24+
try {
25+
FXMLLoader loader = new FXMLLoader(getClass().getResource("/fxml/usageUI/UsageTextUI.fxml"));
26+
loader.setController(this);
27+
loader.setRoot(this);
28+
loader.load();
29+
} catch (IOException e) {
30+
e.printStackTrace();
31+
}
32+
33+
setUsage();
34+
setUsageText();
35+
setColor();
36+
}
37+
38+
@Override
39+
public void setUsageText() {
40+
usageLB.setText(usage == -1 ? "ERROR" : usage + "%");
41+
}
42+
43+
@Override
44+
public void setUsage() {
45+
usageLB.setText(usage == -1 ? "ERROR" : usage + "%");
46+
}
47+
48+
@Override
49+
public void setColor() {
50+
UsageStatus type = usage >= baseline ? UsageStatus.DANGEROUS : UsageStatus.NORMAL;
51+
usageLB.setStyle("-fx-text-fill:" + (type == UsageStatus.NORMAL ? "black" : type.getColor()));
52+
}
53+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package root.javafx.CustomView.UsageUI;
2+
3+
public interface UsageUI {
4+
5+
public void setUsageText();
6+
7+
public void setUsage();
8+
9+
public void setColor();
10+
}

src/main/java/root/javafx/CustomView/UsageUI/UsageUIFactory.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package root.javafx.CustomView.UsageUI;
22

33
import javafx.scene.Node;
4-
import javafx.scene.control.Label;
54
import root.core.domain.enums.UsageUIType;
65

76
public class UsageUIFactory {
@@ -12,7 +11,7 @@ private UsageUIFactory() {
1211
public static Node create(UsageUIType usageUIType, double usage, double baseline) {
1312
switch (usageUIType) {
1413
case NUMERIC:
15-
return new Label(usage + "%");
14+
return new UsageTextUI(usage, baseline);
1615
case GRAPHIC_BAR:
1716
return new UsageBarUI(usage, baseline);
1817
case GRAPHIC_PIE:
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
3+
<?import javafx.scene.control.Label?>
4+
<?import javafx.scene.layout.AnchorPane?>
5+
6+
<fx:root stylesheets="@../../css/usageUI.css" type="AnchorPane" xmlns="http://javafx.com/javafx/17" xmlns:fx="http://javafx.com/fxml/1">
7+
<children>
8+
<Label fx:id="usageLB" alignment="CENTER" contentDisplay="CENTER" layoutX="97.5999984741211" layoutY="1.600000023841858" text="-" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" />
9+
</children>
10+
</fx:root>

0 commit comments

Comments
 (0)