Skip to content

Commit 0cbad8c

Browse files
committed
add terminalfx dependency and implement terminal view
1 parent a384e3c commit 0cbad8c

2 files changed

Lines changed: 42 additions & 12 deletions

File tree

pom.xml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@
1515
<log4j.version>2.22.1</log4j.version>
1616
</properties>
1717

18+
<repositories>
19+
<repository>
20+
<id>terminalfx-repo</id>
21+
<url>https://github.com/javaterminal/terminalfx/raw/master/releases</url>
22+
</repository>
23+
</repositories>
24+
1825
<build>
1926
<plugins>
2027
<plugin>
@@ -69,7 +76,7 @@
6976
</plugins>
7077
</build>
7178

72-
<dependencies>
79+
<dependencies>
7380
<!--
7481
https://mvnrepository.com/artifact/com.github.vertical-blank/sql-formatter -->
7582
<dependency>
@@ -188,6 +195,12 @@
188195
<artifactId>commons-io</artifactId>
189196
<version>2.20.0</version>
190197
</dependency>
198+
<!-- Add dependency for Java 25-->
199+
<dependency>
200+
<groupId>com.kodedu.terminalfx</groupId>
201+
<artifactId>terminalfx</artifactId>
202+
<version>1.3.0</version>
203+
</dependency>
191204
</dependencies>
192205

193206
</project>

src/main/java/gr/sqlbrowserfx/SqlBrowserFXApp.java

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@
1717
import org.dockfx.DockWeights;
1818
import org.slf4j.LoggerFactory;
1919

20+
import com.kodedu.terminalfx.TerminalBuilder;
21+
import com.kodedu.terminalfx.TerminalTab;
22+
import com.kodedu.terminalfx.config.TerminalConfig;
23+
2024
import gr.sqlbrowserfx.conn.MysqlConnector;
2125
import gr.sqlbrowserfx.conn.PostgreSqlConnector;
2226
import gr.sqlbrowserfx.conn.SqlConnector;
@@ -34,7 +38,6 @@
3438
import gr.sqlbrowserfx.nodes.HelpTabPane;
3539
import gr.sqlbrowserfx.nodes.MySqlConfigBox;
3640
import gr.sqlbrowserfx.nodes.PostgreSqlConfigBox;
37-
import gr.sqlbrowserfx.nodes.SimpleTerminalPane;
3841
import gr.sqlbrowserfx.nodes.SqlConnectorType;
3942
import gr.sqlbrowserfx.nodes.SqlConsolePane;
4043
import gr.sqlbrowserfx.nodes.SqlServerConfigBox;
@@ -71,6 +74,7 @@
7174
import javafx.scene.layout.HBox;
7275
import javafx.scene.layout.Priority;
7376
import javafx.scene.layout.VBox;
77+
import javafx.scene.paint.Color;
7478
import javafx.scene.text.Font;
7579
import javafx.scene.text.TextAlignment;
7680
import javafx.stage.DirectoryChooser;
@@ -394,9 +398,19 @@ private MenuBar createMenu(DockPane dockPane) {
394398
});
395399
});
396400

397-
var terminalViewItem = new MenuItem("Open Simple Terminal View", JavaFXUtils.createIcon("/icons/console.png"));
401+
var terminalViewItem = new MenuItem("Open Terminal View", JavaFXUtils.createIcon("/icons/console.png"));
398402
terminalViewItem.setOnAction(event -> {
399-
JavaFXUtils.zoomToCurrentFactor(new DockNode(dockPane, new SimpleTerminalPane(),
403+
TerminalConfig darkConfig = new TerminalConfig();
404+
darkConfig.setBackgroundColor(Color.rgb(16, 16, 16));
405+
darkConfig.setForegroundColor(Color.rgb(240, 240, 240));
406+
darkConfig.setCursorColor(Color.rgb(255, 0, 0, 0.5));
407+
408+
TerminalBuilder terminalBuilder = new TerminalBuilder(darkConfig);
409+
TerminalTab terminal = terminalBuilder.newTerminal();
410+
TabPane tabPane = new TabPane();
411+
tabPane.getTabs().add(terminal);
412+
413+
JavaFXUtils.zoomToCurrentFactor(new DockNode(dockPane, tabPane,
400414
"Simple Terminal", JavaFXUtils.createIcon("/icons/console.png")));
401415
});
402416

@@ -407,8 +421,8 @@ private MenuBar createMenu(DockPane dockPane) {
407421
dockNode.dock(dockPane, DockPos.RIGHT);
408422
});
409423

410-
var chatGPTMenuItem = new MenuItem("Open ChatGPT", JavaFXUtils.createIcon("/icons/chatgpt.png"));
411-
chatGPTMenuItem.setOnAction(event -> {
424+
var chatGPTViewItem = new MenuItem("Open ChatGPT View", JavaFXUtils.createIcon("/icons/chatgpt.png"));
425+
chatGPTViewItem.setOnAction(event -> {
412426
var chatGptWebView = new ChatGptWebView();
413427
SqlBrowserFXAppManager.registerChatGpt(chatGptWebView);
414428
var dockNode = new DockNode(chatGptWebView, "ChatGPT", JavaFXUtils.createIcon("/icons/chatgpt.png"));
@@ -430,22 +444,25 @@ private MenuBar createMenu(DockPane dockPane) {
430444
});
431445

432446

433-
var logItem = new MenuItem("Open Log View", JavaFXUtils.createIcon("/icons/monitor.png"));
434-
logItem.setOnAction(actionEvent -> JavaFXUtils.zoomToCurrentFactor(new DLogConsolePane(dockPane).asDockNode()));
447+
var logViewItem = new MenuItem("Open Log View", JavaFXUtils.createIcon("/icons/monitor.png"));
448+
logViewItem.setOnAction(actionEvent -> JavaFXUtils.zoomToCurrentFactor(new DLogConsolePane(dockPane).asDockNode()));
435449

436-
var dbDiagramItem = new MenuItem("Open DB Diagram View", JavaFXUtils.createIcon("/icons/diagram.png"));
437-
dbDiagramItem.setOnAction(event -> {
450+
var dbDiagramViewItem = new MenuItem("Open DB Diagram View", JavaFXUtils.createIcon("/icons/diagram.png"));
451+
dbDiagramViewItem.setOnAction(event -> {
438452
var dbDiagramPane = new DDbDiagramPane(sqlConnector);
439453
dbDiagramPane.asDockNode().setDockPane(dockPane);
440454
dbDiagramPane.asDockNode().setFloating(true);
441455
});
442456

443457
menu1.getItems().addAll(
444-
sqlPaneViewItem, dbDiagramItem,
458+
sqlPaneViewItem,
459+
dbDiagramViewItem,
445460
new SeparatorMenuItem(),
446461
filesTreeViewItem,
447462
new SeparatorMenuItem(),
448-
logItem, chatGPTMenuItem);
463+
terminalViewItem,
464+
logViewItem,
465+
chatGPTViewItem);
449466

450467
final var menu2 = new Menu("Restful Service", JavaFXUtils.createIcon("/icons/web.png"));
451468
var restServiceStartItem = new MenuItem("Start Restful Service", JavaFXUtils.createIcon("/icons/play.png"));

0 commit comments

Comments
 (0)