私は、texthoverを使用してEclipseプラグインを作成しています。Eclipseプラグインの開発:DefaultInformationControl期待どおりに動作しません
public IInformationControlCreator getHoverControlCreator()
これは私のコードです:
@Override
public IInformationControlCreator getHoverControlCreator() {
return new IInformationControlCreator() {
public IInformationControl createInformationControl(Shell parent) {
Shell s=new Shell(parent,SWT.V_SCROLL | SWT.H_SCROLL);
ToolBarManager tbm = new ToolBarManager(SWT.FLAT);
NoFocusDic dic = new NoFocusDic(parent, tbm);
dic.setBackgroundColor(new Color(null,123,234,12));
ButtonAction ba=new ButtonAction();
tbm.add(ba);
tbm.update(true);
dic.setSize(300,100);
dic.setLocation(new Point(500,500));
// dic.setInformation("abc");
dic.setVisible(true);
return dic;
}
};
}
私はsetInformationラインでこのコードを実行すると、私が手に私は、私は次の関数を使用ホバーウィンドウにアクションを追加する必要があります このウィンドウ:
そして、私はSETINせずにそれを実行します
だから私は常に取得したいウィンドウが二つ目ですが、とテキスト内側:形成ラインは、私はこのウィンドウを取得します。 私はフォーカスをキャッチしようとするとsetVisibleが機能しないことをEclipseのサイトで読みましたが、setInformationがフォーカスを捕まえているとは思いません。
すべてのアイデア何をすべきか?
package TextHoverPackage;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.text.DefaultInformationControl;
import org.eclipse.jface.text.IInformationControl;
import org.eclipse.jface.text.IInformationControlCreator;
import org.eclipse.jface.text.IInformationControlExtension2;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Shell;
public class NoFocusDic extends DefaultInformationControl implements IInformationControlExtension2 {
public NoFocusDic(Shell parent, ToolBarManager toolBarManager) {
super(parent, toolBarManager);
}
public NoFocusDic(Shell parent, ToolBarManager toolBarManager, IInformationPresenter a){
super(parent, toolBarManager,a);
}
@Override
public void setInput(Object arg0) {
super.setInformation(arg0.toString());
}
}
'NoFocusDic'は何ですか? –
@ greg-449 DefaultInformationControlから継承し、IInformationControlExtension2を実装してウィンドウをpictue number 2にするクラスです。PSはこのクラスコードをクエストに追加します –