package edu.umd.cs.piccolox.pswing.tests;
import edu.umd.cs.piccolo.PNode;
import edu.umd.cs.piccolo.event.PZoomEventHandler;
import edu.umd.cs.piccolo.nodes.PText;
import edu.umd.cs.piccolox.pswing.PComboBox;
import edu.umd.cs.piccolox.pswing.PSwing;
import edu.umd.cs.piccolox.pswing.PSwingCanvas;
import javax.swing.*;
import javax.swing.border.LineBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* User: Sam Reid
* Date: Jul 11, 2005
* Time: 12:15:55 PM
* Copyright (c) Jul 11, 2005 by Sam Reid
*/
public class TestPSwing {
public static void main( String[] args ) {
PSwingCanvas pCanvas = new PSwingCanvas();
final PText pText = new PText( "PText" );
pCanvas.getLayer().addChild( pText );
JFrame frame = new JFrame( "Test Piccolo" );
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setContentPane( pCanvas );
frame.setSize( 600, 800 );
frame.setVisible( true );
PText text2 = new PText( "Text2" );
text2.setFont( new Font( "Lucida Sans", Font.BOLD, 18 ) );
pCanvas.getLayer().addChild( text2 );
text2.translate( 100, 100 );
text2.addInputEventListener( new PZoomEventHandler() );
pCanvas.removeInputEventListener( pCanvas.getPanEventHandler() );
JButton jButton = new JButton( "MyButton!" );
jButton.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent e ) {
System.out.println( "TestZSwing.actionPerformed!!!!!!!!!!!!!!*********************" );
}
} );
final PSwing pSwing = new PSwing( pCanvas, jButton );
pCanvas.getLayer().addChild( pSwing );
pSwing.repaint();
JSpinner jSpinner = new JSpinner();
jSpinner.setPreferredSize( new Dimension( 100, jSpinner.getPreferredSize().height ) );
PSwing pSpinner = new PSwing( pCanvas, jSpinner );
pCanvas.getLayer().addChild( pSpinner );
pSpinner.translate( 0, 150 );
JCheckBox jcb = new JCheckBox( "CheckBox", true );
jcb.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent e ) {
System.out.println( "TestZSwing.JCheckBox.actionPerformed" );
}
} );
jcb.addChangeListener( new ChangeListener() {
public void stateChanged( ChangeEvent e ) {
System.out.println( "TestPSwing.JChekbox.stateChanged@" + System.currentTimeMillis() );
}
} );
PSwing pCheckBox = new PSwing( pCanvas, jcb );
pCanvas.getLayer().addChild( pCheckBox );
pCheckBox.translate( 100, 0 );
// Growable JTextArea
JTextArea textArea = new JTextArea( "This is a growable TextArea.\nTry it out!" );
textArea.setBorder( new LineBorder( Color.blue, 3 ) );
PSwing swing = new PSwing( pCanvas, textArea );
swing.translate( 150, 150 );
pCanvas.getLayer().addChild( swing );
// A Slider
JSlider slider = new JSlider();
PSwing pSlider = new PSwing( pCanvas, slider );
pSlider.translate( 200, 200 );
pCanvas.getLayer().addChild( pSlider );
// A Scrollable JTree
JTree tree = new JTree();
tree.setEditable( true );
JScrollPane p = new JScrollPane( tree );
p.setPreferredSize( new Dimension( 150, 150 ) );
PSwing pTree = new PSwing( pCanvas, p );
pCanvas.getLayer().addChild( pTree );
pTree.translate( 0, 250 );
// A JColorChooser - also demonstrates JTabbedPane
JColorChooser chooser = new JColorChooser();
PSwing pChooser = new PSwing( pCanvas, chooser );
pCanvas.getLayer().addChild( pChooser );
pChooser.translate( 100, 300 );
JPanel myPanel = new JPanel();
myPanel.setBorder( BorderFactory.createTitledBorder( "Titled Border" ) );
myPanel.add( new JCheckBox( "CheckBox" ) );
PSwing panelSwing = new PSwing( pCanvas, myPanel );
pCanvas.getLayer().addChild( panelSwing );
panelSwing.translate( 400, 50 );
// A Slider
JSlider slider2 = new JSlider();
PSwing pSlider2 = new PSwing( pCanvas, slider2 );
pSlider2.translate( 200, 200 );
PNode root = new PNode();
root.addChild( pSlider2 );
root.scale( 1.5 );
root.rotate( Math.PI / 4 );
root.translate( 300, 200 );
pCanvas.getLayer().addChild( root );
String[] listItems = {"Summer Teeth", "Mermaid Avenue", "Being There", "A.M."};
PComboBox box = new PComboBox( listItems );
swing = new PSwing( pCanvas, box );
swing.translate( 200, 250 );
pCanvas.getLayer().addChild( swing );
box.setEnvironment( swing, pCanvas );//has to be done manually at present
// Revalidate and repaint
pCanvas.revalidate();
pCanvas.repaint();
}
}