diff --git a/src/main/java/com/luoboduner/moo/info/ui/Init.java b/src/main/java/com/luoboduner/moo/info/ui/Init.java
index 1029178..1084119 100644
--- a/src/main/java/com/luoboduner/moo/info/ui/Init.java
+++ b/src/main/java/com/luoboduner/moo/info/ui/Init.java
@@ -206,6 +206,7 @@ public class Init {
ThreadUtil.execute(UsbForm::init);
ThreadUtil.execute(VariablesForm::init);
ThreadUtil.execute(ProcessesForm::init);
+ ThreadUtil.execute(DiskForm::init);
// Check the new version
if (App.config.isAutoCheckUpdate()) {
diff --git a/src/main/java/com/luoboduner/moo/info/ui/form/DiskForm.form b/src/main/java/com/luoboduner/moo/info/ui/form/DiskForm.form
new file mode 100644
index 0000000..c40c7e1
--- /dev/null
+++ b/src/main/java/com/luoboduner/moo/info/ui/form/DiskForm.form
@@ -0,0 +1,39 @@
+
+
diff --git a/src/main/java/com/luoboduner/moo/info/ui/form/DiskForm.java b/src/main/java/com/luoboduner/moo/info/ui/form/DiskForm.java
new file mode 100644
index 0000000..1923d4d
--- /dev/null
+++ b/src/main/java/com/luoboduner/moo/info/ui/form/DiskForm.java
@@ -0,0 +1,135 @@
+package com.luoboduner.moo.info.ui.form;
+
+import cn.hutool.core.io.unit.DataSizeUtil;
+import cn.hutool.log.Log;
+import cn.hutool.log.LogFactory;
+import com.intellij.uiDesigner.core.GridConstraints;
+import com.intellij.uiDesigner.core.GridLayoutManager;
+import com.intellij.uiDesigner.core.Spacer;
+import com.luoboduner.moo.info.App;
+import lombok.Getter;
+import oshi.PlatformEnum;
+import oshi.SystemInfo;
+import oshi.software.os.FileSystem;
+import oshi.software.os.OSFileStore;
+
+import javax.swing.*;
+import javax.swing.border.TitledBorder;
+import java.awt.*;
+import java.util.List;
+
+/**
+ * DiskForm
+ *
+ * @author RememBerBer
+ * @since 2021/11/15.
+ */
+@Getter
+public class DiskForm {
+ private JPanel mainPanel;
+ private JPanel diskListPanel;
+
+ private static final Log logger = LogFactory.get();
+
+ private static DiskForm diskForm;
+
+ public static DiskForm getInstance() {
+ if (diskForm == null) {
+ diskForm = new DiskForm();
+ }
+ return diskForm;
+ }
+
+ public static void init() {
+ diskForm = getInstance();
+
+ initUi();
+ initInfo();
+ }
+
+ private static void initUi() {
+ }
+
+ private static void initInfo() {
+ FileSystem fileSystem = App.si.getOperatingSystem().getFileSystem();
+ List fileStores = fileSystem.getFileStores();
+ JPanel diskListPanel = getInstance().getDiskListPanel();
+
+ diskListPanel.setLayout(new GridLayoutManager(fileStores.size() + 1, 1, new Insets(0, 10, 0, 10), -1, -1));
+
+ for (int i = 0; i < fileStores.size(); i++) {
+ OSFileStore store = fileStores.get(i);
+
+ JPanel diskPanel = new JPanel();
+ diskPanel.setLayout(new GridLayoutManager(3, 1, new Insets(10, 0, 10, 0), -1, -1));
+ JLabel title = new JLabel();
+ StringBuilder titleBuilder = new StringBuilder();
+ titleBuilder.append(store.getName());
+ if (SystemInfo.getCurrentPlatform().equals(PlatformEnum.WINDOWS)) {
+ titleBuilder.append(" - ");
+ titleBuilder.append(store.getLabel());
+ }
+ title.setText(titleBuilder.toString());
+ Font font = new Font(diskListPanel.getFont().getName(), Font.BOLD, diskListPanel.getFont().getSize());
+ title.setFont(font);
+
+ diskPanel.add(title, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+
+ JProgressBar spacePercent = new JProgressBar();
+ diskPanel.add(spacePercent, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+ JLabel subTitle = new JLabel();
+ long usable = store.getUsableSpace();
+ long total = store.getTotalSpace();
+ spacePercent.setMaximum(100);
+ int usagePercent = (int) ((total - usable) * 100 / total);
+ spacePercent.setValue(usagePercent);
+ spacePercent.setToolTipText(usagePercent + "%");
+ subTitle.setText("Available: " + DataSizeUtil.format(usable) + "/" + DataSizeUtil.format(total));
+ diskPanel.add(subTitle, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+
+
+ diskListPanel.add(diskPanel, new GridConstraints(i, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
+
+ }
+
+ final Spacer spacer1 = new Spacer();
+ diskListPanel.add(spacer1, new GridConstraints(fileStores.size(), 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
+
+ }
+
+ {
+// GUI initializer generated by IntelliJ IDEA GUI Designer
+// >>> IMPORTANT!! <<<
+// DO NOT EDIT OR ADD ANY CODE HERE!
+ $$$setupUI$$$();
+ }
+
+ /**
+ * Method generated by IntelliJ IDEA GUI Designer
+ * >>> IMPORTANT!! <<<
+ * DO NOT edit this method OR call it in your code!
+ *
+ * @noinspection ALL
+ */
+ private void $$$setupUI$$$() {
+ mainPanel = new JPanel();
+ mainPanel.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
+ final JPanel panel1 = new JPanel();
+ panel1.setLayout(new GridLayoutManager(1, 1, new Insets(10, 10, 10, 10), -1, -1));
+ mainPanel.add(panel1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
+ final JScrollPane scrollPane1 = new JScrollPane();
+ panel1.add(scrollPane1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
+ scrollPane1.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEmptyBorder(), null, TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+ diskListPanel = new JPanel();
+ diskListPanel.setLayout(new GridLayoutManager(1, 1, new Insets(0, 10, 0, 10), -1, -1));
+ scrollPane1.setViewportView(diskListPanel);
+ }
+
+ /**
+ * @noinspection ALL
+ */
+ public JComponent $$$getRootComponent$$$() {
+ return mainPanel;
+ }
+
+}
diff --git a/src/main/java/com/luoboduner/moo/info/ui/form/DiskFormLayoutDesign.form b/src/main/java/com/luoboduner/moo/info/ui/form/DiskFormLayoutDesign.form
new file mode 100644
index 0000000..38d953e
--- /dev/null
+++ b/src/main/java/com/luoboduner/moo/info/ui/form/DiskFormLayoutDesign.form
@@ -0,0 +1,141 @@
+
+
diff --git a/src/main/java/com/luoboduner/moo/info/ui/form/DiskFormLayoutDesign.java b/src/main/java/com/luoboduner/moo/info/ui/form/DiskFormLayoutDesign.java
new file mode 100644
index 0000000..7b5584d
--- /dev/null
+++ b/src/main/java/com/luoboduner/moo/info/ui/form/DiskFormLayoutDesign.java
@@ -0,0 +1,131 @@
+package com.luoboduner.moo.info.ui.form;
+
+import cn.hutool.log.Log;
+import cn.hutool.log.LogFactory;
+import com.intellij.uiDesigner.core.GridConstraints;
+import com.intellij.uiDesigner.core.GridLayoutManager;
+import com.intellij.uiDesigner.core.Spacer;
+import lombok.Getter;
+
+import javax.swing.*;
+import javax.swing.border.TitledBorder;
+import java.awt.*;
+
+/**
+ * DiskForm
+ *
+ * @author RememBerBer
+ * @since 2021/11/15.
+ */
+@Getter
+public class DiskFormLayoutDesign {
+ private JPanel mainPanel;
+ private JProgressBar disk1ProgressBar;
+ private JProgressBar disk2ProgressBar;
+ private JProgressBar disk3ProgressBar;
+ private JPanel disk1Panel;
+ private JLabel disk1Label1;
+ private JLabel disk1Label2;
+ private JPanel disk2Panel;
+ private JLabel disk2Label1;
+ private JLabel disk2Label2;
+ private JPanel disk3Panel;
+ private JLabel disk3Label1;
+ private JLabel disk3Label2;
+ private JPanel diskListPanel;
+
+ private static final Log logger = LogFactory.get();
+
+ private static DiskFormLayoutDesign diskForm;
+
+ public static DiskFormLayoutDesign getInstance() {
+ if (diskForm == null) {
+ diskForm = new DiskFormLayoutDesign();
+ }
+ return diskForm;
+ }
+
+ public static void init() {
+ diskForm = getInstance();
+
+ initUi();
+ initInfo();
+ }
+
+ private static void initUi() {
+ }
+
+ private static void initInfo() {
+ }
+
+ {
+// GUI initializer generated by IntelliJ IDEA GUI Designer
+// >>> IMPORTANT!! <<<
+// DO NOT EDIT OR ADD ANY CODE HERE!
+ $$$setupUI$$$();
+ }
+
+ /**
+ * Method generated by IntelliJ IDEA GUI Designer
+ * >>> IMPORTANT!! <<<
+ * DO NOT edit this method OR call it in your code!
+ *
+ * @noinspection ALL
+ */
+ private void $$$setupUI$$$() {
+ mainPanel = new JPanel();
+ mainPanel.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
+ final JPanel panel1 = new JPanel();
+ panel1.setLayout(new GridLayoutManager(1, 1, new Insets(10, 10, 10, 10), -1, -1));
+ mainPanel.add(panel1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
+ final JScrollPane scrollPane1 = new JScrollPane();
+ panel1.add(scrollPane1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
+ scrollPane1.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEmptyBorder(), null, TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+ diskListPanel = new JPanel();
+ diskListPanel.setLayout(new GridLayoutManager(4, 1, new Insets(0, 10, 0, 10), -1, -1));
+ scrollPane1.setViewportView(diskListPanel);
+ disk1Panel = new JPanel();
+ disk1Panel.setLayout(new GridLayoutManager(3, 1, new Insets(10, 0, 10, 0), -1, -1));
+ diskListPanel.add(disk1Panel, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
+ disk1Label1 = new JLabel();
+ disk1Label1.setText("Label");
+ disk1Panel.add(disk1Label1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+ disk1ProgressBar = new JProgressBar();
+ disk1Panel.add(disk1ProgressBar, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+ disk1Label2 = new JLabel();
+ disk1Label2.setText("Label");
+ disk1Panel.add(disk1Label2, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+ disk2Panel = new JPanel();
+ disk2Panel.setLayout(new GridLayoutManager(3, 1, new Insets(10, 0, 10, 0), -1, -1));
+ diskListPanel.add(disk2Panel, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
+ disk2Label1 = new JLabel();
+ disk2Label1.setText("Label");
+ disk2Panel.add(disk2Label1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+ disk2ProgressBar = new JProgressBar();
+ disk2Panel.add(disk2ProgressBar, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+ disk2Label2 = new JLabel();
+ disk2Label2.setText("Label");
+ disk2Panel.add(disk2Label2, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+ disk3Panel = new JPanel();
+ disk3Panel.setLayout(new GridLayoutManager(3, 1, new Insets(10, 0, 10, 0), -1, -1));
+ diskListPanel.add(disk3Panel, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
+ disk3Label1 = new JLabel();
+ disk3Label1.setText("Label");
+ disk3Panel.add(disk3Label1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+ disk3ProgressBar = new JProgressBar();
+ disk3Panel.add(disk3ProgressBar, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+ disk3Label2 = new JLabel();
+ disk3Label2.setText("Label");
+ disk3Panel.add(disk3Label2, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+ final Spacer spacer1 = new Spacer();
+ diskListPanel.add(spacer1, new GridConstraints(3, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
+ }
+
+ /**
+ * @noinspection ALL
+ */
+ public JComponent $$$getRootComponent$$$() {
+ return mainPanel;
+ }
+
+}
diff --git a/src/main/java/com/luoboduner/moo/info/ui/form/MainWindow.form b/src/main/java/com/luoboduner/moo/info/ui/form/MainWindow.form
index 7a6775c..4f59f7f 100644
--- a/src/main/java/com/luoboduner/moo/info/ui/form/MainWindow.form
+++ b/src/main/java/com/luoboduner/moo/info/ui/form/MainWindow.form
@@ -55,7 +55,7 @@
-
+
diff --git a/src/main/java/com/luoboduner/moo/info/ui/form/MainWindow.java b/src/main/java/com/luoboduner/moo/info/ui/form/MainWindow.java
index fd3f5fc..f9a40e2 100644
--- a/src/main/java/com/luoboduner/moo/info/ui/form/MainWindow.java
+++ b/src/main/java/com/luoboduner/moo/info/ui/form/MainWindow.java
@@ -23,6 +23,7 @@ public class MainWindow {
private JPanel usbPanel;
private JPanel VariablesPanel;
private JPanel processesPanel;
+ private JPanel diskPanel;
private static MainWindow mainWindow;
@@ -46,6 +47,7 @@ public class MainWindow {
mainWindow.getUsbPanel().add(UsbForm.getInstance().getMainPanel(), gridConstraints);
mainWindow.getVariablesPanel().add(VariablesForm.getInstance().getMainPanel(), gridConstraints);
mainWindow.getProcessesPanel().add(ProcessesForm.getInstance().getMainPanel(), gridConstraints);
+ mainWindow.getDiskPanel().add(DiskForm.getInstance().getMainPanel(), gridConstraints);
mainWindow.getMainPanel().updateUI();
}
@@ -81,9 +83,9 @@ public class MainWindow {
final JPanel panel2 = new JPanel();
panel2.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
tabbedPane.addTab("CPU", panel2);
- final JPanel panel3 = new JPanel();
- panel3.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
- tabbedPane.addTab("Disk", panel3);
+ diskPanel = new JPanel();
+ diskPanel.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
+ tabbedPane.addTab("Disk", diskPanel);
networkPanel = new JPanel();
networkPanel.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
tabbedPane.addTab("Network", networkPanel);
diff --git a/src/main/java/com/luoboduner/moo/info/ui/form/ProcessesForm.java b/src/main/java/com/luoboduner/moo/info/ui/form/ProcessesForm.java
index f648d0c..c427de1 100644
--- a/src/main/java/com/luoboduner/moo/info/ui/form/ProcessesForm.java
+++ b/src/main/java/com/luoboduner/moo/info/ui/form/ProcessesForm.java
@@ -22,7 +22,7 @@ import java.util.List;
import java.util.Map;
/**
- * NetworkForm
+ * ProcessesForm
*
* @author RememBerBer
* @since 2021/11/15.
@@ -64,6 +64,7 @@ public class ProcessesForm {
JTable procTable = getInstance().getProcessTable();
procTable.setModel(model);
resizeColumns(procTable.getColumnModel());
+ procTable.setShowGrid(true);
DefaultTableCellRenderer hr = (DefaultTableCellRenderer) procTable.getTableHeader()
.getDefaultRenderer();