/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
/* Copyright 2004, Sam Reid */
package de.cismet.cismap.commons.gui.piccolo;
import edu.umd.cs.piccolo.PNode;
import pswing.PSwing;
import pswing.PSwingCanvas;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.io.IOException;
import java.util.Vector;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.border.EtchedBorder;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
import javax.swing.table.TableColumn;
/**
* User: Sam Reid Date: Jul 11, 2005 Time: 12:15:55 PM Copyright (c) Jul 11, 2005 by Sam Reid
*
* @version $Revision$, $Date$
*/
public class TestPSwingFull extends JFrame {
//~ Constructors -----------------------------------------------------------
/**
* Creates a new TestPSwingFull object.
*/
public TestPSwingFull() {
final ClassLoader loader;
final PSwingCanvas canvas;
// Set up basic frame
setBounds(100, 100, 400, 400);
setResizable(true);
setBackground(null);
setVisible(true);
canvas = new PSwingCanvas();
getContentPane().add(canvas);
validate();
loader = getClass().getClassLoader();
ZVisualLeaf leaf;
ZTransformGroup transform;
PSwing swing;
final PSwing swing2;
// JButton
final JButton button = new JButton(org.openide.util.NbBundle.getMessage(
TestPSwingFull.class,
"TestPSwingFull.button.text")); // NOI18N
button.setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
swing = new PSwing(canvas, button);
leaf = new ZVisualLeaf(swing);
transform = new ZTransformGroup();
transform.translate(-500, -500);
transform.addChild(leaf);
canvas.getLayer().addChild(transform);
// JButton
final JSpinner spinner = new JSpinner(new SpinnerNumberModel(0, 0, 10, 1));
spinner.setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
swing = new PSwing(canvas, spinner);
leaf = new ZVisualLeaf(swing);
transform = new ZTransformGroup();
transform.translate(-800, -500);
transform.addChild(leaf);
canvas.getLayer().addChild(transform);
// 2nd Copy of JButton
leaf = new ZVisualLeaf(swing);
transform = new ZTransformGroup();
transform.translate(-450, -450);
transform.rotate(Math.PI / 2);
transform.scale(0.5);
transform.addChild(leaf);
canvas.getLayer().addChild(transform);
// Growable JTextArea
final JTextArea textArea = new JTextArea(org.openide.util.NbBundle.getMessage(
TestPSwingFull.class,
"TestPSwingFull.textArea.text")); // NOI18N
textArea.setBorder(new LineBorder(Color.blue, 3));
swing = new PSwing(canvas, textArea);
leaf = new ZVisualLeaf(swing);
transform = new ZTransformGroup();
transform.translate(-250, -500);
transform.addChild(leaf);
canvas.getLayer().addChild(transform);
// Growable JTextField
JTextField textField = new JTextField(org.openide.util.NbBundle.getMessage(
TestPSwingFull.class,
"TestPSwingFull.textField.text1")); // NOI18N
swing = new PSwing(canvas, textField);
leaf = new ZVisualLeaf(swing);
transform = new ZTransformGroup();
transform.translate(0, -500);
transform.addChild(leaf);
canvas.getLayer().addChild(transform);
// A Slider
final JSlider slider = new JSlider();
swing = new PSwing(canvas, slider);
leaf = new ZVisualLeaf(swing);
transform = new ZTransformGroup();
transform.translate(250, -500);
transform.addChild(leaf);
canvas.getLayer().addChild(transform);
// A Scrollable JTree
final JTree tree = new JTree();
tree.setEditable(true);
final JScrollPane p = new JScrollPane(tree);
p.setPreferredSize(new Dimension(150, 150));
swing = new PSwing(canvas, p);
leaf = new ZVisualLeaf(swing);
transform = new ZTransformGroup();
transform.translate(-500, -250);
transform.addChild(leaf);
canvas.getLayer().addChild(transform);
// A Scrollable JTextArea
JScrollPane pane = new JScrollPane(new JTextArea(
org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.pane.textArea.text"))); // NOI18N
pane.setPreferredSize(new Dimension(150, 150));
swing = new PSwing(canvas, pane);
leaf = new ZVisualLeaf(swing);
transform = new ZTransformGroup();
transform.setHasOneChild(true);
transform.translate(-250, -250);
transform.addChild(leaf);
canvas.getLayer().addChild(transform);
swing2 = swing;
// A non-scrollable JTextField
// A panel MUST be created with double buffering off
JPanel panel = new JPanel(false);
textField = new JTextField(org.openide.util.NbBundle.getMessage(
TestPSwingFull.class,
"TestPSwingFull.textField.text2")); // NOI18N
panel.setLayout(new BorderLayout());
panel.add(textField);
swing = new PSwing(canvas, panel);
leaf = new ZVisualLeaf(swing);
transform = new ZTransformGroup();
transform.translate(0, -250);
transform.addChild(leaf);
canvas.getLayer().addChild(transform);
// // A JComboBox
// String[] listItems = {"Summer Teeth", "Mermaid Avenue", "Being There", "A.M."};
// ZComboBox box = new ZComboBox( listItems );
// swing = new PSwing( canvas, box );
// leaf = new ZVisualLeaf( swing );
// transform = new ZTransformGroup();
// transform.translate( 0, -150 );
// transform.addChild( leaf );
// canvas.getLayer().addChild( transform );
// A panel with TitledBorder and JList
panel = new JPanel(false);
panel.setBackground(Color.lightGray);
panel.setLayout(new BorderLayout());
panel.setBorder(new TitledBorder(
new EtchedBorder(EtchedBorder.RAISED),
org.openide.util.NbBundle.getMessage(
TestPSwingFull.class,
"TestPSwingFull.panel.border.TitledBorder.title"),
TitledBorder.LEFT,
TitledBorder.TOP)); // NOI18N
panel.setPreferredSize(new Dimension(200, 200));
final Vector data = new Vector();
data.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.data.choice1")); // NOI18N
data.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.data.choice2")); // NOI18N
data.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.data.choice3")); // NOI18N
data.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.data.choice4")); // NOI18N
data.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.data.choice5")); // NOI18N
final JList list = new JList(data);
list.setBackground(Color.lightGray);
panel.add(list);
swing = new PSwing(canvas, panel);
leaf = new ZVisualLeaf(swing);
transform = new ZTransformGroup();
transform.translate(250, -250);
transform.addChild(leaf);
canvas.getLayer().addChild(transform);
// A JLabel
JLabel label = new JLabel(org.openide.util.NbBundle.getMessage(
TestPSwingFull.class,
"TestPSwingFull.data.label.text1")); // ,//NOI18N new ImageIcon( loader.getResource( "HCIL-logo.gif"
// ) ), SwingConstants.CENTER );
swing = new PSwing(canvas, label);
leaf = new ZVisualLeaf(swing);
transform = new ZTransformGroup();
transform.translate(-500, 0);
transform.addChild(leaf);
canvas.getLayer().addChild(transform);
// Rotated copy of the Scrollable JTextArea
leaf = new ZVisualLeaf(swing2);
transform = new ZTransformGroup();
transform.setHasOneChild(true);
transform.translate(-100, 0);
transform.rotate(Math.PI / 2);
transform.addChild(leaf);
canvas.getLayer().addChild(transform);
// A panel with layout
// A panel MUST be created with double buffering off
panel = new JPanel(false);
panel.setLayout(new BorderLayout());
final JButton button1 = new JButton(org.openide.util.NbBundle.getMessage(
TestPSwingFull.class,
"TestPSwingFull.data.button1.text")); // NOI18N
final JButton button2 = new JButton(org.openide.util.NbBundle.getMessage(
TestPSwingFull.class,
"TestPSwingFull.data.button2.text")); // NOI18N
label = new JLabel(org.openide.util.NbBundle.getMessage(
TestPSwingFull.class,
"TestPSwingFull.data.label.text2")); // NOI18N
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setForeground(Color.white);
panel.setBackground(Color.red);
panel.setPreferredSize(new Dimension(150, 150));
panel.setBorder(new EmptyBorder(5, 5, 5, 5));
panel.add(button1, "North"); // NOI18N
panel.add(button2, "South"); // NOI18N
panel.add(label, "Center"); // NOI18N
panel.revalidate();
swing = new PSwing(canvas, panel);
leaf = new ZVisualLeaf(swing);
transform = new ZTransformGroup();
transform.translate(0, 0);
transform.addChild(leaf);
canvas.getLayer().addChild(transform);
// JTable Example
final Vector columns = new Vector();
columns.addElement(org.openide.util.NbBundle.getMessage(
TestPSwingFull.class,
"TestPSwingFull.columns.element1")); // NOI18N
columns.addElement(org.openide.util.NbBundle.getMessage(
TestPSwingFull.class,
"TestPSwingFull.columns.element2")); // NOI18N
columns.addElement(org.openide.util.NbBundle.getMessage(
TestPSwingFull.class,
"TestPSwingFull.columns.element3")); // NOI18N
final Vector rows = new Vector();
Vector row = new Vector();
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row1.element1")); // NOI18N
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row1.element2")); // NOI18N
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row1.element3")); // NOI18N
rows.addElement(row);
row = new Vector();
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row2.element1")); // NOI18N
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row2.element2")); // NOI18N
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row21.element3")); // NOI18N
rows.addElement(row);
row = new Vector();
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row3.element1")); // NOI18N
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row3.element2")); // NOI18N
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row3.element3")); // NOI18N
rows.addElement(row);
row = new Vector();
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row4.element1")); // NOI18N
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row4.element2")); // NOI18N
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row4.element3")); // NOI18N
rows.addElement(row);
row = new Vector();
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row5.element1")); // NOI18N
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row5.element2")); // NOI18N
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row5.element3")); // NOI18N
rows.addElement(row);
row = new Vector();
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row6.element1")); // NOI18N
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row6.element2")); // NOI18N
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row6.elemen")); // NOI18N
rows.addElement(row);
row = new Vector();
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row7.element1")); // NOI18N
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row7.element2")); // NOI18N
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row7.element3")); // NOI18N
rows.addElement(row);
row = new Vector();
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row8.element1")); // NOI18N
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row8.element2")); // NOI18N
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row8.element3")); // NOI18N
rows.addElement(row);
row = new Vector();
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row9.element1")); // NOI18N
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row9.element2")); // NOI18N
row.addElement(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.row9.element3")); // NOI18N
rows.addElement(row);
final JTable table = new JTable(rows, columns);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.setRowHeight(30);
TableColumn c = table.getColumn(table.getColumnName(0));
c.setPreferredWidth(150);
c = table.getColumn(table.getColumnName(1));
c.setPreferredWidth(150);
c = table.getColumn(table.getColumnName(2));
c.setPreferredWidth(150);
pane = new JScrollPane(table);
pane.setPreferredSize(new Dimension(200, 200));
table.setDoubleBuffered(false);
swing = new PSwing(canvas, pane);
leaf = new ZVisualLeaf(swing);
transform = new ZTransformGroup();
transform.translate(250, 0);
transform.addChild(leaf);
canvas.getLayer().addChild(transform);
// JEditorPane - HTML example
try {
final JEditorPane editorPane = new JEditorPane(loader.getResource("csdept.html")); // NOI18N
editorPane.setDoubleBuffered(false);
editorPane.setEditable(false);
pane = new JScrollPane(editorPane);
pane.setDoubleBuffered(false);
pane.setPreferredSize(new Dimension(400, 400));
editorPane.addHyperlinkListener(new HyperlinkListener() {
@Override
public void hyperlinkUpdate(final HyperlinkEvent e) {
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
try {
editorPane.setPage(e.getURL());
} catch (IOException ioe) {
System.out.println("Couldn't Load Web Page"); // NOI18N
}
}
}
});
swing = new PSwing(canvas, pane);
leaf = new ZVisualLeaf(swing);
transform = new ZTransformGroup();
transform.translate(-500, 250);
transform.addChild(leaf);
canvas.getLayer().addChild(transform);
} catch (IOException ioe) {
System.out.println("Couldn't Load Web Page"); // NOI18N
}
// A JInternalFrame with a JSplitPane - a JOptionPane - and a
// JToolBar
final JInternalFrame iframe = new JInternalFrame(org.openide.util.NbBundle.getMessage(
TestPSwingFull.class,
"TestPSwingFull.iframe.title")); // NOI18N
iframe.getRootPane().setDoubleBuffered(false);
((JComponent)iframe.getContentPane()).setDoubleBuffered(false);
iframe.setPreferredSize(new Dimension(500, 500));
final JTabbedPane tabby = new JTabbedPane();
tabby.setDoubleBuffered(false);
iframe.getContentPane().setLayout(new BorderLayout());
final JOptionPane options = new JOptionPane(org.openide.util.NbBundle.getMessage(
TestPSwingFull.class,
"TestPSwingFull.options.message"), // NOI18N
JOptionPane.INFORMATION_MESSAGE,
JOptionPane.DEFAULT_OPTION);
options.setDoubleBuffered(false);
options.setMinimumSize(new Dimension(50, 50));
options.setPreferredSize(new Dimension(225, 225));
final JPanel tools = new JPanel(false);
tools.setMinimumSize(new Dimension(150, 150));
tools.setPreferredSize(new Dimension(225, 225));
final JToolBar bar = new JToolBar();
final Action letter = new AbstractAction(org.openide.util.NbBundle.getMessage(
TestPSwingFull.class,
"TestPSwingFull.letter.name"),
new ImageIcon(loader.getResource("letter.gif"))) { // NOI18N
@Override
public void actionPerformed(final ActionEvent e) {
}
};
final Action hand = new AbstractAction(org.openide.util.NbBundle.getMessage(
TestPSwingFull.class,
"TestPSwingFull.hand.name"),
new ImageIcon(loader.getResource("hand.gif"))) { // NOI18N
@Override
public void actionPerformed(final ActionEvent e) {
}
};
final Action select = new AbstractAction(org.openide.util.NbBundle.getMessage(
TestPSwingFull.class,
"TestPSwingFull.select.name"), // NOI18N
new ImageIcon(loader.getResource("select.gif"))) { // NOI18N
@Override
public void actionPerformed(final ActionEvent e) {
}
};
label = new JLabel(org.openide.util.NbBundle.getMessage(TestPSwingFull.class, "TestPSwingFull.label.text")); // NOI18N
label.setHorizontalAlignment(SwingConstants.CENTER);
bar.add(letter);
bar.add(hand);
bar.add(select);
bar.setFloatable(false);
bar.setBorder(new LineBorder(Color.black, 2));
tools.setLayout(new BorderLayout());
tools.add(bar, "North"); // NOI18N
tools.add(label, "Center"); // NOI18N
final JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, options, tools);
split.setDoubleBuffered(false);
iframe.getContentPane().add(split);
swing = new PSwing(canvas, iframe);
leaf = new ZVisualLeaf(swing);
transform = new ZTransformGroup();
transform.translate(0, 250);
transform.addChild(leaf);
canvas.getLayer().addChild(transform);
// JMenuBar menuBar = new JMenuBar();
// ZMenu menu = new ZMenu( "File" );
// ZMenu sub = new ZMenu( "Export" );
// JMenuItem gif = new JMenuItem( "Funds" );
// sub.add( gif );
// menu.add( sub );
// menuBar.add( menu );
// iframe.setJMenuBar( menuBar );
iframe.setVisible(true);
// A JColorChooser - also demonstrates JTabbedPane
// JColorChooser chooser = new JColorChooser();
final JCheckBox chooser = new JCheckBox(org.openide.util.NbBundle.getMessage(
TestPSwingFull.class,
"TestPSwingFull.chooser.text")); // NOI18N
swing = new PSwing(canvas, chooser);
leaf = new ZVisualLeaf(swing);
transform = new ZTransformGroup();
transform.translate(-250, 850);
transform.addChild(leaf);
canvas.getLayer().addChild(transform);
// Revalidate and repaint
canvas.revalidate();
canvas.repaint();
}
//~ Methods ----------------------------------------------------------------
/**
* DOCUMENT ME!
*
* @param args DOCUMENT ME!
*/
public static void main(final String[] args) {
new TestPSwingFull().setVisible(true);
}
//~ Inner Classes ----------------------------------------------------------
/**
* DOCUMENT ME!
*
* @version $Revision$, $Date$
*/
public static class ZVisualLeaf extends PNode {
//~ Constructors -------------------------------------------------------
/**
* Creates a new ZVisualLeaf object.
*
* @param node DOCUMENT ME!
*/
public ZVisualLeaf(final PNode node) {
addChild(node);
}
}
/**
* DOCUMENT ME!
*
* @version $Revision$, $Date$
*/
public static class ZTransformGroup extends PNode {
//~ Methods ------------------------------------------------------------
/**
* DOCUMENT ME!
*
* @param b DOCUMENT ME!
*/
public void setHasOneChild(final boolean b) {
}
}
}