2017-06-18 59 views
0

我是檢票開發的初學者。我有一個關於彈出對話框的問題。當我點擊一個按鈕時會觸發這個對話框。在檢票口啓用/禁用按鈕

這個對話框包含複選框(接受條款)和幾個單選按鈕下方,並兩個按鈕,一個是取消,另一個接受。我的問題是,我需要確保,我有複選框和一個無線電選擇設置按鈕「接受」啓用狀態,否則它應該密封(啓用= false)。

事情是單選按鈕在不同的文件中(它們在其他文件中的面板中,我們稱它們爲「CancellationRadioButtons」)。我設法在主對話框內正確渲染它們(在「MainPanel」中執行add(cancellationRadioButtons))。

的問題是,如果這兩個要素:複選框單選按鈕包含其相應的模型,我怎麼確保兩個選擇(複選框和一個單選按鈕),我的意思是你怎麼溝通MainPanelCancellationRadioButtons反之亦然?

例如,當對話框被觸發時,默認情況下不會選擇任何內容,所以Accept按鈕被封閉。如果我點擊其中一個單選按鈕,接受按鈕將保持密封,直到我選中複選框。如果選中複選框並且沒有選中單選按鈕,也會發生同樣的情況。

我有這兩種元素的模型,但我不知道如何溝通它們。我在Accept按鈕中有一個SetEnabled方法(現在僅在選中複選框時啓用),但我不知道如何在兩個條件之間進行連接(Checkbox.checked和選定的單選按鈕)

我會喜歡在這裏發佈代碼以使其更簡單,但由於公司的政策,我無法做到這一點,而且我很難在本地PC中再現相同的對話框,因爲它已經完成了,我只是在那裏修理東西。

任何想法如何進行這個,一些提示和簡單的例子,將不勝感激!

+0

爲我們提供了示例代碼 - 您到目前爲止嘗試過了哪些代碼。 – 1ac0

回答

1

這是有力的一面像Wicket一樣的框架!你說複選框和單選按鈕有自己的模型。解決問題的最簡單方法是讓這些模型也可用於「接受」按鈕,以便它可以在onConfigure()中使用它來決定調用this.setEnabled(...)時要使用的值。

您可以使用Wicket的CompoundPropertyModel作爲對話框,每個子組件都可以使用它的屬性。 「接受」按鈕將使用複合模型對象來查看所有屬性的值。

或者您可以在對話框構造函數中創建當前單獨的模型,並將它們僅傳遞給需要它們的組件。