<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2006, 2007 IBM Corporation and others. All rights reserved.
This program and the accompanying materials are made available under the terms
of the Eclipse Public License 2.0 which accompanies this distribution, and is 
available at https://www.eclipse.org/legal/epl-2.0/

    SPDX-License-Identifier: EPL-2.0

Initial Contributors:
The following IBM employees contributed to the Remote System Explorer
component that contains this file: David McKnight, Kushal Munir, 
Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson, 
Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.

Contributors:
Martin Oberhuber (Wind River) - Adapted original tutorial code to Open RSE.
Martin Oberhuber (Wind River) - [186523] Move subsystemConfigurations from UI to core
-->
<?eclipse version="3.1"?>
<plugin>

	<!-- ======================================= -->
	<!-- Remote Object Popup Menu Actions        -->
	<!-- ======================================= -->
	<!-- Tutorial #1: Creating a Remote Resource pop-up Menu Action -->
	<extension point="org.eclipse.ui.popupMenus">
	      <objectContribution
            objectClass="org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile"
            nameFilter="*.jar"
            id="actions.jar">
         <action
               label="Show contents"
               tooltip="list contents of this file"
               class="samples.ui.actions.ShowJarContents"
               menubarPath="additions"
               enablesFor="1"
               id="actions.jar.show">
         </action>
      </objectContribution>
	</extension>

	<!-- ======================================= -->
	<!-- Remote Object Property Pages            -->
	<!-- ======================================= -->
	<!-- Tutorial #2: Creating a Remote Resource Property Page -->
  <extension 
         point="org.eclipse.ui.propertyPages">
      <page 
            name="Folder Contents"
            class="samples.ui.propertypages.FolderInfoPropertyPage"
			id="samples.ui.PropertyPage1">
           <enabledWhen>
             <instanceof value="org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile"/>                        
         </enabledWhen>
         <filter name="isDirectory" value="true"/>  
      </page>
	</extension>    

	<!-- ======================================= -->
	<!-- SubSystem Configuration                 -->
	<!-- ======================================= -->
	<!-- Tutorial #3: Creating a Subsystem Configuration -->
	<extension
		point="org.eclipse.rse.core.subsystemConfigurations">
		<configuration
			id="samples.subsystems.factory"
			systemTypeIds="org.eclipse.rse.systemtype.linux;org.eclipse.rse.systemtype.unix;org.eclipse.rse.systemtype.windows"
			name="Teams"
			class="samples.subsystems.DeveloperSubSystemConfiguration"
			category="users"
			vendor="%providerName"
			description="Example Developer Subsystem"
			iconlive="icons/systemconnectionlive.gif"
			icon="icons/systemconnection.gif"
            priority="50000">
		</configuration>
	</extension>
</plugin> 
  