私はうまくいくように見えるICellModifierを持つTableViewerを持っています。私はセルエディタの1つでICellEditorValidatorを設定しましたが、私が望むように動作させることはできません。ここに私の短縮コードがあります:ICellEditorValidatorによって検出された検証エラーをどのように表示する必要がありますか?
cellEditors[1] = new TextCellEditor(table);
cellEditors[1].setValidator(new ICellEditorValidator() {
public String isValid(Object value) {
try {
Integer.parseInt((String) value);
return null;
} catch(NumberFormatException e) {
return "Not a valid integer";
}
}
});
ほとんどの場合、うまくいきます。
- バリデータが エラーを返した場合 修飾子は新しい 値としてヌルを受けるセルの
modify
方法:ただし、2つの問題があります。私はこれを処理するようにコード化することができます、 しかし、それは正しいように見えません。 Null は有効な値です。たとえば、ユーザーが背景を選択して の色を選択して透明にした場合は、 などです。 (これは一般的な問題で、この例に限定されません) - バリデータのエラーメッセージは で、ユーザには表示されません。この は大きな問題です。また、 最後の値が無効だった場合、 ICellEditorListenerを追加し、
applyEditorValue
メソッドからダイアログを表示することもできます。これは の「適切な」方法ですか?
ところで、私がコントロールできない理由から、私はEclipse 3.0フレームワークに限定されています。あなたのエディタにリスナーを追加することができます