summaryrefslogtreecommitdiff
path: root/pdf-over-gui/src/main/java/at/asit/pdfover/gui/utils/SWTUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover/gui/utils/SWTUtils.java')
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/utils/SWTUtils.java28
1 files changed, 28 insertions, 0 deletions
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/utils/SWTUtils.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/utils/SWTUtils.java
index ef93e3e9..d276ecd6 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/utils/SWTUtils.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/utils/SWTUtils.java
@@ -1,9 +1,14 @@
package at.asit.pdfover.gui.utils;
+import java.awt.Desktop;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.util.function.Consumer;
+import javax.annotation.Nullable;
+
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.events.SelectionAdapter;
@@ -14,6 +19,7 @@ import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.program.Program;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Event;
@@ -171,4 +177,26 @@ public final class SWTUtils {
log.error("Failed to add selection listener on object of type {}", swtObj.getClass().getSimpleName(), e);
}
}
+
+ public static void openURL(@Nullable URI uri) {
+ try {
+ if (uri == null) return;
+ if (Desktop.isDesktopSupported()) {
+ Desktop.getDesktop().browse(uri);
+ } else {
+ Program.launch(uri.toURL().toExternalForm());
+ }
+ } catch (Exception e) {
+ log.warn("Failed to open URI: {}", uri, e);
+ }
+ }
+
+ public static void openURL(@Nullable String uri) {
+ if (uri == null) return;
+ try {
+ openURL(new URI(uri));
+ } catch (URISyntaxException e) {
+ log.warn("Failed to open URI: {}", uri, e);
+ }
+ }
}