2014-01-20 55 views
0

使用GWT + GXT。是否有可能通过例如messagebox更改活动行编辑器状态? 我创建了一个事件,它调用一个带有文本区域的消息框,并且为了将该textarea的文本放入网格中,我需要调用rowEditor.stopEditing(true),然后手动将文本插入数据网格,然后执行rowEditor.startEditing(true )。 所以它看起来像:gxt 2.2.5更改行编辑器状态

re.stopEditing(true); 
List<Model> list = data.getModels(); 
list.get(activeRow).set("key","value"); 
re.startEditing(activeRow, true); 

和它的作品...但如果需要的话用户无法取消他的变化,因为他们已经被re.stopEditing(真)保存;

+0

所以我想没有办法做到这一点.. –

回答

0

听起来好像stopEditing会导致您不想要的状态更改(保存的更改),并且没有其他API可以跳过该副作用,然后有几个潜在选项(因为我不熟悉这个库,我会说一般模式):

  1. 不要把它叫做“真正的”模型:使用克隆/复制来完成所有的工作,然后当提交更改时,将更改保存到真实模型中。
  2. 在进行任何编辑之前,您可以存储模型的“原始”状态吗?然后通过stopEditing完成多少次中间保存并不重要,只需恢复原始模型即可实施取消操作。
  3. 如果这两者都不可行,还有一个更复杂的选项 - 查看stopEditing的源代码 - 您可以扩展该类来覆盖此方法,删除不需要的功能吗?如果涉及大量私有变量,您可以始终使用expose them to your extension via reflection,或者根据需要制作扩展程序以覆盖所做的更改。

希望其中的一个能够适用于您的情况。