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

   <extension
         point="org.eclipse.ui.views">
      <category
            name="TxViewer"
            id="com.minres.scviewer.ui">
      </category>
   </extension>
   <extension
         point="org.eclipse.help.contexts">
      <contexts
            file="contexts.xml">
      </contexts>
   </extension>
   <extension
         point="org.eclipse.ui.editors">
      <editor
            class="com.minres.scviewer.ui.TxEditorPart"
            contributorClass="com.minres.scviewer.ui.TxEditorActionBarContributor"
            extensions="txdb"
            filenames="*.txdb,*.txlog,*.vcd"
            icon="res/images/scviewer.png"
            id="com.minres.scviewer.ui.TxEditorPart"
            name="Wave Viewer">
      </editor>
   </extension>
   <extension
         point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
      <propertyContributor
            contributorId="com.minres.scviewer.ui.TxEditorPart">
         <propertyCategory
               category="Transaction"></propertyCategory>
      </propertyContributor>
   </extension>
   <extension
         point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
      <propertyTabs
            contributorId="com.minres.scviewer.ui.TxEditorPart">
         <propertyTab
               category="Transaction"
               id="com.minres.scviewer.ui.propertyTabTransaction"
               label="Transaction">
         </propertyTab>
         <propertyTab
               afterTab="com.minres.scviewer.ui.propertyTabTransaction"
               category="Transaction"
               id="com.minres.scviewer.ui.propertyTabAttributes"
               label="Attributes">
         </propertyTab>
         <propertyTab
               afterTab="com.minres.scviewer.ui.propertyTabAttributes"
               category="Transaction"
               id="com.minres.scviewer.ui.propertyTabRelated"
               label="Related Tx">
         </propertyTab>
      </propertyTabs>
   </extension>
   <extension
         point="org.eclipse.ui.views.properties.tabbed.propertySections">
      <propertySections
            contributorId="com.minres.scviewer.ui.TxEditorPart">
         <propertySection
               class="org.eclipse.ui.views.properties.tabbed.AdvancedPropertySection"
               id="com.minres.scviewer.ui.propertySectionAll"
               tab="com.minres.scviewer.ui.propertyTabTransaction">
            <input
                  type="com.minres.scviewer.database.ITx">
            </input>
         </propertySection>
         <propertySection
               afterSection="com.minres.scviewer.ui.propertySectionAll"
               class="com.minres.scviewer.ui.views.sections.AttributeProperty"
               id="com.minres.scviewer.ui.propertySectionAttributes"
               tab="com.minres.scviewer.ui.propertyTabAttributes">
            <input
                  type="com.minres.scviewer.database.ITx">
            </input>
         </propertySection>
         <propertySection
               afterSection="com.minres.scviewer.ui.propertySectionAttributes"
               class="com.minres.scviewer.ui.views.sections.RelatedProperty"
               id="com.minres.scviewer.ui.propertySectionRelated"
               tab="com.minres.scviewer.ui.propertyTabRelated">
            <input
                  type="com.minres.scviewer.database.ITx">
            </input>
         </propertySection>
      </propertySections>
   </extension>
   <extension
         point="org.eclipse.core.runtime.adapters">
      <factory
            adaptableType="com.minres.scviewer.database.ITx"
            class="com.minres.scviewer.ui.adapter.TxAdapterFactory">
         <adapter
               type="org.eclipse.ui.views.properties.IPropertySource">
         </adapter>
      </factory>
   </extension>
   <extension
         point="org.eclipse.ui.elementFactories">
      <factory
            class="com.minres.scviewer.ui.TxEditorInputFactory"
            id="com.minres.scviewer.ui.TxEditorInputFactory">
      </factory>
   </extension>
   <extension
         point="org.eclipse.ui.menus">
      <menuContribution
            allPopups="false"
            locationURI="toolbar:org.eclipse.ui.main.toolbar">
         <toolbar
               id="com.minres.scviewer.ui.toolbar1">
            <command
                  commandId="com.minres.scviewer.ui.gotoPrev"
                  label="Prev"
                  style="push"
                  tooltip="Go to previous event">
               <visibleWhen
                     checkEnabled="false">
                  <reference
                        definitionId="com.minres.scviewer.ui.waveEditorActive">
                  </reference>
               </visibleWhen>
            </command>
            <command
                  commandId="com.minres.scviewer.ui.gotoNext"
                  label="Next"
                  style="push"
                  tooltip="Go to next event">
               <visibleWhen
                     checkEnabled="false">
                  <reference
                        definitionId="com.minres.scviewer.ui.waveEditorActive">
                  </reference>
               </visibleWhen>
            </command>
           <command
                 commandId="com.minres.scviewer.ui.zoom"
                 id="com.minres.scviewer.ui.zoom.command"
                 style="pulldown"
                 tooltip="Set zoom level">
              <visibleWhen
                    checkEnabled="false">
                 <reference
                       definitionId="com.minres.scviewer.ui.waveEditorActive">
                 </reference>
              </visibleWhen>
           </command>
           <command
                 commandId="com.minres.scviewer.ui.zoomin"
                 label="Zoom in"
                 style="push"
                 tooltip="Zoom into">
              <visibleWhen
                    checkEnabled="false">
                 <reference
                       definitionId="com.minres.scviewer.ui.waveEditorActive">
                 </reference>
              </visibleWhen>
           </command>
           <command
                 commandId="com.minres.scviewer.ui.zoomout"
                 label="Zoom out"
                 style="push"
                 tooltip="Zoom out of">
              <visibleWhen
                    checkEnabled="false">
                 <reference
                       definitionId="com.minres.scviewer.ui.waveEditorActive">
                 </reference>
              </visibleWhen>
           </command>
         </toolbar>
      </menuContribution>
      <menuContribution
            locationURI="menu:com.minres.scviewer.ui.zoom.command">
         <command
               commandId="com.minres.scviewer.ui.zoom"
               label="100ps"
               style="push"
               tooltip="Resolution 100ps">
            <parameter
                  name="com.minres.scviewer.ui.zoom.level"
                  value="5">
            </parameter>
         </command>
         <command
               commandId="com.minres.scviewer.ui.zoom"
               label="1ns"
               style="push"
               tooltip="Resolution 1ns">
            <parameter
                  name="com.minres.scviewer.ui.zoom.level"
                  value="6">
            </parameter>
         </command>
         <command
               commandId="com.minres.scviewer.ui.zoom"
               label="10ns"
               style="push"
               tooltip="Resolution 10ns">
            <parameter
                  name="com.minres.scviewer.ui.zoom.level"
                  value="7">
            </parameter>
         </command>
         <command
               commandId="com.minres.scviewer.ui.zoom"
               label="100ns"
               style="push"
               tooltip="Resolution 100ns">
            <parameter
                  name="com.minres.scviewer.ui.zoom.level"
                  value="8">
            </parameter>
         </command>
         <command
               commandId="com.minres.scviewer.ui.zoom"
               label="1µs"
               style="push"
               tooltip="Resolution 1us">
            <parameter
                  name="com.minres.scviewer.ui.zoom.level"
                  value="9">
            </parameter>
         </command>
         <command
               commandId="com.minres.scviewer.ui.zoom"
               label="10µs"
               style="push"
               tooltip="Resolution 10us">
            <parameter
                  name="com.minres.scviewer.ui.zoom.level"
                  value="10">
            </parameter>
         </command>
         <command
               commandId="com.minres.scviewer.ui.zoom"
               label="100µs"
               style="push"
               tooltip="Resolution 100us">
            <parameter
                  name="com.minres.scviewer.ui.zoom.level"
                  value="11">
            </parameter>
         </command>
         <command
               commandId="com.minres.scviewer.ui.zoom"
               label="1ms"
               style="push"
               tooltip="Resolution 1ms">
            <parameter
                  name="com.minres.scviewer.ui.zoom.level"
                  value="12">
            </parameter>
         </command>
         <command
               commandId="com.minres.scviewer.ui.zoom"
               label="10ms"
               style="push"
               tooltip="Resolution 10ms">
            <parameter
                  name="com.minres.scviewer.ui.zoom.level"
                  value="13">
            </parameter>
         </command>
         <command
               commandId="com.minres.scviewer.ui.zoom"
               label="100ms"
               style="push"
               tooltip="Resolution 100ms">
            <parameter
                  name="com.minres.scviewer.ui.zoom.level"
                  value="14">
            </parameter>
         </command>
         <command
               commandId="com.minres.scviewer.ui.zoom"
               label="1s"
               style="push"
               tooltip="Resolution 1s">
            <parameter
                  name="com.minres.scviewer.ui.zoom.level"
                  value="15">
            </parameter>
         </command>
      </menuContribution>
      <menuContribution
            allPopups="false"
            locationURI="popup:com.minres.scviewer.ui.TxEditorPart">
         <command
               commandId="com.minres.scviewer.ui.removeWave"
               label="Remove"
               style="push"
               tooltip="Go to next event">
            <visibleWhen
                  checkEnabled="false">
               <reference
                     definitionId="com.minres.scviewer.ui.waveEditorActive">
               </reference>
            </visibleWhen>
         </command>
         <command
               commandId="com.minres.scviewer.ui.zoomin"
               label="Zoom in"
               style="push"
               tooltip="Zoom into">
            <visibleWhen
                  checkEnabled="false">
               <reference
                     definitionId="com.minres.scviewer.ui.waveEditorActive">
               </reference>
            </visibleWhen>
         </command>
         <command
               commandId="com.minres.scviewer.ui.zoomout"
               label="Zoom out"
               style="push"
               tooltip="Zoom out of">
            <visibleWhen
                  checkEnabled="false">
               <reference
                     definitionId="com.minres.scviewer.ui.waveEditorActive">
               </reference>
            </visibleWhen>
         </command>
         <command
               commandId="com.minres.scviewer.ui.gotoPrev"
               label="Prev"
               style="push"
               tooltip="Go to previous event">
            <visibleWhen
                  checkEnabled="false">
               <reference
                     definitionId="com.minres.scviewer.ui.waveEditorActive">
               </reference>
            </visibleWhen>
         </command>
         <command
               commandId="com.minres.scviewer.ui.gotoNext"
               label="Next"
               style="push"
               tooltip="Go to next event">
            <visibleWhen
                  checkEnabled="false">
               <reference
                     definitionId="com.minres.scviewer.ui.waveEditorActive">
               </reference>
            </visibleWhen>
         </command>
      </menuContribution>
   </extension>
   <extension
         point="org.eclipse.ui.commands">
      <command
            description="Go to next event"
            id="com.minres.scviewer.ui.gotoNext"
            name="Next">
      </command>
      <command
            description="Go to previous event"
            id="com.minres.scviewer.ui.gotoPrev"
            name="Prev">
      </command>
      <command
            defaultHandler="com.minres.scviewer.ui.handler.Zoom"
            description="Set the zoom level"
            id="com.minres.scviewer.ui.zoom"
            name="Zoom">
         <commandParameter
               id="com.minres.scviewer.ui.zoom.level"
               name="level"
               optional="true">
         </commandParameter>
      </command>
      <command
            id="com.minres.scviewer.ui.zoomin"
            name="Zoom in">
      </command>
      <command
            id="com.minres.scviewer.ui.zoomout"
            name="Zoom out">
      </command>
      <command
            id="com.minres.scviewer.ui.removeWave"
            name="Remove wave">
      </command>
   </extension>
   <extension
         point="org.eclipse.ui.handlers">
      <handler
            class="com.minres.scviewer.ui.handler.GotoPrev"
            commandId="com.minres.scviewer.ui.gotoPrev">
         <enabledWhen>
            <reference
                  definitionId="com.minres.scviewer.ui.oneTxSeleted">
            </reference>
         </enabledWhen>
      </handler>
      <handler
            class="com.minres.scviewer.ui.handler.GotoNext"
            commandId="com.minres.scviewer.ui.gotoNext">
         <enabledWhen>
            <reference
                  definitionId="com.minres.scviewer.ui.oneTxSeleted">
            </reference>
         </enabledWhen>
      </handler>
      <handler
            class="com.minres.scviewer.ui.handler.ZoomInOut"
            commandId="com.minres.scviewer.ui.zoomin">
         <enabledWhen>
            <reference
                  definitionId="com.minres.scviewer.ui.waveEditorActive">
            </reference>
         </enabledWhen>
      </handler>
      <handler
            class="com.minres.scviewer.ui.handler.ZoomInOut"
            commandId="com.minres.scviewer.ui.zoomout">
         <enabledWhen>
            <reference
                  definitionId="com.minres.scviewer.ui.waveEditorActive">
            </reference>
         </enabledWhen>
      </handler>
      <handler
            class="com.minres.scviewer.ui.handler.RemoveHandler"
            commandId="com.minres.scviewer.ui.removeWave">
         <enabledWhen>
            <reference
                  definitionId="com.minres.scviewer.ui.oneWaveSeleted">
            </reference>
         </enabledWhen>
      </handler>
   </extension>
   <extension
         point="org.eclipse.core.expressions.definitions">
      <definition
            id="com.minres.scviewer.ui.oneWaveSeleted">
            <with
                  variable="selection">
               <and>
                  <count
                        value="1">
                  </count>
 				<iterate
           operator="or">
       				<instanceof value="com.minres.scviewer.database.IWaveform"/>
    			</iterate>      
            </and>
            </with>
      </definition>
      <definition
            id="com.minres.scviewer.ui.oneTxSeleted">
            <with
                  variable="selection">
               <and>
                  <count
                        value="1">
                  </count>
 				<iterate
           operator="or">
       				<instanceof value="com.minres.scviewer.database.ITx"/>
    			</iterate>      
            </and>
            </with>
      </definition>
      <definition
            id="com.minres.scviewer.ui.waveEditorActive">
         <with
               variable="activeEditorId">
            <equals
                  value="com.minres.scviewer.ui.TxEditorPart">
            </equals>
         </with>
      </definition>
   </extension>
   <extension
         point="org.eclipse.ui.commandImages">
      <image
            commandId="com.minres.scviewer.ui.gotoPrev"
            disabledIcon="res/images/previous-green-d.png"
            icon="res/images/previous-green.png">
      </image>
      <image
            commandId="com.minres.scviewer.ui.gotoNext"
            disabledIcon="res/images/next-green-d.png"
            icon="res/images/next-green.png">
      </image>
      <image
            commandId="com.minres.scviewer.ui.zoom"
            icon="res/images/zoom.png">
      </image>
      <image
            commandId="com.minres.scviewer.ui.zoomin"
            icon="res/images/zoom_in.png">
      </image>
      <image
            commandId="com.minres.scviewer.ui.zoomout"
            icon="res/images/zoom_out.png">
      </image>
      <image
            commandId="com.minres.scviewer.ui.removeWave"
            icon="res/images/cross.png">
      </image>
   </extension>

</plugin>
