/*
* Created on 19.08.2005
*
*/
package org.jdesktop.swingx.util;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JTable;
import org.jdesktop.swingx.InteractiveTestCase;
import org.jdesktop.test.EDTRunner;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(EDTRunner.class)
public class WindowUtilsTest extends InteractiveTestCase {
public static void main(String[] args) {
WindowUtilsTest test = new WindowUtilsTest();
try {
test.runInteractiveTests("interactiveCenteringTestOnUnownedDialogOnSecondScreen");
} catch (Exception ex) {
}
}
private static GraphicsConfiguration getSecondWindowConfiguration() {
GraphicsDevice[] screens = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices();
if (screens.length < 2) {
return null;
}
return screens[1].getDefaultConfiguration();
}
public void interactiveCenteringTest() {
JFrame frame = new JFrame("I should be centered");
frame.add(new JTable(5, 5));
frame.pack();
frame.setLocation(WindowUtils.getPointForCentering(frame));
frame.setVisible(true);
}
public void interactiveCenteringTestOnSecondWindow() {
if (getSecondWindowConfiguration() == null) {
return;
}
JFrame frame = new JFrame("I should be centered on the second screen", getSecondWindowConfiguration());
frame.add(new JTable(5, 5));
frame.pack();
frame.setLocation(WindowUtils.getPointForCentering(frame));
frame.setVisible(true);
}
public void interactiveCenteringTestOnUnownedDialog() {
JFrame frame = new JFrame("Unowned Dialog Test");
frame.add(new JButton(new AbstractAction("Create Centered Dialog") {
@Override
public void actionPerformed(ActionEvent e) {
JDialog dialog = new JDialog((JFrame) null, "Unowned Dialog");
dialog.add(new JTable(5, 5));
dialog.pack();
dialog.setLocation(WindowUtils.getPointForCentering(dialog));
dialog.setVisible(true);
}
}));
frame.pack();
frame.setLocation(WindowUtils.getPointForCentering(frame));
frame.setVisible(true);
}
public void interactiveCenteringTestOnUnownedDialogOnSecondScreen() {
if (getSecondWindowConfiguration() == null) {
return;
}
JFrame frame = new JFrame("Unowned Dialog Second Screen Test");
frame.add(new JButton(new AbstractAction("Create Centered Dialog On Second Screen") {
@Override
public void actionPerformed(ActionEvent e) {
JDialog dialog = new JDialog((JFrame) null, "Unowned Dialog On Second Screen", false, getSecondWindowConfiguration());
dialog.add(new JTable(5, 5));
dialog.pack();
dialog.setLocation(WindowUtils.getPointForCentering(dialog));
dialog.setVisible(true);
}
}));
frame.pack();
frame.setLocation(WindowUtils.getPointForCentering(frame));
frame.setVisible(true);
}
public void interactiveCenteringTestOnOwnedDialog() {
final JFrame frame = new JFrame("Owned Dialog Test");
frame.add(new JButton(new AbstractAction("Create Centered Dialog") {
@Override
public void actionPerformed(ActionEvent e) {
JDialog dialog = new JDialog(frame, "Owned Dialog");
dialog.add(new JTable(5, 5));
dialog.pack();
dialog.setLocation(WindowUtils.getPointForCentering(dialog));
dialog.setVisible(true);
}
}));
frame.pack();
frame.setLocation(WindowUtils.getPointForCentering(frame));
frame.setVisible(true);
}
public void interactiveCenteringTestOnDispledDialog() {
final JFrame frame = new JFrame("Displayed Dialog Test");
final JDialog dialog = new JDialog(frame, "Displayed Dialog");
frame.add(new JButton(new AbstractAction("Center Displayed Dialog") {
@Override
public void actionPerformed(ActionEvent e) {
dialog.setLocation(WindowUtils.getPointForCentering(dialog));
dialog.setVisible(true);
}
}));
frame.pack();
frame.setLocation(WindowUtils.getPointForCentering(frame));
frame.setVisible(true);
dialog.add(new JTable(5, 5));
dialog.pack();
dialog.setLocation(WindowUtils.getPointForCentering(dialog));
dialog.setVisible(true);
}
/**
* TODO formally test...
*
*/
@Test
public void testDummy() {
}
}