<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>

   <!-- Supply a viewer for search results -->
   <extension
         point="org.eclipse.search.searchResultViewPages">
      <viewPage
            class="org.eclipse.rephraserengine.internal.ui.search.SearchViewPage"
            id="org.eclipse.rephraserengine.ui.searchViewPage"
            searchResultClass="org.eclipse.rephraserengine.ui.search.SearchResult"/>
   </extension>

   <!-- Search menu from org.eclipse.search
        Duplicated here to prevent errors like
          !ENTRY org.eclipse.ui 4 4 2010-03-12 10:45:24.324
          !MESSAGE Plug-in 'org.eclipse.rephraserengine.examples.text' contributed an invalid Menu Extension (Path: 'org.eclipse.search.menu' is invalid): org.eclipse.rephraserengine.examples.text.openTextSearchPage
        (Note that the original org.eclipse.search.menu is defined in an actionSet.)
   -->
   <extension point="org.eclipse.ui.menus">
      <menuContribution
            locationURI="menu:org.eclipse.ui.main.menu?after=navigate">
        <menu
           id="org.eclipse.search.menu"
           label="%searchMenu.label">
           <!--groupMarker name="dialogGroup"/-->           <!-- to be used by clients      -->
           <separator name="dialogGroup"/> <!-- to be used by clients      -->
           <separator name="fileSearchContextMenuActionsGroup"/> <!-- to be used by clients      -->
           <separator name="contextMenuActionsGroup"/> <!-- to be used by clients -->
           <separator name="occurencesActionsGroup"/> <!-- to be used by clients -->
           <separator name="extraSearchGroup"/> <!-- to be used by clients -->
        </menu>
     </menuContribution>
  </extension>

<!-- REFACTORING COMPONENT - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

   <!--=============================-->
   <!-- Refactoring Extension Point -->
   <!--=============================-->
   <extension-point id="org.eclipse.rephraserengine.ui.refactoring.refactorings" name="%extension-point.name" schema="schema/refactorings.exsd" />

   <!--===============-->
   <!-- Refactor Menu -->
   <!--===============-->
   <extension point="org.eclipse.core.expressions.definitions">
      <definition id="org.eclipse.rephraserengine.ui.refactoring.isRefactorableResource">
           <with variable="selection">
               <iterate operator="or" ifEmpty="false">
                 <or>
                   <adapt type="org.eclipse.core.resources.IResource">
                     <test
                        property="org.eclipse.rephraserengine.ui.refactoring.isRefactorable"
                        forcePluginActivation="true" />
                   </adapt>
                   <adapt type="org.eclipse.jface.text.ITextSelection">
                     <test
                        property="org.eclipse.rephraserengine.ui.refactoring.isRefactorable"
                        forcePluginActivation="true" />
                   </adapt>
                 </or>
               </iterate>
            </with>
      </definition>
   </extension>
   <extension point="org.eclipse.ui.menus">

      <!-- Refactor menu in the menu bar -->
      <!-- ============================= -->
      <!-- Always visible -->
      <menuContribution
            locationURI="menu:org.eclipse.ui.main.menu?before=navigate">
         <!-- Menu mimicks org.eclipse.jdt.ui's (as does CDT's Refactor menu)
              http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.ui/plugin.xml?view=markup -->
         <menu
               label="%menu.label"
               id="org.eclipse.jdt.ui.refactoring.menu">
            <!-- http://wiki.eclipse.org/Command_Core_Expressions -->
            <visibleWhen checkEnabled="false">
               <reference definitionId="org.eclipse.rephraserengine.ui.refactoring.isRefactorableResource" />
            </visibleWhen>
            <dynamic
                  class="org.eclipse.rephraserengine.ui.menus.RefactorMenu"
                  id="org.eclipse.rephraserengine.ui.menus.refactor">
            </dynamic>
         </menu>
      </menuContribution>

      <!-- Refactor sub-menu in popup menus -->
      <!--  (e.g., in the Navigator view)   -->
      <!-- ================================ -->
      <!-- Visible when at least one IResource is selected -->
      <menuContribution
            locationURI="popup:org.eclipse.ui.popup.any?after=group.reorganize">
         <menu
               label="%menu.label"
               id="org.eclipse.jdt.ui.refactoring.menu">
            <!-- http://wiki.eclipse.org/Command_Core_Expressions -->
            <visibleWhen checkEnabled="false">
               <reference definitionId="org.eclipse.rephraserengine.ui.refactoring.isRefactorableResource" />
            </visibleWhen>
            <dynamic
                  class="org.eclipse.rephraserengine.ui.menus.RefactorMenu"
                  id="org.eclipse.rephraserengine.ui.menus.refactor">
            </dynamic>
         </menu>
      </menuContribution>

   </extension>

   <!--=================-->
   <!-- Property Tester -->
   <!--=================-->
  <extension
        point="org.eclipse.core.expressions.propertyTesters">
      <propertyTester
           id="org.eclipse.rephraserengine.ui.refactoring.isRefactorable"
           class="org.eclipse.rephraserengine.internal.ui.menus.RefactorableResourcePropertyTester"
           namespace="org.eclipse.rephraserengine.ui.refactoring"
           properties="isRefactorable"
           type="java.lang.Object"/>
  </extension>

