upgrade javafx to v26 with headless plaform

This commit is contained in:
Craig Raw
2026-04-07 12:36:49 +02:00
parent 883b7cf3b2
commit 58ca52e4c7
11 changed files with 11 additions and 543 deletions
@@ -471,7 +471,7 @@ public class AppController implements Initializable {
private void setPlatformApplicationMenu() {
OsType osType = OsType.getCurrent();
if(osType == OsType.MACOS) {
if(osType == OsType.MACOS && Interface.get() == Interface.DESKTOP) {
MenuToolkit tk = MenuToolkit.toolkit();
MenuItem settings = new MenuItem("Settings...");
settings.setOnAction(this::openSettings);
@@ -8,13 +8,13 @@ public enum Interface {
public static Interface get() {
if(currentInterface == null) {
boolean headless = java.awt.GraphicsEnvironment.isHeadless();
boolean monocle = "Monocle".equalsIgnoreCase(System.getProperty("glass.platform"));
boolean headlessPlatform = "Headless".equalsIgnoreCase(System.getProperty("glass.platform"));
if(headless || monocle) {
if(headless || headlessPlatform) {
currentInterface = TERMINAL;
if(headless && !monocle) {
throw new UnsupportedOperationException("Headless environment detected but Monocle platform not found");
if(headless && !headlessPlatform) {
throw new UnsupportedOperationException("Headless environment detected but headless glass platform not found");
}
} else {
currentInterface = DESKTOP;
@@ -208,7 +208,6 @@ public class CoinTreeTable extends TreeTableView<Entry> {
return null;
}
@SuppressWarnings("deprecation")
protected void setupColumnWidths() {
Double[] savedWidths = getSavedColumnWidths();
for(int i = 0; i < getColumns().size(); i++) {
@@ -216,8 +215,7 @@ public class CoinTreeTable extends TreeTableView<Entry> {
column.setPrefWidth(savedWidths != null && getColumns().size() == savedWidths.length ? savedWidths[i] : STANDARD_WIDTH);
}
//TODO: Replace with TreeTableView.CONSTRAINED_RESIZE_POLICY_FLEX_LAST_COLUMN when JavaFX 20+ has headless support
setColumnResizePolicy(TreeTableView.CONSTRAINED_RESIZE_POLICY);
setColumnResizePolicy(TreeTableView.CONSTRAINED_RESIZE_POLICY_FLEX_LAST_COLUMN);
getColumns().getLast().widthProperty().addListener((_, _, _) -> walletTableChanged());
@@ -29,7 +29,6 @@ public class ServerAliasDialog extends Dialog<Server> {
private final TableView<ServerEntry> serverTable;
private final Button closeButton;
@SuppressWarnings("deprecation")
public ServerAliasDialog(ServerType serverType) {
this.serverType = serverType;
@@ -61,7 +60,7 @@ public class ServerAliasDialog extends Dialog<Server> {
serverTable.getColumns().add(urlColumn);
serverTable.getColumns().add(aliasColumn);
serverTable.setEditable(true);
serverTable.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
serverTable.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY_FLEX_LAST_COLUMN);
List<Server> servers = serverType == ServerType.BITCOIN_CORE ? Config.get().getRecentCoreServers() : Config.get().getRecentElectrumServers();
List<ServerEntry> serverEntries = servers.stream().map(server -> new ServerEntry(serverType, server)).collect(Collectors.toList());