summaryrefslogtreecommitdiff
path: root/pdf-over-gui/src/main/java/at/asit/pdfover/gui/utils
diff options
context:
space:
mode:
Diffstat (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover/gui/utils')
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/utils/SWTUtils.java28
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/utils/UpdateCheckManager.java13
2 files changed, 29 insertions, 12 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);
+ }
+ }
}
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/utils/UpdateCheckManager.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/utils/UpdateCheckManager.java
index 92104176..133ecdcb 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/utils/UpdateCheckManager.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/utils/UpdateCheckManager.java
@@ -70,18 +70,7 @@ public final class UpdateCheckManager {
BUTTONS.OK_CANCEL, ICON.INFORMATION);
if (info.open() == SWT.OK)
- {
- if (Desktop.isDesktopSupported()) {
- try {
- Desktop.getDesktop().browse(new URI(Constants.UPDATE_URL));
- } catch (Exception e) {
- log.error("Error opening update location ", e);
- }
- } else {
- log.info("SWT Desktop is not supported on this platform");
- Program.launch(Constants.UPDATE_URL);
- }
- }
+ SWTUtils.openURL(Constants.UPDATE_URL);
});
}