2011-07-29 2 views
0

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(); 

のJavaオーバーライドだから、私はgetInputTextStyleをオーバーライドする方法を考え出した見ることができますが、everthingが、私はcreateDialogAreaのオーバーライドを模倣しようとしました。任意の提案やヘルプを大幅に

答えて

0

をいただければ幸いにこれを試してみてください:

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 
    def createDialogArea(parent) 
     control = super(parent) 
     getText.getLayoutData.heightHint = 100; 
     control 
    end 
    end 

乾杯、 マックス

+0

完全に働いたこと、ありがとうございます。また、RubleでEclipse APIのいくつかをどのように使うことができるかを理解するのにも役立ちます。 – arcaneadm

関連する問題