我有一個ICellModifier似乎工作正常的TableViewer。但是,我在其中一個單元編輯器上設置了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
方法收到null作爲新 值,如果驗證返回 錯誤。我可以編寫代碼來處理這個問題, 但它似乎不正確。空 可能是一個有效的值,例如, 如果用戶選擇背景 顏色,他們選擇透明。 (這是一個普遍問題,並非特定於此示例。) - 驗證器的錯誤消息是 從不顯示給用戶。這個 是個大問題。如果 上一個值無效,我還可以 添加ICellEditorListener,並且 將顯示
applyEditorValue
方法中的對話框。這是 「適當」的方式來做到這一點?
順便說一下,由於我無法控制的原因,我僅限於Eclipse 3.0框架。