Skip to content

Commit 2e4adf2

Browse files
feat(core): Add PropertiesDialog
Close #2071 Signed-off-by: unknowIfGuestInDream <liang.tang.cx@gmail.com>
1 parent de7c535 commit 2e4adf2

File tree

4 files changed

+100
-2
lines changed

4 files changed

+100
-2
lines changed

core/src/main/java/com/tlcsdm/core/javafx/controlsfx/FxAction.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import com.tlcsdm.core.javafx.dialog.FxButtonType;
3636
import com.tlcsdm.core.javafx.dialog.FxDialog;
3737
import com.tlcsdm.core.javafx.dialog.PathWatchToolDialog;
38+
import com.tlcsdm.core.javafx.dialog.PropertiesDialog;
3839
import com.tlcsdm.core.javafx.dialog.SystemSettingDialog;
3940
import com.tlcsdm.core.javafx.dialog.WebBrowserDialog;
4041
import com.tlcsdm.core.javafx.helper.LayoutHelper;
@@ -403,6 +404,22 @@ public static Action openSysConfig(String text, Consumer<ActionEvent> eventHandl
403404
return create(text, eventHandler, "/com/tlcsdm/core/static/menubar/sysConfig.png");
404405
}
405406

407+
/**
408+
* 查看系统属性.
409+
*/
410+
public static Action openPropertiesDialog() {
411+
return openPropertiesDialog(I18nUtils.get("core.menubar.help.openSysConfigDir"), actionEvent -> {
412+
PropertiesDialog.openPropertiesDialog();
413+
});
414+
}
415+
416+
/**
417+
* 查看系统属性.
418+
*/
419+
public static Action openPropertiesDialog(String text, Consumer<ActionEvent> eventHandler) {
420+
return create(text, eventHandler, "/com/tlcsdm/core/static/menubar/sysConfig.png");
421+
}
422+
406423
/**
407424
* @see #openUserData(String, Consumer)
408425
*/
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
/*
2+
* Copyright (c) 2019, 2023 unknowIfGuestInDream
3+
* All rights reserved.
4+
*
5+
* Redistribution and use in source and binary forms, with or without
6+
* modification, are permitted provided that the following conditions are met:
7+
* * Redistributions of source code must retain the above copyright
8+
* notice, this list of conditions and the following disclaimer.
9+
* * Redistributions in binary form must reproduce the above copyright
10+
* notice, this list of conditions and the following disclaimer in the
11+
* documentation and/or other materials provided with the distribution.
12+
* * Neither the name of unknowIfGuestInDream, any associated website, nor the
13+
* names of its contributors may be used to endorse or promote products
14+
* derived from this software without specific prior written permission.
15+
*
16+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19+
* DISCLAIMED. IN NO EVENT SHALL UNKNOWIFGUESTINDREAM BE LIABLE FOR ANY
20+
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23+
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25+
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26+
*/
27+
package com.tlcsdm.core.javafx.dialog;
28+
29+
import com.tlcsdm.core.javafx.FxApp;
30+
import com.tlcsdm.core.util.CoreConstant;
31+
import javafx.scene.control.Tab;
32+
import javafx.scene.control.TabPane;
33+
import javafx.scene.layout.Priority;
34+
import javafx.scene.layout.VBox;
35+
import org.fxmisc.flowless.VirtualizedScrollPane;
36+
import org.fxmisc.richtext.InlineCssTextArea;
37+
38+
/**
39+
* Property弹窗
40+
*
41+
* @author unknowIfGuestInDream
42+
*/
43+
public class PropertiesDialog {
44+
45+
private PropertiesDialog() {
46+
}
47+
48+
public static void openPropertiesDialog() {
49+
VBox vbox = new VBox();
50+
TabPane tabPane = new TabPane();
51+
tabPane.setTabClosingPolicy(TabPane.TabClosingPolicy.UNAVAILABLE);
52+
tabPane.getStyleClass().add(TabPane.STYLE_CLASS_FLOATING);
53+
54+
InlineCssTextArea area = new InlineCssTextArea();
55+
area.setEditable(false);
56+
area.setStyle("-fx-font-size: 14;-fx-padding: 5 0 0 5;");
57+
area.appendText(CoreConstant.PROJECT_LICENSE_CONTENT_STRING);
58+
VirtualizedScrollPane<InlineCssTextArea> pane = new VirtualizedScrollPane<>(area);
59+
60+
Tab jvmTab = new Tab("JVM");
61+
jvmTab.setContent(pane);
62+
63+
tabPane.getTabs().setAll(jvmTab);
64+
65+
vbox.getChildren().addAll(tabPane);
66+
VBox.setVgrow(tabPane, Priority.ALWAYS);
67+
68+
FxDialog<VBox> dialog = new FxDialog<VBox>().setTitle("Property").setOwner(FxApp.primaryStage)
69+
.setPrefSize(680, 540).setResizable(true).setBody(vbox)
70+
.setButtonTypes(FxButtonType.CLOSE);
71+
dialog.setButtonHandler(FxButtonType.CLOSE, (e, s) -> s.close());
72+
dialog.show();
73+
}
74+
75+
}

