2012-10-29 47 views
1

這是一個後續問題Console output on Installation screen?動態設置文本區文本通過腳本

我已經配置包含應該顯示我的安裝過程中發生了什麼的文本區域組件(「log.display」)的屏幕。安裝在連接到此屏幕的腳本中運行。完成安裝步驟後,我做這樣的事情(displayLog之前初始化):

displayLog = displayLog + currentStep + " done. \n"; 
    context.setVariable("log.display",displayLog); 

可惜的是文本區域組件不受此更新。我可以(必須)從我的腳本中動態更新文本區域?

編輯:

我發現:

formPanelContainer = (FormPanelContainer)context.getScreenById(<screenID>); 
    formPanelContainer.getFormEnvironment().reinitializeFormComponents(); 

這似乎工作,但有一個問題是:如果在「日誌」這個解決方案顯示包含比文字更行區域可以顯示,它將顯示垂直滾動條,但不會自動滾動到最後一行。有沒有辦法讓文本區域做到這一點?

另一個問題:是否可以在不指定屏幕ID的情況下詢問當前屏幕的上下文(可以改變什麼)?

謝謝! 弗蘭克

回答

1

我的問題的解決方案似乎是:拿到TextArea組件的ConfigurationObject:

FormPanelContainer formPanelContainer = (FormPanelContainer)context.getScreenById(<ScreenID>); 
FormEnvironment formEnvironment = formPanelContainer.getFormEnvironment(); 
FormComponent logComponent = formEnvironment.getFormComponentById(<TextAreaComponentID>); 
JTextArea logComponentObject = (JTextArea)logComponent.getConfigurationObject(); 

每一次,有些事情要記錄:

logComponentObject.append("Text to log" + "\n"); 
logComponentObject.setCaretPosition(logComponentObject.getDocument().getLength()); 

這工作正常在我的設置。