Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import java.util.HashMap;
import java.util.Map;

import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.jobs.ISchedulingRule;
Expand Down Expand Up @@ -55,7 +56,7 @@
*/
public class JavaVariableLabelProvider extends VariableLabelProvider implements IPreferenceChangeListener {

private final static JDIModelPresentation fLabelProvider = new JDIModelPresentation();
private static JDIModelPresentation fLabelProvider = new JDIModelPresentation();

/**
* Map of view id to qualified name setting
Expand All @@ -80,20 +81,14 @@ public JavaVariableLabelProvider() {
}
}

/* (non-Javadoc)
* @see org.eclipse.debug.internal.ui.elements.adapters.VariableLabelAdapter#getValueText(org.eclipse.debug.core.model.IVariable, org.eclipse.debug.core.model.IValue)
*/
@Override
protected String getValueText(IVariable variable, IValue value, IPresentationContext context) throws CoreException {
if (value instanceof IJavaValue) {
return fLabelProvider.getFormattedValueText((IJavaValue) value);
if (value instanceof IJavaValue javaValue) {
return fLabelProvider.getFormattedValueText(javaValue);
}
return super.getValueText(variable, value, context);
}

/* (non-Javadoc)
* @see org.eclipse.debug.internal.ui.elements.adapters.VariableLabelAdapter#getValueTypeName(org.eclipse.debug.core.model.IVariable, org.eclipse.debug.core.model.IValue)
*/
@Override
protected String getValueTypeName(IVariable variable, IValue value, IPresentationContext context) throws CoreException {
String typeName= DebugUIMessages.JDIModelPresentation_unknown_type__2;
Expand All @@ -113,19 +108,15 @@ protected FontData getFontData(TreePath elementPath, IPresentationContext presen
return result;
}
var element = elementPath.getLastSegment();
if (element instanceof IJavaVariable) {
var variable = (IJavaVariable) element;
if (element instanceof IJavaVariable variable) {
var value = variable.getValue();
if (value instanceof IJavaObject && ((IJavaObject) value).getLabel() != null) {
if (value instanceof IJavaObject javaObject && javaObject.getLabel() != null) {
return new FontData(result.getName(), result.getHeight(), result.getStyle() ^ SWT.BOLD);
}
}
return result;
}

/* (non-Javadoc)
* @see org.eclipse.debug.internal.ui.elements.adapters.VariableLabelAdapter#getVariableTypeName(org.eclipse.debug.core.model.IVariable)
*/
@Override
protected String getVariableTypeName(IVariable variable, IPresentationContext context) throws CoreException {
String typeName= DebugUIMessages.JDIModelPresentation_unknown_type__2;
Expand All @@ -142,7 +133,7 @@ protected String getVariableTypeName(IVariable variable, IPresentationContext co
* Returns if the the specified presentation context is showing qualified names or not
* @return true if the presentation context is showing qualified names, false otherwise
*/
private Boolean isShowQualfiiedNames(IPresentationContext context) {
private Boolean isShowQualifiedNames(IPresentationContext context) {
Boolean qualified = fQualifiedNameSettings.get(context.getId());
if (qualified == null) {
qualified = Boolean.valueOf(Platform.getPreferencesService().getBoolean(
Expand All @@ -155,14 +146,11 @@ private Boolean isShowQualfiiedNames(IPresentationContext context) {
return qualified;
}

/* (non-Javadoc)
* @see org.eclipse.debug.internal.ui.elements.adapters.VariableLabelAdapter#getColumnText(org.eclipse.debug.core.model.IVariable, org.eclipse.debug.core.model.IValue, java.lang.String, org.eclipse.debug.internal.ui.viewers.provisional.IPresentationContext)
*/
@Override
protected String getColumnText(IVariable variable, IValue value, IPresentationContext context, String columnId) throws CoreException {
if (JavaVariableColumnPresentation.COLUMN_INSTANCE_ID.equals(columnId)) {
if (value instanceof JDIObjectValue) {
long uniqueId = ((JDIObjectValue)value).getUniqueId();
if (value instanceof JDIObjectValue objectValue) {
long uniqueId = objectValue.getUniqueId();
if (uniqueId >= 0) {
StringBuilder buffer = new StringBuilder();
buffer.append(uniqueId);
Expand All @@ -172,28 +160,26 @@ protected String getColumnText(IVariable variable, IValue value, IPresentationCo
return ""; //$NON-NLS-1$
}
if (JavaVariableColumnPresentation.COLUMN_INSTANCE_COUNT.equals(columnId)) {
if (value instanceof IJavaObject) {
IJavaType jType = ((IJavaObject)value).getJavaType();
if (jType == null && variable instanceof IJavaVariable) {
jType = ((IJavaVariable)variable).getJavaType();
if (value instanceof IJavaObject javaObject) {
IJavaType jType = javaObject.getJavaType();
if (jType == null && variable instanceof IJavaVariable javaVariable) {
jType = javaVariable.getJavaType();
}
if (jType instanceof IJavaReferenceType) {
if (!(jType instanceof IJavaInterfaceType)) {
long count = ((IJavaReferenceType)jType).getInstanceCount();
if (count == -1) {
return DebugUIMessages.JavaVariableLabelProvider_0;
}
StringBuilder buffer = new StringBuilder();
buffer.append(count);
return buffer.toString();
if (jType instanceof IJavaReferenceType refType && !(jType instanceof IJavaInterfaceType)) {
long count = refType.getInstanceCount();
if (count == -1) {
return DebugUIMessages.JavaVariableLabelProvider_0;
}
StringBuilder buffer = new StringBuilder();
buffer.append(count);
return buffer.toString();
}
}
return ""; //$NON-NLS-1$
}
if (JavaVariableColumnPresentation.COLUMN_LABEL.equals(columnId)) {
if (value instanceof IJavaObject) {
String label = ((IJavaObject) value).getLabel();
if (value instanceof IJavaObject javaObject) {
String label = javaObject.getLabel();
if (label != null) {
return label;
}
Expand All @@ -208,7 +194,7 @@ protected String getColumnText(IVariable variable, IValue value, IPresentationCo
*/
@Override
protected void retrieveLabel(ILabelUpdate update) throws CoreException {
Boolean showQ = isShowQualfiiedNames(update.getPresentationContext());
Boolean showQ = isShowQualifiedNames(update.getPresentationContext());
fQualifiedNames = showQ.booleanValue();
fLabelProvider.setAttribute(JDIModelPresentation.DISPLAY_QUALIFIED_NAMES, showQ);
super.retrieveLabel(update);
Expand All @@ -229,9 +215,6 @@ private void determineSerializationMode(String value) {
}
}

/* (non-Javadoc)
* @see org.eclipse.debug.internal.ui.model.elements.VariableLabelProvider#getLabel(org.eclipse.jface.viewers.TreePath, org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext, java.lang.String)
*/
@Override
protected String getLabel(TreePath elementPath, IPresentationContext context, String columnId) throws CoreException {
if (columnId == null) {
Expand All @@ -244,9 +227,6 @@ protected String getLabel(TreePath elementPath, IPresentationContext context, St
return super.getLabel(elementPath, context, columnId);
}

/* (non-Javadoc)
* @see org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider#getRule(org.eclipse.debug.internal.ui.viewers.model.provisional.ILabelUpdate)
*/
@Override
protected ISchedulingRule getRule(ILabelUpdate update) {
IJavaStackFrame frame = null;
Expand All @@ -259,11 +239,11 @@ protected ISchedulingRule getRule(ILabelUpdate update) {
break;
case SERIALIZE_SOME:
Object element = update.getElement();
if (element instanceof IJavaVariable) {
if (element instanceof IJavaVariable javaVariable) {
try {
IValue value = ((IJavaVariable)element).getValue();
if (value instanceof IJavaValue) {
if (!fLabelProvider.isShowLabelDetails((IJavaValue)value)) {
IValue value = javaVariable.getValue();
if (value instanceof IJavaValue javaValue) {
if (!fLabelProvider.isShowLabelDetails(javaValue)) {
input = update.getViewerInput();
frame = (IJavaStackFrame) DebugPlugin.getAdapter(input, IJavaStackFrame.class);
}
Expand All @@ -279,9 +259,6 @@ protected ISchedulingRule getRule(ILabelUpdate update) {
return null;
}

/* (non-Javadoc)
* @see org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener#preferenceChange(org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent)
*/
@Override
public void preferenceChange(PreferenceChangeEvent event) {
if (event.getKey().endsWith(IJDIPreferencesConstants.PREF_SHOW_QUALIFIED_NAMES)) {
Expand All @@ -290,4 +267,22 @@ public void preferenceChange(PreferenceChangeEvent event) {
determineSerializationMode((String) event.getNewValue());
}
}

/**
* @return the model presentation used to display Java elements, never {@code null}
*/
protected static JDIModelPresentation getModelPresentation() {
return fLabelProvider;
}

/**
* Sets the model presentation used by this label provider to the specified object.
*
* @param presentation
* the new presentation, may not be {@code null}
*/
protected static void setModelPresentation(final JDIModelPresentation presentation) {
Assert.isNotNull(presentation);
fLabelProvider = presentation;
}
}
Loading