选择CellEditor

时间:2015-08-04 10:53:56

标签: java swt jface tableviewer

我有一个tableViewer,我可以编辑1列。每次此列的cellEditor获得焦点时,我都希望选择显示的所有文本。在普通的SWT文本控件中,我们只需执行text.selectAll();,因此我在EditSupport类列中为cellEditor设置了此侦听器:

editor.getControl().addFocusListener(new FocusListener() {
    @Override
    public void focusGained(FocusEvent e) {
        Text text = (Text) editor.getControl();
        text.selectAll();
    }
});

我知道我可以将cellEditor控件转换为Text输入,因为我已经使用普通setText();对其进行了测试,并且它可以正常工作!但是,selectAll();无效,我该如何解决?

我发现错误,上面问题中的代码完美无缺,我无法看到selectAll();做某事的原因在于此方法:

@Override
protected Object getValue(Object element) {

    String valor = MathUTILS.getBigDecimalFormatted(((ColaboradoresDespesasDocumentosLinhas) element).getValor(), PatternVARS.PATTERN_BIGDECIMAL_MILLION);
    Text text = InterfaceFormatUTILS.getControlNumberFormat(editor, PatternVARS.PATTERN_BIGDECIMAL_BILLION);

    return valor;
}

这也是EditingSupport类的一个方法,由于某种原因,格式化文本控件(Text text = InterfaceFormatUTILS.getControlNumberFormat(editor, PatternVARS.PATTERN_BIGDECIMAL_BILLION);)会取消选择所有文本。此外,在此方法中执行selectAll();并不起作用..

0 个答案:

没有答案