Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
NPE on startup with Eclipse 4.5 M7 (JDT switched from gif to png)
- Loading branch information
1 parent
1a043b9
commit 417a39c
Showing
2 changed files
with
105 additions
and
113 deletions.
There are no files selected for viewing
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
218 changes: 105 additions & 113 deletions
218
DataHierarchy/src/de/loskutov/dh/views/ViewLabelProvider.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,113 +1,105 @@ | ||
/******************************************************************************* | ||
* Copyright (c) 2009 - 2015 Andrey Loskutov. | ||
* All rights reserved. This program and the accompanying materials | ||
* are made available under the terms of the Eclipse Public License v1.0 | ||
* which accompanies this distribution, and is available at | ||
* http://www.eclipse.org/legal/epl-v10.html | ||
* Contributor: Andrey Loskutov - initial API and implementation | ||
*******************************************************************************/ | ||
|
||
package de.loskutov.dh.views; | ||
|
||
import java.io.IOException; | ||
import java.net.URL; | ||
|
||
import org.eclipse.core.resources.IResource; | ||
import org.eclipse.core.runtime.FileLocator; | ||
import org.eclipse.jdt.core.IJavaElement; | ||
import org.eclipse.jdt.core.JavaCore; | ||
import org.eclipse.jdt.internal.ui.JavaPluginImages; | ||
import org.eclipse.jdt.internal.ui.viewsupport.JavaElementImageProvider; | ||
import org.eclipse.jdt.ui.ISharedImages; | ||
import org.eclipse.jdt.ui.JavaElementImageDescriptor; | ||
import org.eclipse.jdt.ui.JavaElementLabelProvider; | ||
import org.eclipse.jdt.ui.JavaElementLabels; | ||
import org.eclipse.jdt.ui.JavaUI; | ||
import org.eclipse.jface.resource.ImageDescriptor; | ||
import org.eclipse.swt.graphics.Image; | ||
|
||
import de.loskutov.dh.DataHierarchyPlugin; | ||
import de.loskutov.dh.tree.TreeElement; | ||
|
||
class ViewLabelProvider extends JavaElementLabelProvider { | ||
private static final String OCC_MATCH_ICON = "platform:/plugin/org.eclipse.jdt.ui/icons/full/obj16/occ_match.gif"; | ||
|
||
ISharedImages sharedImages = JavaUI.getSharedImages(); | ||
|
||
static Image referencesIcon; | ||
static { | ||
try { | ||
URL url = FileLocator.resolve(new URL(OCC_MATCH_ICON)); | ||
ImageDescriptor imd = ImageDescriptor.createFromURL(url); | ||
JavaElementImageDescriptor jDescr = new JavaElementImageDescriptor(imd, 0, | ||
JavaElementImageProvider.BIG_SIZE); | ||
referencesIcon = jDescr.createImage(true); | ||
} catch (IOException e) { | ||
DataHierarchyPlugin.logError("resolve() failed for icon: " + OCC_MATCH_ICON, e); | ||
} | ||
} | ||
|
||
public ViewLabelProvider() { | ||
super(SHOW_POST_QUALIFIED | SHOW_OVERLAY_ICONS | SHOW_PARAMETERS |SHOW_TYPE); | ||
} | ||
|
||
@Override | ||
public String getText(Object obj) { | ||
if (obj instanceof TreeElement<?, ?>) { | ||
TreeElement<?, ?> element = (TreeElement<?, ?>) obj; | ||
return element.getName(); | ||
} | ||
return super.getText(obj); | ||
} | ||
|
||
public String getDecription(Object obj) { | ||
return getDecription(obj, JavaElementLabels.ALL_FULLY_QUALIFIED | ||
| JavaElementLabels.APPEND_ROOT_PATH); | ||
} | ||
|
||
public String getDecription(Object obj, long flags) { | ||
if (obj instanceof TreeElement<?, ?>) { | ||
TreeElement<?, ?> element = (TreeElement<?, ?>) obj; | ||
Object data = element.getData(); | ||
if (data instanceof IJavaElement) { | ||
return JavaElementLabels.getElementLabel((IJavaElement) data, flags); | ||
} | ||
if (data instanceof IResource) { | ||
IJavaElement javaElt = JavaCore.create((IResource) data); | ||
if (javaElt != null) { | ||
return JavaElementLabels.getElementLabel(javaElt, flags); | ||
} | ||
} | ||
} | ||
return getText(obj); | ||
} | ||
|
||
@Override | ||
public Image getImage(Object obj) { | ||
|
||
if (obj instanceof TreeElement<?, ?>) { | ||
TreeElement<?, ?> element = (TreeElement<?, ?>) obj; | ||
if (element.isVirtual() && element.getParent() == null) { | ||
if (referencesIcon != null) { | ||
return referencesIcon; | ||
} | ||
return sharedImages.getImage(JavaPluginImages.IMG_OBJS_SEARCH_REF); | ||
} | ||
|
||
Object data = element.getData(); | ||
if (data instanceof IJavaElement) { | ||
return super.getImage(data); | ||
} | ||
if (data instanceof IResource) { | ||
IJavaElement javaElt = JavaCore.create((IResource) data); | ||
if (javaElt != null) { | ||
return super.getImage(javaElt); | ||
} | ||
} | ||
} | ||
// return | ||
// WorkbenchLabelProvider.getDecoratingWorkbenchLabelProvider().getImage | ||
// (obj); | ||
return super.getImage(obj); | ||
} | ||
} | ||
/******************************************************************************* | ||
* Copyright (c) 2009 - 2015 Andrey Loskutov. | ||
* All rights reserved. This program and the accompanying materials | ||
* are made available under the terms of the Eclipse Public License v1.0 | ||
* which accompanies this distribution, and is available at | ||
* http://www.eclipse.org/legal/epl-v10.html | ||
* Contributor: Andrey Loskutov - initial API and implementation | ||
*******************************************************************************/ | ||
|
||
package de.loskutov.dh.views; | ||
|
||
import org.eclipse.core.resources.IResource; | ||
import org.eclipse.jdt.core.IJavaElement; | ||
import org.eclipse.jdt.core.JavaCore; | ||
import org.eclipse.jdt.internal.ui.JavaPluginImages; | ||
import org.eclipse.jdt.internal.ui.viewsupport.JavaElementImageProvider; | ||
import org.eclipse.jdt.ui.ISharedImages; | ||
import org.eclipse.jdt.ui.JavaElementImageDescriptor; | ||
import org.eclipse.jdt.ui.JavaElementLabelProvider; | ||
import org.eclipse.jdt.ui.JavaElementLabels; | ||
import org.eclipse.jdt.ui.JavaUI; | ||
import org.eclipse.jface.resource.ImageDescriptor; | ||
import org.eclipse.swt.graphics.Image; | ||
|
||
import de.loskutov.dh.DataHierarchyPlugin; | ||
import de.loskutov.dh.tree.TreeElement; | ||
|
||
class ViewLabelProvider extends JavaElementLabelProvider { | ||
|
||
ISharedImages sharedImages = JavaUI.getSharedImages(); | ||
|
||
static Image referencesIcon; | ||
static { | ||
ImageDescriptor imd = DataHierarchyPlugin.getImageDescriptor("$nl$/icons/obj16/occ_match.png"); | ||
if(imd != null){ | ||
JavaElementImageDescriptor jDescr = new JavaElementImageDescriptor(imd, 0, | ||
JavaElementImageProvider.BIG_SIZE); | ||
referencesIcon = jDescr.createImage(true); | ||
} | ||
} | ||
|
||
public ViewLabelProvider() { | ||
super(SHOW_POST_QUALIFIED | SHOW_OVERLAY_ICONS | SHOW_PARAMETERS |SHOW_TYPE); | ||
} | ||
|
||
@Override | ||
public String getText(Object obj) { | ||
if (obj instanceof TreeElement<?, ?>) { | ||
TreeElement<?, ?> element = (TreeElement<?, ?>) obj; | ||
return element.getName(); | ||
} | ||
return super.getText(obj); | ||
} | ||
|
||
public String getDecription(Object obj) { | ||
return getDecription(obj, JavaElementLabels.ALL_FULLY_QUALIFIED | ||
| JavaElementLabels.APPEND_ROOT_PATH); | ||
} | ||
|
||
public String getDecription(Object obj, long flags) { | ||
if (obj instanceof TreeElement<?, ?>) { | ||
TreeElement<?, ?> element = (TreeElement<?, ?>) obj; | ||
Object data = element.getData(); | ||
if (data instanceof IJavaElement) { | ||
return JavaElementLabels.getElementLabel((IJavaElement) data, flags); | ||
} | ||
if (data instanceof IResource) { | ||
IJavaElement javaElt = JavaCore.create((IResource) data); | ||
if (javaElt != null) { | ||
return JavaElementLabels.getElementLabel(javaElt, flags); | ||
} | ||
} | ||
} | ||
return getText(obj); | ||
} | ||
|
||
@Override | ||
public Image getImage(Object obj) { | ||
|
||
if (obj instanceof TreeElement<?, ?>) { | ||
TreeElement<?, ?> element = (TreeElement<?, ?>) obj; | ||
if (element.isVirtual() && element.getParent() == null) { | ||
if (referencesIcon != null) { | ||
return referencesIcon; | ||
} | ||
return sharedImages.getImage(JavaPluginImages.IMG_OBJS_SEARCH_REF); | ||
} | ||
|
||
Object data = element.getData(); | ||
if (data instanceof IJavaElement) { | ||
return super.getImage(data); | ||
} | ||
if (data instanceof IResource) { | ||
IJavaElement javaElt = JavaCore.create((IResource) data); | ||
if (javaElt != null) { | ||
return super.getImage(javaElt); | ||
} | ||
} | ||
} | ||
// return | ||
// WorkbenchLabelProvider.getDecoratingWorkbenchLabelProvider().getImage | ||
// (obj); | ||
return super.getImage(obj); | ||
} | ||
} |