org.eclipse.ui.texteditor.ChainedPreferenceStore#org.eclipse.core.resources.IResourceChangeListener源码实例Demo

下面列出了org.eclipse.ui.texteditor.ChainedPreferenceStore#org.eclipse.core.resources.IResourceChangeListener 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: google-cloud-eclipse   文件: ModelRefreshTests.java
/** Record and return the set of files altered when running the provided block. */
private static Set<IFile> recordChangedFilesDuring(IWorkspace workspace, ICoreRunnable block)
    throws CoreException {
  Set<IFile> changed = new LinkedHashSet<>();
  IResourceChangeListener listener =
      event -> {
        try {
          changed.addAll(ResourceUtils.getAffectedFiles(event.getDelta()).values());
        } catch (CoreException ex) {
          throw new RuntimeException(ex);
        }
      };
  workspace.addResourceChangeListener(listener);
  try {
    block.run(new NullProgressMonitor());
  } finally {
    workspace.removeResourceChangeListener(listener);
  }
  return changed;
}
 
public void addWorkplaceListener(){
	   IWorkspace workspace = ResourcesPlugin.getWorkspace(); 
	   workspace.addResourceChangeListener(new IResourceChangeListener() {
		
		public void resourceChanged(IResourceChangeEvent event) {
			//刷新项目导航视图
			Display.getDefault().syncExec(new Runnable() {		
				public void run() {
					IViewPart findView = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
							.findView("net.heartsome.cat.common.ui.navigator.view");
					if(null == findView){
						return ;
					}
					IAction refreshActionHandler = findView.getViewSite().getActionBars()
							.getGlobalActionHandler(ActionFactory.REFRESH.getId());
					if(null == refreshActionHandler){
						return;
					}
					refreshActionHandler.run();
				}
			});
		}
	});
}
 
/**
 * Returns the IHierarchicalDataModel. If one does not exists, this method
 * will create one and register a workspace listener.
 *
 * @return
 */
public static IHierarchicalDataModel getHierarchicalDataModel() {
	IHierarchicalDataModelGetFileModel getModel = new GetFileModelFactory();
	final HierarchicalDataModel model = new HierarchicalDataModel(getModel);

	IResourceChangeListener listener = new IResourceChangeListener() {

		@Override
		public void resourceChanged(IResourceChangeEvent event) {
			IResourceDelta delta = event.getDelta();
			if (delta != null) {
				try {
					delta.accept(new DeltaVisitor(model));
				} catch (CoreException e) {
					// our visitor does not throw CoreException
				}
			}
		}
	};
	IWorkspace workspace = ResourcesPlugin.getWorkspace();
	workspace.addResourceChangeListener(listener);

	return model;
}
 
源代码4 项目: goclipse   文件: ResourceUtils.java
public static void connectResourceListener(IResourceChangeListener listener, 
		RunnableX<CoreException> initialUpdate, ISchedulingRule opRule, IOwner owner) {
	try {
		getWorkspace().run(new IWorkspaceRunnable() {
			@Override
			public void run(IProgressMonitor monitor) throws CoreException {
				getWorkspace().addResourceChangeListener(listener, IResourceChangeEvent.POST_CHANGE);
				initialUpdate.run();
			}
		}, opRule, IWorkspace.AVOID_UPDATE, null);
		
	} catch (CoreException ce) {
		EclipseCore.logStatus(ce);
		// This really should not happen, but still try to recover by registering the listener.
		getWorkspace().addResourceChangeListener(listener, IResourceChangeEvent.POST_CHANGE);
	}
	owner.bind(() -> ResourcesPlugin.getWorkspace().removeResourceChangeListener(listener));
}
 
源代码5 项目: eclipse-cs   文件: AbstractStatsView.java
/**
 * {@inheritDoc}
 *
 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
 */
