- Revision
- 734
- Author
- sirenian
- Date
- 2007-05-24 12:43:38 -0500 (Thu, 24 May 2007)
Log Message
[EK] Fixed comboboxes!
Modified Paths
- trunk/extensions/swing/src/behaviour/org/jbehave/threaded/swing/DefaultWindowWrapperBehaviour.java
- trunk/extensions/swing/src/java/org/jbehave/threaded/swing/CharacterTyper.java
- trunk/extensions/swing/src/java/org/jbehave/threaded/swing/DefaultWindowWrapper.java
Diff
Modified: trunk/extensions/swing/src/behaviour/org/jbehave/threaded/swing/DefaultWindowWrapperBehaviour.java (733 => 734)
--- trunk/extensions/swing/src/behaviour/org/jbehave/threaded/swing/DefaultWindowWrapperBehaviour.java 2007-05-24 17:25:43 UTC (rev 733) +++ trunk/extensions/swing/src/behaviour/org/jbehave/threaded/swing/DefaultWindowWrapperBehaviour.java 2007-05-24 17:43:38 UTC (rev 734) @@ -85,14 +85,29 @@ } public void shouldEnterTextIntoAComboBox() throws Exception { - shouldEnterTextIntoComboBox(false); + checkForHeadless(); + DefaultWindowWrapper wrapper = new DefaultWindowWrapper(AFrame.FRAME_NAME); + + try { + AFrame frame = new AFrame(); + + JComboBox comboBox = new JComboBox(new Object[] {"horse", "cow", "sheep"}); + comboBox.setName("a.combobox"); + frame.getContentPane().setLayout(new FlowLayout()); + frame.getContentPane().add(comboBox); + frame.pack(); + frame.setVisible(true); + + wrapper.enterText("a.combobox", "cow"); + + ensureThat(comboBox.getSelectedItem(), eq("cow")); + + } finally { + wrapper.closeWindow(); + } } -// public void shouldEnterTextIntoAnEditableComboBox() throws Exception { -// shouldEnterTextIntoComboBox(true); -// } - - private void shouldEnterTextIntoComboBox(boolean editable) throws ComponentFinderException, TimeoutException { + public void shouldEnterTextIntoAnEditableComboBox() throws Exception { checkForHeadless(); DefaultWindowWrapper wrapper = new DefaultWindowWrapper(AFrame.FRAME_NAME); @@ -101,7 +116,7 @@ JComboBox comboBox = new JComboBox(new Object[] {"horse", "cow", "sheep"}); comboBox.setName("a.combobox"); - comboBox.setEditable(editable); + comboBox.setEditable(true); frame.getContentPane().setLayout(new FlowLayout()); frame.getContentPane().add(comboBox); frame.pack(); @@ -109,15 +124,14 @@ wrapper.enterText("a.combobox", "cow"); - ensureThat(comboBox.getSelectedItem(), eq("cow")); + ensureThat(comboBox.getEditor().getItem(), eq("cowhorse")); // because we didn't delete the previous value - } finally { wrapper.closeWindow(); } } - - public void shouldFindComponent() throws ComponentFinderException, TimeoutException { + + public void shouldFindComponent() throws ComponentFinderException, TimeoutException { checkForHeadless(); DefaultWindowWrapper wrapper = new DefaultWindowWrapper(AFrame.FRAME_NAME); try {
Modified: trunk/extensions/swing/src/java/org/jbehave/threaded/swing/CharacterTyper.java (733 => 734)
--- trunk/extensions/swing/src/java/org/jbehave/threaded/swing/CharacterTyper.java 2007-05-24 17:25:43 UTC (rev 733) +++ trunk/extensions/swing/src/java/org/jbehave/threaded/swing/CharacterTyper.java 2007-05-24 17:43:38 UTC (rev 734) @@ -4,13 +4,18 @@ import java.awt.Component; import java.awt.Container; import java.awt.EventQueue; +import java.awt.ItemSelectable; +import java.awt.TextComponent; import java.awt.Toolkit; import java.awt.Window; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; +import javax.swing.JComboBox; import javax.swing.JComponent; import javax.swing.JFrame; +import javax.swing.SwingUtilities; +import javax.swing.text.JTextComponent; import org.jbehave.core.threaded.TimeoutException; @@ -31,7 +36,15 @@ } public void typeIntoComponent(Component component, String text) { - QueueingKeyAdapter queuer = new QueueingKeyAdapter(component); + focuser.requestFocusOn(component); + QueueingAdapter queuer; + + if (component instanceof JComboBox && ((JComboBox)component).isEditable()) { + queuer = new QueueingKeyAdapter(((JComboBox)component).getEditor().getEditorComponent()); + } else { + queuer = new QueueingKeyAdapter(component); + } + try { for (int i = 0; i < text.length(); i++) { postKeyEvent(component, text.charAt(i)); @@ -110,5 +123,5 @@ // TODO Auto-generated method stub } - } + } }
Modified: trunk/extensions/swing/src/java/org/jbehave/threaded/swing/DefaultWindowWrapper.java (733 => 734)
--- trunk/extensions/swing/src/java/org/jbehave/threaded/swing/DefaultWindowWrapper.java 2007-05-24 17:25:43 UTC (rev 733) +++ trunk/extensions/swing/src/java/org/jbehave/threaded/swing/DefaultWindowWrapper.java 2007-05-24 17:43:38 UTC (rev 734) @@ -60,7 +60,6 @@ public void enterText(String componentName, String text) throws ComponentFinderException, TimeoutException { Component component = findComponent(componentName); - focuser.requestFocusOn(component); typer.typeIntoComponent(component, text); }
To unsubscribe from this list please visit:
