blob: 01972b5f8a83704a56fa8853201941c4ce0142e9 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 1998, 2013 Oracle and/or its affiliates. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
* Oracle - initial API and implementation from Oracle TopLink
******************************************************************************/
package org.eclipse.persistence.tools.workbench.test.uitools;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.io.IOException;
import java.io.PrintStream;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JFrame;
import org.eclipse.persistence.tools.workbench.uitools.Console;
import org.eclipse.persistence.tools.workbench.utility.ClassTools;
public class ConsoleUITest {
private PrintStream out;
private PrintStream err;
private Console console;
public static void main(String[] args) throws Exception {
new ConsoleUITest().exec(args);
}
public ConsoleUITest() {
super();
}
private void exec(String[] args) throws Exception {
JFrame window = new JFrame(ClassTools.shortClassNameForObject(this));
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.getContentPane().setLayout(new GridLayout(1, 0));
window.getContentPane().add(this.buildOpenButton());
window.getContentPane().add(this.buildOutButton());
window.getContentPane().add(this.buildErrButton());
window.getContentPane().add(this.buildCloseButton());
window.setLocation(200, 200);
window.setSize(300, 100);
window.setVisible(true);
}
private JButton buildOpenButton() {
return new JButton(this.buildOpenAction());
}
private Action buildOpenAction() {
return new AbstractAction("open") {
public void actionPerformed(ActionEvent event) {
ConsoleUITest.this.open();
}
};
}
private JButton buildOutButton() {
return new JButton(this.buildOutAction());
}
private Action buildOutAction() {
return new AbstractAction("out") {
public void actionPerformed(ActionEvent event) {
ConsoleUITest.this.testOut();
}
};
}
private JButton buildErrButton() {
return new JButton(this.buildErrAction());
}
private Action buildErrAction() {
return new AbstractAction("err") {
public void actionPerformed(ActionEvent event) {
ConsoleUITest.this.testErr();
}
};
}
private JButton buildCloseButton() {
return new JButton(this.buildCloseAction());
}
private Action buildCloseAction() {
return new AbstractAction("close") {
public void actionPerformed(ActionEvent event) {
ConsoleUITest.this.close();
}
};
}
// ********** behavior **********
void open() {
if (this.console == null) {
// save the original streams, so we can restore them
this.out = System.out;
this.err = System.err;
this.console = Console.buildSystemConsole();
}
this.console.open();
}
void testOut() {
System.out.println("1. The quick brown fox jumps over the lazy dog.");
System.out.println("2. The quick brown fox jumps over the lazy dog.");
System.out.println("3. The quick brown fox jumps over the lazy dog.");
}
void testErr() {
new RuntimeException(new IOException()).printStackTrace();
}
void close() {
if (this.console != null) {
System.setOut(this.out);
System.setErr(this.err);
this.console.close();
this.console = null;
}
}
}