mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
fixed event problem
This commit is contained in:
parent
310112d6cd
commit
9ae54e47ff
3 changed files with 44 additions and 14 deletions
|
@ -1,3 +1,10 @@
|
|||
2004-04-07 David Inglis
|
||||
|
||||
Fixed event problem
|
||||
|
||||
* src/org/eclipse/cdt/core/CDescriptorEvent.java
|
||||
* src/org/eclipse/cdt/internal/core/CDescriptorManager.java
|
||||
|
||||
2004-04-07 Alain Magloire
|
||||
|
||||
Using a complete parser is to heavy for the typeInfo
|
||||
|
|
|
@ -12,17 +12,17 @@ package org.eclipse.cdt.core;
|
|||
import java.util.EventObject;
|
||||
|
||||
public class CDescriptorEvent extends EventObject {
|
||||
|
||||
|
||||
public static final int CDTPROJECT_CHANGED = 1;
|
||||
public static final int CDTPROJECT_ADDED = 2;
|
||||
public static final int CDTPROJECT_REMOVED = 3;
|
||||
|
||||
|
||||
public static final int OWNER_CHANGED = 0x10;
|
||||
public static final int EXTENSION_CHANGED = 0x20;
|
||||
|
||||
private static final int FLAGS_MASK = 0xf;
|
||||
|
||||
private int fType;
|
||||
|
||||
int fType;
|
||||
|
||||
public CDescriptorEvent(ICDescriptor descriptor, int type, int flags) {
|
||||
super(descriptor);
|
||||
|
@ -32,12 +32,37 @@ public class CDescriptorEvent extends EventObject {
|
|||
public ICDescriptor getDescriptor() {
|
||||
return (ICDescriptor) getSource();
|
||||
}
|
||||
|
||||
|
||||
public int getType() {
|
||||
return fType & FLAGS_MASK;
|
||||
}
|
||||
|
||||
|
||||
public int getFlags() {
|
||||
return fType & ~FLAGS_MASK;
|
||||
}
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuffer buf = new StringBuffer();
|
||||
switch (getType()) {
|
||||
case CDTPROJECT_ADDED :
|
||||
buf.append("CDTPROJECT_ADDED"); //$NON-NLS-1$
|
||||
break;
|
||||
case CDTPROJECT_REMOVED :
|
||||
buf.append("CDTPROJECT_REMOVED"); //$NON-NLS-1$
|
||||
break;
|
||||
case CDTPROJECT_CHANGED :
|
||||
buf.append("CDTPROJECT_CHANGED"); //$NON-NLS-1$
|
||||
break;
|
||||
}
|
||||
if ( (getFlags() & OWNER_CHANGED) != 0 ) {
|
||||
buf.append("[OWNER CHANGED]"); //$NON-NLS-1$
|
||||
}
|
||||
if ( (getFlags() & EXTENSION_CHANGED) != 0 ) {
|
||||
buf.append("[EXTENSION CHANGED]"); //$NON-NLS-1$
|
||||
}
|
||||
if (getFlags() == 0) {
|
||||
buf.append("[UNSPECIFIED]"); //$NON-NLS-1$
|
||||
}
|
||||
return buf.toString();
|
||||
}
|
||||
}
|
|
@ -304,18 +304,16 @@ public class CDescriptorManager implements ICDescriptorManager, IResourceChangeL
|
|||
// OWNER_CHANGED
|
||||
// EXT_CHANGED
|
||||
// other
|
||||
if (event.getType() != CDescriptorEvent.CDTPROJECT_ADDED) {
|
||||
if (event.getType() == CDescriptorEvent.CDTPROJECT_ADDED) {
|
||||
fOperationMap.put(event.getDescriptor(), event);
|
||||
} else if (event.getType() == CDescriptorEvent.CDTPROJECT_REMOVED) {
|
||||
fOperationMap.put(event.getDescriptor(), event);
|
||||
} else {
|
||||
CDescriptorEvent ev = (CDescriptorEvent) fOperationMap.get(event.getDescriptor());
|
||||
if (ev.getType() == CDescriptorEvent.CDTPROJECT_CHANGED) {
|
||||
if (ev.getFlags() == 0) {
|
||||
fOperationMap.put(event.getDescriptor(), event);
|
||||
} else if (ev.getFlags() != CDescriptorEvent.OWNER_CHANGED) {
|
||||
fOperationMap.put(event.getDescriptor(), event);
|
||||
}
|
||||
if ( ev == null) {
|
||||
fOperationMap.put(event.getDescriptor(), event);
|
||||
} else if ((ev.getFlags() & event.getFlags()) != event.getFlags()) {
|
||||
fOperationMap.put(event.getDescriptor(), new CDescriptorEvent(event.getDescriptor(), event.getType(), ev.getFlags() | event.getFlags()));
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
|
Loading…
Add table
Reference in a new issue