Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Bernard2014-11-13 17:27:35 +0000
committerSimon Bernard2015-04-16 14:33:50 +0000
commitd473c2a75363ace72dc833bf66e60655cebd286b (patch)
treec927c2683a7df58d5ceb622bcdbd7e2ffb4dc76f
parentcb64b0e8d9fb8f5554bd75488475e9f46df42ef8 (diff)
downloadorg.eclipse.dltk.core-d473c2a75363ace72dc833bf66e60655cebd286b.tar.gz
org.eclipse.dltk.core-d473c2a75363ace72dc833bf66e60655cebd286b.tar.xz
org.eclipse.dltk.core-d473c2a75363ace72dc833bf66e60655cebd286b.zip
bug 413346: [outline] Support StyledText in outline
Change-Id: Iaf43e167906724e0d86db4116a860b14921f4d25 Signed-off-by: Simon Bernard <sbernard@sierrawireless.com>
-rw-r--r--core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/ScriptOutlinePage.java4
-rw-r--r--core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/navigator/ScriptExplorerLabelProvider.java15
-rw-r--r--core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/scriptview/ScriptExplorerPart.java6
-rw-r--r--core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/typehierarchy/MethodsViewer.java5
-rw-r--r--core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/typehierarchy/TypeHierarchyViewer.java5
-rw-r--r--core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/wizards/buildpath/newsourcepage/DialogPackageExplorer.java4
-rw-r--r--core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/workingsets/ScriptWorkingSetPage.java7
-rw-r--r--core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/browsing/ScriptBrowsingPart.java20
-rw-r--r--core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/ScriptOutlineInformationControl.java4
-rw-r--r--core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/ScriptSourceViewerConfiguration.java2
-rw-r--r--core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/AbstractScriptCompletionProposal.java24
-rw-r--r--core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/ICompletionProposalLabelProviderExtension.java29
-rw-r--r--core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/LazyScriptCompletionProposal.java29
-rw-r--r--core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/ScriptCompletionProposal.java37
-rw-r--r--core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/ScriptCompletionProposalCollector.java169
-rw-r--r--core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/DecoratingModelLabelProvider.java3
-rw-r--r--core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/ScriptUILabelProvider.java68
-rw-r--r--core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/StyledDecoratingModelLabelProvider.java80
18 files changed, 427 insertions, 84 deletions
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/ScriptOutlinePage.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/ScriptOutlinePage.java
index fea3a000e..a2b4f8b50 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/ScriptOutlinePage.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/ScriptOutlinePage.java
@@ -49,9 +49,9 @@ import org.eclipse.dltk.ui.actions.MemberFilterActionGroup;
import org.eclipse.dltk.ui.actions.OpenViewActionGroup;
import org.eclipse.dltk.ui.actions.SearchActionGroup;
import org.eclipse.dltk.ui.viewsupport.AppearanceAwareLabelProvider;
-import org.eclipse.dltk.ui.viewsupport.DecoratingModelLabelProvider;
import org.eclipse.dltk.ui.viewsupport.SourcePositionSorter;
import org.eclipse.dltk.ui.viewsupport.StatusBarUpdater;
+import org.eclipse.dltk.ui.viewsupport.StyledDecoratingModelLabelProvider;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.GroupMarker;
import org.eclipse.jface.action.IAction;
@@ -673,7 +673,7 @@ public class ScriptOutlinePage extends Page implements IContentOutlinePage,
fOutlineViewer = new ScriptOutlineViewer(tree);
initDragAndDrop();
fOutlineViewer.setContentProvider(new ChildrenProvider());
- fOutlineViewer.setLabelProvider(new DecoratingModelLabelProvider(
+ fOutlineViewer.setLabelProvider(new StyledDecoratingModelLabelProvider(
lprovider));
Object[] listeners = fSelectionChangedListeners.getListeners();
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/navigator/ScriptExplorerLabelProvider.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/navigator/ScriptExplorerLabelProvider.java
index 5896189ba..fc5a4f223 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/navigator/ScriptExplorerLabelProvider.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/navigator/ScriptExplorerLabelProvider.java
@@ -23,6 +23,8 @@ import org.eclipse.dltk.ui.ScriptElementLabels;
import org.eclipse.dltk.ui.viewsupport.AppearanceAwareLabelProvider;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.StyledCellLabelProvider;
+import org.eclipse.jface.viewers.StyledString;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.IWorkingSet;
@@ -79,6 +81,19 @@ public class ScriptExplorerLabelProvider extends AppearanceAwareLabelProvider {
return super.getText(element);
}
+ public StyledString getStyledText(Object element) {
+ String text = getSpecificText(element);
+ if (text != null) {
+ String decorated = decorateText(text, element);
+ if (decorated != null) {
+ return StyledCellLabelProvider.styleDecoratedString(decorated,
+ StyledString.DECORATIONS_STYLER,
+ new StyledString(text));
+ }
+ }
+ return super.getStyledText(element);
+ }
+
private String getNameDelta(IScriptFolder parent, IScriptFolder fragment) {
String prefix = parent.getElementName()
+ IScriptFolder.PACKAGE_DELIMITER;
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/scriptview/ScriptExplorerPart.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/scriptview/ScriptExplorerPart.java
index 04b402786..e366637e1 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/scriptview/ScriptExplorerPart.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/scriptview/ScriptExplorerPart.java
@@ -59,11 +59,11 @@ import org.eclipse.dltk.ui.PreferenceConstants;
import org.eclipse.dltk.ui.ScriptElementLabels;
import org.eclipse.dltk.ui.actions.CustomFiltersActionGroup;
import org.eclipse.dltk.ui.viewsupport.AppearanceAwareLabelProvider;
-import org.eclipse.dltk.ui.viewsupport.DecoratingModelLabelProvider;
import org.eclipse.dltk.ui.viewsupport.FilterUpdater;
import org.eclipse.dltk.ui.viewsupport.IViewPartInputProvider;
import org.eclipse.dltk.ui.viewsupport.ProblemTreeViewer;
import org.eclipse.dltk.ui.viewsupport.StatusBarUpdater;
+import org.eclipse.dltk.ui.viewsupport.StyledDecoratingModelLabelProvider;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IStatusLineManager;
@@ -174,7 +174,7 @@ public class ScriptExplorerPart extends ViewPart implements
private WorkingSetModel fWorkingSetModel;
private ScriptExplorerLabelProvider fLabelProvider;
- private DecoratingModelLabelProvider fDecoratingLabelProvider;
+ private StyledDecoratingModelLabelProvider fDecoratingLabelProvider;
private ScriptExplorerContentProvider fContentProvider;
private FilterUpdater fFilterUpdater;
@@ -746,7 +746,7 @@ public class ScriptExplorerPart extends ViewPart implements
fLabelProvider = createLabelProvider();
fLabelProvider.setIsFlatLayout(fIsCurrentLayoutFlat);
- fDecoratingLabelProvider = new DecoratingModelLabelProvider(
+ fDecoratingLabelProvider = new StyledDecoratingModelLabelProvider(
fLabelProvider, false, fIsCurrentLayoutFlat);
fViewer.setLabelProvider(fDecoratingLabelProvider);
// problem decoration provided by PackageLabelProvider
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/typehierarchy/MethodsViewer.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/typehierarchy/MethodsViewer.java
index da8d9a203..422370055 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/typehierarchy/MethodsViewer.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/typehierarchy/MethodsViewer.java
@@ -19,8 +19,8 @@ import org.eclipse.dltk.ui.DLTKUIPlugin;
import org.eclipse.dltk.ui.ScriptElementLabels;
import org.eclipse.dltk.ui.actions.MemberFilterActionGroup;
import org.eclipse.dltk.ui.actions.OpenAction;
-import org.eclipse.dltk.ui.viewsupport.DecoratingModelLabelProvider;
import org.eclipse.dltk.ui.viewsupport.ProblemTableViewer;
+import org.eclipse.dltk.ui.viewsupport.StyledDecoratingModelLabelProvider;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
@@ -66,7 +66,8 @@ public class MethodsViewer extends ProblemTableViewer {
fLabelProvider= new MethodsLabelProvider(lifeCycle, this, store);
- setLabelProvider(new DecoratingModelLabelProvider(fLabelProvider, true));
+ setLabelProvider(new StyledDecoratingModelLabelProvider(fLabelProvider,
+ true));
setContentProvider(new MethodsContentProvider(lifeCycle));
HierarchyViewerSorter sorter= new HierarchyViewerSorter(lifeCycle);
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/typehierarchy/TypeHierarchyViewer.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/typehierarchy/TypeHierarchyViewer.java
index 38c052e36..bff79d456 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/typehierarchy/TypeHierarchyViewer.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/typehierarchy/TypeHierarchyViewer.java
@@ -13,8 +13,8 @@ import org.eclipse.core.runtime.Assert;
import org.eclipse.dltk.core.IMember;
import org.eclipse.dltk.core.IType;
import org.eclipse.dltk.ui.ScriptElementLabels;
-import org.eclipse.dltk.ui.viewsupport.DecoratingModelLabelProvider;
import org.eclipse.dltk.ui.viewsupport.ProblemTreeViewer;
+import org.eclipse.dltk.ui.viewsupport.StyledDecoratingModelLabelProvider;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
@@ -42,7 +42,8 @@ public abstract class TypeHierarchyViewer extends ProblemTreeViewer {
fLabelProvider = new HierarchyLabelProvider(lifeCycle, store);
- setLabelProvider(new DecoratingModelLabelProvider(fLabelProvider, true));
+ setLabelProvider(new StyledDecoratingModelLabelProvider(fLabelProvider,
+ true));
setUseHashlookup(true);
setContentProvider(contentProvider);
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/wizards/buildpath/newsourcepage/DialogPackageExplorer.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/wizards/buildpath/newsourcepage/DialogPackageExplorer.java
index 0a703c236..12ccbea89 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/wizards/buildpath/newsourcepage/DialogPackageExplorer.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/wizards/buildpath/newsourcepage/DialogPackageExplorer.java
@@ -42,7 +42,7 @@ import org.eclipse.dltk.ui.ModelElementSorter;
import org.eclipse.dltk.ui.ScriptElementImageProvider;
import org.eclipse.dltk.ui.ScriptElementLabels;
import org.eclipse.dltk.ui.viewsupport.AppearanceAwareLabelProvider;
-import org.eclipse.dltk.ui.viewsupport.DecoratingModelLabelProvider;
+import org.eclipse.dltk.ui.viewsupport.StyledDecoratingModelLabelProvider;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
@@ -392,7 +392,7 @@ public abstract class DialogPackageExplorer implements IMenuListener,
| ScriptElementImageProvider.SMALL_ICONS,
getPreferenceStore());
fPackageViewer.setContentProvider(contentProvider);
- fPackageViewer.setLabelProvider(new DecoratingModelLabelProvider(
+ fPackageViewer.setLabelProvider(new StyledDecoratingModelLabelProvider(
labelProvider, false));
}
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/workingsets/ScriptWorkingSetPage.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/workingsets/ScriptWorkingSetPage.java
index f51343957..77ee2fdfe 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/workingsets/ScriptWorkingSetPage.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/workingsets/ScriptWorkingSetPage.java
@@ -19,11 +19,11 @@ import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.dltk.core.DLTKCore;
-import org.eclipse.dltk.core.IScriptProject;
import org.eclipse.dltk.core.IModelElement;
import org.eclipse.dltk.core.IProjectFragment;
import org.eclipse.dltk.core.IScriptFolder;
import org.eclipse.dltk.core.IScriptModel;
+import org.eclipse.dltk.core.IScriptProject;
import org.eclipse.dltk.core.ModelException;
import org.eclipse.dltk.internal.ui.actions.SelectionConverter;
import org.eclipse.dltk.internal.ui.util.SWTUtil;
@@ -33,7 +33,7 @@ import org.eclipse.dltk.ui.ModelElementSorter;
import org.eclipse.dltk.ui.ScriptElementImageProvider;
import org.eclipse.dltk.ui.ScriptElementLabels;
import org.eclipse.dltk.ui.viewsupport.AppearanceAwareLabelProvider;
-import org.eclipse.dltk.ui.viewsupport.DecoratingModelLabelProvider;
+import org.eclipse.dltk.ui.viewsupport.StyledDecoratingModelLabelProvider;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.viewers.CheckStateChangedEvent;
import org.eclipse.jface.viewers.CheckboxTreeViewer;
@@ -140,7 +140,8 @@ public class ScriptWorkingSetPage extends WizardPage implements IWorkingSetPage
DLTKUIPlugin.getDefault().getPreferenceStore()
);
- fTree.setLabelProvider(new DecoratingModelLabelProvider(fScriptElementLabelProvider));
+ fTree.setLabelProvider(new StyledDecoratingModelLabelProvider(
+ fScriptElementLabelProvider));
fTree.setSorter(new ModelElementSorter());
if (DLTKCore.DEBUG) {
System.err.println("Add empty inner package filter support here..."); //$NON-NLS-1$
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/browsing/ScriptBrowsingPart.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/browsing/ScriptBrowsingPart.java
index 1e2323ecb..95dfc2033 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/browsing/ScriptBrowsingPart.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/browsing/ScriptBrowsingPart.java
@@ -60,6 +60,7 @@ import org.eclipse.dltk.ui.viewsupport.IViewPartInputProvider;
import org.eclipse.dltk.ui.viewsupport.ProblemTableViewer;
import org.eclipse.dltk.ui.viewsupport.ScriptUILabelProvider;
import org.eclipse.dltk.ui.viewsupport.StatusBarUpdater;
+import org.eclipse.dltk.ui.viewsupport.StyledDecoratingModelLabelProvider;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
@@ -335,7 +336,7 @@ public abstract class ScriptBrowsingPart extends ViewPart implements
initDragAndDrop();
fLabelProvider = createLabelProvider();
- fViewer.setLabelProvider(createDecoratingLabelProvider(fLabelProvider));
+ fViewer.setLabelProvider(createDelegatingLabelProvider(fLabelProvider));
fViewer.setComparator(createModelElementComparator());
fViewer.setUseHashlookup(true);
@@ -418,13 +419,28 @@ public abstract class ScriptBrowsingPart extends ViewPart implements
};
}
+ /**
+ * @since 5.2
+ */
+ protected ILabelProvider createDelegatingLabelProvider(
+ ScriptUILabelProvider provider) {
+ DecoratingModelLabelProvider labelprovider = createDecoratingLabelProvider(provider);
+ if (labelprovider != null)
+ return labelprovider;
+ return new StyledDecoratingModelLabelProvider(provider);
+ }
+
+ /**
+ * @deprecated override
+ * org.eclipse.dltk.ui.browsing.ScriptBrowsingPart.createDelegatingLabelProvider (ScriptUILabelProvider) instead
+ */
protected DecoratingModelLabelProvider createDecoratingLabelProvider(
ScriptUILabelProvider provider) {
// XXX: Work in progress for problem decorator being a workbench
// decorator//
// return new ExcludingDecoratingLabelProvider(provider, decorationMgr,
// "org.eclipse.jdt.ui.problem.decorator"); //$NON-NLS-1$
- return new DecoratingModelLabelProvider(provider);
+ return null;
}
protected ModelElementSorter createModelElementComparator() {
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/ScriptOutlineInformationControl.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/ScriptOutlineInformationControl.java
index 446d39174..837fe6318 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/ScriptOutlineInformationControl.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/ScriptOutlineInformationControl.java
@@ -38,6 +38,7 @@ import org.eclipse.dltk.ui.ProblemsLabelDecorator;
import org.eclipse.dltk.ui.ScriptElementLabels;
import org.eclipse.dltk.ui.viewsupport.AppearanceAwareLabelProvider;
import org.eclipse.dltk.ui.viewsupport.MemberFilter;
+import org.eclipse.dltk.ui.viewsupport.StyledDecoratingModelLabelProvider;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuManager;
@@ -533,7 +534,8 @@ public class ScriptOutlineInformationControl extends AbstractInformationControl
* OverrideIndicatorLabelDecorator(null));
*/
- treeViewer.setLabelProvider(fInnerLabelProvider);
+ treeViewer.setLabelProvider(new StyledDecoratingModelLabelProvider(
+ fInnerLabelProvider));
fLexicalSortingAction = new LexicalSortingAction(treeViewer);
fSortByDefiningTypeAction = new SortByDefiningTypeAction(treeViewer);
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/ScriptSourceViewerConfiguration.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/ScriptSourceViewerConfiguration.java
index 4594abddf..e691517d0 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/ScriptSourceViewerConfiguration.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/ScriptSourceViewerConfiguration.java
@@ -507,6 +507,8 @@ public abstract class ScriptSourceViewerConfiguration extends
getContentAssistPreference().configure(assistant, fPreferenceStore);
+ assistant.enableColoredLabels(true);
+
return assistant;
}
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/AbstractScriptCompletionProposal.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/AbstractScriptCompletionProposal.java
index c33e604fa..54ea703db 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/AbstractScriptCompletionProposal.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/AbstractScriptCompletionProposal.java
@@ -48,6 +48,7 @@ import org.eclipse.jface.text.contentassist.ICompletionProposalExtension;
import org.eclipse.jface.text.contentassist.ICompletionProposalExtension2;
import org.eclipse.jface.text.contentassist.ICompletionProposalExtension3;
import org.eclipse.jface.text.contentassist.ICompletionProposalExtension5;
+import org.eclipse.jface.text.contentassist.ICompletionProposalExtension6;
import org.eclipse.jface.text.contentassist.IContextInformation;
import org.eclipse.jface.text.link.ILinkedModeListener;
import org.eclipse.jface.text.link.LinkedModeModel;
@@ -56,6 +57,7 @@ import org.eclipse.jface.text.link.LinkedModeUI.ExitFlags;
import org.eclipse.jface.text.link.LinkedModeUI.IExitPolicy;
import org.eclipse.jface.text.link.LinkedPosition;
import org.eclipse.jface.text.link.LinkedPositionGroup;
+import org.eclipse.jface.viewers.StyledString;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyleRange;
import org.eclipse.swt.custom.StyledText;
@@ -76,7 +78,7 @@ import org.osgi.framework.Bundle;
public abstract class AbstractScriptCompletionProposal implements
IScriptCompletionProposal, ICompletionProposalExtension,
ICompletionProposalExtension2, ICompletionProposalExtension3,
- ICompletionProposalExtension5 {
+ ICompletionProposalExtension5, ICompletionProposalExtension6 {
/**
* A class to simplify tracking a reference position in a document.
@@ -178,7 +180,7 @@ public abstract class AbstractScriptCompletionProposal implements
}
- private String fDisplayString;
+ private StyledString fDisplayString;
private String fReplacementString;
private int fReplacementOffset;
private int fReplacementLength;
@@ -451,9 +453,25 @@ public abstract class AbstractScriptCompletionProposal implements
* @see ICompletionProposal#getDisplayString()
*/
public String getDisplayString() {
+ if (fDisplayString != null)
+ return fDisplayString.toString();
+ return null;
+ }
+
+ /**
+ * @since 5.2
+ */
+ public StyledString getStyledDisplayString() {
return fDisplayString;
}
+ /**
+ * @since 5.2
+ */
+ public void setStyledDisplayString(StyledString text) {
+ fDisplayString = text;
+ }
+
/*
* @see ICompletionProposal#getAdditionalProposalInfo()
*/
@@ -973,7 +991,7 @@ public abstract class AbstractScriptCompletionProposal implements
}
protected void setDisplayString(String string) {
- fDisplayString = string;
+ fDisplayString = new StyledString(string);
}
@Override
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/ICompletionProposalLabelProviderExtension.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/ICompletionProposalLabelProviderExtension.java
new file mode 100644
index 000000000..7f45adf8f
--- /dev/null
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/ICompletionProposalLabelProviderExtension.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2015 IBM Corporation and others.
+ * 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
+ *******************************************************************************/
+package org.eclipse.dltk.ui.text.completion;
+
+import org.eclipse.dltk.core.CompletionProposal;
+import org.eclipse.jface.viewers.StyledString;
+
+/**
+ * @since 5.2
+ */
+public interface ICompletionProposalLabelProviderExtension {
+
+ StyledString createStyledFieldProposalLabel(CompletionProposal proposal);
+
+ StyledString createStyledLabel(CompletionProposal fProposal);
+
+ StyledString createStyledKeywordLabel(CompletionProposal proposal);
+
+ StyledString createStyledSimpleLabel(CompletionProposal proposal);
+
+ StyledString createStyledTypeProposalLabel(CompletionProposal proposal);
+
+ StyledString createStyledSimpleLabelWithType(CompletionProposal proposal);
+}
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/LazyScriptCompletionProposal.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/LazyScriptCompletionProposal.java
index 43fae2a77..21ac22973 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/LazyScriptCompletionProposal.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/LazyScriptCompletionProposal.java
@@ -17,6 +17,7 @@ import org.eclipse.dltk.core.CompletionProposal;
import org.eclipse.dltk.ui.DLTKUIPlugin;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.contentassist.IContextInformation;
+import org.eclipse.jface.viewers.StyledString;
import org.eclipse.swt.graphics.Image;
public abstract class LazyScriptCompletionProposal extends
@@ -48,6 +49,7 @@ public abstract class LazyScriptCompletionProposal extends
* The invocation context of this completion proposal.
*/
protected final ScriptContentAssistInvocationContext fInvocationContext;
+ private boolean fDisplayStyledStringComputed;
public LazyScriptCompletionProposal(CompletionProposal proposal,
ScriptContentAssistInvocationContext context) {
@@ -199,6 +201,33 @@ public abstract class LazyScriptCompletionProposal extends
}
@Override
+ public final StyledString getStyledDisplayString() {
+ if (!fDisplayStyledStringComputed) {
+ setStyledDisplayString(computeStyledDisplayString());
+ }
+ return super.getStyledDisplayString();
+ }
+
+ @Override
+ public final void setStyledDisplayString(StyledString string) {
+ fDisplayStyledStringComputed = true;
+ super.setStyledDisplayString(string);
+ }
+
+ /**
+ * @since 5.2
+ */
+ protected StyledString computeStyledDisplayString() {
+ CompletionProposalLabelProvider labelProvider = fInvocationContext
+ .getLabelProvider();
+ if (labelProvider instanceof ICompletionProposalLabelProviderExtension)
+ return ((ICompletionProposalLabelProviderExtension) labelProvider)
+ .createStyledLabel(fProposal);
+ else
+ return new StyledString(labelProvider.createLabel(fProposal));
+ }
+
+ @Override
public final String getAdditionalProposalInfo() {
return super.getAdditionalProposalInfo();
}
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/ScriptCompletionProposal.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/ScriptCompletionProposal.java
index 4cc967428..4ebddef3d 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/ScriptCompletionProposal.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/ScriptCompletionProposal.java
@@ -12,6 +12,7 @@ package org.eclipse.dltk.ui.text.completion;
import org.eclipse.core.runtime.Assert;
import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.viewers.StyledString;
import org.eclipse.swt.graphics.Image;
public class ScriptCompletionProposal extends
@@ -66,6 +67,36 @@ public class ScriptCompletionProposal extends
public ScriptCompletionProposal(String replacementString,
int replacementOffset, int replacementLength, Image image,
String displayString, int relevance, boolean indoc) {
+ this(replacementString, replacementOffset, replacementLength, image,
+ new StyledString(displayString), relevance, false);
+ }
+
+ /**
+ * Creates a new completion proposal. All fields are initialized based on
+ * the provided information.
+ *
+ * @param replacementString
+ * the actual string to be inserted into the document
+ * @param replacementOffset
+ * the offset of the text to be replaced
+ * @param replacementLength
+ * the length of the text to be replaced
+ * @param image
+ * the image to display for this proposal
+ * @param displayString
+ * the StyledString to be displayed for the proposal If set to
+ * <code>null</code>, the replacement string will be taken as
+ * display string.
+ * @param relevance
+ * the relevance
+ * @param indoc
+ * <code>true</code> for a javadoc proposal
+ * @since 5.2
+ *
+ */
+ public ScriptCompletionProposal(String replacementString,
+ int replacementOffset, int replacementLength, Image image,
+ StyledString displayString, int relevance, boolean indoc) {
Assert.isNotNull(replacementString);
Assert.isTrue(replacementOffset >= 0);
Assert.isTrue(replacementLength >= 0);
@@ -74,12 +105,14 @@ public class ScriptCompletionProposal extends
setReplacementOffset(replacementOffset);
setReplacementLength(replacementLength);
setImage(image);
- setDisplayString(displayString == null ? replacementString
+ setStyledDisplayString(displayString == null ? new StyledString(
+ replacementString)
: displayString);
setRelevance(relevance);
setCursorPosition(replacementString.length());
setInDoc(indoc);
- setSortString(displayString == null ? replacementString : displayString);
+ setSortString(displayString == null ? replacementString : displayString
+ .toString());
}
@Override
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/ScriptCompletionProposalCollector.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/ScriptCompletionProposalCollector.java
index 5ccaf61a8..88a195407 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/ScriptCompletionProposalCollector.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/ScriptCompletionProposalCollector.java
@@ -37,6 +37,7 @@ import org.eclipse.dltk.ui.DLTKUIPlugin;
import org.eclipse.dltk.ui.viewsupport.ImageDescriptorRegistry;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.text.contentassist.IContextInformation;
+import org.eclipse.jface.viewers.StyledString;
import org.eclipse.swt.graphics.Image;
/**
@@ -655,6 +656,7 @@ public abstract class ScriptCompletionProposalCollector extends
image, displayString, relevance, false);
}
+ @Deprecated
protected ScriptCompletionProposal createScriptCompletionProposal(
String completion, int replaceStart, int length, Image image,
String displayString, int relevance, boolean isInDoc) {
@@ -662,6 +664,16 @@ public abstract class ScriptCompletionProposalCollector extends
image, displayString, relevance, isInDoc);
}
+ /**
+ * @since 5.2
+ */
+ protected ScriptCompletionProposal createScriptCompletionProposal(
+ String completion, int replaceStart, int length, Image image,
+ StyledString displayString, int relevance, boolean isInDoc) {
+ return new ScriptCompletionProposal(completion, replaceStart, length,
+ image, displayString, relevance, isInDoc);
+ }
+
protected ScriptCompletionProposal createOverrideCompletionProposal(
IScriptProject scriptProject, ISourceModule compilationUnit,
String name, String[] paramTypes, int start, int length,
@@ -675,17 +687,27 @@ public abstract class ScriptCompletionProposalCollector extends
String completion = String.valueOf(proposal.getCompletion());
int start = proposal.getReplaceStart();
int length = getLength(proposal);
- String label = getLabelProvider().createFieldProposalLabel(proposal);
+ int relevance = computeRelevance(proposal);
+
+ ScriptCompletionProposal scriptProposal;
+
+ CompletionProposalLabelProvider labelProvider = getLabelProvider();
Image image = getImage(getLabelProvider().createFieldImageDescriptor(
proposal));
- int relevance = computeRelevance(proposal);
- // CompletionContext context = getContext();
- ScriptCompletionProposal scriptProposal = createScriptCompletionProposal(
- completion, start, length, image, label, relevance, /*
- * context
- * .isInDoc
- * ()
- */false);
+
+ if (labelProvider instanceof ICompletionProposalLabelProviderExtension) {
+
+ StyledString label = ((ICompletionProposalLabelProviderExtension) getLabelProvider())
+ .createStyledFieldProposalLabel(proposal);
+ scriptProposal = createScriptCompletionProposal(completion, start,
+ length, image, label, relevance, false);
+ } else {
+ String label = getLabelProvider()
+ .createFieldProposalLabel(proposal);
+ scriptProposal = createScriptCompletionProposal(completion, start,
+ length, image, label, relevance, false);
+ }
+
if (fScriptProject != null)
scriptProposal.setProposalInfo(new FieldProposalInfo(
fScriptProject, proposal));
@@ -698,11 +720,25 @@ public abstract class ScriptCompletionProposalCollector extends
String completion = String.valueOf(proposal.getCompletion());
int start = proposal.getReplaceStart();
int length = getLength(proposal);
- String label = getLabelProvider().createKeywordLabel(proposal);
- Image img = getImage(getLabelProvider().createImageDescriptor(proposal));
int relevance = computeRelevance(proposal);
- ScriptCompletionProposal scriptProposal = createScriptCompletionProposal(
- completion, start, length, img, label, relevance);
+
+ ScriptCompletionProposal scriptProposal;
+
+ CompletionProposalLabelProvider labelProvider = getLabelProvider();
+ Image image = getImage(getLabelProvider().createImageDescriptor(
+ proposal));
+
+ if (labelProvider instanceof ICompletionProposalLabelProviderExtension) {
+
+ StyledString label = ((ICompletionProposalLabelProviderExtension) getLabelProvider())
+ .createStyledKeywordLabel(proposal);
+ scriptProposal = createScriptCompletionProposal(completion, start,
+ length, image, label, relevance, false);
+ } else {
+ String label = getLabelProvider().createKeywordLabel(proposal);
+ scriptProposal = createScriptCompletionProposal(completion, start,
+ length, image, label, relevance, false);
+ }
if (fScriptProject != null) {
scriptProposal.setProposalInfo(new ProposalInfo(fScriptProject,
@@ -717,11 +753,27 @@ public abstract class ScriptCompletionProposalCollector extends
String completion = String.valueOf(proposal.getCompletion());
int start = proposal.getReplaceStart();
int length = getLength(proposal);
- String label = getLabelProvider().createSimpleLabel(proposal);
int relevance = computeRelevance(proposal);
- return createScriptCompletionProposal(completion, start, length,
- getImage(getLabelProvider().createImageDescriptor(proposal)),
- label, relevance);
+
+ ScriptCompletionProposal scriptProposal;
+
+ CompletionProposalLabelProvider labelProvider = getLabelProvider();
+ Image image = getImage(getLabelProvider().createImageDescriptor(
+ proposal));
+
+ if (labelProvider instanceof ICompletionProposalLabelProviderExtension) {
+
+ StyledString label = ((ICompletionProposalLabelProviderExtension) getLabelProvider())
+ .createStyledSimpleLabel(proposal);
+ scriptProposal = createScriptCompletionProposal(completion, start,
+ length, image, label, relevance, false);
+ } else {
+ String label = getLabelProvider().createSimpleLabel(proposal);
+ scriptProposal = createScriptCompletionProposal(completion, start,
+ length, image, label, relevance, false);
+ }
+
+ return scriptProposal;
}
private IScriptCompletionProposal createLabelProposal(
@@ -729,11 +781,24 @@ public abstract class ScriptCompletionProposalCollector extends
String completion = String.valueOf(proposal.getCompletion());
int start = proposal.getReplaceStart();
int length = getLength(proposal);
- String label = getLabelProvider().createSimpleLabel(proposal);
int relevance = computeRelevance(proposal);
- return createScriptCompletionProposal(completion, start, length, null,
- label, relevance);
- // return null;
+
+ ScriptCompletionProposal scriptProposal;
+
+ CompletionProposalLabelProvider labelProvider = getLabelProvider();
+
+ if (labelProvider instanceof ICompletionProposalLabelProviderExtension) {
+
+ StyledString label = ((ICompletionProposalLabelProviderExtension) getLabelProvider())
+ .createStyledSimpleLabel(proposal);
+ scriptProposal = createScriptCompletionProposal(completion, start,
+ length, null, label, relevance, false);
+ } else {
+ String label = getLabelProvider().createSimpleLabel(proposal);
+ scriptProposal = createScriptCompletionProposal(completion, start,
+ length, null, label, relevance, false);
+ }
+ return scriptProposal;
}
private IScriptCompletionProposal createLocalVariableProposal(
@@ -741,14 +806,29 @@ public abstract class ScriptCompletionProposalCollector extends
String completion = String.valueOf(proposal.getCompletion());
int start = proposal.getReplaceStart();
int length = getLength(proposal);
+ int relevance = computeRelevance(proposal);
+
+ ScriptCompletionProposal scriptProposal;
+
+ CompletionProposalLabelProvider labelProvider = getLabelProvider();
Image image = getImage(getLabelProvider().createLocalImageDescriptor(
proposal));
- String label = getLabelProvider().createSimpleLabelWithType(proposal);
- int relevance = computeRelevance(proposal);
- final ScriptCompletionProposal javaProposal = createScriptCompletionProposal(
- completion, start, length, image, label, relevance);
- javaProposal.setTriggerCharacters(getVarTrigger());
- return javaProposal;
+
+ if (labelProvider instanceof ICompletionProposalLabelProviderExtension) {
+
+ StyledString label = ((ICompletionProposalLabelProviderExtension) getLabelProvider())
+ .createStyledSimpleLabelWithType(proposal);
+ scriptProposal = createScriptCompletionProposal(completion, start,
+ length, image, label, relevance, false);
+ } else {
+ String label = getLabelProvider().createSimpleLabelWithType(
+ proposal);
+ scriptProposal = createScriptCompletionProposal(completion, start,
+ length, image, label, relevance, false);
+ }
+
+ scriptProposal.setTriggerCharacters(getVarTrigger());
+ return scriptProposal;
}
/**
@@ -815,24 +895,33 @@ public abstract class ScriptCompletionProposalCollector extends
}
protected IScriptCompletionProposal createTypeProposal(
- CompletionProposal typeProposal) {
+ CompletionProposal proposal) {
- String completion = typeProposal.getCompletion();
- int replaceStart = typeProposal.getReplaceStart();
- int length = typeProposal.getReplaceEnd()
- - typeProposal.getReplaceStart();
- Image image = getImage(getLabelProvider().createTypeImageDescriptor(
- typeProposal));
+ String completion = proposal.getCompletion();
+ int start = proposal.getReplaceStart();
+ int length = proposal.getReplaceEnd() - proposal.getReplaceStart();
+ int relevance = computeRelevance(proposal);
- String displayString = getLabelProvider().createTypeProposalLabel(
- typeProposal);
+ ScriptCompletionProposal scriptProposal;
- ScriptCompletionProposal scriptProposal = createScriptCompletionProposal(
- completion, replaceStart, length, image, displayString, 0);
+ CompletionProposalLabelProvider labelProvider = getLabelProvider();
+ Image image = getImage(getLabelProvider().createTypeImageDescriptor(
+ proposal));
- scriptProposal.setRelevance(computeRelevance(typeProposal));
+ if (labelProvider instanceof ICompletionProposalLabelProviderExtension) {
+
+ StyledString label = ((ICompletionProposalLabelProviderExtension) getLabelProvider())
+ .createStyledTypeProposalLabel(proposal);
+ scriptProposal = createScriptCompletionProposal(completion, start,
+ length, image, label, relevance, false);
+ } else {
+ String label = getLabelProvider().createTypeProposalLabel(proposal);
+ scriptProposal = createScriptCompletionProposal(completion, start,
+ length, image, label, relevance, false);
+ }
scriptProposal.setProposalInfo(new TypeProposalInfo(fScriptProject,
- typeProposal));
+ proposal));
+
return scriptProposal;
}
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/DecoratingModelLabelProvider.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/DecoratingModelLabelProvider.java
index 91de16276..e1baab600 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/DecoratingModelLabelProvider.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/DecoratingModelLabelProvider.java
@@ -16,6 +16,9 @@ import org.eclipse.jface.viewers.IColorProvider;
import org.eclipse.swt.graphics.Color;
import org.eclipse.ui.PlatformUI;
+/**
+ * @deprecated use StyledDecoratingModelLabelProvider instead
+ */
public class DecoratingModelLabelProvider extends DecoratingLabelProvider
implements IColorProvider {
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/ScriptUILabelProvider.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/ScriptUILabelProvider.java
index 6c2b43e81..257b84650 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/ScriptUILabelProvider.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/ScriptUILabelProvider.java
@@ -24,17 +24,20 @@ import org.eclipse.dltk.ui.ScriptElementImageProvider;
import org.eclipse.dltk.ui.ScriptElementLabels;
import org.eclipse.jface.resource.CompositeImageDescriptor;
import org.eclipse.jface.util.SafeRunnable;
+import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
import org.eclipse.jface.viewers.IColorProvider;
import org.eclipse.jface.viewers.ILabelDecorator;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.LabelProviderChangedEvent;
+import org.eclipse.jface.viewers.StyledCellLabelProvider;
+import org.eclipse.jface.viewers.StyledString;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.graphics.Point;
-public class ScriptUILabelProvider implements ILabelProvider, IColorProvider {
+public class ScriptUILabelProvider implements ILabelProvider, IColorProvider, IStyledLabelProvider {
protected ListenerList fListeners = new ListenerList(1);
@@ -200,27 +203,10 @@ public class ScriptUILabelProvider implements ILabelProvider, IColorProvider {
}
public String getText(Object element) {
- ILabelProvider[] providers = getProviders(element);
- String result = null;
- if (providers != null) {
- for (int i = 0; i < providers.length; i++) {
- String text = providers[i].getText(element);
- if (text != null) {
- result = text;
- break;
- }
- }
- }
- if (result == null) {
- result = ScriptElementLabels.getDefault().getTextLabel(element,
- evaluateTextFlags(element));
- }
-
- if (result.length() == 0 && (element instanceof IStorage)) {
- result = fStorageLabelProvider.getText(element);
- }
-
- return decorateText(result, element);
+ StyledString styledText = getStyledText(element);
+ if (styledText != null)
+ return styledText.toString();
+ return null;
}
private ILabelProvider[] getProviders(Object element) {
@@ -337,4 +323,42 @@ public class ScriptUILabelProvider implements ILabelProvider, IColorProvider {
}
return text;
}
+
+ /**
+ * @since 5.2
+ */
+ public StyledString getStyledText(Object element) {
+ ILabelProvider[] providers = getProviders(element);
+ StyledString result = null;
+ if (providers != null) {
+ for (int i = 0; i < providers.length; i++) {
+ if (providers[i] instanceof IStyledLabelProvider) {
+ StyledString string = ((IStyledLabelProvider) providers[i]).getStyledText(element);
+ if (string != null) {
+ result = string;
+ break;
+ }
+ } else {
+ String text = providers[i].getText(element);
+ if (text != null) {
+ result = new StyledString(text);
+ break;
+ }
+ }
+ }
+ }
+ if (result == null) {
+ result = new StyledString(ScriptElementLabels.getDefault().getTextLabel(element, evaluateTextFlags(element)));
+ }
+
+ if (result.length() == 0 && (element instanceof IStorage)) {
+ result = new StyledString(fStorageLabelProvider.getText(element));
+ }
+
+ String decorated = decorateText(result.getString(), element);
+ if (decorated != null) {
+ return StyledCellLabelProvider.styleDecoratedString(decorated, StyledString.DECORATIONS_STYLER, result);
+ }
+ return result;
+ }
}
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/StyledDecoratingModelLabelProvider.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/StyledDecoratingModelLabelProvider.java
new file mode 100644
index 000000000..ecb027a74
--- /dev/null
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/StyledDecoratingModelLabelProvider.java
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (c) 2015 IBM Corporation and others.
+ * 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
+ *
+ *******************************************************************************/
+package org.eclipse.dltk.ui.viewsupport;
+
+import org.eclipse.dltk.ui.ProblemsLabelDecorator;
+import org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider;
+import org.eclipse.jface.viewers.DecorationContext;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * a DecoratingModelLabelProvider which support StyledText
+ *
+ * replace org.eclipse.dltk.ui.viewsupport.DecoratingModelLabelProvider
+ *
+ * @since 5.2
+ */
+public class StyledDecoratingModelLabelProvider extends DecoratingStyledCellLabelProvider implements ILabelProvider {
+
+ /**
+ * Decorating label provider for DLTK. Combines a ScriptUILabelProvider with
+ * problem and override indicuator with the workbench decorator (label
+ * decorator extension point).
+ */
+ public StyledDecoratingModelLabelProvider(ScriptUILabelProvider labelProvider) {
+ this(labelProvider, true);
+ }
+
+ /**
+ * Decorating label provider for dltk. Combines a ScriptUILabelProvider (if
+ * enabled with problem indicator) with the workbench decorator (label
+ * decorator extension point).
+ */
+ public StyledDecoratingModelLabelProvider(ScriptUILabelProvider labelProvider,
+ boolean errorTick) {
+ this(labelProvider, errorTick, true);
+ }
+
+ /**
+ * Decorating label provider for dltk. Combines a ScriptUILabelProvider (if
+ * enabled with problem indicator) with the workbench decorator (label
+ * decorator extension point).
+ */
+ public StyledDecoratingModelLabelProvider(ScriptUILabelProvider labelProvider,
+ boolean errorTick, boolean flatPackageMode) {
+ super(labelProvider, PlatformUI.getWorkbench().getDecoratorManager()
+ .getLabelDecorator(),null);
+
+ if (errorTick) {
+ labelProvider.addLabelDecorator(new ProblemsLabelDecorator(null));
+ }
+ setFlatPackageMode(flatPackageMode);
+ }
+
+ /**
+ * Tells the label decorator if the view presents packages flat or
+ * hierarchical.
+ *
+ * @param enable
+ * If set, packages are presented in flat mode.
+ */
+ public void setFlatPackageMode(boolean enable) {
+ if (enable) {
+ setDecorationContext(DecorationContext.DEFAULT_CONTEXT);
+ } else {
+ setDecorationContext(DecorationContext.DEFAULT_CONTEXT);
+ // TODO setDecorationContext(HierarchicalDecorationContext.CONTEXT);
+ }
+ }
+
+ public String getText(Object element) {
+ return getStyledText(element).toString();
+ }
+} \ No newline at end of file

Back to the top