在dialog中创建一个table,在tableviewer中添加celleditor,点ok时判断celleditor每一行的值,如果有相等的值,选中重复的那一行,并让对应的celleditor获得焦点,请问如何获得焦点?代码省略如下:
TableViewer mTableViewer = ViewerMaker.getTableViewer(); CellEditor[] cellEditors = new CellEditor[length];
cellEditors[1] = new TextCellEditor(column1);
......
mTableViewer .setCellEditors(cellEditors);
mTableViewer .setCellModifier(new EntityCellModifier(...));
......public void okPress(){
//以下是判断的算法
String[] alias = ModelUtil.getDefaultName(...);
int index = StringUtil.findRepeat(alias); //重复行的行号,如果-1表示没有重复值
if(index != -1){
MessageDialog.open(..."不能有重复值");
//这里如何获得重复的单元格的焦点,使其能直接编辑?
该行可以通过index选中,可是不知道怎样使该行与cellEditor对应的单元格获得焦点。
请大家指教!
return;
}
createCommand();
return super.okpress();
}
cellEditor[1].setFocus()方法需要返回boolean值,true的时候才能设置成功,但我跟进去看,如果该单元格没有任何事件触发(例如鼠标单击),会返回false。非常矛盾。
TableViewer mTableViewer = ViewerMaker.getTableViewer(); CellEditor[] cellEditors = new CellEditor[length];
cellEditors[1] = new TextCellEditor(column1);
......
mTableViewer .setCellEditors(cellEditors);
mTableViewer .setCellModifier(new EntityCellModifier(...));
......public void okPress(){
//以下是判断的算法
String[] alias = ModelUtil.getDefaultName(...);
int index = StringUtil.findRepeat(alias); //重复行的行号,如果-1表示没有重复值
if(index != -1){
MessageDialog.open(..."不能有重复值");
//这里如何获得重复的单元格的焦点,使其能直接编辑?
该行可以通过index选中,可是不知道怎样使该行与cellEditor对应的单元格获得焦点。
请大家指教!
return;
}
createCommand();
return super.okpress();
}
cellEditor[1].setFocus()方法需要返回boolean值,true的时候才能设置成功,但我跟进去看,如果该单元格没有任何事件触发(例如鼠标单击),会返回false。非常矛盾。
楼主【zhujiahill】截止到2008-07-05 00:18:40的历史汇总数据(不包括此帖):
发帖的总数量:0 发帖的总分数:0
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:---------------------结分的百分比:---------------------
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html