else ++i;
JComponent c=tabOrder.get(i);
c.requestFocusInWindow();
}
private CTextArea createTextArea(final NamedCaller nc, final String humanField,int rows){
final CTextArea field=
new CTextArea(getStringViaReflection(humanField),rows,0);
field.getDocument().addDocumentListener(new DocumentListener() {
public void changedUpdate(DocumentEvent e) {
setStringViaReflection(humanField,field.getText());
}
public void insertUpdate(DocumentEvent e) {
setStringViaReflection(humanField,field.getText());
}
public void removeUpdate(DocumentEvent e) {
setStringViaReflection(humanField,field.getText());
}
});
Keymap keymap=net.sf.egphilippovoss.util.swing.CTextArea.addKeymap("keymap"+tabOrder.size(), field.getKeymap());
keymap.addActionForKeyStroke(KeyStroke.getKeyStroke(KeyEvent.VK_TAB,0),
new AbstractAction(){
private static final long serialVersionUID = -1354646991611133126L;
@Override
public void actionPerformed(ActionEvent e) {
handleTab(nc, false, field, frame.getProductMetaData());
}});
keymap.addActionForKeyStroke(KeyStroke.getKeyStroke(KeyEvent.VK_TAB,InputEvent.SHIFT_MASK),
new AbstractAction(){
private static final long serialVersionUID = -110179313042841593L;
@Override
public void actionPerformed(ActionEvent e) {
handleTab(nc, true, field, frame.getProductMetaData());
}});
field.setKeymap(keymap);
tabOrder.add(field);
return field;
}