From 85654e5671b9817d598dc775a9469ea17cfb54a7 Mon Sep 17 00:00:00 2001 From: mipastgt Date: Tue, 28 Sep 2021 17:59:47 +0200 Subject: [PATCH 1/5] Remove dependency on java.awt.Desktop --- .../java/com/sun/javafx/application/HostServicesDelegate.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/javafx.graphics/src/main/java/com/sun/javafx/application/HostServicesDelegate.java b/modules/javafx.graphics/src/main/java/com/sun/javafx/application/HostServicesDelegate.java index 543d42b5b5d..3a8d61a4952 100644 --- a/modules/javafx.graphics/src/main/java/com/sun/javafx/application/HostServicesDelegate.java +++ b/modules/javafx.graphics/src/main/java/com/sun/javafx/application/HostServicesDelegate.java @@ -25,7 +25,6 @@ package com.sun.javafx.application; -import java.awt.Desktop; import java.io.File; import java.net.URI; import javafx.application.Application; @@ -136,7 +135,8 @@ public void showDocument(final String uri) { String osName = System.getProperty("os.name"); try { if (osName.startsWith("Mac OS")) { - Desktop.getDesktop().browse(URI.create(uri)); + Runtime.getRuntime().exec( + "open " + uri); } else if (osName.startsWith("Windows")) { Runtime.getRuntime().exec( "rundll32 url.dll,FileProtocolHandler " + uri); From ad9f268f6e66f1534aa03afbdcf1051fad0e462e Mon Sep 17 00:00:00 2001 From: mipastgt Date: Wed, 29 Sep 2021 15:00:53 +0200 Subject: [PATCH 2/5] Add test --- .../desktop/HostServicesShowDocumentTest.java | 95 +++++++++++++++++++ tests/manual/desktop/test.csv | 3 + tests/manual/desktop/test.html | 9 ++ tests/manual/desktop/test.txt | 2 + 4 files changed, 109 insertions(+) create mode 100644 tests/manual/desktop/HostServicesShowDocumentTest.java create mode 100644 tests/manual/desktop/test.csv create mode 100644 tests/manual/desktop/test.html create mode 100644 tests/manual/desktop/test.txt diff --git a/tests/manual/desktop/HostServicesShowDocumentTest.java b/tests/manual/desktop/HostServicesShowDocumentTest.java new file mode 100644 index 00000000000..2d66e2ecd3e --- /dev/null +++ b/tests/manual/desktop/HostServicesShowDocumentTest.java @@ -0,0 +1,95 @@ +/* + * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import java.io.File; + +import javafx.application.Application; +import javafx.application.Platform; +import javafx.geometry.Insets; +import javafx.scene.Scene; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; +import javafx.stage.Stage; + +public class HostServicesShowDocumentTest extends Application { + + private final static String testHtmlUri = new File("test.html").toURI().toString(); + private final static String testTxtUri = new File("test.txt").toURI().toString(); + private final static String testCsvUri = new File("test.csv").toURI().toString(); + + @Override + public void start(Stage primaryStage) throws Exception { + VBox instructions = new VBox( + new Label(" This test can open and show three different document types (test.html, test.txt, test.csv)"), + new Label(" via the platform default application registered for the respective types."), + new Label(""), + new Label(" STEPS:"), + new Label(" 1. Click on all the buttons for the file types."), + new Label(" 2. Check whether the corresponding document is shown."), + new Label(" 3. When all three documents are shown press Pass, otherwise press Fail.")); + + Button showHtmlButton = new Button("HTML"); + showHtmlButton.setOnAction(e -> { + this.getHostServices().showDocument(testHtmlUri); + }); + + Button showTxtButton = new Button("TXT"); + showTxtButton.setOnAction(e -> { + this.getHostServices().showDocument(testTxtUri); + }); + + Button showCsvButton = new Button("CSV"); + showCsvButton.setOnAction(e -> { + this.getHostServices().showDocument(testCsvUri); + }); + + Button passButton = new Button("Pass"); + passButton.setOnAction(e -> { + Platform.exit(); + }); + + Button failButton = new Button("Fail"); + failButton.setOnAction(e -> { + Platform.exit(); + throw new AssertionError("Documents could not be shown."); + }); + + HBox testButtons = new HBox(20, showHtmlButton, showTxtButton, showCsvButton); + testButtons.setPadding(new Insets(10)); + HBox resultButtons = new HBox(20, passButton, failButton); + resultButtons.setPadding(new Insets(10)); + VBox rootNode = new VBox(20, new HBox(instructions), testButtons, resultButtons); + rootNode.setPadding(new Insets(10)); + Scene scene = new Scene(rootNode, 1000, 450); + primaryStage.setScene(scene); + primaryStage.show(); + } + + public static void main(String[] args) { + launch(args); + } +} diff --git a/tests/manual/desktop/test.csv b/tests/manual/desktop/test.csv new file mode 100644 index 00000000000..1da42f85688 --- /dev/null +++ b/tests/manual/desktop/test.csv @@ -0,0 +1,3 @@ +aaa, bbb, ccc +1, 2, 3 +11, 22, 33 diff --git a/tests/manual/desktop/test.html b/tests/manual/desktop/test.html new file mode 100644 index 00000000000..1aad5f144d6 --- /dev/null +++ b/tests/manual/desktop/test.html @@ -0,0 +1,9 @@ + + + + HTML Test + + +

Test page for HostServices.showDocument.

+ + diff --git a/tests/manual/desktop/test.txt b/tests/manual/desktop/test.txt new file mode 100644 index 00000000000..71b895edc1b --- /dev/null +++ b/tests/manual/desktop/test.txt @@ -0,0 +1,2 @@ +TXT Test +Test page for HostServices.showDocument. \ No newline at end of file From f2f70d608ec6400e302d140ff55ffb99a2d71385 Mon Sep 17 00:00:00 2001 From: mipastgt Date: Wed, 29 Sep 2021 15:07:54 +0200 Subject: [PATCH 3/5] Fix whitespace errors --- tests/manual/desktop/HostServicesShowDocumentTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/manual/desktop/HostServicesShowDocumentTest.java b/tests/manual/desktop/HostServicesShowDocumentTest.java index 2d66e2ecd3e..5b6bc9f905c 100644 --- a/tests/manual/desktop/HostServicesShowDocumentTest.java +++ b/tests/manual/desktop/HostServicesShowDocumentTest.java @@ -36,7 +36,7 @@ import javafx.stage.Stage; public class HostServicesShowDocumentTest extends Application { - + private final static String testHtmlUri = new File("test.html").toURI().toString(); private final static String testTxtUri = new File("test.txt").toURI().toString(); private final static String testCsvUri = new File("test.csv").toURI().toString(); @@ -56,17 +56,17 @@ public void start(Stage primaryStage) throws Exception { showHtmlButton.setOnAction(e -> { this.getHostServices().showDocument(testHtmlUri); }); - + Button showTxtButton = new Button("TXT"); showTxtButton.setOnAction(e -> { this.getHostServices().showDocument(testTxtUri); }); - + Button showCsvButton = new Button("CSV"); showCsvButton.setOnAction(e -> { this.getHostServices().showDocument(testCsvUri); }); - + Button passButton = new Button("Pass"); passButton.setOnAction(e -> { Platform.exit(); From 4e510dec1e639d8e035131222a6441a2d60a65bf Mon Sep 17 00:00:00 2001 From: mipastgt Date: Wed, 29 Sep 2021 15:15:25 +0200 Subject: [PATCH 4/5] Move test to subfolder HostServices --- .../desktop/{ => HostServices}/HostServicesShowDocumentTest.java | 0 tests/manual/desktop/{ => HostServices}/test.csv | 0 tests/manual/desktop/{ => HostServices}/test.html | 0 tests/manual/desktop/{ => HostServices}/test.txt | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename tests/manual/desktop/{ => HostServices}/HostServicesShowDocumentTest.java (100%) rename tests/manual/desktop/{ => HostServices}/test.csv (100%) rename tests/manual/desktop/{ => HostServices}/test.html (100%) rename tests/manual/desktop/{ => HostServices}/test.txt (100%) diff --git a/tests/manual/desktop/HostServicesShowDocumentTest.java b/tests/manual/desktop/HostServices/HostServicesShowDocumentTest.java similarity index 100% rename from tests/manual/desktop/HostServicesShowDocumentTest.java rename to tests/manual/desktop/HostServices/HostServicesShowDocumentTest.java diff --git a/tests/manual/desktop/test.csv b/tests/manual/desktop/HostServices/test.csv similarity index 100% rename from tests/manual/desktop/test.csv rename to tests/manual/desktop/HostServices/test.csv diff --git a/tests/manual/desktop/test.html b/tests/manual/desktop/HostServices/test.html similarity index 100% rename from tests/manual/desktop/test.html rename to tests/manual/desktop/HostServices/test.html diff --git a/tests/manual/desktop/test.txt b/tests/manual/desktop/HostServices/test.txt similarity index 100% rename from tests/manual/desktop/test.txt rename to tests/manual/desktop/HostServices/test.txt From 24ceab1c6bb07bf3cb5292f4184da8b661618c4d Mon Sep 17 00:00:00 2001 From: mipastgt Date: Thu, 30 Sep 2021 15:19:58 +0200 Subject: [PATCH 5/5] Fixed two minor formatting issues --- .../desktop/HostServices/HostServicesShowDocumentTest.java | 6 +++--- tests/manual/desktop/HostServices/test.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/manual/desktop/HostServices/HostServicesShowDocumentTest.java b/tests/manual/desktop/HostServices/HostServicesShowDocumentTest.java index 5b6bc9f905c..7514d79109b 100644 --- a/tests/manual/desktop/HostServices/HostServicesShowDocumentTest.java +++ b/tests/manual/desktop/HostServices/HostServicesShowDocumentTest.java @@ -37,9 +37,9 @@ public class HostServicesShowDocumentTest extends Application { - private final static String testHtmlUri = new File("test.html").toURI().toString(); - private final static String testTxtUri = new File("test.txt").toURI().toString(); - private final static String testCsvUri = new File("test.csv").toURI().toString(); + private static final String testHtmlUri = new File("test.html").toURI().toString(); + private static final String testTxtUri = new File("test.txt").toURI().toString(); + private static final String testCsvUri = new File("test.csv").toURI().toString(); @Override public void start(Stage primaryStage) throws Exception { diff --git a/tests/manual/desktop/HostServices/test.txt b/tests/manual/desktop/HostServices/test.txt index 71b895edc1b..6d09e48b296 100644 --- a/tests/manual/desktop/HostServices/test.txt +++ b/tests/manual/desktop/HostServices/test.txt @@ -1,2 +1,2 @@ TXT Test -Test page for HostServices.showDocument. \ No newline at end of file +Test page for HostServices.showDocument.