aboutsummaryrefslogtreecommitdiffstats
path: root/netx/net/sourceforge
diff options
context:
space:
mode:
Diffstat (limited to 'netx/net/sourceforge')
-rw-r--r--netx/net/sourceforge/jnlp/JNLPSplashScreen.java8
-rw-r--r--netx/net/sourceforge/jnlp/controlpanel/AdvancedProxySettingsDialog.java6
-rw-r--r--netx/net/sourceforge/jnlp/controlpanel/CacheViewer.java6
-rw-r--r--netx/net/sourceforge/jnlp/security/SecurityDialog.java7
-rw-r--r--netx/net/sourceforge/jnlp/security/viewer/CertificateViewer.java7
-rw-r--r--netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java3
-rw-r--r--netx/net/sourceforge/jnlp/util/ScreenFinder.java100
7 files changed, 113 insertions, 24 deletions
diff --git a/netx/net/sourceforge/jnlp/JNLPSplashScreen.java b/netx/net/sourceforge/jnlp/JNLPSplashScreen.java
index 77698db..6a8a221 100644
--- a/netx/net/sourceforge/jnlp/JNLPSplashScreen.java
+++ b/netx/net/sourceforge/jnlp/JNLPSplashScreen.java
@@ -43,6 +43,7 @@ import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Insets;
+import java.awt.Rectangle;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
@@ -53,6 +54,7 @@ import net.sourceforge.jnlp.splashscreen.SplashPanel;
import net.sourceforge.jnlp.splashscreen.SplashUtils;
import net.sourceforge.jnlp.splashscreen.parts.InformationElement;
import net.sourceforge.jnlp.util.ImageResources;
+import net.sourceforge.jnlp.util.ScreenFinder;
public class JNLPSplashScreen extends JDialog {
@@ -145,11 +147,7 @@ public class JNLPSplashScreen extends JDialog {
setMaximumSize(new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE));
setSize(new Dimension(minimumWidth, minimumHeight));
setPreferredSize(new Dimension(minimumWidth, minimumHeight));
- // Centering to middle of Toolkit.getDefaultToolkit().getScreenSize()
- // centers to the middle of all monitors. Let's center to the middle
- // of the primary monitor instead.
- // TODO center on the 'current' monitor to meet user expectation
- setLocationRelativeTo(null);
+ ScreenFinder.centerWindowsToCurrentScreen(this);
}
@Override
diff --git a/netx/net/sourceforge/jnlp/controlpanel/AdvancedProxySettingsDialog.java b/netx/net/sourceforge/jnlp/controlpanel/AdvancedProxySettingsDialog.java
index 462bf65..398bc15 100644
--- a/netx/net/sourceforge/jnlp/controlpanel/AdvancedProxySettingsDialog.java
+++ b/netx/net/sourceforge/jnlp/controlpanel/AdvancedProxySettingsDialog.java
@@ -32,6 +32,7 @@ import javax.swing.JDialog;
import net.sourceforge.jnlp.config.DeploymentConfiguration;
import net.sourceforge.jnlp.runtime.Translator;
import net.sourceforge.jnlp.util.ImageResources;
+import net.sourceforge.jnlp.util.ScreenFinder;
/**
* This dialog provides a means for user to edit more of the proxy settings.
@@ -106,10 +107,7 @@ public class AdvancedProxySettingsDialog extends JDialog {
* Center the dialog box.
*/
private void centerDialog() {
- Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
- Dimension dialogSize = getSize();
-
- setLocation((screen.width - dialogSize.width) / 2, (screen.height - dialogSize.height) / 2);
+ ScreenFinder.centerWindowsToCurrentScreen(this);
}
/**
diff --git a/netx/net/sourceforge/jnlp/controlpanel/CacheViewer.java b/netx/net/sourceforge/jnlp/controlpanel/CacheViewer.java
index a06165a..fc63b60 100644
--- a/netx/net/sourceforge/jnlp/controlpanel/CacheViewer.java
+++ b/netx/net/sourceforge/jnlp/controlpanel/CacheViewer.java
@@ -31,6 +31,7 @@ import javax.swing.JDialog;
import net.sourceforge.jnlp.config.DeploymentConfiguration;
import net.sourceforge.jnlp.runtime.Translator;
import net.sourceforge.jnlp.util.ImageResources;
+import net.sourceforge.jnlp.util.ScreenFinder;
/**
* This class will provide a visual way of viewing cache.
@@ -113,9 +114,6 @@ public class CacheViewer extends JDialog {
* Center the dialog box.
*/
private void centerDialog() {
- Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
- Dimension dialogSize = getSize();
-
- setLocation((screen.width - dialogSize.width) / 2, (screen.height - dialogSize.height) / 2);
+ ScreenFinder.centerWindowsToCurrentScreen(this);
}
}
diff --git a/netx/net/sourceforge/jnlp/security/SecurityDialog.java b/netx/net/sourceforge/jnlp/security/SecurityDialog.java
index 3c11326..6420c29 100644
--- a/netx/net/sourceforge/jnlp/security/SecurityDialog.java
+++ b/netx/net/sourceforge/jnlp/security/SecurityDialog.java
@@ -52,6 +52,7 @@ import java.security.cert.X509Certificate;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.List;
+import net.sourceforge.jnlp.util.ScreenFinder;
/**
* Provides methods for showing security warning dialogs for a wide range of
@@ -312,11 +313,7 @@ public class SecurityDialog extends JDialog {
}
private static void centerDialog(JDialog dialog) {
- Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
- Dimension dialogSize = dialog.getSize();
-
- dialog.setLocation((screen.width - dialogSize.width) / 2,
- (screen.height - dialogSize.height) / 2);
+ ScreenFinder.centerWindowsToCurrentScreen(dialog);
}
private void selectDefaultButton() {
diff --git a/netx/net/sourceforge/jnlp/security/viewer/CertificateViewer.java b/netx/net/sourceforge/jnlp/security/viewer/CertificateViewer.java
index 2792fb9..1a76663 100644
--- a/netx/net/sourceforge/jnlp/security/viewer/CertificateViewer.java
+++ b/netx/net/sourceforge/jnlp/security/viewer/CertificateViewer.java
@@ -52,6 +52,7 @@ import javax.swing.UIManager;
import net.sourceforge.jnlp.runtime.JNLPRuntime;
import net.sourceforge.jnlp.util.ImageResources;
+import net.sourceforge.jnlp.util.ScreenFinder;
public class CertificateViewer extends JDialog {
@@ -94,11 +95,7 @@ public class CertificateViewer extends JDialog {
}
private void centerDialog() {
- Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
- Dimension dialogSize = getSize();
-
- setLocation((screen.width - dialogSize.width) / 2,
- (screen.height - dialogSize.height) / 2);
+ ScreenFinder.centerWindowsToCurrentScreen(this);
}
public static void showCertificateViewer() throws Exception {
diff --git a/netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java b/netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java
index 729b278..8bef868 100644
--- a/netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java
+++ b/netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java
@@ -58,6 +58,7 @@ import net.sourceforge.jnlp.splashscreen.SplashUtils.SplashReason;
import net.sourceforge.jnlp.splashscreen.parts.BasicComponentSplashScreen;
import net.sourceforge.jnlp.splashscreen.parts.InfoItem;
import net.sourceforge.jnlp.splashscreen.parts.InformationElement;
+import net.sourceforge.jnlp.util.ScreenFinder;
public class BasePainter implements Observer {
@@ -281,7 +282,7 @@ public class BasePainter implements Observer {
showInfo = false;
}
}
- if (Math.min(h, w) < Toolkit.getDefaultToolkit().getScreenSize().getHeight() / 10) {
+ if (Math.min(h, w) < ScreenFinder.getCurrentScreenSizeWithoutBounds().getHeight() / 10) {
showNiceTexts = false;
} else {
showNiceTexts = true;
diff --git a/netx/net/sourceforge/jnlp/util/ScreenFinder.java b/netx/net/sourceforge/jnlp/util/ScreenFinder.java
new file mode 100644
index 0000000..b633ae2
--- /dev/null
+++ b/netx/net/sourceforge/jnlp/util/ScreenFinder.java
@@ -0,0 +1,100 @@
+/* ScreenFinder.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea 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 for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+package net.sourceforge.jnlp.util;
+
+import java.awt.GraphicsConfiguration;
+import java.awt.GraphicsDevice;
+import java.awt.GraphicsEnvironment;
+import java.awt.Insets;
+import java.awt.MouseInfo;
+import java.awt.Point;
+import java.awt.Rectangle;
+import java.awt.Toolkit;
+import java.awt.Window;
+
+public class ScreenFinder {
+
+ public static GraphicsDevice getCurrentScreen() {
+ Point p = MouseInfo.getPointerInfo().getLocation();
+ return getScreenOnCoords(p);
+
+ }
+ public static Rectangle getCurrentScreenSizeWithoutBounds() {
+ Point p = MouseInfo.getPointerInfo().getLocation();
+ return getScreenOnCoordsWithutBounds(p);
+
+ }
+
+ public static void centerWindowsToCurrentScreen(Window w) {
+ Rectangle bounds = getCurrentScreenSizeWithoutBounds();
+ w.setLocation(bounds.x + (bounds.width - w.getWidth())/2,
+ bounds.y + (bounds.height - w.getHeight())/2);
+
+ }
+
+ public static GraphicsDevice getScreenOnCoords(Point point) {
+ GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
+ GraphicsDevice[] devices = e.getScreenDevices();
+ GraphicsDevice result = null;
+ //now get the configuration(s) for each device
+ for (GraphicsDevice device : devices) {
+ //GraphicsConfiguration[] configurations = device.getConfigurations();
+ //or?
+ GraphicsConfiguration[] configurations = new GraphicsConfiguration[]{device.getDefaultConfiguration()};
+ for (GraphicsConfiguration config : configurations) {
+ Rectangle gcBounds = config.getBounds();
+ if (gcBounds.contains(point)) {
+ result = device;
+ }
+ }
+ }
+ if (result == null) {
+ //not found, get the default display
+ result = e.getDefaultScreenDevice();
+ }
+ return result;
+ }
+
+ public static Rectangle getScreenOnCoordsWithutBounds(Point p) {
+ GraphicsDevice device = getScreenOnCoords(p);
+ Rectangle screenSize = device.getDefaultConfiguration().getBounds();
+ Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(device.getDefaultConfiguration());
+ return new Rectangle((int)screenSize.getX()+insets.left, (int)screenSize.getY()+insets.top, (int)screenSize.getWidth()-insets.left, (int)screenSize.getHeight()-insets.bottom);
+ }
+
+
+}