@Override
public void createPartControl(Composite parent) {

  mMainComposite = parent;

  // create and register the workspace focus listener
  mFocusListener = new ISelectionListener() {
    @Override
    public void selectionChanged(IWorkbenchPart part, ISelection selection) {
      AbstractStatsView.this.focusSelectionChanged(part, selection);
    }
  };

  getSite().getPage().addSelectionListener(mFocusListener);
  focusSelectionChanged(getSite().getPage().getActivePart(), getSite().getPage().getSelection());

  // create and register the listener for resource changes
  mResourceListener = new IResourceChangeListener() {
    @Override
    public void resourceChanged(IResourceChangeEvent event) {

      IMarkerDelta[] markerDeltas = event.findMarkerDeltas(CheckstyleMarker.MARKER_ID, true);

      if (markerDeltas.length > 0) {
        refresh();
      }
    }
  };

  ResourcesPlugin.getWorkspace().addResourceChangeListener(mResourceListener);

  makeActions();
  initActionBars(getViewSite().getActionBars());
}
 
源代码6 项目: typescript.java   文件: ProblemManager.java
private ProblemManager() {
	this.resourceChangeListener = new IResourceChangeListener() {
		@Override
		public void resourceChanged(IResourceChangeEvent event) {
			handleResourceChanged(event);
		}
	};

	this.listeners = new CopyOnWriteArrayList<>();
}
 
源代码7 项目: tracecompass   文件: ProjectExplorerRefreshTest.java
private static void refresh(Runnable runnable) {
    AtomicBoolean resourceChanged = new AtomicBoolean();
    IResourceChangeListener listener = event -> {
        resourceChanged.set(true);
    };
    try {
        ResourcesPlugin.getWorkspace().addResourceChangeListener(listener);
        SWTBotUtils.waitUntil(refresh -> {
            refresh.run();
            return resourceChanged.get();
        }, runnable, "Resource change event not received");
    } finally {
        ResourcesPlugin.getWorkspace().removeResourceChangeListener(listener);
    }
}
 
源代码8 项目: APICloud-Studio   文件: MarkerManager.java
private MarkerManager()
{
	IWorkspace workspace = ResourcesPlugin.getWorkspace();
	workspace.addResourceChangeListener(new IResourceChangeListener()
	{
		public void resourceChanged(IResourceChangeEvent event)
		{
			handleResourceChanged();
		}
	}, IResourceChangeEvent.PRE_BUILD);
}
 
源代码9 项目: textuml   文件: RepositoryCache.java
public void start() {
    ResourcesPlugin.getWorkspace().addResourceChangeListener(new IResourceChangeListener() {

        public void resourceChanged(IResourceChangeEvent event) {
            workspaceGeneration++;
        }
    });
}
 
源代码10 项目: saros   文件: SarosSessionTest.java
private static IWorkspace createWorkspaceMock(final List<Object> workspaceListeners) {

    final IWorkspace workspace = createMock(IWorkspace.class);

    workspace.addResourceChangeListener(isA(IResourceChangeListener.class), anyInt());

    expectLastCall()
        .andStubAnswer(
            new IAnswer<Object>() {

              @Override
              public Object answer() throws Throwable {
                workspaceListeners.add(getCurrentArguments()[0]);
                return null;
              }
            });

    workspace.removeResourceChangeListener(isA(IResourceChangeListener.class));

    expectLastCall()
        .andStubAnswer(
            new IAnswer<Object>() {

              @Override
              public Object answer() throws Throwable {
                workspaceListeners.remove(getCurrentArguments()[0]);
                return null;
              }
            });

    replay(workspace);

    PowerMock.mockStaticPartial(ResourcesPlugin.class, "getWorkspace");
    ResourcesPlugin.getWorkspace();
    expectLastCall().andReturn(workspace).anyTimes();
    PowerMock.replay(ResourcesPlugin.class);

    return workspace;
  }
 
源代码11 项目: gama   文件: ResourceManager.java
public ResourceManager(final IResourceChangeListener delegate, final CommonViewer navigator) {
	this.viewer = navigator;
	viewer.addSelectionChangedListener(this);
	this.delegate = delegate;
	INSTANCE = this;
}