Okだから、実際には複数行(textarea)InputDialogを私のルーブルに追加したいと思っています。私のRubleに複数行InputDialogを追加したい
私はRuble :: UIの制限を回避し、自分自身のモジュールを作成しました。これは、Ruble :: UIが提供するデフォルトのダイアログより多くのものを必要とするときに自分のルーブルをロードします。このため、私は複数選択ダイアログを追加できました。また、オーバーライドクラスを作成し、getTextStyleメソッドを自分の値に渡して複数行にすることで、Multiline InputDialogを動作させることさえできました。
ダイアログには複数行のテキストボックスが表示されますが、高さはまだ1行に設定されているため、基本的には1行のボックスになります。私は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でそれを行うためのコードが希望するものです。 faliedた()
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();
完全に働いたこと、ありがとうございます。また、RubleでEclipse APIのいくつかをどのように使うことができるかを理解するのにも役立ちます。 – arcaneadm