我剛剛從昨天開始使用GWT,所以也許我沒有使用合適的機制來解決這個問題。所以,我會盡力解釋我想要做什麼(有一個簡單的問題)以及我提出的兩個解決方案來解決這個問題。如何在GWT中全局修改/訪問小部件?
問題:
記住,可以通過其他部件被更新的索引。我們用焦點來表示它。
[button 1]
[button 2] [button A]
[button 3]
- 按鈕[1..3]和[A]不在相同的類和需要找到使用使用DOM的ID的元素。原因是這兩個視圖需要正交。
- 我們可以使用上/下鍵,從鍵1的焦點移動到3
- 如果我們上的按鈕[1..3],然後按正確的,我們去的按鈕A.
- 如果我們在按鈕A上並向左按下,我們轉到先前已聚焦的按鈕。
我們想要做的是按右鍵時保存或設置焦點索引。
解決方案1 :全局變量
我不喜歡平時全局變量,但在某些情況下,它很方便。通過使用例如在JavaScript中全局定義的字典(Dictionary.getDictionary),我可以使用「聚焦事件」在該情況下將當前索引保存在其中。
所以,在按鍵事件中,當左鍵被觸發時,我只會讀取字典中的值。
我還沒有測試過,但我認爲它應該工作。
解決方案2:與元素
Element element = DOM.getElementById("button id A");
element.<setFocusLeftKey>("button id [1..3]");
此處設置的值是什麼,我想實現的就是剛剛在「聚焦狀態」事件,我想簡單地設置按鈕的值。
- 那麼有可能使用Element來施放/找到對象?我認爲如果沒有簡單的方法,可能是因爲不推薦。
- 有沒有更簡單的方法/其他方法來實現呢?
因此,任何思想或解決方案?
在此先感謝。
P.S.我還沒有找到一個更好的標題,所以如果有任何建議,只是把它放在評論中,我會更新它。
感謝您的建議,我將開始尋找活動巴士來了解我如何整合它,以及它是否可以作爲解決方案。對於「ID耦合」,我不認爲它實際上是一個糟糕的設計。我唯一遇到的問題是它不是編譯時間。 – Sauleil 2011-03-30 12:54:17