Hi Christophe, Please see comment on https://www.canoo.com/jira/browse/UBA-7172 for a work around.
Thanks and regards, Janak >-----Original Message----- >From: [EMAIL PROTECTED] >[mailto:[EMAIL PROTECTED] Behalf Of Janak Mulani >Sent: Friday, March 02, 2007 5:33 PM >To: [EMAIL PROTECTED] >Cc: [email protected] >Subject: RE: [ULC-developer] ULCCombobox - IKeySelectionManager > > >Hi Christophe, > >Thanks for pointing out this bug. I have opened an issue: >https://www.canoo.com/jira/browse/UBA-7172. > >I will try to provide a work around. > >Thanks and regards, > >Janak > >-----Original Message----- >From: [EMAIL PROTECTED] >[mailto:[EMAIL PROTECTED] Behalf Of >[EMAIL PROTECTED] >Sent: Monday, February 26, 2007 4:52 PM >To: [email protected] >Subject: [ULC-developer] ULCCombobox - IKeySelectionManager > > > >I have a different behavior wenn I use a IKeySelectionManager with Swing or >ULC. > >With Swing, the 'not-matching' KeyEvent (in this case PF10) is >forwarded the >the container of the combobox. >With ULC, the KeyEvent ist consumed. > >See the code snipets: > >1. I register a keyboardAction for keyEvent F10 with >WHEN_ANCESTOR_OF_FOCUSED_COMPONENT on a container. >2. I put tow comboboxes on this container. the second combobox have a >IKeySelectionManager. >3. When the second combobox has the focus, the keyEvent F10 shoul be >forwarded. > >Regards, >Christophe Perret > >mailto:[EMAIL PROTECTED] > > >ULC: > >public class TestULC extends AbstractApplication{ > > /** > * @param args > */ > public static void main(String[] args) { > > DevelopmentRunner.setApplicationClass(TestULC.class); > DevelopmentRunner.main(args); > > } > > /* (non-Javadoc) > * @see com.ulcjava.base.application.IApplication#start() > */ > public void start() { > > final ULCFrame frame = new ULCFrame("Test KeyboardListener >ULC"); > frame.addWindowListener(new IWindowListener() { > > public void windowClosing(WindowEvent event) { > ApplicationContext.terminate(); > } > }); > > frame.setSize(500, 300); > > ULCBoxPane pane = new ULCBoxPane(true); > pane.add(getCombobox()); > pane.add(getComboBoxWithSelectionManager()); > pane.add(getText()); > pane.add(getTextWithKeyListeners()); > > > pane.registerKeyboardAction(new IActionListener() { > > public void actionPerformed(ActionEvent event) { > > new ULCAlert(" ", "F10 pressed", >"ok").show(); > > }}, KeyStroke.getKeyStroke(KeyEvent.VK_F10, 0), >ULCComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); > > frame.add(pane); > frame.setVisible(true); > > } > > > /** > * @return > */ > private ULCComponent getComboBoxWithSelectionManager() { > > ULCComboBox combo = getCombobox(); > combo.setKeySelectionManager(new IKeySelectionManager(){ > > public int selectionForKey(char keyChar, >IComboBoxModel model) { > // do some stuff here > return -1; > }}); > > return combo; > } > > > /** > * @return > */ > private static ULCComboBox getCombobox() { > > return new ULCComboBox(new String[]{"one", "two", >"three"}); > } > > /** > * @return > */ > private static ULCTextField getText() { > > return new ULCTextField("very simple ULCTextField"); > } > > /** > * @return > */ > private static ULCTextField getTextWithKeyListeners() { > > ULCTextField txt = new ULCTextField("ULCTextField with >KeyListeners"); > > txt.addKeyListener(new IKeyListener() { > > public void keyTyped(KeyEvent event) { > > new ULCAlert( " ", "any key pressed on >TextField", "ok").show(); > > }}); > > txt.registerKeyboardAction(new IActionListener(){ > > public void actionPerformed(ActionEvent event) { > > new ULCAlert( " ", "F11 pressed on >TextField", "ok").show(); > > }}, KeyStroke.getKeyStroke(KeyEvent.VK_F11, >0),ULCComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); > return txt; > } >} > >Swing: > >public class TestSwing { > > /** > * @param args > */ > public static void main(String[] args) { > > > final JFrame frame = new JFrame("Test KeyboardListener >Swing"); > > > frame.setSize(500, 300); > > final JPanel pane = new JPanel(); > pane.add(getCombobox()); > pane.add(getComboBoxWithSelectionManager()); > pane.add(getText()); > pane.add(getTextWithKeyListeners()); > > > pane.registerKeyboardAction(new ActionListener(){ > > public void actionPerformed(ActionEvent e) { > > JOptionPane.showMessageDialog(pane, "F10 >pressed on pane."); > > }}, KeyStroke.getKeyStroke(KeyEvent.VK_F10, 0), >JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); > > frame.add(pane); > > frame.setVisible(true); > > > } > > > > /** > * @return > */ > private static JComponent getComboBoxWithSelectionManager() { > > JComboBox combo = getCombobox(); > combo.setKeySelectionManager(new >JComboBox.KeySelectionManager(){ > > public int selectionForKey(char aKey, ComboBoxModel >aModel) { > > // do some stuff here > > return -1; > }}); > > return combo; > } > > > /** > * @return > */ > private static JComboBox getCombobox() { > > return new JComboBox(new String[]{"one", "two", "three"}); > } > > /** > * @return > */ > private static JTextField getText() { > > return new JTextField("very simple ULCTextField"); > } > > /** > * @return > */ > private static JTextField getTextWithKeyListeners() { > > final JTextField txt = new JTextField("ULCTextField with >KeyListeners"); > > txt.addKeyListener(new KeyListener() { > > public void keyTyped(KeyEvent e) { > > JOptionPane.showMessageDialog(txt, >"keyTyped >on JTextField."); > > } > > public void keyPressed(KeyEvent e) { > > JOptionPane.showMessageDialog(txt, >"keyPressed on JTextField."); > > } > > public void keyReleased(KeyEvent e) { > > JOptionPane.showMessageDialog(txt, >"keyReleased on JTextField."); > > }}); > > txt.registerKeyboardAction(new ActionListener() { > > public void actionPerformed(ActionEvent e) { > > JOptionPane.showMessageDialog(txt, "F11 >pressed on JTextField."); > > }}, KeyStroke.getKeyStroke(KeyEvent.VK_F11, 0), >JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT ); > > return txt; > } >} > >_______________________________________________ >ULC-developer mailing list >[email protected] >http://lists.canoo.com/mailman/listinfo/ulc-developer _______________________________________________ ULC-developer mailing list [email protected] http://lists.canoo.com/mailman/listinfo/ulc-developer
