Search code examples
eclipseeclipse-plugineclipse-rcpeclipse-pde

Apply different Decorator to different folder based on folder name


Is it possible to apply different decorator to different folder based on folder name.

I have developed a plugin which creates a custom project, with 4 folders. I want that, for each time new project is created each folder must have different icon.

Is it possible to do it through decorator? If not, then please let me know of other way around.


Currently, I am applying decorator in following way. But in this case the same icon is applied to all the folders, which I don't want.

<extension
         point="org.eclipse.ui.decorators">
      <decorator
            adaptable="true"
            icon="img/folder-script.png"
            id="abcd.main.ui.decorator.folder.script"
            label="Script Folder Decorator"
            lightweight="true"
            location="TOP_LEFT"
            state="true"> 
            <enablement>
                 <objectClass
                       name="org.eclipse.core.resources.IFolder">
                 </objectClass>
            </enablement>
      </decorator>
   </extension>

Solution

  • You can use objectState as part of the enablement to test the name:

    <enablement>
       <and> 
          <objectClass
              name="org.eclipse.core.resources.IFolder">
          </objectClass>
          <objectState
              name="name"
              value="the folder name">
          </objectState>
       </and>
    </enablement>