dmolony-DiskBrowser/src/com/bytezone/diskbrowser/gui/WindowSaver.java

70 lines
2.3 KiB
Java
Raw Permalink Normal View History

2016-03-15 04:40:57 +00:00
package com.bytezone.diskbrowser.gui;
2016-08-02 10:37:27 +00:00
import java.awt.Dimension;
2016-03-15 04:40:57 +00:00
import java.util.prefs.Preferences;
import javax.swing.JFrame;
2020-02-08 22:20:08 +00:00
// -----------------------------------------------------------------------------------//
class WindowSaver
// -----------------------------------------------------------------------------------//
2016-03-15 04:40:57 +00:00
{
private final Preferences prefs;
private final JFrame frame;
private final String key;
2020-02-08 22:20:08 +00:00
// ---------------------------------------------------------------------------------//
WindowSaver (Preferences prefs, JFrame frame, String key)
// ---------------------------------------------------------------------------------//
2016-03-15 04:40:57 +00:00
{
this.prefs = prefs;
this.frame = frame;
this.key = key;
}
2020-02-08 22:20:08 +00:00
// ---------------------------------------------------------------------------------//
void saveWindow ()
// ---------------------------------------------------------------------------------//
2016-03-15 04:40:57 +00:00
{
prefs.putInt (key + "X", frame.getX ());
prefs.putInt (key + "Y", frame.getY ());
prefs.putInt (key + "Height", frame.getHeight ());
prefs.putInt (key + "Width", frame.getWidth ());
}
2020-02-08 22:20:08 +00:00
// ---------------------------------------------------------------------------------//
boolean restoreWindow ()
// ---------------------------------------------------------------------------------//
2016-03-15 04:40:57 +00:00
{
int x = prefs.getInt (key + "X", -1);
int y = prefs.getInt (key + "Y", -1);
int height = prefs.getInt (key + "Height", -1);
int width = prefs.getInt (key + "Width", -1);
2016-08-02 10:37:27 +00:00
Dimension screen = java.awt.Toolkit.getDefaultToolkit ().getScreenSize ();
2020-01-13 00:05:32 +00:00
if (false)
{
System.out.printf ("Screen height ..... %d%n", screen.height);
System.out.printf ("Screen width ...... %d%n", screen.width);
System.out.printf ("Window height ..... %d%n", height);
System.out.printf ("Window width ...... %d%n", width);
}
2019-10-12 02:47:21 +00:00
if (width < 0) // nothing to restore
2016-03-15 04:40:57 +00:00
{
2016-08-02 10:37:27 +00:00
frame.setLocation (100, 100);
frame.setSize (1000, 600);
2016-03-15 04:40:57 +00:00
frame.setLocationRelativeTo (null); // centre
return false;
}
2020-01-13 00:05:32 +00:00
if (width > screen.getWidth ())
width = (int) (screen.getWidth ());
2016-08-02 10:37:27 +00:00
2016-03-15 04:40:57 +00:00
frame.setSize (width, height);
2016-08-02 10:37:27 +00:00
frame.setLocation (x, y);
2016-03-15 04:40:57 +00:00
return true;
}
}