qe/src/main/java/com/tlcsdm/qe/provider/QeMenubarConfigrationProvider.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,8 @@ public class QeMenubarConfigrationProvider implements MenubarConfigration {
106106

107107
private final Action openUserData = FxAction.openUserData();
108108

109+
private final Action openPropertiesDialog = FxAction.openPropertiesDialog();
110+
109111
private final Action api = FxAction.api();
110112
private final Action css = FxAction.cssApi();
111113
private final Action fxml = FxAction.fxmlApi();
@@ -190,7 +192,8 @@ public class QeMenubarConfigrationProvider implements MenubarConfigration {
190192
FxActionGroup.file(export, induct, ACTION_SEPARATOR, restart, exit),
191193
FxActionGroup.setting(systemSetting, languageGroup),
192194
FxActionGroup.tool(logConsole, pathWatch, colorPicker, screenshot),
193-
FxActionGroup.help(openSysConfig, openLogDir, openUserData, ACTION_SEPARATOR, contactSupport, submitFeedback,
195+
FxActionGroup.help(openSysConfig, openLogDir, openUserData, openPropertiesDialog, ACTION_SEPARATOR,
196+
contactSupport, submitFeedback,
194197
ACTION_SEPARATOR, api, css, fxml, ACTION_SEPARATOR, helpContent, release, about));
195198

196199
@Override

smc/src/main/java/com/tlcsdm/smc/provider/SmcMenubarConfigrationProvider.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,8 @@ public class SmcMenubarConfigrationProvider implements MenubarConfigration {
106106

107107
private final Action openUserData = FxAction.openUserData();
108108

109+
private final Action openPropertiesDialog = FxAction.openPropertiesDialog();
110+
109111
private final Action api = FxAction.api();
110112
private final Action css = FxAction.cssApi();
111113
private final Action fxml = FxAction.fxmlApi();
@@ -189,7 +191,8 @@ public class SmcMenubarConfigrationProvider implements MenubarConfigration {
189191
FxActionGroup.file(export, induct, ACTION_SEPARATOR, restart, exit),
190192
FxActionGroup.setting(preferences, languageGroup), FxActionGroup.view(fullscreen),
191193
FxActionGroup.tool(logConsole, pathWatch, colorPicker, screenshot),
192-
FxActionGroup.help(openSysConfig, openLogDir, openUserData, ACTION_SEPARATOR, contactSupport, submitFeedback,
194+
FxActionGroup.help(openSysConfig, openLogDir, openUserData, openPropertiesDialog, ACTION_SEPARATOR,
195+
contactSupport, submitFeedback,
193196
ACTION_SEPARATOR, api, css, fxml, ACTION_SEPARATOR, helpContent, release, about));
194197

195198
@Override

0 commit comments

Comments
 (0)