Added Python Project decorator based on new class DeclarativeLightweightLabelDecorator. This class gives the ability to contribute project decorator using completely declarative approach. Ruby and Tcl decorators were modified accordingly.
diff --git a/plugins/org.eclipse.dltk.ruby.ui/plugin.xml b/plugins/org.eclipse.dltk.ruby.ui/plugin.xml
index dff7ce2..ba088c0 100644
--- a/plugins/org.eclipse.dltk.ruby.ui/plugin.xml
+++ b/plugins/org.eclipse.dltk.ruby.ui/plugin.xml
@@ -327,25 +327,28 @@
sequence="ESC CTRL+F">
</key>
</extension>
-
- <extension
+
+<extension
point="org.eclipse.ui.decorators">
- <decorator
- adaptable="false"
+ <decorator
+ adaptable="true"
location="TOP_LEFT"
lightweight="true"
label="%RubyProjectDecorator.name"
state="true"
- class="org.eclipse.dltk.ruby.internal.ui.RubyProjectDecorator"
- id="org.eclipse.dltk.ruby.projectdecorator">
+ class="org.eclipse.dltk.ui.DeclarativeLightweightLabelDecorator:/icons/ovr16/ruby_ovr.gif"
+ id="org.eclipse.dltk.ruby.decorators.projectdecorator">
<enablement>
- <or>
- <objectClass name="org.eclipse.core.resources.IProject"/>
- <objectClass name="org.eclipse.dltk.core.IScriptProject"/>
- </or>
+ <and>
+ <objectClass name="org.eclipse.core.resources.IProject"/>
+ <objectState
+ name="nature"
+ value="org.eclipse.dltk.ruby.core.nature">
+ </objectState>
+ </and>
</enablement>
</decorator>
- </extension>
+ </extension>
<extension
point="org.eclipse.ui.propertyPages">
diff --git a/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/RubyImages.java b/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/RubyImages.java
index 7b36594..a29a94a 100644
--- a/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/RubyImages.java
+++ b/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/RubyImages.java
@@ -20,9 +20,6 @@
public static final ImageDescriptor DESC_OBJ_RUBY_FILE = helper
.createUnManaged(PluginImagesHelper.T_OBJ, "ruby_obj.gif"); //$NON-NLS-1$
- public static final ImageDescriptor PROJECT_DECARATOR = helper
- .createUnManaged(PluginImagesHelper.T_OVR, "ruby_ovr.gif"); //$NON-NLS-1$
-
public static final ImageDescriptor DESC_WIZBAN_PROJECT_CREATION = helper
.createUnManaged(PluginImagesHelper.T_WIZBAN,
"projectcreate_wiz.png"); //$NON-NLS-1$
diff --git a/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/RubyProjectDecorator.java b/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/RubyProjectDecorator.java
deleted file mode 100644
index 6302627..0000000
--- a/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/RubyProjectDecorator.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.eclipse.dltk.ruby.internal.ui;
-
-import org.eclipse.dltk.ruby.core.RubyNature;
-import org.eclipse.dltk.ui.AbstractScriptProjectDecorator;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-public class RubyProjectDecorator extends AbstractScriptProjectDecorator {
-
- public String getNatureId() {
- return RubyNature.NATURE_ID;
- }
-
- public ImageDescriptor getProjectDecorator() {
- return RubyImages.PROJECT_DECARATOR;
- }
-
-}
\ No newline at end of file