2014-01-20 56 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,或者根據需要製作擴展程序以覆蓋所做的更改。

希望其中的一個能夠適用於您的情況。