<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>

<!--
  Copyright (C) 2012 The Android Open Source Project

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<plugin>
   <extension
         point="com.motorolamobility.studio.android.db.core.dbRootNode">
      <rootNode
            class="com.motorolamobility.studio.android.db.devices.model.DevicesRootNode"
            id="com.motorolamobility.studio.android.db.devices.devicesRootNode"
            name="%devicesNodeName">
      </rootNode>
   </extension>
   <extension
         point="org.eclipse.ui.popupMenus">
      <objectContribution
            adaptable="false"
            id="com.motorolamobility.studio.android.db.devices.ui.action.IDeviceNode"
            objectClass="com.motorolamobility.studio.android.db.devices.model.IDeviceNode">
         <action
               class="com.motorolamobility.studio.android.db.devices.ui.action.PopupMenuActionDelegate"
               definitionId="com.motorolamobility.studio.android.db.core.refreshNode"
               enablesFor="1"
               icon="platform:/plugin/org.eclipse.datatools.sqltools.schemaobjecteditor.ui/icons/refresh_from_server.gif"
               id="com.motorolamobility.studio.android.db.devices.ui.action.refreshDeviceNode"
               label="%action_refresh_device_node"
               menubarPath="com.motorolamobility.studio.android.db.devices.ui.action.IDeviceNodeGroup2">
         </action>
         
      </objectContribution>
      <objectContribution
            adaptable="false"
            id="com.motorolamobility.studio.android.db.devices.ui.action.IDbMapperNode"
            objectClass="com.motorolamobility.studio.android.db.devices.model.IDbDeviceMapperNode">
         <action
               class="com.motorolamobility.studio.android.db.devices.ui.action.PopupMenuActionDelegate"
               enablesFor="1"
               icon="icons/map.png"
               id="com.motorolamobility.studio.android.db.devices.ui.action.mapDeviceDbNode"
               label="%action_map_database"
               overrideActionId="com.motorolamobility.studio.android.db.core.ui.action.mapDbNode">
         </action>
      </objectContribution>      
      <objectContribution
            adaptable="false"
            id="com.motorolamobility.studio.android.db.devices.ui.action.DeviceDbNode"
            objectClass="com.motorolamobility.studio.android.db.devices.model.DeviceDbNode">
         <action
               class="com.motorolamobility.studio.android.db.devices.ui.action.PopupMenuActionDelegate"
               enablesFor="1"
               icon="icons/save_to_local_file.png"
               id="com.motorolamobility.studio.android.db.devices.ui.action.saveToLocalFile"
               label="%saveToLocalFile">
               <enablement>
               <objectState
                     name="com.motorolamobility.studio.android.db.core.databaseConnection"
                     value="com.motorolamobility.studio.android.db.core.databaseConnected">
               </objectState>
            </enablement>
         </action>
      </objectContribution>      
   </extension>
   <extension
         point="org.eclipse.ui.menus">
      <menuContribution
            allPopups="false"
            locationURI="popup:com.motorolamobility.studio.android.db.devices.ui.action.IDeviceNode?after=com.motorolamobility.studio.android.db.devices.ui.action.filterDbApplicationNode">
         <separator
               name="com.motorolamobility.studio.android.db.devices.ui.action.IDeviceNodeGroup2">
         </separator>
      </menuContribution>
      <menuContribution
            allPopups="false"
            locationURI="popup:com.motorola.studio.android.db.databaseView">
         <command
               commandId="com.motorolamobility.studio.android.db.devices.command.filterDbApplicationNode"
               label="%action_filter_db_application_node"
               style="toggle">
            <visibleWhen
                  checkEnabled="false">
               <with
                     variable="selection">
                  <count
                        value="1">
                  </count>
                  <iterate
                        ifEmpty="false"
                        operator="and">
                     <adapt
                           type="com.motorolamobility.studio.android.db.devices.model.IDeviceNode">
                     </adapt>
                  </iterate>
               </with>
            </visibleWhen>
         </command>
      </menuContribution>
   </extension>
   <extension
         point="org.eclipse.ui.commands">
      <command
            defaultHandler="com.motorolamobility.studio.android.db.devices.ui.action.FilterDbApplicationHandler"
            id="com.motorolamobility.studio.android.db.devices.command.filterDbApplicationNode"
            name="%command_filter_db_application_node">
         <state
               class="com.motorolamobility.studio.android.db.devices.ui.action.PersistentToggleState"
               id="org.eclipse.ui.commands.toggleState">
         </state>
      </command>
   </extension>

   <extension
       point="org.eclipse.ui.preferencePages">
           <page
               category="com.motorola.studio.platform.ui.preference"
               class="com.motorolamobility.studio.android.db.devices.ui.preferences.DbPreferencePage"
               id="com.motorola.studio.android.db.preferencepage"
               name="%preferencePageName">
           </page>
   </extension>

</plugin>
