# Samples

###### Identifier:

org.eclipse.pde.ui.samples

###### Since:

3.0

###### Description:

This extension point should be used to register Eclipse code samples. A sample is one or more Eclipse projects that are packaged in a way suitable for subsequent import into the workspace.

Each sample has a name, one or more project elements and a final perspective. The sample wizard will create a project for each `project` element, import the content from the archive, and open the final perspective if specified. Projects must be complete i.e. have correct nature and classpath (if Java or plug-in projects).

If target view is specified and contains resource elements, it will be used to select and reveal those resources in the view after the sample has been created.

This extension point is currently provided for internal Eclipse SDK usage only. It should not be used for anything else except Eclipse SDK examples.

###### Configuration Markup:

<!ELEMENT extension (sample+)>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #IMPLIED

name CDATA #IMPLIED>

- point - extension point attribute - in this case `org.eclipse.pde.ui.samples`.
- id - not used.
- name - not used.

<!ELEMENT sample (description , project+ , activity*)>

<!ATTLIST sample

id IDREF #REQUIRED

name CDATA #REQUIRED

perspectiveId IDREF #IMPLIED

launcher CDATA #IMPLIED

targetViewId IDREF #IMPLIED>

an element that represents a single sample to be imported into the workspace.

- id - a unique identifier of the sample
- name - a translatable name of the sample
- perspectiveId - if specified, the sample wizard will switch to the perspective with the provided id at the end of the operation.
- launcher - an optional launch shortcut to be used to run the sample. If not specified, it will be assumed that a new Eclipse instance needs to be launched in order to see the sample. If specified, it needs to be the fully qualified name of the Java class that implements `org.eclipse.debug.ui.ILaunchShortcut` interface.
- targetViewId - an optional attribute that indicates that target view in the workbench that contains resources to select and reveal after the sample has been created. The view must implement `org.eclipse.ui.part.ISetSelectionTarget` interface. Resources listed in `project` elements will be selected and revealed in the target view.

<!ELEMENT project EMPTY>

<!ATTLIST project

name CDATA #REQUIRED

archive CDATA #REQUIRED

shared (true | false)

selectReveal CDATA #IMPLIED>

each project element will result in a workspace project being created with the content imported from the associated archive.

- name - name of the project to be created in the workspace for this sample
- archive - relative path to the ZIP file containing the content of the project to import
- shared - shared projects may be listed in more than one sample. When this attribute is `true`, and the project with the same name already exists in the workspace, it will be silently skipped. Otherwise, users will be prompted for overwrite permission.
- selectReveal - a project-relative path of the resource to select and reveal in the target view after creation.

<!ELEMENT description EMPTY>

<!ATTLIST description

helpHref CDATA #IMPLIED>

body text of this element should contain description of the sample.

- helpHref - an optional reference to the topic in Help that provides more information about the sample.

<!ELEMENT activity EMPTY>

<!ATTLIST activity

id CDATA #REQUIRED>

specifies an activity that needs to be enabled for this sample

- id - activity identifier to be used to enable the activity for this sample

###### Examples:

The following is an example of the extension point:

       <extension point="org.eclipse.pde.ui.samples">
          <sample
               id="com.example.xyz.sample"
               name="My Sample">
             <description helpHref="/com.example.xyz.doc/samples/com.example.xyz.sample1/doc-html/doc.html">
                 A short description of the sample.
             </description>
             <project name="com.example.xyz.sample1"
                      archive="samples/sample1.zip"/>
          </sample>
       </extension>

###### API Information:

If specified, the value of the attribute `launcher` must represent a fully qualified name of the Java class that implements `org.eclipse.debug.ui.ILaunchShortcut` interface.

###### Supplied Implementation:

PDE UI supplies Runtime Workbench launcher for launching another instance of Eclipse.

Copyright (c) 2004, 2013 IBM Corporation and others.
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-v20.html/ SPDX-License-Identifier: EPL-2.0.