X-Git-Url: http://secure.phpeclipse.com
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/viewsupport/ResourceToItemsMapper.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/viewsupport/ResourceToItemsMapper.java
index ee58b89..dba7cae 100644
--- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/viewsupport/ResourceToItemsMapper.java
+++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/viewsupport/ResourceToItemsMapper.java
@@ -15,72 +15,74 @@ import java.util.HashMap;
import java.util.List;
import java.util.Stack;
-import org.eclipse.core.resources.IResource;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Item;
+import net.sourceforge.phpdt.core.ICompilationUnit;
+import net.sourceforge.phpdt.core.IJavaElement;
+import org.eclipse.core.resources.IResource;
import org.eclipse.jface.viewers.ContentViewer;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.IViewerLabelProvider;
import org.eclipse.jface.viewers.ViewerLabel;
-
-import net.sourceforge.phpdt.core.ICompilationUnit;
-import net.sourceforge.phpdt.core.IJavaElement;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Item;
/**
- * Helper class for updating error markers and other decorators that work on resources.
- * Items are mapped to their element's underlying resource.
- * Method resourceChanged
updates all items that are affected from the changed
- * elements.
+ * Helper class for updating error markers and other decorators that work on
+ * resources. Items are mapped to their element's underlying resource. Method
+ * resourceChanged
updates all items that are affected from the
+ * changed elements.
*/
public class ResourceToItemsMapper {
- private static final int NUMBER_LIST_REUSE= 10;
+ private static final int NUMBER_LIST_REUSE = 10;
// map from resource to item
private HashMap fResourceToItem;
+
private Stack fReuseLists;
-
+
private ContentViewer fContentViewer;
public ResourceToItemsMapper(ContentViewer viewer) {
- fResourceToItem= new HashMap();
- fReuseLists= new Stack();
-
- fContentViewer= viewer;
+ fResourceToItem = new HashMap();
+ fReuseLists = new Stack();
+
+ fContentViewer = viewer;
}
/**
* Must be called from the UI thread.
*/
public void resourceChanged(IResource changedResource) {
- Object obj= fResourceToItem.get(changedResource);
+ Object obj = fResourceToItem.get(changedResource);
if (obj == null) {
// not mapped
} else if (obj instanceof Item) {
updateItem((Item) obj);
} else { // List of Items
- List list= (List) obj;
- for (int k= 0; k < list.size(); k++) {
+ List list = (List) obj;
+ for (int k = 0; k < list.size(); k++) {
updateItem((Item) list.get(k));
}
}
}
-
+
private void updateItem(Item item) {
if (!item.isDisposed()) { // defensive code
- ILabelProvider lprovider= (ILabelProvider) fContentViewer.getLabelProvider();
-
- Object data= item.getData();
-
- // If it is an IItemLabelProvider than short circuit: patch Tod (bug 55012)
+ ILabelProvider lprovider = (ILabelProvider) fContentViewer
+ .getLabelProvider();
+
+ Object data = item.getData();
+
+ // If it is an IItemLabelProvider than short circuit: patch Tod (bug
+ // 55012)
if (lprovider instanceof IViewerLabelProvider) {
- IViewerLabelProvider provider= (IViewerLabelProvider) lprovider;
-
- ViewerLabel updateLabel= new ViewerLabel(item.getText(), item.getImage());
+ IViewerLabelProvider provider = (IViewerLabelProvider) lprovider;
+
+ ViewerLabel updateLabel = new ViewerLabel(item.getText(), item
+ .getImage());
provider.updateLabel(updateLabel, data);
-
+
if (updateLabel.hasNewImage()) {
item.setImage(updateLabel.getImage());
}
@@ -88,13 +90,13 @@ public class ResourceToItemsMapper {
item.setText(updateLabel.getText());
}
} else {
- Image oldImage= item.getImage();
- Image image= lprovider.getImage(data);
+ Image oldImage = item.getImage();
+ Image image = lprovider.getImage(data);
if (image != null && !image.equals(oldImage)) {
item.setImage(image);
}
- String oldText= item.getText();
- String text= lprovider.getText(data);
+ String oldText = item.getText();
+ String text = lprovider.getText(data);
if (text != null && !text.equals(oldText)) {
item.setText(text);
}
@@ -104,24 +106,27 @@ public class ResourceToItemsMapper {
/**
* Adds a new item to the map.
- * @param element Element to map
- * @param item The item used for the element
+ *
+ * @param element
+ * Element to map
+ * @param item
+ * The item used for the element
*/
public void addToMap(Object element, Item item) {
- IResource resource= getCorrespondingResource(element);
+ IResource resource = getCorrespondingResource(element);
if (resource != null) {
- Object existingMapping= fResourceToItem.get(resource);
+ Object existingMapping = fResourceToItem.get(resource);
if (existingMapping == null) {
fResourceToItem.put(resource, item);
} else if (existingMapping instanceof Item) {
if (existingMapping != item) {
- List list= getNewList();
+ List list = getNewList();
list.add(existingMapping);
list.add(item);
fResourceToItem.put(resource, list);
}
- } else { // List
- List list= (List) existingMapping;
+ } else { // List
+ List list = (List) existingMapping;
if (!list.contains(item)) {
list.add(item);
}
@@ -131,17 +136,17 @@ public class ResourceToItemsMapper {
/**
* Removes an element from the map.
- */
+ */
public void removeFromMap(Object element, Item item) {
- IResource resource= getCorrespondingResource(element);
+ IResource resource = getCorrespondingResource(element);
if (resource != null) {
- Object existingMapping= fResourceToItem.get(resource);
+ Object existingMapping = fResourceToItem.get(resource);
if (existingMapping == null) {
return;
} else if (existingMapping instanceof Item) {
fResourceToItem.remove(resource);
} else { // List
- List list= (List) existingMapping;
+ List list = (List) existingMapping;
list.remove(item);
if (list.isEmpty()) {
fResourceToItem.remove(list);
@@ -150,51 +155,54 @@ public class ResourceToItemsMapper {
}
}
}
-
+
private List getNewList() {
if (!fReuseLists.isEmpty()) {
return (List) fReuseLists.pop();
}
return new ArrayList(2);
}
-
+
private void releaseList(List list) {
if (fReuseLists.size() < NUMBER_LIST_REUSE) {
fReuseLists.push(list);
}
}
-
+
/**
* Clears the map.
*/
public void clearMap() {
fResourceToItem.clear();
}
-
+
/**
* Tests if the map is empty
*/
public boolean isEmpty() {
return fResourceToItem.isEmpty();
- }
-
+ }
+
/**
- * Method that decides which elements can have error markers
- * Returns null if an element can not have error markers.
- */
+ * Method that decides which elements can have error markers Returns null if
+ * an element can not have error markers.
+ */
private static IResource getCorrespondingResource(Object element) {
if (element instanceof IJavaElement) {
- IJavaElement elem= (IJavaElement) element;
- if (!elem.isReadOnly()) { // only modifieable elements can get error ticks
- IResource res= elem.getResource();
+ IJavaElement elem = (IJavaElement) element;
+ if (!elem.isReadOnly()) { // only modifieable elements can get
+ // error ticks
+ IResource res = elem.getResource();
if (res == null) {
- ICompilationUnit cu= (ICompilationUnit) elem.getAncestor(IJavaElement.COMPILATION_UNIT);
+ ICompilationUnit cu = (ICompilationUnit) elem
+ .getAncestor(IJavaElement.COMPILATION_UNIT);
if (cu != null) {
- // elements in compilation units are mapped to the underlying resource of the original cu
- res= cu.getResource();
+ // elements in compilation units are mapped to the
+ // underlying resource of the original cu
+ res = cu.getResource();
}
}
- return res;
+ return res;
}
return null;
} else if (element instanceof IResource) {
@@ -202,5 +210,5 @@ public class ResourceToItemsMapper {
}
return null;
}
-
+
}