플러그인이 있고 작업 공간에 프로젝트가 추가되면이를 감지하고 플러그인 코드에서 프로젝트 설정을 지정합니다.프로젝트의 Eclipse 플러그인이로드 됨
특별히이 파생 된 일부 리소스에서는 setHidden을 호출하려고합니다.이 설정은 프로젝트의 일부가 아닌 것처럼 보이므로 새 작업 영역에서 프로젝트를 가져올 때 리소스가 숨겨져있을 때마다 숨겨져있는 것처럼 보입니다. .
플러그인이 있고 작업 공간에 프로젝트가 추가되면이를 감지하고 플러그인 코드에서 프로젝트 설정을 지정합니다.프로젝트의 Eclipse 플러그인이로드 됨
특별히이 파생 된 일부 리소스에서는 setHidden을 호출하려고합니다.이 설정은 프로젝트의 일부가 아닌 것처럼 보이므로 새 작업 영역에서 프로젝트를 가져올 때 리소스가 숨겨져있을 때마다 숨겨져있는 것처럼 보입니다. .
아이러니하게도, 나는 어제 이런 것을 썼습니다. 그것은 당신이 원하는 것보다 조금 더 복잡합니다.
ResourcesPlugin.getWorkspace().addResourceChangeListener(ProjectListener.LISTENER, IResourceChangeEvent.POST_CHANGE);
그리고 당신을 :
public class ProjectListener implements IResourceChangeListener {
public void resourceChanged(IResourceChangeEvent event) {
if (event.getType() == IResourceChangeEvent.POST_CHANGE) {
List<IProject> projects = getProjects(event.getDelta());
// do something with new projects
}
}
private List<IProject> getProjects(IResourceDelta delta) {
final List<IProject> projects = new ArrayList<IProject>();
try {
delta.accept(new IResourceDeltaVisitor() {
public boolean visit(IResourceDelta delta) throws CoreException {
if (delta.getKind() == IResourceDelta.ADDED &&
delta.getResource().getType() == IResource.PROJECT) {
IProject project = (IProject) delta.getResource();
if (project.isAccessible()) {
projects.add(project);
}
}
// only continue for the workspace root
return delta.getResource().getType() == IResource.ROOT;
}
});
} catch (CoreException e) {
// handle error
}
return projects;
}
그런 다음, 당신이 바람직 플러그인 활성제의 start
방법, 작업 공간이 ProjectListener을 추가해야합니다 : 여기 당신이 재생을위한 코드입니다 stop
방법으로 제거하고 싶습니다. 나는 문자 그대로이 코드를 어제 썼다. 나는 그것이 도움이되기를 바랍니다.
resourcelistener를 작업 영역에 정의하고 자원 루트에서 변경 사항을 찾을 수 있습니다. 자세한 내용은 다음 문서를 참조하십시오. http://www.eclipse.org/articles/Article-Resource-deltas/resource-deltas.html
하지만 액티베이터가 시작될 때 어떻게 호출 할 수 있습니까? 프로젝트가 처음 빌드 될 때 광산이 호출됩니다. 플러그인은 IDL의 맞춤 빌더입니다. –
org.eclipse.ui.startup 확장 점이 시작 중에 Activator가 시작되지 않는 문제를 해결했습니다. –
정확히 그렇게하는 방법입니다. –