4

Object他の場所から のにアクセスするにはどうすればよいViewですか?

(次のコードは、私がやりたいことをスケッチするためのものです)

public class View extends ViewPart {

    public static final String ID = "view";
    private static List list;

    public View() {
    }

    @Override
    public void createPartControl(Composite parent) {
        list = new List(parent, SWT.BORDER);
    }

    @Override
    public void setFocus() {
    }

    public static void addToList(String string) {
        list.add(string);
    }
}

View.addToList("Message")今、私はアプリケーションのどこでも使用できるようにしたいと考えています.

4

2 に答える 2

1

ワークベンチの起動時にas ViewasViewPartが登録されます。ViewRegistryには、登録済みのWorkbenchすべてのビューとエディターが含まれています。ワークベンチ レジストリからそのビューの情報を取得する最も簡単な方法。まず、かどうかを確認しますPlatformUI.getWorkbench().isStarting()。このメソッドが返されfalseたら、取得できます

IViewDescriptor descriptor = PlatformUI.getWorkbench().getViewRegistry().find("view");

ワークベンチが開始されると、それに貢献したすべてのビューとエディターが登録されますが、コードを実行するには、ワークベンチが実行中であり、ビューのインスタンスがあることを確認する必要があります。

のインスタンスを作成するにはView、コードを使用します

try {
    IViewPart view = descriptor.createView();
    view.createPartControl();
} catch (CoreException e) {
    // TODO something with e
    e.printStackTrace();
}

今、あなたbe able to use View.addToList("Message") anywhere in the application

于 2012-08-31T20:51:51.307 に答える
1

[ID]次のコード スニペットを使用して、 でビューに指定した ID に置き換えますplugin.xml

IViewPart viewPart = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView( [ID] );

id は通常 の形式でcom.domain.something.viewNameあり、ビューの投稿の下で見つけることができます。

于 2012-08-31T20:09:16.487 に答える