0
好了,所以我真的很希望能多行(文本域)InputDialog爲添加到我的盧布。我想多行顯示InputDialog添加到我的盧布
我在盧布:: UI周圍的侷限性工作,創建了自己的模塊時,我想,我和我的盧布裝載更多的,則默認對話框盧布:: UI提供。正因爲如此,我已經能夠添加多選對話框,甚至得到多行顯示InputDialog通過創建一個覆蓋類,然後傳遞getTextStyle方法我自己的價值觀,使其多的工作。
這個問題是在該對話框中顯示多行文本框,但它的高度仍設置爲一條線,所以它本質上仍然只是一個單一的線箱。我知道,從Eclipse插件開發如何創建Java中的多對話,我只是無法弄清楚如何使使用JRuby在盧布成爲現實。
這裏是紅寶石
我當前的代碼用來請求多對話框
class MultiInputDialog < org.eclipse.jface.dialogs.InputDialog
def getInputTextStyle
org.eclipse.swt.SWT::MULTI | org.eclipse.swt.SWT::BORDER | org.eclipse.swt.SWT::V_SCROLL
end
end
這裏是什麼代碼來執行它在Java中想。
Java的替代
InputDialog dlg = new InputDialog(Display.getCurrent().getActiveShell(), "Test", "Please input text.",
"Test-Text", null) {
/**
* Override this method to make the text field multilined
* and give it a scroll bar. But...
*/
@Override
protected int getInputTextStyle() {
return SWT.MULTI | SWT.BORDER | SWT.V_SCROLL;
}
/**
* ...it still is just one line high.
* This hack is not very nice, but at least it gets the job done... ;o)
*/
@Override
protected Control createDialogArea(Composite parent) {
Control res = super.createDialogArea(parent);
((GridData) this.getText().getLayoutData()).heightHint = 100;
return res;
}
};
dlg.open();
所以你可以看到我已經想通了如何重寫getInputTextStyle,但寄託都我試圖模仿createDialogArea的倍率()已falied。任何建議或幫助,將不勝感激
謝謝你,非常完美。它還有助於我更好地瞭解如何在我的Ruble中使用更多的Eclipse API。 – arcaneadm