Plugin eclipse auto start in product

2019-03-03 13:17发布

I am trying to create a plugin that loads different resources taken from the loaded project. I am trying to register to ResourceChangeListener of the workspace in an early stage, so that I get notification of the resources that are added to the workspace. The earlyStartup of org.eclipse.ui is too late(If the projects are already loaded to the workspace). How or which extension point can I use in order register my listener in a time that I can listen to the workspace resource changes ?

Thanks, Clint

3条回答
2楼-- · 2019-03-03 13:29

You can try to use the "org.eclipse.ui.services" extension point as follows:

<extension point="org.eclipse.ui.services">
  <sourceProvider provider="com.plugin.YourClass"></sourceProvider>
</extension>

YourClass is a class extends org.eclipse.ui.AbstractSourceProvider

Then your plugin will startup very early!

查看更多
Lonely孤独者°
3楼-- · 2019-03-03 13:36

You should investigate having a workspace save participant to handle situations before your plug-in is started normally. Few plug-ins are important enough to warrant always starting up that early without any user involvement.

http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2FresAdv_saving.htm

查看更多
孤傲高冷的网名
4楼-- · 2019-03-03 13:39

If you want to know the resources (i.e. projects) that are open in a workspace, you can just get the IWorkspace and look at the project contained in it.

IWorkspace workspace = ResourcesPlugin.getWorkspace();
IWorkspaceRoot rootResource = workspace.getRoot();

Then you should be able to just traverse this tree structure to find out about all the resources. Hope this helps.

Here are some resources:

查看更多
登录 后发表回答