1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Give more flexibility in changing the behaviour

of the CElementLabelProvider.
This commit is contained in:
Alain Magloire 2004-02-02 17:06:59 +00:00
parent c017fa06af
commit 3a48d4c7c6
4 changed files with 99 additions and 58 deletions

View file

@ -1,3 +1,12 @@
2004-02-02 Alain Magloire
Dealing with PR 50792, give more flexibility in the behaviour
of CElementLabelProvider
* src/org/eclipse/cdt/internal/ui/StandardCElementLabelProvider.java
* src/org/eclipse/cdt/internal/ui/editor/CEditorErrorTickUpdater.java
* src/org/eclipse/cdt/ui/CElementLabelProvider.java
2004-01-29 Hoda Amer 2004-01-29 Hoda Amer
Tuning for the Completion Engine. Tuning for the Completion Engine.

View file

@ -16,18 +16,15 @@ import org.eclipse.jface.util.PropertyChangeEvent;
*/ */
public class StandardCElementLabelProvider extends CElementLabelProvider implements IPropertyChangeListener { public class StandardCElementLabelProvider extends CElementLabelProvider implements IPropertyChangeListener {
public final static int DEFAULT_TEXTFLAGS= 0; //CElementLabels.ROOT_VARIABLE | JavaElementLabels.M_PARAMETER_TYPES | JavaElementLabels.M_APP_RETURNTYPE; //public final static int DEFAULT_FLAGS = SHOW_OVERLAY_ICONS | SHOW_PARAMETERS;
public final static int DEFAULT_IMAGEFLAGS= CElementImageProvider.OVERLAY_ICONS; public final static int DEFAULT_FLAGS = SHOW_OVERLAY_ICONS ;
private int fTextFlagMask;
private int fImageFlagMask;
/** /**
* Constructor for StandardCElementLabelProvider. * Constructor for StandardCElementLabelProvider.
* @see CElementLabelProvider#CElementLabelProvider * @see CElementLabelProvider#CElementLabelProvider
*/ */
public StandardCElementLabelProvider(int textFlags, int imageFlags, IAdornmentProvider[] adormentProviders) { public StandardCElementLabelProvider(int flags, IAdornmentProvider[] adormentProviders) {
super(textFlags, imageFlags, adormentProviders); super(flags, adormentProviders);
initMasks(); initMasks();
CUIPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(this); CUIPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(this);
} }
@ -37,19 +34,11 @@ public class StandardCElementLabelProvider extends CElementLabelProvider impleme
* and the ErrorTickAdornmentProvider. * and the ErrorTickAdornmentProvider.
*/ */
public StandardCElementLabelProvider() { public StandardCElementLabelProvider() {
this(DEFAULT_TEXTFLAGS, DEFAULT_IMAGEFLAGS, new IAdornmentProvider[] { new ErrorTickAdornmentProvider() }); this(DEFAULT_FLAGS, new IAdornmentProvider[] { new ErrorTickAdornmentProvider() });
} }
private void initMasks() { private void initMasks() {
fTextFlagMask= -1; // turn on or off the flags depending on property/preference changes.
/* if (!AppearancePreferencePage.showMethodReturnType()) {
fTextFlagMask ^= JavaElementLabels.M_APP_RETURNTYPE;
}
if (!AppearancePreferencePage.isCompressingPkgNameInPackagesView()) {
fTextFlagMask ^= JavaElementLabels.P_COMPRESSED;
} */
fImageFlagMask= -1;
} }
/* /*
@ -74,18 +63,4 @@ public class StandardCElementLabelProvider extends CElementLabelProvider impleme
super.dispose(); super.dispose();
} }
/*
* @see JavaUILabelProvider#getImageFlags()
*/
public int getImageFlags() {
return super.getImageFlags() & fImageFlagMask;
}
/*
* @see JavaUILabelProvider#getTextFlags()
*/
public int getTextFlags() {
return super.getTextFlags() & fTextFlagMask;
}
} }

