2016-05-08 7 views
0

eclipse用に独自のテキストホバープラグインを作成しています。 私は自分のコードをホバリングに書くのに成功しましたが、私はホバーにツールバーを追加しようとしました(新しいツールチップの中にオープンしました)。 私は、getHoverControlCreator関数を使用する必要があることを読んだので、プラグインを実行しているときにテキスト・ホバーが開かれたときに表示されるツールバー・マネージャーを追加できました。debbugerではToolBarMangerにToolItemしかし、私はそれを開いたときに実際のテキストのホバーでそれらを見ることができません。javaテキストにツールバーを追加する方法eclipse

これは私のコードです:

public IInformationControlCreator getHoverControlCreator() { 
     return new IInformationControlCreator() { 
      public IInformationControl createInformationControl(Shell parent) { 
       ToolBar tb = new ToolBar(parent, SWT.HORIZONTAL); 
       ToolBarManager tbm = new ToolBarManager(tb); 
       DefaultInformationControl dic = new DefaultInformationControl(parent, tbm); 
       ToolItem ti = new ToolItem(tb, SWT.PUSH); 
       ti.setText("hello"); 
    tb.update(); 
    tb.redraw(); 
    tbm.update(true); 
    parent.update(); 
    parent.redraw(); 

    parent.layout(); 

       return dic; 
      } 

答えて

0

これは、Eclipseのホバーコントロールのいずれかがないものです:だからそれはToolBarを作成しません

@Override 
public IInformationControl doCreateInformationControl(Shell parent) { 
    ToolBarManager tbm = new ToolBarManager(SWT.FLAT); 

    DefaultInformationControl iControl = new DefaultInformationControl(parent, tbm); 

    IAction action = new MyAction(); 
    tbm.add(action); 

    tbm.update(true); 

    return iControl; 
} 

からDefaultInformationControlにそれを任せます。ツールバーのActionを使用し、DefaultInformationControlの作成後に追加します。最後にupdate(true)が呼び出されます。

は(これはorg.eclipse.jdt.internal.ui.text.java.hover.NLSStringHoverの部分の修正版です)

MyActionようなものになるだろう:

private class MyAction extends Action 
{ 
    MyAction() 
    { 
    super("Title", .. image descriptor ..); 

    setToolTipText("Tooltip"); 
    } 

    @Override 
    public void run() 
    { 
    // TODO your code for the action 
    } 
} 
+0

OpenPropertiesFileAction私が使用することはできませんNLSStringHoverの別の内部クラスです。私のプロジェクトでこのコードを使う方法はありますか? –

+0

それはちょうど 'アクション'です - あなたは 'アクション'を拡張する独自のクラスを書くことができます。そのクラスを参照しないように変更された例 –

+1

ありがとう本当にアクションをtbmに追加しますが、別の問題があります。アクションをクリックしようとすると、2番目の+で利用可能になります - すべてのToolBarMangerが消えてしまいます –

関連する問題