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 28ee392..b10efd9 100644
--- a/src/main/java/com/luoboduner/moo/info/ui/Init.java
+++ b/src/main/java/com/luoboduner/moo/info/ui/Init.java
@@ -10,6 +10,7 @@ import com.luoboduner.moo.info.ui.component.TopMenuBar;
import com.luoboduner.moo.info.ui.form.DetailForm;
import com.luoboduner.moo.info.ui.form.NetworkForm;
import com.luoboduner.moo.info.ui.form.OverviewForm;
+import com.luoboduner.moo.info.ui.form.UsbForm;
import com.luoboduner.moo.info.util.SystemUtil;
import com.luoboduner.moo.info.util.UIUtil;
import com.luoboduner.moo.info.util.UpgradeUtil;
@@ -205,6 +206,7 @@ public class Init {
ThreadUtil.execute(OverviewForm::init);
ThreadUtil.execute(DetailForm::init);
ThreadUtil.execute(NetworkForm::init);
+ ThreadUtil.execute(UsbForm::init);
// Check the new version
if (App.config.isAutoCheckUpdate()) {
diff --git a/src/main/java/com/luoboduner/moo/info/ui/form/DetailForm.form b/src/main/java/com/luoboduner/moo/info/ui/form/DetailForm.form
index 19decf3..b4affc6 100644
--- a/src/main/java/com/luoboduner/moo/info/ui/form/DetailForm.form
+++ b/src/main/java/com/luoboduner/moo/info/ui/form/DetailForm.form
@@ -13,7 +13,7 @@
-
+
diff --git a/src/main/java/com/luoboduner/moo/info/ui/form/DetailForm.java b/src/main/java/com/luoboduner/moo/info/ui/form/DetailForm.java
index a632109..f4f2f37 100644
--- a/src/main/java/com/luoboduner/moo/info/ui/form/DetailForm.java
+++ b/src/main/java/com/luoboduner/moo/info/ui/form/DetailForm.java
@@ -7,6 +7,7 @@ import com.intellij.uiDesigner.core.GridLayoutManager;
import lombok.Getter;
import javax.swing.*;
+import javax.swing.border.TitledBorder;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import java.awt.*;
@@ -94,6 +95,7 @@ public class DetailForm {
mainPanel.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
final JScrollPane scrollPane1 = new JScrollPane();
mainPanel.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));
final JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayoutManager(1, 1, new Insets(10, 10, 10, 10), -1, -1));
scrollPane1.setViewportView(panel1);
@@ -107,4 +109,5 @@ public class DetailForm {
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 f5d47d1..9a9390e 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
@@ -91,7 +91,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 b3240a8..c24ec4f 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
@@ -20,6 +20,7 @@ public class MainWindow {
private JPanel overviewPanel;
private JPanel networkPanel;
private JPanel detailPanel;
+ private JPanel usbPanel;
private static MainWindow mainWindow;
@@ -40,6 +41,7 @@ public class MainWindow {
mainWindow.getOverviewPanel().add(OverviewForm.getInstance().getMainPanel(), gridConstraints);
mainWindow.getDetailPanel().add(DetailForm.getInstance().getMainPanel(), gridConstraints);
mainWindow.getNetworkPanel().add(NetworkForm.getInstance().getMainPanel(), gridConstraints);
+ mainWindow.getUsbPanel().add(UsbForm.getInstance().getMainPanel(), gridConstraints);
mainWindow.getMainPanel().updateUI();
}
@@ -87,9 +89,9 @@ public class MainWindow {
final JPanel panel5 = new JPanel();
panel5.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
tabbedPane.addTab("Processes", panel5);
- final JPanel panel6 = new JPanel();
- panel6.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
- tabbedPane.addTab("USB Devices", panel6);
+ usbPanel = new JPanel();
+ usbPanel.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
+ tabbedPane.addTab("USB Devices", usbPanel);
}
/**
diff --git a/src/main/java/com/luoboduner/moo/info/ui/form/NetworkForm.form b/src/main/java/com/luoboduner/moo/info/ui/form/NetworkForm.form
index 84c1783..8c9deeb 100644
--- a/src/main/java/com/luoboduner/moo/info/ui/form/NetworkForm.form
+++ b/src/main/java/com/luoboduner/moo/info/ui/form/NetworkForm.form
@@ -26,11 +26,11 @@
-
-
-
+
-
+
+
+
diff --git a/src/main/java/com/luoboduner/moo/info/ui/form/NetworkForm.java b/src/main/java/com/luoboduner/moo/info/ui/form/NetworkForm.java
index 17abbdf..73aabc7 100644
--- a/src/main/java/com/luoboduner/moo/info/ui/form/NetworkForm.java
+++ b/src/main/java/com/luoboduner/moo/info/ui/form/NetworkForm.java
@@ -177,7 +177,8 @@ public class NetworkForm {
paramatersPanel.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
panel1.add(paramatersPanel, 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));
parametersTextPane = new JTextPane();
- paramatersPanel.add(parametersTextPane, 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, new Dimension(150, 50), null, 0, false));
+ parametersTextPane.setEditable(false);
+ paramatersPanel.add(parametersTextPane, 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));
final JScrollPane scrollPane1 = new JScrollPane();
panel1.add(scrollPane1, new GridConstraints(1, 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));
interfacesTable = new JTable();
@@ -190,4 +191,5 @@ public class NetworkForm {
public JComponent $$$getRootComponent$$$() {
return mainPanel;
}
+
}
diff --git a/src/main/java/com/luoboduner/moo/info/ui/form/OverviewForm.form b/src/main/java/com/luoboduner/moo/info/ui/form/OverviewForm.form
index a2ea854..6adb3f6 100644
--- a/src/main/java/com/luoboduner/moo/info/ui/form/OverviewForm.form
+++ b/src/main/java/com/luoboduner/moo/info/ui/form/OverviewForm.form
@@ -48,7 +48,9 @@
-
+
+
+
@@ -69,7 +71,9 @@
-
+
+
+
diff --git a/src/main/java/com/luoboduner/moo/info/ui/form/OverviewForm.java b/src/main/java/com/luoboduner/moo/info/ui/form/OverviewForm.java
index 4963c08..f45c5fb 100644
--- a/src/main/java/com/luoboduner/moo/info/ui/form/OverviewForm.java
+++ b/src/main/java/com/luoboduner/moo/info/ui/form/OverviewForm.java
@@ -99,6 +99,7 @@ public class OverviewForm {
final Spacer spacer1 = new Spacer();
panel2.add(spacer1, new GridConstraints(4, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
osTextPane = new JTextPane();
+ osTextPane.setEditable(false);
panel2.add(osTextPane, new GridConstraints(0, 1, 2, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, new Dimension(150, 50), null, 0, false));
final Spacer spacer2 = new Spacer();
panel2.add(spacer2, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
@@ -106,6 +107,7 @@ public class OverviewForm {
label2.setText("Processor");
panel2.add(label2, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
procTextPane = new JTextPane();
+ procTextPane.setEditable(false);
panel2.add(procTextPane, new GridConstraints(2, 1, 2, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, new Dimension(150, 50), null, 0, false));
final Spacer spacer3 = new Spacer();
panel2.add(spacer3, new GridConstraints(3, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
diff --git a/src/main/java/com/luoboduner/moo/info/ui/form/UsbForm.form b/src/main/java/com/luoboduner/moo/info/ui/form/UsbForm.form
new file mode 100644
index 0000000..2fb9a92
--- /dev/null
+++ b/src/main/java/com/luoboduner/moo/info/ui/form/UsbForm.form
@@ -0,0 +1,38 @@
+
+
diff --git a/src/main/java/com/luoboduner/moo/info/ui/form/UsbForm.java b/src/main/java/com/luoboduner/moo/info/ui/form/UsbForm.java
new file mode 100644
index 0000000..5edfbbf
--- /dev/null
+++ b/src/main/java/com/luoboduner/moo/info/ui/form/UsbForm.java
@@ -0,0 +1,100 @@
+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.luoboduner.moo.info.App;
+import lombok.Getter;
+import oshi.hardware.HardwareAbstractionLayer;
+import oshi.hardware.UsbDevice;
+
+import javax.swing.*;
+import java.awt.*;
+
+/**
+ * UsbForm
+ *
+ * @author RememBerBer
+ * @since 2021/11/12.
+ */
+@Getter
+public class UsbForm {
+
+ private static final Log logger = LogFactory.get();
+
+ private static UsbForm usbForm;
+ private JPanel mainPanel;
+ private JTextPane infoPane;
+
+ public static UsbForm getInstance() {
+ if (usbForm == null) {
+ usbForm = new UsbForm();
+ }
+ return usbForm;
+ }
+
+ public static void init() {
+ usbForm = getInstance();
+
+ initUi();
+ initInfo();
+ }
+
+ private static void initUi() {
+ }
+
+ private static void initInfo() {
+ JTextPane infoPane = getInstance().getInfoPane();
+ infoPane.setText(getUsbString(App.si.getHardware()));
+ }
+
+ private static String getUsbString(HardwareAbstractionLayer hal) {
+ StringBuilder sb = new StringBuilder();
+ boolean first = true;
+ for (UsbDevice usbDevice : hal.getUsbDevices(true)) {
+ if (first) {
+ first = false;
+ } else {
+ sb.append('\n');
+ }
+ sb.append(usbDevice);
+ }
+ return sb.toString();
+ }
+
+ {
+// 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_WANT_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_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));
+ infoPane = new JTextPane();
+ infoPane.setEditable(false);
+ scrollPane1.setViewportView(infoPane);
+ }
+
+ /**
+ * @noinspection ALL
+ */
+ public JComponent $$$getRootComponent$$$() {
+ return mainPanel;
+ }
+
+}