2017-10-13 47 views
1

我在Install4J-Project中定義了多個屏幕。如何在向後移動時隱藏屏幕

假定i都要求3個畫面:

  • 「畫面1」
  • 「畫面2」
  • 「畫面3」

屏幕2是配置如下: 激活後腳本:

context.getWizardContext().setControlButtonVisible(ControlButtonType.NEXT, false); 
context.getWizardContext().setControlButtonVisible(ControlButtonType.PREVIOUS, false); 
context.goForward(1, true, true); 

當前的行爲如下:

  1. 我在「屏幕1」,然後單擊「下一步」
  2. Install4J跳轉到「畫面2」。 Postactivationscript隱藏後退和下一步按鈕,併爲我點擊「下一步」。
  3. 我在「Screen 3」中。

這就是我到目前爲止的行爲。

用我當前的配置描述原樣和不需要的行爲。

如果我現在單擊「屏幕3」中的「後退」按鈕,Install4J會跳回到「屏幕2」,但Postactivationscript會立即將我彈回「屏幕3」。

我現在的問題是:

我有什麼改變,得到這麼下列行爲? *如果我現在點擊「屏幕3」中的「後退」按鈕,Install4J跳過「屏幕2」並返回「屏幕1」。

所以我想在前向遍歷上顯示「Screen 2」並將其隱藏在Backward-Traversal上。這可能嗎?

根據Install4J幫助,有像isHiddenForPrevious這樣的方法似乎能夠完成我的任務,但我如何以及在哪裏使用它們以及如何配置「屏幕2」以在向後遍歷上隱藏?

回答

1

這確實是一個很好的用例,目前還沒有涵蓋可配置表單。在7.0.4中,我們將添加一個「可以到達屏幕」屬性,該屬性可以設置爲「僅限於下一個按鈕」。請聯繫[email protected]獲得已經實施的構建。

+0

我想知道爲什麼字段「Postactivation-Script」中的以下行阻止了Back Traversal。 context.getWizardContext()。setControlButtonVisible(ControlButtonType.NEXT,false); context.getWizardContext()。setControlButtonVisible(ControlButtonType.PREVIOUS,false); context.goForward(1,true,true); 這些行在「屏幕2」中定義。啓用這些功能後,我很遺憾不能從「屏幕3」跳轉到「屏幕1」,儘管我已經爲「屏幕2」設置了「僅限下一個按鈕」。我需要處理「屏幕2」無人看管,不能跳過它。我該怎麼辦? – Kaot

+1

隨着目前的構建這適用於我。使用相同的腳本。請在安裝後查看日誌文件.install4j \ installation.log。當你回去的時候,你會在日誌中看到如[INFO] com.install4j.runtime.beans.screens.FormScreen [ID 1565]中的行:命令:使用歷史記錄返回1個屏幕,然後跳過的屏幕不應該被激活。您是否可以在可能在較舊版本的install4j上使用的命令行版本編譯該項目? –

+0

請道歉。似乎我使用了新的Install4J-GUI,但我的Buildscript使用了舊的。事實上,它現在適用於我這邊的這個小例子。我會嘗試將它用於真實的項目。再次感謝你的幫助! – Kaot