From 41ac47d732eed8392d60d0f6773e5a279d49b999 Mon Sep 17 00:00:00 2001 From: Adrian Dudau Date: Thu, 12 Dec 2013 13:36:50 +0100 Subject: initial commit of Enea Linux 3.1 Migrated from the internal git server on the dora-enea branch Signed-off-by: Adrian Dudau --- .../org/yocto/bc/ui/BCResourceChangeListener.java | 64 ++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/BCResourceChangeListener.java (limited to 'plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/BCResourceChangeListener.java') diff --git a/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/BCResourceChangeListener.java b/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/BCResourceChangeListener.java new file mode 100644 index 0000000..8a2bfdd --- /dev/null +++ b/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/BCResourceChangeListener.java @@ -0,0 +1,64 @@ +package org.yocto.bc.ui; + +import java.util.HashSet; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResourceChangeEvent; +import org.eclipse.core.resources.IResourceChangeListener; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IResourceDelta; +import org.eclipse.core.resources.IResourceDeltaVisitor; +import org.eclipse.core.runtime.*; +import org.yocto.bc.ui.builder.BitbakeCommanderNature; + +public class BCResourceChangeListener implements IResourceChangeListener { + + public void resourceChanged(IResourceChangeEvent event) { + final HashSet removed = new HashSet(); + final HashSet changed = new HashSet(); + switch (event.getType()) { + case IResourceChangeEvent.POST_CHANGE: + try { + event.getDelta().accept(new IResourceDeltaVisitor() { + public boolean visit(IResourceDelta delta) throws CoreException { + IResource res = delta.getResource(); + Boolean visit= true; + if (res instanceof IProject) { + visit = false; + try { + if(((IProject) res).isOpen() && + ((IProject) res).hasNature(BitbakeCommanderNature.NATURE_ID)){ + visit = true; + } + }catch (CoreException e) { + } + } + if (visit && (res instanceof IFile)) + { + switch (delta.getKind()) { + case IResourceDelta.REMOVED: + removed.add(res); + break; + case IResourceDelta.CHANGED: + changed.add(res); + break; + } + } + return visit; // visit the children + } + }); + //notify all the sessions + Activator.notifyAllBBSession(null, + removed.toArray(new IResource[removed.size()]), + changed.toArray(new IResource[changed.size()])); + + }catch (CoreException e) { + e.printStackTrace(); + } + break; + default: + break; + } + } +} -- cgit v1.2.3-54-g00ecf