View file

@ -5,16 +5,13 @@ package org.eclipse.cdt.internal.ui.editor;
* All Rights Reserved. * All Rights Reserved.
*/ */
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.cdt.core.model.ICElement; import org.eclipse.cdt.core.model.ICElement;
import org.eclipse.cdt.internal.ui.CElementImageProvider;
import org.eclipse.cdt.ui.CElementLabelProvider; import org.eclipse.cdt.ui.CElementLabelProvider;
import org.eclipse.jface.text.source.IAnnotationModel; import org.eclipse.jface.text.source.IAnnotationModel;
import org.eclipse.jface.text.source.IAnnotationModelListener; import org.eclipse.jface.text.source.IAnnotationModelListener;
import org.eclipse.jface.util.Assert; import org.eclipse.jface.util.Assert;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorInput;
/** /**
@ -46,7 +43,7 @@ public class CEditorErrorTickUpdater implements IAnnotationModelListener {
if (model != null) { if (model != null) {
if (fLabelProvider == null) { if (fLabelProvider == null) {
fLabelProvider= new CElementLabelProvider(0, CElementImageProvider.SMALL_ICONS, CElementLabelProvider.getAdornmentProviders(true, null)); fLabelProvider= new CElementLabelProvider(CElementLabelProvider.SHOW_SMALL_ICONS, CElementLabelProvider.getAdornmentProviders(true, null));
} }
fAnnotationModel=model; fAnnotationModel=model;
fAnnotationModel.addAnnotationModelListener(this); fAnnotationModel.addAnnotationModelListener(this);

View file

@ -15,6 +15,7 @@ import org.eclipse.cdt.core.model.IVariableDeclaration;
import org.eclipse.cdt.internal.ui.CElementImageProvider; import org.eclipse.cdt.internal.ui.CElementImageProvider;
import org.eclipse.cdt.internal.ui.ErrorTickAdornmentProvider; import org.eclipse.cdt.internal.ui.ErrorTickAdornmentProvider;
import org.eclipse.cdt.internal.ui.IAdornmentProvider; import org.eclipse.cdt.internal.ui.IAdornmentProvider;
import org.eclipse.cdt.internal.ui.search.CElementLabels;
import org.eclipse.jface.resource.ImageRegistry; import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Image;
@ -25,33 +26,69 @@ import org.eclipse.ui.model.WorkbenchLabelProvider;
*/ */
public class CElementLabelProvider extends LabelProvider { public class CElementLabelProvider extends LabelProvider {
/**
* Flag (bit mask) indicating that methods labels include the method return type. (appended)
*/
public final static int SHOW_RETURN_TYPE = 0x001;
/**
* Flag (bit mask) indicating that method label include method parameter types.
*/
public final static int SHOW_PARAMETERS = 0x002;
/**
* Flag (bit mask) indicating that method label include thrown exception.
*/
public final static int SHOW_EXCEPTION = 0x004;
/**
* Flag (bit mask) indicating that the label should show the icons with no space
* reserved for overlays.
*/
public final static int SHOW_SMALL_ICONS = 0x100;
/**
* Flag (bit mask) indicating that the label should include overlay icons
* for element type and modifiers.
*/
public final static int SHOW_OVERLAY_ICONS = 0x010;
/**
* Constant indicating the default label rendering.
* Currently the default is equivalent to
* <code>SHOW_PARAMETERS | SHOW_OVERLAY_ICONS</code>.
*/
public final static int SHOW_DEFAULT= new Integer(SHOW_PARAMETERS | SHOW_OVERLAY_ICONS).intValue();
private ImageRegistry fImageRegistry; private ImageRegistry fImageRegistry;
private WorkbenchLabelProvider fWorkbenchLabelProvider; private WorkbenchLabelProvider fWorkbenchLabelProvider;
private CElementImageProvider fImageLabelProvider; private CElementImageProvider fImageLabelProvider;
private IAdornmentProvider[] fAdornmentProviders; private IAdornmentProvider[] fAdornmentProviders;
private int fFlags;
private int fImageFlags; private int fImageFlags;
private int fTextFlags; private int fTextFlags;
public CElementLabelProvider() { public CElementLabelProvider() {
this(0 /* CElementLabels.M_PARAMETER_TYPES */, CElementImageProvider.OVERLAY_ICONS, null); this(SHOW_DEFAULT);
}
public CElementLabelProvider(int flags) {
this(flags, null);
} }
/** /**
* @param textFlags Flags defined in <code>JavaElementLabels</code>. * @param textFlags Flags defined in <code>CElementLabels</code>.
* @param imageFlags Flags defined in <code>JavaElementImageProvider</code>. * @param imageFlags Flags defined in <code>CElementImageProvider</code>.
*/ */
public CElementLabelProvider(int textFlags, int imageFlags, IAdornmentProvider[] adormentProviders) { public CElementLabelProvider(int flags, IAdornmentProvider[] adormentProviders) {
fImageRegistry= CUIPlugin.getDefault().getImageRegistry(); fImageRegistry= CUIPlugin.getDefault().getImageRegistry();
fWorkbenchLabelProvider= new WorkbenchLabelProvider(); fWorkbenchLabelProvider= new WorkbenchLabelProvider();
fImageLabelProvider= new CElementImageProvider(); fImageLabelProvider= new CElementImageProvider();
fAdornmentProviders= adormentProviders; fAdornmentProviders= adormentProviders;
fImageFlags= imageFlags; fFlags = flags;
fTextFlags= textFlags;
} }
/** /**
@ -173,20 +210,26 @@ public class CElementLabelProvider extends LabelProvider {
} }
} }
/** private boolean getFlag(int flag) {
* Sets the textFlags. return (fFlags & flag) != 0;
* @param textFlags The textFlags to set
*/
public void setTextFlags(int textFlags) {
fTextFlags= textFlags;
} }
/** /**
* Sets the imageFlags * Turns on the rendering options specified in the given flags.
* @param imageFlags The imageFlags to set *
* @param flags the options; a bitwise OR of <code>SHOW_* </code> constants
*/ */
public void setImageFlags(int imageFlags) { public void turnOn(int flags) {
fImageFlags= imageFlags; fFlags |= flags;
}
/**
* Turns off the rendering options specified in the given flags.
*
* @param flags the initial options; a bitwise OR of <code>SHOW_* </code> constants
*/
public void turnOff(int flags) {
fFlags &= (~flags);
} }
/** /**
@ -195,6 +238,13 @@ public class CElementLabelProvider extends LabelProvider {
* @return Returns a int * @return Returns a int
*/ */
public int getImageFlags() { public int getImageFlags() {
fImageFlags = 0;
if (getFlag(SHOW_OVERLAY_ICONS)) {
fImageFlags |= CElementImageProvider.OVERLAY_ICONS;
}
if (getFlag(SHOW_SMALL_ICONS)) {
fImageFlags |= CElementImageProvider.SMALL_ICONS;
}
return fImageFlags; return fImageFlags;
} }
@ -203,6 +253,16 @@ public class CElementLabelProvider extends LabelProvider {
* @return Returns a int * @return Returns a int
*/ */
public int getTextFlags() { public int getTextFlags() {
fTextFlags = 0;
if (getFlag(SHOW_RETURN_TYPE)) {
fTextFlags |= CElementLabels.M_APP_RETURNTYPE;
}
if (getFlag(SHOW_PARAMETERS)) {
fTextFlags |= CElementLabels.M_PARAMETER_TYPES;
}
if (getFlag(SHOW_EXCEPTION)) {
fTextFlags |= CElementLabels.M_EXCEPTIONS;
}
return fTextFlags; return fTextFlags;
} }