<!-- VPG COMPONENT - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

   <!--===============================-->
   <!-- VPG Extension Point -->
   <!--===============================-->
   <extension-point id="org.eclipse.rephraserengine.ui.vpg.vpg" name="%extension-point.name" schema="schema/vpg.exsd" />

   <!--=======================================-->
   <!-- Debugging Actions in Refactoring Menu -->
   <!--=======================================-->

   <!--==============================================-->
   <!-- Browse Action in Refactor > (Debugging) Menu -->
   <!--==============================================-->

   <!-- 1. Define commands -->
   <extension
         point="org.eclipse.ui.commands">
      <category
            name="VPG Debugging Commands"
            id="org.eclipse.rephraserengine.ui.VPGDebuggingCategory">
      </category>
      <command
            name="Browse VPG"
            categoryId="org.eclipse.rephraserengine.ui.VPGDebuggingCategory"
            id="org.eclipse.rephraserengine.ui.BrowseCommand">
      </command>
   </extension>

   <!-- 2. Optionally associate commands with an accelerator key -->
   <!--  win32:  M1=CTRL,    M2=SHIFT, M3=ALT, M4=-
         carbon: M1=COMMAND, M2=SHIFT, M3=ALT, M4=CTRL -->
   <extension
         point="org.eclipse.ui.bindings">
     <key
            sequence="M1+M2+M3+B"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            commandId="org.eclipse.rephraserengine.ui.BrowseCommand"
     />
   </extension>

   <!-- 3. Define an action set -->
   <extension point="org.eclipse.ui.actionSets">
      <actionSet
            label="%actionSet.label"
            description="%actionSet.description"
            visible="false"
            id="org.eclipse.rephraserengine.ui.DebugActionSet">
         <!-- Menu mimicks org.eclipse.jdt.ui's (as does CDT's Refactor menu)
              http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.ui/plugin.xml?view=markup -->
         <menu
               label="%menu.label"
               path="edit"
               id="org.eclipse.jdt.ui.refactoring.menu">
                                                          <!-- JAVA REFACTORINGS IN THIS GROUP: -->
            <separator name="undoRedoGroup"/>             <!-- ================================ -->
            <separator name="reorgGroup"/>                <!-- Rename, Move -->
            <separator name="codingGroup"/>               <!-- Change Signature, Extract Var/Method, Inline -->
            <separator name="reorgGroup2"/>               <!-- Convert -->
            <separator name="typeGroup"/>                 <!-- Extract Superclass, Pull Up, Push Down -->
            <separator name="typeGroup2"/>                <!-- Extract Class, Intro Parameter Obj -->
            <separator name="codingGroup2"/>              <!-- Introduce Factory, Encapsulate -->
            <separator name="typeGroup3"/>                <!-- Generalize Type, Infer Generics -->
            <separator name="scriptGroup"/>               <!-- Create/Apply Script, History -->
         </menu>

         <menu
               label="%menu.label.0"
               path="org.eclipse.jdt.ui.refactoring.menu/scriptGroup"
               id="debugging">
            <separator name="debugging"/>
            <separator name="debugginginterfaces"/>
            <separator name="vpgstats"/>
            <separator name="vpgdb"/>
         </menu>
         <action
               class="org.eclipse.rephraserengine.internal.ui.actions.DisplayVPGErrorLogAction"
               id="org.eclipse.rephraserengine.ui.DisplayVPGErrorLogAction"
               label="%action.label"
               menubarPath="org.eclipse.jdt.ui.refactoring.menu/debugging/debugging"/>
         <!-- -->
         <action
               class="org.eclipse.rephraserengine.internal.ui.actions.ResetDBStatisticsAction"
               id="org.eclipse.rephraserengine.ui.ResetVPGStatisticsAction"
               label="%action.label.0"
               menubarPath="org.eclipse.jdt.ui.refactoring.menu/debugging/vpgstats"/>
         <action
               class="org.eclipse.rephraserengine.internal.ui.actions.DisplayDBStatisticsAction"
               id="org.eclipse.rephraserengine.ui.DisplayVPGStatisticsAction"
               label="%action.label.1"
               menubarPath="org.eclipse.jdt.ui.refactoring.menu/debugging/vpgstats"/>
         <!-- -->
         <action
               class="org.eclipse.rephraserengine.internal.ui.actions.ClearDBAction"
               id="org.eclipse.rephraserengine.ui.ClearVPGDatabaseAction"
               label="%action.label.2"
               menubarPath="org.eclipse.jdt.ui.refactoring.menu/debugging/vpgdb"/>
         <action
               class="org.eclipse.rephraserengine.internal.ui.actions.EnsureDBUpToDateAction"
               id="org.eclipse.rephraserengine.ui.RefreshVPGDatabaseAction"
               label="%action.label.3"
               menubarPath="org.eclipse.jdt.ui.refactoring.menu/debugging/vpgdb"/>
         <action
               class="org.eclipse.rephraserengine.internal.ui.actions.DisplayModelAction"
               id="org.eclipse.rephraserengine.ui.DisplayVPGModelAction"
               label="%action.label.4"
               menubarPath="org.eclipse.jdt.ui.refactoring.menu/debugging/vpgdb"/>
         <action
               class="org.eclipse.rephraserengine.internal.ui.actions.DisplayDBAction"
               id="org.eclipse.rephraserengine.ui.DisplayVPGDatabaseAction"
               label="%action.label.5"
               menubarPath="org.eclipse.jdt.ui.refactoring.menu/debugging/vpgdb"/>
         <!-- -->
         <action
               class="org.eclipse.rephraserengine.internal.ui.browser.BrowseDBAction"
               id="org.eclipse.rephraserengine.ui.BrowseVPGDatabaseAction"
               definitionId="org.eclipse.rephraserengine.ui.BrowseCommand"
               label="Browse VPG Database"
               menubarPath="org.eclipse.jdt.ui.refactoring.menu/debugging/vpgdb"/>
      </actionSet>
   </extension>

   <!-- 4. Associate the action set with the Resource perspective -->
   <extension
         point="org.eclipse.ui.perspectiveExtensions">
      <perspectiveExtension targetID="org.eclipse.ui.resourcePerspective">
         <actionSet id="org.eclipse.rephraserengine.ui.DebugActionSet"/>
      </perspectiveExtension>
   </extension>

   <!--=========================================================================-->
   <!-- Refactoring Status Context Viewer for PostTransformationContext Objects -->
   <!--=========================================================================-->
   <extension
         point="org.eclipse.ltk.ui.refactoring.statusContextViewers">
      <statusContextViewer
            class="org.eclipse.rephraserengine.internal.ui.preservation.PostTransformationStatusContextViewer"
            id="org.eclipse.rephraserengine.ui.vpg.postTransformationStatusContextViewer">
         <enablement>
            <instanceof value="org.eclipse.rephraserengine.core.preservation.PostTransformationContext"/>
         </enablement>
      </statusContextViewer>
   </extension>

</plugin>
