[cooja] plugins/VariableWatcher: Replace varName KeyListener by DocumentListener as only content changes change validation state of varName
Modify foreground color of varName instead of background color because some LookAndFeels do not support colored backgrounds.
This commit is contained in:
parent
a1671462c0
commit
cdc9b9a9d2
|
@ -65,10 +65,14 @@ import javax.swing.JLabel;
|
|||
import javax.swing.JPanel;
|
||||
import javax.swing.JTextField;
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.UIManager;
|
||||
import javax.swing.event.DocumentEvent;
|
||||
import javax.swing.event.DocumentListener;
|
||||
import javax.swing.text.AttributeSet;
|
||||
import javax.swing.text.BadLocationException;
|
||||
import javax.swing.text.DefaultFormatterFactory;
|
||||
import javax.swing.text.DocumentFilter;
|
||||
import javax.swing.text.JTextComponent;
|
||||
import javax.swing.text.PlainDocument;
|
||||
import org.contikios.cooja.ClassDescription;
|
||||
import org.contikios.cooja.Cooja;
|
||||
|
@ -234,18 +238,26 @@ public class VariableWatcher extends VisPlugin implements MotePlugin {
|
|||
varNameCombo.addItem(aVarName);
|
||||
}
|
||||
|
||||
varNameCombo.addKeyListener(new KeyListener() {
|
||||
/* Reset variable read feedbacks if variable name was changed */
|
||||
final JTextComponent tc = (JTextComponent) varNameCombo.getEditor().getEditorComponent();
|
||||
tc.getDocument().addDocumentListener(new DocumentListener() {
|
||||
|
||||
@Override
|
||||
public void keyPressed(KeyEvent e) {
|
||||
public void insertUpdate(DocumentEvent e) {
|
||||
writeButton.setEnabled(false);
|
||||
((JTextField) varNameCombo.getEditor().getEditorComponent()).setForeground(UIManager.getColor("TextField.foreground"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void keyTyped(KeyEvent e) {
|
||||
public void removeUpdate(DocumentEvent e) {
|
||||
writeButton.setEnabled(false);
|
||||
((JTextField) varNameCombo.getEditor().getEditorComponent()).setForeground(UIManager.getColor("TextField.foreground"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void keyReleased(KeyEvent e) {
|
||||
public void changedUpdate(DocumentEvent e) {
|
||||
writeButton.setEnabled(false);
|
||||
((JTextField) varNameCombo.getEditor().getEditorComponent()).setForeground(UIManager.getColor("TextField.foreground"));
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -498,7 +510,7 @@ public class VariableWatcher extends VisPlugin implements MotePlugin {
|
|||
varNameCombo.setBackground(Color.WHITE);
|
||||
writeButton.setEnabled(true);
|
||||
} catch (UnknownVariableException ex) {
|
||||
varNameCombo.setBackground(Color.RED);
|
||||
((JTextField) varNameCombo.getEditor().getEditorComponent()).setForeground(Color.RED);
|
||||
writeButton.setEnabled(false);
|
||||
}
|
||||
} else if (varTypeCombo.getSelectedIndex() == INT_INDEX) {
|
||||
|
@ -508,7 +520,7 @@ public class VariableWatcher extends VisPlugin implements MotePlugin {
|
|||
varNameCombo.setBackground(Color.WHITE);
|
||||
writeButton.setEnabled(true);
|
||||
} catch (UnknownVariableException ex) {
|
||||
varNameCombo.setBackground(Color.RED);
|
||||
((JTextField) varNameCombo.getEditor().getEditorComponent()).setForeground(Color.RED);
|
||||
writeButton.setEnabled(false);
|
||||
}
|
||||
} else if (varTypeCombo.getSelectedIndex() == ARRAY_INDEX ||
|
||||
|
@ -529,7 +541,7 @@ public class VariableWatcher extends VisPlugin implements MotePlugin {
|
|||
varNameCombo.setBackground(Color.WHITE);
|
||||
writeButton.setEnabled(true);
|
||||
} catch (UnknownVariableException ex) {
|
||||
varNameCombo.setBackground(Color.RED);
|
||||
((JTextField) varNameCombo.getEditor().getEditorComponent()).setForeground(Color.RED);
|
||||
writeButton.setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue