[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.platform.swt] Re: Retarget or override Open, Save, Delete actions

Hi Francis,

Thanks for the help that you extended. I worked on the following and used it 
successfully to override the Open action (this is registered as a 
Retargettable action already). However, for the editActions (copy, paste) I 
am unable to override the default action, since I need to register my 
actions as retargetting these default actions. How can I do that really?

The way I have added my actions (following instructions given on the CNF 
blog - scribbledideas.blogspot.com) is using actionProvider... following is 
roughly the code from the plugin.xml for reference (if it helps!)...

<extension
       id="com.sample.prjexpextn"
       name="sample Project"
       point="org.eclipse.ui.navigator.navigatorContent">
    <navigatorContent
          activeByDefault="true"
          contentProvider="com.sample.prjexpextn.cnf.VFileContentProvider"
          icon="/icons/designer_folder_tree_icon.gif"
          id="com.sample.xpd.projectExplorer.extension"
          labelProvider="com.sample.prjexpextn.cnf.VFileLabelProvider"
          name="Sample"
          priority="high">
<actionProvider
                  class="com.sample.prjexpextn.cnf.action.providers.EditActionProvider"
                  id="com.sample.prjexpexten.actionProvider.EditAction"
                  overrides="org.eclipse.ui.navigator.resources.EditActions">
               <enablement>
           <or>
            <and>
             <adapt type="org.eclipse.core.resources.IFile" />
             <test
              ...............
            </test>
            </and>
            <and>
             <adapt type="org.eclipse.core.resources.IFolder" />
             <test
              ...................
             </test>
            </and>
           </or>
          </enablement>
  </actionProvider>
</navigatorContent>
 </extension>

I believe in order to ensure that these actions RETARGET the original 
copy/paste, I have to define them as retargettable actions? CNF as of now 
has only one retargettable action 
org.eclipse.ui.navigator.ICommonActionConstants.OPEN. So similarly, how do I 
register other actions as retarget actions?

Thanks,
Rahul

"Francis Upton" <francisu@xxxxxxxx> wrote in message 
news:47AAC392.6050107@xxxxxxxxxxx
> This belongs on eclipse.platform, I have posted it there.
>
> Look into the org.eclipse.ui.navigator.viewer and .navigatorContent 
> extension points.  This allows you to select which action sets you pick up 
> from the definition of the CommonNavigator which is found in 
> org.eclipse.ui.navigator.resources.
>
> You can substitute your own actions using something like this (I replaced 
> the NewAction with my own):
>
> <!-- for RCP app -->
>  <extension
>          point="org.eclipse.ui.navigator.viewer">
>        <viewerActionBinding
>             viewerId="com.oaklandsw.gui.navigator">
>          <includes>
>          <!-- we don't want all of these, as we don't want NewActions -->
>              <actionExtension 
> pattern="org.eclipse.ui.navigator.resources.EditActions" />
>              <actionExtension 
> pattern="org.eclipse.ui.navigator.resources.RefactorActions" />
>              <actionExtension 
> pattern="org.eclipse.ui.navigator.resources.OpenActions" />
>              <actionExtension 
> pattern="org.eclipse.ui.navigator.resources.PortingActions" />
>              <actionExtension 
> pattern="org.eclipse.ui.navigator.resources.PropertiesActionsProvider" />
>              <actionExtension 
> pattern="org.eclipse.ui.navigator.resources.WorkManagementActionProvider" 
> />
>              <actionExtension 
> pattern="org.eclipse.ui.navigator.resources.ResourceMgmtActions" />
>              <actionExtension 
> pattern="org.eclipse.ui.navigator.resources.WorkingSetActionProvider" />
>              <actionExtension pattern="com.oaklandsw.gui.*" />
>              <actionExtension pattern="com.oaklandsw.transform.*" />
>          </includes>
>          <excludes>
> <!-- exclude everything not specifically included -->
>              <actionExtension 
> pattern="org.eclipse.ui.navigator.resources.NewActions" />
>          </excludes>
>        </viewerActionBinding>
>        <viewerContentBinding viewerId="com.oaklandsw.gui.navigator">
>           <includes>
>            <contentExtension 
> pattern="com.oaklandsw.transform.navigatorContent"/>
>           <contentExtension 
> pattern="org.eclipse.ui.navigator.resourceContent" /> 
> <contentExtension pattern="org.eclipse.ui.navigator.resources.filters.*"/>
>            <contentExtension 
> pattern="org.eclipse.ui.navigator.resources.linkHelper"/>
>            <contentExtension 
> pattern="org.eclipse.ui.navigator.resources.workingSets"/>
>           </includes>
>        </viewerContentBinding>
>    </extension>
>
>
> <extension
>        point="org.eclipse.ui.navigator.navigatorContent">
>
> ...
>
>         <actionProvider
>             class="com.oaklandsw.transform.editor.NewActionProvider"
>             id="com.oaklandsw.transform.NewActions"
>                 priority="highest">
>          <enablement>
> <not>
> <systemTest property="org.eclipse.core.runtime.product" value="XXX"/>
>     </not>
>          </enablement>
> </actionProvider>
> ...
>
>
>
>
>
> Also, these postings provide much useful information on use of the CNF 
> (package explorer):
>
> http://scribbledideas.blogspot.com/2006/05/building-common-navigator-based-viewer.html
>
> I don't know off the top of my head how you deal with the double-click 
> stuff, but if you look at the extension points and the articles, you 
> should be able to find that.
>
>
>
> Rahul Kamdar wrote:
>> Hi,
>>
>> In my plugin I have written an extension to the project explorer and 
>> defined
>> my own content provider for it. I want to be able to change the default
>> action on double-clicking (opening of an editor either associated with it 
>> or
>> in text editor) a file in the tree - so that instead of it performing the
>> default open an editor for the file I can perform some of my own actions.
>>
>> Additionally, I want to be able to edit the save cycle of a file - on
>> pressing the save button (or triggering save by keyboard shortcut) and
>> peform my own processing. Same for the delete action on a resource.
>>
>> I would really appreciate any help or pointers in this. Thanks!
>>
>> PS - These are issues that I am trying to resolve at the highest priority 
>> as
>> of now!! :) There is one more thing I am unable to do - to be able to 
>> modify
>> the menu that pops when you right-click any item in the project explorer 
>> (so
>> that I can add/remove buttons in this menu)
>>
>>