|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2003 Sun * Microsystems, Inc. All Rights Reserved. *//* * NewSheetTest.java * NetBeans JUnit based test * * Created on July 14, 2003, 10:27 AM */ package org.openide.explorer.propertysheet; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import org.openide.*; import org.openide.nodes.*; import org.openide.explorer.propertysheet.editors.*; import java.beans.*; import java.lang.reflect.*; import javax.swing.*; import javax.swing.JComponent; import junit.framework.*; import junit.textui.TestRunner; import org.netbeans.junit.*; import org.openide.nodes.NodeOperation; import org.openide.util.Lookup; /** Tests the contract that an inplace editor will not modify the property * editor if its value changes (the infrastructure should do this by * accepting the COMMAND_SUCCESS action event). * * @author Tim Boudreau */ public class InplaceEditorNoModifyOnTextChangeContractBooleanEditorTest extends NbTestCase { public InplaceEditorNoModifyOnTextChangeContractBooleanEditorTest(String name) { super(name); } static Component edComp = null; static PropertyEditor ped = null; static InplaceEditor ied = null; static ActionEvent[] events = new ActionEvent[10]; static Object postSetValuePropertyEdValue=null; static Object preSetValuePropertyEdValue=null; static Object finalValuePropertyEdValue=null; static Object finalInplaceEditorValue=null; int i=0; private int idx=0; private static InplaceEditorFactory factory = new InplaceEditorFactory(true, new ReusablePropertyEnv()); private static boolean canRun = ExtTestCase.canSafelyRunFocusTests(); private static boolean setup = false; protected void setUp() throws Exception { if (!canRun) { return; } PropUtils.forceRadioButtons=false; factory.setUseRadioBoolean(false); tp = new TProperty("TProperty", true); ActionListener al = new ActionListener() { public void actionPerformed (ActionEvent ae) { System.err.println("Got an action event - " + ae.getActionCommand()); events[idx] = ae; } }; try { ied = factory.getInplaceEditor(tp, false); edComp = ied.getComponent(); System.err.println("EdComp is " + edComp); ped = ied.getPropertyEditor(); preSetValuePropertyEdValue=ped.getValue(); ied.setValue ("newValue"); sleep(); postSetValuePropertyEdValue=ped.getValue(); edComp = ied.getComponent(); JFrame jf = new JFrame(); jf.getContentPane().add (edComp); jf.setLocation (new Point(20,20)); jf.setSize (new Dimension (30, 200)); new ExtTestCase.WaitWindow(jf); sleep(); sleep(); sleep(); while (!edComp.isShowing()) { } new ExtTestCase.WaitFocus (edComp); ied.addActionListener (al); Component comp = KeyboardFocusManager.getCurrentKeyboardFocusManager().getPermanentFocusOwner(); canRun = edComp == comp; if (!canRun) { System.err.println("Platform focus behavior not sane - aborting tests"); } sleep(); System.err.println("Sending key pressed - space"); KeyEvent ke = new KeyEvent (edComp, KeyEvent.KEY_PRESSED, System.currentTimeMillis(), 0, KeyEvent.VK_SPACE, (char) KeyEvent.VK_SPACE); dispatchEvent(ke, edComp); sleep(); System.err.println("Sending key released - space"); ke = new KeyEvent (edComp, KeyEvent.KEY_RELEASED, System.currentTimeMillis(), 0, KeyEvent.VK_SPACE, (char) KeyEvent.VK_SPACE); dispatchEvent(ke, edComp); sleep(); System.err.println("Sending key pressed - enter"); ke = new KeyEvent (edComp, KeyEvent.KEY_PRESSED, System.currentTimeMillis(), 0, KeyEvent.VK_ENTER, (char) KeyEvent.VK_ENTER); dispatchEvent(ke, edComp); sleep(); System.err.println("Sending key released - enter"); ke = new KeyEvent (edComp, KeyEvent.KEY_RELEASED, System.currentTimeMillis(), 0, KeyEvent.VK_ENTER, (char) KeyEvent.VK_ENTER); dispatchEvent(ke, edComp); sleep(); idx++; sleep(); ke = new KeyEvent (edComp, KeyEvent.KEY_PRESSED, System.currentTimeMillis(), 0, KeyEvent.VK_ESCAPE, (char) KeyEvent.VK_ESCAPE); dispatchEvent(ke, edComp); ke = new KeyEvent (edComp, KeyEvent.KEY_RELEASED, System.currentTimeMillis(), 0, KeyEvent.VK_ESCAPE, (char) KeyEvent.VK_ESCAPE); dispatchEvent(ke, edComp); sleep(); sleep(); finalInplaceEditorValue = ied.getValue(); jf.hide(); jf.dispose(); sleep(); finalValuePropertyEdValue = ped.getValue(); ied.removeActionListener (al); ied.clear(); } catch (Exception e) { e.printStackTrace(); fail("FAILED - Exception thrown "+e.getClass().toString()); } setup = true; } public void testInplaceEditorSetValueDidNotChangePropertyEditorValue() throws Exception { if (!canRun) return; assertTrue ("PreSetValue value is " + preSetValuePropertyEdValue + " but post value is " + postSetValuePropertyEdValue, preSetValuePropertyEdValue == postSetValuePropertyEdValue); } public void testEnterTriggeredActionSuccess() { if (!canRun) return; assertTrue ("Enter keystroke did not produce an action event", events[0] != null); assertTrue ("Action command for faked Enter keystroke should be " + InplaceEditor.COMMAND_SUCCESS + " but is " + events[0].getActionCommand(), InplaceEditor.COMMAND_SUCCESS.equals(events[0].getActionCommand())); } public void testFinalInplaceEditorValue() throws Exception { if (!canRun) return; assertTrue ("Final inplace editor value should be Boolean.FALSE but is " + finalInplaceEditorValue, Boolean.FALSE.equals(finalInplaceEditorValue)); } public void testFinalPropertyValueIsUnchanged() { if (!canRun) return; assertTrue ("Final value should be unchanged but is " + finalValuePropertyEdValue, Boolean.TRUE.equals(finalValuePropertyEdValue)); } // Property definition public class TProperty extends PropertySupport { private Boolean myValue = Boolean.TRUE; // Create new Property public TProperty(String name, boolean isWriteable) { super(name, Boolean.class, name, "", true, isWriteable); } // get property value public Object getValue() { return myValue; } // set property value public void setValue(Object value) throws IllegalArgumentException,IllegalAccessException, InvocationTargetException { myValue = (Boolean) value; } } private void sleep () throws Exception { Thread.currentThread().sleep (100); SwingUtilities.invokeAndWait (new Runnable() { public void run () { System.currentTimeMillis(); } }); Thread.currentThread().sleep (100); } private void dispatchEvent (final KeyEvent ke, final Component comp) throws Exception { if (!SwingUtilities.isEventDispatchThread()) { SwingUtilities.invokeAndWait (new Runnable() { public void run() { comp.dispatchEvent (ke); } }); } else { comp.dispatchEvent(ke); } } static { ExtTestCase.installCorePropertyEditors(); } public static void main(String args[]) { TestRunner.run(new NbTestSuite(InplaceEditorNoModifyOnTextChangeContractBooleanEditorTest.class)); } private TProperty tp; private String initEditorValue; private String initPropertyValue; private String postChangePropertyValue; private String postChangeEditorValue; } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.