0

問題は簡単です: Context Sensitive Help を追加するには、標準の手順に従いましたが、IWorkbenchHelpSystem の SetHelp() を使用して BLOCKS を CONTEXT ID にリンクしようとしました。frist 引数は、Control(swt) または IAction のいずれかである必要があります。
void setHelp(コントロール コントロール、文字列 helpContextId);. damos.dml.Block オブジェクト タイプから Control を参照するにはどうすればよいですか? org.eclipselabs.damos.dml.blockTypes

参考までに、これらのサイトのすべてのコンテンツを試してみました

表示メソッドと検索メソッドは正しく機能していますが、ヘルプを呼び出す (F1 または ctrl + F1) ときにのみコンテキスト ヘルプが表示されるように、ヘルプを設定して表示しないようにする必要があります。

ありがとう。試した後、この回避策で同じ結果が得られるかもしれないと思いましたが、NADA.

private Block getBlock() {
        EObject semanticElement = resolveSemanticElement();
        if (semanticElement instanceof Block) {
            Block block = (Block) semanticElement;
            PlatformUI.getWorkbench().getHelpSystem().search(block.getType().getName());
//PlatformUI.getWorkbench().getHelpSystem().setHelp(?, Activator.HELP_VIEW); Cannot cast block directly to Control 
PlatformUI.getWorkbench().getHelpSystem().displayHelp(Activator.HELP_VIEW);
                return block;
            } else {
                return null;
            }
        }

 @Override
protected NodeFigure createMainFigure() {
    blockFigure = new BlockFigure();
    // OB: java.awt.event.KeyEvent.VK_F1 is wrong, use SWT.F1
    blockFigure.setFocusTraversable(true);
    blockFigure.setRequestFocusEnabled(true);
    blockFigure.addMouseListener(new MouseListener.Stub() {
        @Override
        public void mousePressed(final MouseEvent me) {
            blockFigure.requestFocus();
        }
    });
    blockFigure.addKeyListener(new KeyListener.Stub() {

        @Override
        public void keyReleased(KeyEvent ke) {

        }

        @Override
        public void keyPressed(KeyEvent ke) {
            if (ke.keycode == SWT.F1) {
                PlatformUI.getWorkbench().getHelpSystem().search(getBlock().getType().getName());
                PlatformUI.getWorkbench().getHelpSystem().displayHelp(Activator.HELP_VIEW);
            }
        }
    });
    return blockFigure;
}

どんな助けでも大歓迎です!

4

1 に答える 1