diff --git a/plugins/org.eclipse.objectteams.otdt.samples/.classpath b/plugins/org.eclipse.objectteams.otdt.samples/.classpath
new file mode 100644
index 0000000..987380a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="con" path="OTRE"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/.project b/plugins/org.eclipse.objectteams.otdt.samples/.project
new file mode 100644
index 0000000..24bb107
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/.project
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.objectteams.otdt.samples</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.objectteams.otdt.builder.OTJBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.objectteams.otdt.OTJavaNature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/META-INF/MANIFEST.MF b/plugins/org.eclipse.objectteams.otdt.samples/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..0770ae5
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/META-INF/MANIFEST.MF
@@ -0,0 +1,27 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: OTSamples2 Plug-in
+Bundle-SymbolicName: org.eclipse.objectteams.otdt.samples;singleton:=true
+Bundle-Version: 1.4.0.qualifier
+Bundle-Activator: org.eclipse.objectteams.otdt.internal.samples.OTSamplesPlugin
+Bundle-Vendor: The TOPPrax consortium
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.ui.intro,
+ org.eclipse.pde.ui,
+ org.eclipse.objectteams.otdt.ui,
+ org.eclipse.core.resources,
+ org.eclipse.ui.ide,
+ org.eclipse.ui.forms,
+ org.eclipse.objectteams.otequinox,
+ org.eclipse.ui.intro.universal,
+ org.eclipse.objectteams.otdt,
+ org.eclipse.debug.ui,
+ org.eclipse.debug.core,
+ org.eclipse.jdt.core,
+ org.eclipse.objectteams.otdt.ui.help,
+ org.eclipse.jdt.debug.ui
+Export-Package: org.eclipse.objectteams.otdt.internal.samples
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/build.properties b/plugins/org.eclipse.objectteams.otdt.samples/build.properties
new file mode 100644
index 0000000..6fb1c73
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/build.properties
@@ -0,0 +1,14 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+               .,\
+               samples/,\
+               css/,\
+               intro/,\
+               META-INF/,\
+               plugin.properties,\
+               graphics/,\
+               bin/
+src.includes = .classpath,\
+               .project,\
+               build.properties
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/css/samples.css b/plugins/org.eclipse.objectteams.otdt.samples/css/samples.css
new file mode 100644
index 0000000..5a4871b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/css/samples.css
@@ -0,0 +1,17 @@
+#swt .content-link img {
+	background-image : url(graphics/obj_48/samplered_obj.gif);
+}
+
+#swt .content-link:hover img {
+	background-image : url(graphics/obj_48/sampleredhov_obj.gif);
+}
+
+#workbench .content-link img {
+	background-image : url(graphics/obj_48/samplepurp_obj.gif);
+}
+
+#workbench .content-link:hover img {
+	background-image : url(graphics/obj_48/samplepurphov_obj.gif);
+}
+
+
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/css/swt.properties b/plugins/org.eclipse.objectteams.otdt.samples/css/swt.properties
new file mode 100644
index 0000000..2ca9189
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/css/swt.properties
@@ -0,0 +1,27 @@
+###############################################################################
+# Copyright (c) 2000, 2004 IBM Corporation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# $Id$
+# 
+# Please visit http://www.eclipse.org/objectteams for updates and contact.
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+# 	  Fraunhofer FIRST - Initial API and implementation
+# 	  Technical University Berlin - Initial API and implementation
+###############################################################################
+overview.page-content.overview-links.java.link-icon = css/graphics/obj_48/javadev_obj.gif
+
+tutorials.page-content.java.layout.ncolumns = 2
+tutorials.page-content.java.hello-world.link-icon = css/graphics/obj_48/javaapp_obj.gif
+tutorials.page-content.java.applet.link-icon = css/graphics/obj_48/javaapplet_obj.gif
+tutorials.page-content.java.swt.link-icon = css/graphics/obj_48/swtapp_obj.gif
+tutorials.page-content.java.ant.link-icon = css/graphics/obj_48/script_obj.gif
+
+
+
+
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/overview48.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/overview48.gif
new file mode 100644
index 0000000..7da24bd
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/overview48.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/overview48sel.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/overview48sel.gif
new file mode 100644
index 0000000..3d1c45b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/overview48sel.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/overview72.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/overview72.gif
new file mode 100644
index 0000000..d34b4b3
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/overview72.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/samples48.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/samples48.gif
new file mode 100644
index 0000000..3213de6
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/samples48.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/samples48sel.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/samples48sel.gif
new file mode 100644
index 0000000..f9c0469
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/samples48sel.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/samples72.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/samples72.gif
new file mode 100644
index 0000000..4c63a9a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/samples72.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/tutorials48.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/tutorials48.gif
new file mode 100644
index 0000000..1a3f06a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/tutorials48.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/tutorials48sel.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/tutorials48sel.gif
new file mode 100644
index 0000000..3d687bd
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/tutorials48sel.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/tutorials72.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/tutorials72.gif
new file mode 100644
index 0000000..a2aa343
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/tutorials72.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/wb48.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/wb48.gif
new file mode 100644
index 0000000..c2fd06a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/wb48.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/whatsnew48.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/whatsnew48.gif
new file mode 100644
index 0000000..2bfb9be
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/whatsnew48.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/whatsnew48sel.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/whatsnew48sel.gif
new file mode 100644
index 0000000..0da843f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/whatsnew48sel.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/whatsnew72.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/whatsnew72.gif
new file mode 100644
index 0000000..74bf6ff
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/ctool/whatsnew72.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/dtool/back.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/dtool/back.gif
new file mode 100644
index 0000000..f0d0929
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/dtool/back.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/dtool/forward.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/dtool/forward.gif
new file mode 100644
index 0000000..dbe58b2
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/dtool/forward.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/back.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/back.gif
new file mode 100644
index 0000000..1c81cb6
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/back.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/forward.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/forward.gif
new file mode 100644
index 0000000..3e4a4f4
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/forward.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/overview48.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/overview48.gif
new file mode 100644
index 0000000..8e2f8c1
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/overview48.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/overview48sel.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/overview48sel.gif
new file mode 100644
index 0000000..1275a4a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/overview48sel.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/overview72.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/overview72.gif
new file mode 100644
index 0000000..e3f7648
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/overview72.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/samples48.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/samples48.gif
new file mode 100644
index 0000000..63d405b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/samples48.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/samples48sel.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/samples48sel.gif
new file mode 100644
index 0000000..4c3135d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/samples48sel.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/samples72.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/samples72.gif
new file mode 100644
index 0000000..9216426
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/samples72.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/tutorials48.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/tutorials48.gif
new file mode 100644
index 0000000..718ca6c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/tutorials48.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/tutorials48sel.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/tutorials48sel.gif
new file mode 100644
index 0000000..10680e5
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/tutorials48sel.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/tutorials72.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/tutorials72.gif
new file mode 100644
index 0000000..bab3498
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/tutorials72.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/wb48.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/wb48.gif
new file mode 100644
index 0000000..50ca287
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/wb48.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/whatsnew48.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/whatsnew48.gif
new file mode 100644
index 0000000..6e00d7a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/whatsnew48.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/whatsnew48sel.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/whatsnew48sel.gif
new file mode 100644
index 0000000..be9fa0c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/whatsnew48sel.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/whatsnew72.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/whatsnew72.gif
new file mode 100644
index 0000000..410093b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/etool/whatsnew72.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/newprj_wiz.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/newprj_wiz.gif
new file mode 100644
index 0000000..858f4c9
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/newprj_wiz.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/community_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/community_obj.gif
new file mode 100644
index 0000000..5d132a8
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/community_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/communityhov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/communityhov_obj.gif
new file mode 100644
index 0000000..acb2a58
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/communityhov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/features_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/features_obj.gif
new file mode 100644
index 0000000..364fd48
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/features_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/featureshov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/featureshov_obj.gif
new file mode 100644
index 0000000..fbfdf03
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/featureshov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/javaapp_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/javaapp_obj.gif
new file mode 100644
index 0000000..ce00d50
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/javaapp_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/javaapphov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/javaapphov_obj.gif
new file mode 100644
index 0000000..35e9f58
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/javaapphov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/javaapplet_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/javaapplet_obj.gif
new file mode 100644
index 0000000..b19a952
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/javaapplet_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/javaapplethov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/javaapplethov_obj.gif
new file mode 100644
index 0000000..5da3db9
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/javaapplethov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/javadev_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/javadev_obj.gif
new file mode 100644
index 0000000..f6526a2
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/javadev_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/javadevhov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/javadevhov_obj.gif
new file mode 100644
index 0000000..36b47d3
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/javadevhov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/migrate_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/migrate_obj.gif
new file mode 100644
index 0000000..0c2fe88
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/migrate_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/migratehov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/migratehov_obj.gif
new file mode 100644
index 0000000..ee34e2a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/migratehov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/new_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/new_obj.gif
new file mode 100644
index 0000000..f46b81b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/new_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/newhov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/newhov_obj.gif
new file mode 100644
index 0000000..593e63b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/newhov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/plugin_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/plugin_obj.gif
new file mode 100644
index 0000000..d92d2c5
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/plugin_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/pluginhov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/pluginhov_obj.gif
new file mode 100644
index 0000000..1de8ccc
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/pluginhov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/rcpapp_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/rcpapp_obj.gif
new file mode 100644
index 0000000..830ab56
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/rcpapp_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/rcpapphov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/rcpapphov_obj.gif
new file mode 100644
index 0000000..5bd80a9
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/rcpapphov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/samplepurp_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/samplepurp_obj.gif
new file mode 100644
index 0000000..c4e56fc
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/samplepurp_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/samplepurphov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/samplepurphov_obj.gif
new file mode 100644
index 0000000..60481e2
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/samplepurphov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/samplered_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/samplered_obj.gif
new file mode 100644
index 0000000..f6d104e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/samplered_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/sampleredhov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/sampleredhov_obj.gif
new file mode 100644
index 0000000..687d6b2
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/sampleredhov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/script_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/script_obj.gif
new file mode 100644
index 0000000..b48b7cd
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/script_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/scripthov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/scripthov_obj.gif
new file mode 100644
index 0000000..d67203e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/scripthov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/swtapp_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/swtapp_obj.gif
new file mode 100644
index 0000000..9ba9a33
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/swtapp_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/swtapphov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/swtapphov_obj.gif
new file mode 100644
index 0000000..c4fbb5d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/swtapphov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/teamsup_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/teamsup_obj.gif
new file mode 100644
index 0000000..4b9def9
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/teamsup_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/teamsuphov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/teamsuphov_obj.gif
new file mode 100644
index 0000000..4bdf819
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/teamsuphov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/updates_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/updates_obj.gif
new file mode 100644
index 0000000..1608b30
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/updates_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/updateshov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/updateshov_obj.gif
new file mode 100644
index 0000000..22a0ace
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/updateshov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/wbbasics_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/wbbasics_obj.gif
new file mode 100644
index 0000000..8b82563
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/wbbasics_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/wbbasicshov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/wbbasicshov_obj.gif
new file mode 100644
index 0000000..230be9c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/icons/obj48/wbbasicshov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/community_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/community_obj.gif
new file mode 100644
index 0000000..5d132a8
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/community_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/communityhov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/communityhov_obj.gif
new file mode 100644
index 0000000..acb2a58
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/communityhov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/features_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/features_obj.gif
new file mode 100644
index 0000000..364fd48
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/features_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/featureshov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/featureshov_obj.gif
new file mode 100644
index 0000000..fbfdf03
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/featureshov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/javaapp_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/javaapp_obj.gif
new file mode 100644
index 0000000..ce00d50
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/javaapp_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/javaapphov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/javaapphov_obj.gif
new file mode 100644
index 0000000..35e9f58
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/javaapphov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/javaapplet_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/javaapplet_obj.gif
new file mode 100644
index 0000000..b19a952
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/javaapplet_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/javaapplethov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/javaapplethov_obj.gif
new file mode 100644
index 0000000..5da3db9
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/javaapplethov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/javadev_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/javadev_obj.gif
new file mode 100644
index 0000000..f6526a2
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/javadev_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/javadevhov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/javadevhov_obj.gif
new file mode 100644
index 0000000..36b47d3
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/javadevhov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/migrate_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/migrate_obj.gif
new file mode 100644
index 0000000..0c2fe88
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/migrate_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/migratehov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/migratehov_obj.gif
new file mode 100644
index 0000000..ee34e2a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/migratehov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/new_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/new_obj.gif
new file mode 100644
index 0000000..f46b81b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/new_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/newhov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/newhov_obj.gif
new file mode 100644
index 0000000..593e63b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/newhov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/plugin_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/plugin_obj.gif
new file mode 100644
index 0000000..d92d2c5
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/plugin_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/pluginhov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/pluginhov_obj.gif
new file mode 100644
index 0000000..1de8ccc
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/pluginhov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/rcpapp_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/rcpapp_obj.gif
new file mode 100644
index 0000000..830ab56
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/rcpapp_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/rcpapphov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/rcpapphov_obj.gif
new file mode 100644
index 0000000..5bd80a9
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/rcpapphov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/samplepurp_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/samplepurp_obj.gif
new file mode 100644
index 0000000..c4e56fc
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/samplepurp_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/samplepurphov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/samplepurphov_obj.gif
new file mode 100644
index 0000000..60481e2
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/samplepurphov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/samplered_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/samplered_obj.gif
new file mode 100644
index 0000000..f6d104e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/samplered_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/sampleredhov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/sampleredhov_obj.gif
new file mode 100644
index 0000000..687d6b2
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/sampleredhov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/script_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/script_obj.gif
new file mode 100644
index 0000000..b48b7cd
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/script_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/scripthov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/scripthov_obj.gif
new file mode 100644
index 0000000..d67203e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/scripthov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/swtapp_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/swtapp_obj.gif
new file mode 100644
index 0000000..9ba9a33
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/swtapp_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/swtapphov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/swtapphov_obj.gif
new file mode 100644
index 0000000..c4fbb5d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/swtapphov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/teamsup_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/teamsup_obj.gif
new file mode 100644
index 0000000..4b9def9
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/teamsup_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/teamsuphov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/teamsuphov_obj.gif
new file mode 100644
index 0000000..4bdf819
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/teamsuphov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/updates_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/updates_obj.gif
new file mode 100644
index 0000000..1608b30
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/updates_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/updateshov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/updateshov_obj.gif
new file mode 100644
index 0000000..22a0ace
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/updateshov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/wbbasics_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/wbbasics_obj.gif
new file mode 100644
index 0000000..8b82563
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/wbbasics_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/wbbasicshov_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/wbbasicshov_obj.gif
new file mode 100644
index 0000000..230be9c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/graphics/obj_48/wbbasicshov_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/intro/css/graphics/otapp_obj.gif b/plugins/org.eclipse.objectteams.otdt.samples/intro/css/graphics/otapp_obj.gif
new file mode 100644
index 0000000..d501aef
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/intro/css/graphics/otapp_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/intro/css/graphics/otapphov_obj.png b/plugins/org.eclipse.objectteams.otdt.samples/intro/css/graphics/otapphov_obj.png
new file mode 100644
index 0000000..3724dd3
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/intro/css/graphics/otapphov_obj.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/intro/css/graphics/sample.gif b/plugins/org.eclipse.objectteams.otdt.samples/intro/css/graphics/sample.gif
new file mode 100644
index 0000000..5ff1ffc
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/intro/css/graphics/sample.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/intro/css/graphics/sample_hov.gif b/plugins/org.eclipse.objectteams.otdt.samples/intro/css/graphics/sample_hov.gif
new file mode 100644
index 0000000..6874164
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/intro/css/graphics/sample_hov.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/intro/css/samples.css b/plugins/org.eclipse.objectteams.otdt.samples/intro/css/samples.css
new file mode 100644
index 0000000..729fa8c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/intro/css/samples.css
@@ -0,0 +1,16 @@
+
+a#stopwatchsample img { background-image : url('graphics/otapp_obj.gif'); }
+a#stopwatchsample:hover img { background-image : url('graphics/otapphov_obj.png'); }
+
+a#observersample img { background-image : url('graphics/otapp_obj.gif'); }
+a#observersample:hover img { background-image : url('graphics/otapphov_obj.png'); }
+
+a#flightbonussample img { background-image : url('graphics/otapp_obj.gif'); }
+a#flightbonussample:hover img { background-image : url('graphics/otapphov_obj.png'); }
+
+a#ordersystemsample img { background-image : url('graphics/otapp_obj.gif'); }
+a#ordersystemsample:hover img { background-image : url('graphics/otapphov_obj.png'); }
+
+a#atmsample img { background-image : url('graphics/otapp_obj.gif'); }
+a#atmsample:hover img { background-image : url('graphics/otapphov_obj.png'); }
+
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/intro/css/swt-intro.properties b/plugins/org.eclipse.objectteams.otdt.samples/intro/css/swt-intro.properties
new file mode 100644
index 0000000..bcea8ec
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/intro/css/swt-intro.properties
@@ -0,0 +1,21 @@
+###############################################################################
+# Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+# for its Fraunhofer Institute and Computer Architecture and Software
+# Technology (FIRST), Berlin, Germany and Technical University Berlin,
+# Germany.
+# 
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# $Id$
+# 
+# Please visit http://www.eclipse.org/objectteams for updates and contact.
+# 
+# Contributors:
+# 	  Fraunhofer FIRST - Initial API and implementation
+# 	  Technical University Berlin - Initial API and implementation
+###############################################################################
+
+samples.stopwatchsample.link-icon = intro/css/graphics/otapp_obj.gif
+samples.stopwatchsample.hover-icon = intro/css/graphics/otapphov_obj.png
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/intro/samplesExtension.xml b/plugins/org.eclipse.objectteams.otdt.samples/intro/samplesExtension.xml
new file mode 100644
index 0000000..c6a70f0
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/intro/samplesExtension.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<introContent>
+  <!-- Extension to the SDK Samples Page. -->
+  <extensionContent id="org.eclipse.objectteams.otdt.samples.samplesExtension" 
+  						name="Object Teams Samples"
+  						alt-style="/css/swt.properties"
+  						style="/css/samples.css"
+						path="samples/@">
+	
+	  <anchor id="otSampleAnchor"/>
+      <group label="Object Teams Samples" id="swt" style-id="samples-group">
+      <text style-id="group-description">Explore Object Teams development through code samples.</text>
+      <link label="Object Teams samples" url="http://org.eclipse.ui.intro/showPage?id=otsamples" id="otsamples" style-id="sample-link">
+        <text>A small collection of Object Teams samples
+        </text>
+      </link>
+      </group>
+
+  </extensionContent>
+  
+  <page style="css/samples.css" alt-style="css/swt.properties" id="otsamples" style-id="page">
+    <title style-id="intro-header">Welcome to Eclipse 3.0</title>
+    <group id="background-image" filteredFrom="swt"/>
+    <group id="curve-image" filteredFrom="swt"/>
+    <include path="overview/navigation-links"/>
+    
+	<group id="page-content" >
+	  <group id="content-header" label="Object Teams/Java Samples" filteredFrom="html"></group>
+	  <text style-id="page-title" id="page-title" filteredFrom="swt">Object Teams/Java Samples</text>
+	  <text style-id="page-description" id="page-description">Explore Object Teams by installing some prefabricated samples.</text>
+      <group id="workbench" style-id="samples-group">
+        <link label="OTSample-StopWatch" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;id=org.eclipse.objectteams.otdt.samples.stopwatch" id="stopwatchsample" style-id="sample-link">
+		  <text>This implementation of a simple stop watch demonstrates how the Model-View-Controller pattern can be applied in Object Teams. 
+
+			The example gives a basic overview over these concepts: 
+			   (1) team and role classes, 
+			   (2) method bindings, and
+			   (3) lifting a base object to its role.</text></link>
+        <link label="OTSample-Observer" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;id=org.eclipse.objectteams.otdt.samples.observer" id="observersample" style-id="sample-link">
+		  <text>A reusable implementation of the standard Observer pattern with two applications.
+					  
+			A fine point in this example is the temporary deactivation of a team to avoid the "jumping aspects" problem.</text></link>		  
+		<link label="OTSample-Flightbonus" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;id=org.eclipse.objectteams.otdt.samples.flightbooking" id="flightbonussample" style-id="sample-link">
+          <text>This examples demonstrates, how a reusable collaboration for collecting bonus points 
+			can be integrated into an existing application for flight booking.
+			
+			It shows a typical decomposition into three parts: 
+			   (1) a core application, 
+			   (2) an abstract collaboration, and
+			   (3) a connector which combines the other two modules.</text></link>	
+        <link label="OTSample-Ordersystem" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;id=org.eclipse.objectteams.otdt.samples.ordersystem" id="ordersystemsample" style-id="sample-link">        
+        	<text>A comprehensive example showing different patterns of applying Object Teams.
+			It implements three components: a storage, reservation of items, and orders.</text></link>
+        <link label="OTSample-ATM" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;id=org.eclipse.objectteams.otdt.samples.atm" id="atmsample" style-id="sample-link">        
+    	    <text>An example showing the use of guard predicates in Object Teams. 
+    	    
+        	It implements a simple ATM that adds specific behaviour to specific groups of accounts:
+        	   (1) Foreign accounts are charged additional fees,
+        	   (2) The balance of foreign cannot be queried,
+        	   (3) Subscribed accounts receive a gratification for each crediting operation performed at the ATM.</text></link>
+     </group>        
+	</group>
+  </page>
+</introContent>
+	
+						
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/intro/samplesExtensionContentOT.xml b/plugins/org.eclipse.objectteams.otdt.samples/intro/samplesExtensionContentOT.xml
new file mode 100644
index 0000000..2d7eb84
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/intro/samplesExtensionContentOT.xml
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<introContent>
+  <!-- Extension to the SDK Samples Page. -->
+
+  <extensionContent id="org.eclipse.objectteams.otdt.samples.samplesExtension" 
+  						name="Object Teams Samples"
+  						alt-style="css/swt-intro.properties"
+  						style="css/samples.css"
+						path="samples/@">
+      <group label="Object Teams Samples" id="content-group" style-id="content-group">
+		  <text style-id="group-description">Explore Object Teams development through code samples.</text>
+<!--		  
+		  <link label="Object Teams samples" 
+				url="http://org.eclipse.ui.intro/showPage?id=otsamples" 
+				id="otsamples" 
+				style-id="content-link">
+			<text>A small collection of Object Teams samples
+			</text>
+		  </link>	
+-->
+        <link label="OTSample-StopWatch" 
+        	  url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;class=org.eclipse.pde.internal.ui.samples.ShowSampleAction&amp;id=org.eclipse.objectteams.otdt.samples.stopwatch" 
+        	  id="stopwatchsample" 
+        	  style-id="content-link">
+		  <text>This implementation of a simple stop watch demonstrates how the Model-View-Controller pattern can be applied in Object Teams. 
+
+			The example gives a basic overview over these concepts: 
+			   (1) team and role classes, 
+			   (2) method bindings, and
+			   (3) lifting a base object to its role.
+		  </text>
+		</link>
+        <link label="OTSample-Observer" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;class=org.eclipse.pde.internal.ui.samples.ShowSampleAction&amp;id=org.eclipse.objectteams.otdt.samples.observer" id="observersample" style-id="content-link">
+		  <text>A reusable implementation of the standard Observer pattern with two applications.
+					  
+			A fine point in this example is the temporary deactivation of a team to avoid the "jumping aspects" problem.</text></link>		  
+		<link label="OTSample-Flightbonus" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;class=org.eclipse.pde.internal.ui.samples.ShowSampleAction&amp;id=org.eclipse.objectteams.otdt.samples.flightbooking" id="flightbonussample" style-id="content-link">
+          <text>This examples demonstrates, how a reusable collaboration for collecting bonus points 
+			can be integrated into an existing application for flight booking.
+			
+			It shows a typical decomposition into three parts: 
+			   (1) a core application, 
+			   (2) an abstract collaboration, and
+			   (3) a connector which combines the other two modules.</text></link>	
+        <link label="OTSample-Ordersystem" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;class=org.eclipse.pde.internal.ui.samples.ShowSampleAction&amp;id=org.eclipse.objectteams.otdt.samples.ordersystem" id="ordersystemsample" style-id="content-link">        
+        	<text>A comprehensive example showing different patterns of applying Object Teams.
+			It implements three components: a storage, reservation of items, and orders.
+			Also a GUI is provided which is cleanly separated into Model/View/Controller</text></link>
+        <link label="OTSample-ATM" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;class=org.eclipse.pde.internal.ui.samples.ShowSampleAction&amp;id=org.eclipse.objectteams.otdt.samples.atm" id="atmsample" style-id="content-link">        
+    	    <text>An example showing the use of guard predicates in Object Teams. 
+    	    
+        	It implements a simple ATM that adds specific behaviour to specific groups of accounts:
+        	   (1) Foreign accounts are charged additional fees,
+        	   (2) The balance of foreign cannot be queried,
+        	   (3) Subscribed accounts receive a gratification for each crediting operation performed at the ATM.</text></link>
+
+		  <anchor id="otSampleAnchor"/>
+      </group>
+  </extensionContent>
+<!--
+  <page style="css/samples.css" alt-style="css/swt.properties" id="otsamples" style-id="page">
+      <title style-id="intro-header">Welcome to Eclipse 3.0</title>
+    <group id="background-image" filteredFrom="swt"/>
+    <group id="curve-image" filteredFrom="swt"/>
+    <include path="overview/navigation-links"/>
+    
+	<group id="page-content" >
+	  <group id="content-header" label="Object Teams/Java Samples" filteredFrom="html"></group>
+	  <text style-id="page-title" id="page-title" filteredFrom="swt">Object Teams/Java Samples</text>
+	  <text style-id="page-description" id="page-description">Explore Object Teams by installing some prefabricated samples.</text>
+      <group id="workbench" style-id="samples-group">
+        <link label="OTSample-StopWatch" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;id=org.eclipse.objectteams.otdt.samples.stopwatch" id="stopwatchsample" style-id="sample-link">
+		  <text>This implementation of a simple stop watch demonstrates how the Model-View-Controller pattern can be applied in Object Teams. 
+
+			The example gives a basic overview over these concepts: 
+			   (1) team and role classes, 
+			   (2) method bindings, and
+			   (3) lifting a base object to its role.</text></link>
+        <link label="OTSample-Observer" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;id=org.eclipse.objectteams.otdt.samples.observer" id="observersample" style-id="sample-link">
+		  <text>A reusable implementation of the standard Observer pattern with two applications.
+					  
+			A fine point in this example is the temporary deactivation of a team to avoid the "jumping aspects" problem.</text></link>		  
+		<link label="OTSample-Flightbonus" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;id=org.eclipse.objectteams.otdt.samples.flightbooking" id="flightbonussample" style-id="sample-link">
+          <text>This examples demonstrates, how a reusable collaboration for collecting bonus points 
+			can be integrated into an existing application for flight booking.
+			
+			It shows a typical decomposition into three parts: 
+			   (1) a core application, 
+			   (2) an abstract collaboration, and
+			   (3) a connector which combines the other two modules.</text></link>	
+        <link label="OTSample-Ordersystem" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;id=org.eclipse.objectteams.otdt.samples.ordersystem" id="ordersystemsample" style-id="sample-link">        
+        	<text>A comprehensive example showing different patterns of applying Object Teams.
+			It implements three components: a storage, reservation of items, and orders.</text></link>
+        <link label="OTSample-ATM" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;id=org.eclipse.objectteams.otdt.samples.atm" id="atmsample" style-id="sample-link">        
+    	    <text>An example showing the use of guard predicates in Object Teams. 
+    	    
+        	It implements a simple ATM that adds specific behaviour to specific groups of accounts:
+        	   (1) Foreign accounts are charged additional fees,
+        	   (2) The balance of foreign cannot be queried,
+        	   (3) Subscribed accounts receive a gratification for each crediting operation performed at the ATM.</text></link>
+     </group>        
+	</group>
+  </page>
+-->
+</introContent>
+
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/plugin.properties b/plugins/org.eclipse.objectteams.otdt.samples/plugin.properties
new file mode 100644
index 0000000..c99bb88
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/plugin.properties
@@ -0,0 +1,12 @@
+category.objectteams = Object Teams
+
+sample.stopwatch.name = Stop Watch Example
+sample.stopwatch.desc = A simple stop watch application demonstrating how the Model-View-Controller pattern can be applied in Object Teams.
+sample.observer.name = Observer Pattern Example
+sample.observer.desc = Implementation and application of the standard Observer pattern with Object Teams.
+sample.flightbooking.name = Flight Bonus Example
+sample.flightbooking.desc = This example demonstrates, how a reusable collaboration for collecting bonus points can be integrated into an existing application for flight booking.
+sample.ordersystem.name = Order System Example
+sample.ordersystem.desc = A comprehensive example showing different patterns of applying Object Teams. It implements three components: a storage, reservations of items, and orders plus a MVC GUI. 
+sample.atm.name = ATM Example
+sample.atm.desc = An example showing the use of guard predicates in Object Teams. It implements a simple ATM that adds specific behaviour to specific groups of accounts.
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/plugin.xml b/plugins/org.eclipse.objectteams.otdt.samples/plugin.xml
new file mode 100644
index 0000000..2cc0518
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/plugin.xml
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+
+   <extension point="org.eclipse.pde.ui.samples">
+      <!-- the launchTarget attribute is not specified in the XML schema extension point description, however it is used in the code :-/ -->
+      <sample
+            launchTarget="org.eclipse.objectteams.stopwatch.Main"
+            name="%sample.stopwatch.name"
+            perspectiveId="org.eclipse.objectteams.otdt.ui.OTJavaPerspective"
+            targetViewId="org.eclipse.jdt.ui.PackageExplorer"
+            launcher="org.eclipse.jdt.debug.ui.launchConfigurations.JavaApplicationLaunchShortcut"
+            id="org.eclipse.objectteams.otdt.samples.stopwatch">
+         <description>%sample.stopwatch.desc
+         </description>
+         <project
+               name="OTSample-StopWatch"
+               archive="samples/stopwatch.zip"
+               selectReveal="Main.java">
+         </project>
+         <activity id="org.eclipse.javaDevelopment"/>
+         <activity id="org.eclipse.debugging"/>
+      </sample>
+      <sample
+            name="%sample.observer.name"
+            perspectiveId="org.eclipse.objectteams.otdt.ui.OTJavaPerspective"
+            targetViewId="org.eclipse.jdt.ui.PackageExplorer"
+            launcher="org.eclipse.jdt.debug.ui.launchConfigurations.JavaApplicationLaunchShortcut"
+            id="org.eclipse.objectteams.otdt.samples.observer">
+         <description>%sample.observer.desc
+         </description>
+         <activity id="org.eclipse.javaDevelopment"/>
+         <activity id="org.eclipse.debugging"/>
+         <project
+               name="OTSample-Observer"
+               archive="samples/observer.zip"
+               selectReveal="pattern/ObserverPattern.java">
+         </project>
+      </sample>
+      <!-- the launchTarget attribute is not specified in the XML schema extension point description, however it is used in the code :-/ -->
+      <sample
+            launchTarget="org.eclipse.objectteams.flightbooking.Main"
+            name="%sample.flightbooking.name"
+            perspectiveId="org.eclipse.objectteams.otdt.ui.OTJavaPerspective"
+            targetViewId="org.eclipse.jdt.ui.PackageExplorer"
+            launcher="org.eclipse.jdt.debug.ui.launchConfigurations.JavaApplicationLaunchShortcut"
+            id="org.eclipse.objectteams.otdt.samples.flightbooking">
+         <description>%sample.flightbooking.desc
+         </description>
+         <activity id="org.eclipse.javaDevelopment"/>
+         <activity id="org.eclipse.debugging"/>
+         <project
+               name="OTSample-Flightbonus"
+               archive="samples/flightbonus.zip"
+               selectReveal="Intro0.html"> <!-- will be converted to Intro.html -->
+         </project>
+      </sample>    
+      <sample
+            name="%sample.ordersystem.name"
+            perspectiveId="org.eclipse.objectteams.otdt.ui.OTJavaPerspective"
+            targetViewId="org.eclipse.jdt.ui.PackageExplorer"
+            launcher="org.eclipse.jdt.debug.ui.launchConfigurations.JavaApplicationLaunchShortcut"
+            id="org.eclipse.objectteams.otdt.samples.ordersystem">
+         <description>%sample.ordersystem.desc
+         </description>
+         <activity id="org.eclipse.javaDevelopment"/>
+         <activity id="org.eclipse.debugging"/>
+         <project
+               name="OTSample-Ordersystem"
+               archive="samples/ordersystem.zip"
+               selectReveal="Intro0.html"> <!-- will be converted to Intro.html -->
+         </project>
+      </sample>
+      <sample
+            name="%sample.atm.name"
+            perspectiveId="org.eclipse.objectteams.otdt.ui.OTJavaPerspective"
+            targetViewId="org.eclipse.jdt.ui.PackageExplorer"
+            launcher="org.eclipse.jdt.debug.ui.launchConfigurations.JavaApplicationLaunchShortcut"
+            id="org.eclipse.objectteams.otdt.samples.atm">
+         <description>%sample.atm.desc
+         </description>
+         <activity id="org.eclipse.javaDevelopment"/>
+         <activity id="org.eclipse.debugging"/>
+         <project
+               name="OTSample-ATM"
+               archive="samples/atm.zip"
+               selectReveal="src/Main.java">
+         </project>
+      </sample>
+
+   </extension>   
+
+   <extension
+         point="org.eclipse.ui.newWizards">
+      <category
+            name="%category.objectteams"
+            parentCategory="org.eclipse.ui.Examples"
+            id="org.eclipse.objectteams.otdt.samples">
+      </category>
+      <wizard
+            category="org.eclipse.ui.Examples/org.eclipse.objectteams.otdt.samples"
+            class="org.eclipse.pde.internal.ui.samples.SampleWizard:org.eclipse.objectteams.otdt.samples.flightbooking"
+            icon="graphics/icons/newprj_wiz.gif"
+            id="org.eclipse.objectteams.otdt.samples.samples.flightbooking"
+            name="%sample.flightbooking.name"
+            project="true">
+         <description>%sample.flightbooking.desc
+         </description>
+      </wizard>      
+      <wizard
+            category="org.eclipse.ui.Examples/org.eclipse.objectteams.otdt.samples"
+            class="org.eclipse.pde.internal.ui.samples.SampleWizard:org.eclipse.objectteams.otdt.samples.observer"
+            icon="graphics/icons/newprj_wiz.gif"
+            id="org.eclipse.objectteams.otdt.samples.samples.observer"
+            name="%sample.observer.name"
+            project="true">
+         <description>%sample.observer.desc
+         </description>
+      </wizard>      
+      <wizard
+            category="org.eclipse.ui.Examples/org.eclipse.objectteams.otdt.samples"
+            class="org.eclipse.pde.internal.ui.samples.SampleWizard:org.eclipse.objectteams.otdt.samples.stopwatch"
+            icon="graphics/icons/newprj_wiz.gif"
+            id="org.eclipse.objectteams.otdt.samples.samples.stopwatch"
+            name="%sample.stopwatch.name"
+            project="true">
+         <description>%sample.stopwatch.desc
+         </description>
+      </wizard>      
+      <wizard
+            category="org.eclipse.ui.Examples/org.eclipse.objectteams.otdt.samples"
+            class="org.eclipse.pde.internal.ui.samples.SampleWizard:org.eclipse.objectteams.otdt.samples.ordersystem"
+            icon="graphics/icons/newprj_wiz.gif"
+            id="org.eclipse.objectteams.otdt.samples.samples.ordersystem"
+            name="%sample.ordersystem.name"
+            project="true">
+         <description>%sample.ordersystem.desc
+         </description>
+      </wizard>
+      <wizard
+            category="org.eclipse.ui.Examples/org.eclipse.objectteams.otdt.samples"
+            class="org.eclipse.pde.internal.ui.samples.SampleWizard:org.eclipse.objectteams.otdt.samples.atm"
+            icon="graphics/icons/newprj_wiz.gif"
+            id="org.eclipse.objectteams.otdt.samples.samples.atm"
+            name="%sample.atm.name"
+            project="true">
+         <description>%sample.atm.desc
+         </description>
+      </wizard>
+   </extension>
+
+   <extension
+         point="org.eclipse.ui.intro.configExtension">
+      <configExtension
+            configId="org.eclipse.ui.intro.universalConfig"
+            content="intro/samplesExtensionContentOT.xml"/>
+   </extension>
+
+<!--  -->
+   <extension
+         point="org.eclipse.objectteams.otequinox.aspectBindings">
+      <aspectBinding>
+         <team class="org.eclipse.objectteams.otdt.internal.samples.SamplesAdapter" activation="ALL_THREADS"/>
+         <basePlugin id="org.eclipse.pde.ui"/>
+      </aspectBinding>
+   </extension>
+<!-- -->
+</plugin>
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/src/org/eclipse/objectteams/otdt/internal/samples/OTSamplesPlugin.java b/plugins/org.eclipse.objectteams.otdt.samples/src/org/eclipse/objectteams/otdt/internal/samples/OTSamplesPlugin.java
new file mode 100644
index 0000000..56399f0
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/src/org/eclipse/objectteams/otdt/internal/samples/OTSamplesPlugin.java
@@ -0,0 +1,50 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2006 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute for Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id: OTSamplesPlugin.java 23482 2010-02-05 20:16:19Z stephan $
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * Fraunhofer FIRST - Initial API and implementation
+ * Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.internal.samples;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * @author gis
+ */
+public class OTSamplesPlugin extends AbstractUIPlugin
+{
+    public static final String PLUGIN_ID = "org.eclipse.objectteams.otdt.samples"; //$NON-NLS-1$
+	private static OTSamplesPlugin instance;
+
+	public OTSamplesPlugin()
+    {
+        super();
+        instance = this;
+    }
+
+	public static OTSamplesPlugin getDefault()
+	{
+		return instance;
+	}
+
+	public static Status createErrorStatus(String message, Throwable ex)
+	{
+		return new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, message, ex);
+	}
+}
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/src/org/eclipse/objectteams/otdt/internal/samples/SampleMessages.java b/plugins/org.eclipse.objectteams.otdt.samples/src/org/eclipse/objectteams/otdt/internal/samples/SampleMessages.java
new file mode 100644
index 0000000..7f2d828
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/src/org/eclipse/objectteams/otdt/internal/samples/SampleMessages.java
@@ -0,0 +1,38 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2006 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute for Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id: SampleMessages.java 23482 2010-02-05 20:16:19Z stephan $
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * Fraunhofer FIRST - Initial API and implementation
+ * Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.internal.samples;
+
+import org.eclipse.osgi.util.NLS;
+
+public class SampleMessages extends NLS {
+	private static final String BUNDLE_NAME = SampleMessages.class.getName();
+
+	public static String SamplesAdapter_cannot_run_selected;
+
+	public static String SamplesAdapter_unable_to_run;
+	static {
+		// initialize resource bundle
+		NLS.initializeMessages(BUNDLE_NAME, SampleMessages.class);
+	}
+
+	private SampleMessages() {
+	}
+}
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/src/org/eclipse/objectteams/otdt/internal/samples/SampleMessages.properties b/plugins/org.eclipse.objectteams.otdt.samples/src/org/eclipse/objectteams/otdt/internal/samples/SampleMessages.properties
new file mode 100644
index 0000000..5bdf3e9
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/src/org/eclipse/objectteams/otdt/internal/samples/SampleMessages.properties
@@ -0,0 +1,2 @@
+SamplesAdapter_unable_to_run=Unable to run sample
+SamplesAdapter_cannot_run_selected=Cannot run the selected sample.
diff --git a/plugins/org.eclipse.objectteams.otdt.samples/src/org/eclipse/objectteams/otdt/internal/samples/SamplesAdapter.java b/plugins/org.eclipse.objectteams.otdt.samples/src/org/eclipse/objectteams/otdt/internal/samples/SamplesAdapter.java
new file mode 100644
index 0000000..a43cf70
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.samples/src/org/eclipse/objectteams/otdt/internal/samples/SamplesAdapter.java
@@ -0,0 +1,461 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2006 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute for Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * $Id: SamplesAdapter.java 23482 2010-02-05 20:16:19Z stephan $
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * Fraunhofer FIRST - Initial API and implementation
+ * Technical University Berlin - Initial API and implementation
+ * IBM Corporation - copies of individual methods from bound base classes.
+ **********************************************************************/
+package org.eclipse.objectteams.otdt.internal.samples;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.debug.core.ILaunchManager;
+import org.eclipse.debug.ui.ILaunchShortcut;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.objectteams.otdt.ui.help.OTHelpPlugin;
+import org.eclipse.pde.internal.ui.PDEPlugin;
+import org.eclipse.swt.custom.BusyIndicator;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.part.ISetSelectionTarget;
+import org.osgi.framework.Bundle;
+
+import base org.eclipse.pde.internal.ui.samples.ProjectNamesPage;
+import base org.eclipse.pde.internal.ui.samples.SampleEditor;
+import base org.eclipse.pde.internal.ui.samples.SampleOperation;
+import base org.eclipse.pde.internal.ui.samples.SampleStandbyContent;
+import base org.eclipse.pde.internal.ui.samples.SampleWizard;
+import base org.eclipse.pde.internal.ui.samples.ShowSampleAction;
+
+/**
+ * @author gis
+ */
+@SuppressWarnings("restriction")
+public team class SamplesAdapter
+{
+	private Map<IConfigurationElement,SampleWizardAdapter> _wizards = new HashMap<IConfigurationElement, SampleWizardAdapter>();
+	
+	boolean _needsAdaptation = false;
+	
+	public boolean isOTSample(String sampleId)
+	{
+		return sampleId != null && sampleId.startsWith("org.eclipse.objectteams.otdt.samples."); //$NON-NLS-1$
+	}
+	
+	public class ShowSampleActionAdapter playedBy ShowSampleAction
+	{
+
+		@SuppressWarnings("basecall")
+		callin boolean ensureSamplesPresent()
+		{
+			String id = getSampleId();
+			if (id != null) {
+				if (SamplesAdapter.this.isOTSample(id))
+					return true; //OT-samples are definitely present
+			}
+			
+			return base.ensureSamplesPresent();
+		}
+		@SuppressWarnings("decapsulation")
+		String getSampleId() -> get String sampleId;
+		@SuppressWarnings("decapsulation")
+		boolean ensureSamplesPresent() <- replace boolean ensureSampleFeaturePresent();
+	}
+	
+	public class ProjectNamesPageAdapter playedBy ProjectNamesPage
+//		base when (SamplesAdapter.this.needsAdaptation())
+	{
+		private boolean _isInitialized;
+
+		// bugfix: avoid executing updateEntries more than once!
+		@SuppressWarnings("basecall")
+		callin void updateEntries() {
+		    if (_isInitialized)
+		        return;
+		    
+		    _isInitialized = (getWizard().getSelection() != null);
+		    
+		    base.updateEntries();
+		}
+		
+		@SuppressWarnings("decapsulation")
+		SampleWizardAdapter getWizard() -> get SampleWizard wizard;
+		@SuppressWarnings("decapsulation")
+		void updateEntries() <- replace void updateEntries();
+	}
+	
+	public class SampleWizardAdapter playedBy SampleWizard
+		when (needsAdaptation())
+	{
+		IProject[] _createdProjects;
+		
+		void initializationHook()
+		{
+			// override default behavior
+			setSampleEditorNeeded(false);
+		}
+		
+		protected void setCreatedProjects(IProject[] projects)
+		{
+			_createdProjects = projects;
+		}
+		
+		callin boolean performFinish()
+		{
+			SamplesAdapter.this._wizards.put(getSelection(), this);
+			boolean result = base.performFinish();
+			SamplesAdapter.this._wizards.remove(getSelection());
+			
+			return result;
+		}
+		
+		
+		@SuppressWarnings("basecall")
+		callin void selectReveal(Shell shell)
+		{
+			shell.getDisplay().asyncExec(new Runnable() {
+				public void run() {
+					SampleWizardAdapter.this.doSelectReveal();
+				}
+			});
+		}
+		
+		// provide commented out method of SampleWizard
+		void doSelectReveal() {
+//{ObjectTeams: added local variables for fields in base class
+			IConfigurationElement selection = getSelection();
+			IProject[] createdProjects = _createdProjects;
+//carp}
+			
+			if (selection == null || createdProjects==null)
+				return;
+			String viewId = selection.getAttribute("targetViewId"); //$NON-NLS-1$
+			if (viewId == null)
+				return;
+			IWorkbenchWindow window = PlatformUI.getWorkbench()
+					.getActiveWorkbenchWindow();
+			if (window == null)
+				return;
+			IWorkbenchPage page = window.getActivePage();
+			if (page == null)
+				return;
+			IViewPart view = page.findView(viewId);
+			if (view == null || !(view instanceof ISetSelectionTarget))
+				return;
+			ISetSelectionTarget target = (ISetSelectionTarget) view;
+			IConfigurationElement[] projects = selection.getChildren("project"); //$NON-NLS-1$
+	
+			ArrayList<IResource> items = new ArrayList<IResource>();
+			for (int i = 0; i < projects.length; i++) {
+				String path = projects[i].getAttribute("selectReveal"); //$NON-NLS-1$
+				if (path == null)
+					continue;
+				IResource resource = createdProjects[i].findMember(path);
+				if (resource != null && resource.exists()) {
+					if (resource.getName().equals("Intro0.html")) { //$NON-NLS-1$
+						resource = setBaseTag(createdProjects[i], resource);
+					}
+					items.add(resource);
+				}
+			}
+			if (items.size() > 0)
+				target.selectReveal(new StructuredSelection(items));
+			
+//{ObjectTeams: reveal in editor as well
+			revealInEditor(items, page);
+//carp}
+		}
+
+		/** Insert a HTML base-tag to enable relative navigation to resources in OTHelp. */
+ 		private IResource setBaseTag(IProject project, IResource resource) {
+ 			if (resource instanceof IFile) { 				
+ 				IFile file = (IFile)resource;
+ 				try {
+ 					NullProgressMonitor npm = new NullProgressMonitor();
+ 					
+ 					// fetch path to help plugin hosting images/ and guide/otjld/def/:
+ 					Bundle helpBundle = OTHelpPlugin.getDefault().getBundle();
+ 					String absPath = FileLocator.resolve(helpBundle.getEntry("/")).toString();  //$NON-NLS-1$
+ 					String baseTag = "<base href=\""+absPath+"\">\n"; //$NON-NLS-1$ //$NON-NLS-2$
+ 					
+ 					// assemble new new file with new content:
+ 					IFile newFile = project.getFile("Intro.html"); //$NON-NLS-1$
+ 					ByteArrayInputStream stream = new ByteArrayInputStream(baseTag.getBytes("UTF8")); //$NON-NLS-1$
+					newFile.create(stream, false, npm);
+ 					newFile.appendContents(file.getContents(), 0, npm);
+ 					stream.close();
+ 					resource.delete(false, npm);
+ 					return newFile;
+ 				} catch (Exception e) {
+ 					OTSamplesPlugin.getDefault().getLog().log(
+ 						OTSamplesPlugin.createErrorStatus("Failed to convert Intro.html", e)); //$NON-NLS-1$
+ 				}
+ 			}	
+ 			return resource;
+ 		}
+
+		void revealInEditor(List<IResource> items, IWorkbenchPage page)
+		{
+			if (items.size() > 0)
+			{
+				for (Iterator<IResource> iter = items.iterator(); iter.hasNext();)
+		        {
+		            IResource resource = iter.next();
+		            if (resource instanceof IFile)
+		            {
+		                try {
+		                    IDE.openEditor(page, (IFile)resource);
+		                }
+		                catch (PartInitException ex)
+		                {} // ignore, user will try to open it manually, then
+		            }
+		        }
+			}
+		}
+		
+		boolean needsAdaptation()
+		{
+			IConfigurationElement selection = getSelection();
+			if (selection == null) return false; // no sample selected
+			String id = selection.getAttribute("id"); //$NON-NLS-1$
+			return SamplesAdapter.this.isOTSample(id);
+		}
+		
+		void initializationHook()      <- before void addPages();
+		boolean performFinish()        <- replace boolean performFinish();
+		void selectReveal(Shell shell) <- replace void selectReveal(Shell shell);
+
+		void setSampleEditorNeeded(boolean sampleEditorNeeded) 
+		                                     -> void setSampleEditorNeeded(boolean sampleEditorNeeded);
+		IConfigurationElement getSelection() -> IConfigurationElement getSelection();
+		
+	}
+	
+	public class SampleOperationAdaptor playedBy SampleOperation
+	{
+		void fetchCreatedProjects()
+		{
+			IProject[] projects = getCreatedProjects();
+			SampleWizardAdapter wizardAdapter = SamplesAdapter.this._wizards.get(getSample());
+			if (wizardAdapter != null && projects != null)
+				wizardAdapter.setCreatedProjects(projects);
+		}
+		
+		// Original implementation doesn't copy the "launchTarget" attribute from configuration element to manifest file
+		void fixCreatedSampleManifestContent(String projectName, Properties properties) 
+		{
+			final String attr = "launchTarget"; //$NON-NLS-1$
+			writeProperty(properties, attr, getSample().getAttribute(attr));
+		}
+		
+		void fetchCreatedProjects() <- after void run(IProgressMonitor monitor);
+		
+		void fixCreatedSampleManifestContent(String projectName, Properties properties) 
+									<- after void createSampleManifestContent(String projectName, Properties properties);
+
+		
+		@SuppressWarnings("decapsulation")
+		void writeProperty(Properties properties, String name, String value)
+										  -> void writeProperty(Properties properties, String name, String value);
+		
+		IProject[] getCreatedProjects()   -> IProject[] getCreatedProjects();
+		@SuppressWarnings("decapsulation")
+		IConfigurationElement getSample() -> get IConfigurationElement sample;
+	}
+	
+	/** This role generalizes over unrelated base classes SampleStandbyContent and SampleEditor. */
+	public abstract class SampleRunner
+	{
+		private ILaunchShortcut launchShortcut;
+
+		@SuppressWarnings("basecall")
+		callin void doRun(String launcher, String target, final boolean debug) 
+		{
+			if (target != null && target.startsWith("org.eclipse.objectteams.")) //$NON-NLS-1$
+			{
+				final ISelection selection;
+				try
+				{
+					Object launchSelection = getLaunchSelection(target);
+					if (launchSelection != null) {
+						selection = new StructuredSelection(launchSelection);
+					} else
+						selection = new StructuredSelection();
+
+					final ILaunchShortcut fshortcut = getLaunchShortcut(launcher);
+
+					BusyIndicator.showWhile(Display.getDefault(), new Runnable() {
+						public void run() {
+							fshortcut.launch(selection, debug
+									? ILaunchManager.DEBUG_MODE
+											: ILaunchManager.RUN_MODE);
+						}
+					});
+				} 
+				catch (CoreException ex)
+				{
+					ErrorDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), 
+							SampleMessages.SamplesAdapter_unable_to_run, SampleMessages.SamplesAdapter_cannot_run_selected,
+							ex.getStatus());
+					OTSamplesPlugin.getDefault().getLog().log(ex.getStatus());
+				}
+			}
+			else
+			{
+				base.doRun(launcher, target, debug);
+			}
+		}
+
+		// NEW: target is the "launchTarget" property from the launchTarget attribute in the sample.properties
+		//      file or the <sample> configuration element.
+		//      Note: target may be null.
+		// falls back to search a main-class in the first src-folder available.
+		private Object getLaunchSelection(String target) throws JavaModelException
+		{
+			IProject project = getProject();
+			if (project != null)
+			{
+				IJavaProject javaProject = JavaCore.create(project);
+				if (javaProject.exists())
+				{
+					if (target != null)
+					{
+						IType targetType = javaProject.findType(target);
+						if (targetType != null)
+							return targetType;
+					}
+					
+					IPackageFragmentRoot[] packageFragmentRoots = javaProject.getPackageFragmentRoots();
+					for (int i = 0; i < packageFragmentRoots.length; i++)
+					{
+						IPackageFragmentRoot root = packageFragmentRoots[i];
+						if (root.getKind() == IPackageFragmentRoot.K_SOURCE)
+							return root;
+					}
+				}
+			}
+			
+			return null;
+		}
+
+		private ILaunchShortcut getLaunchShortcut(String launcher) throws CoreException
+		{
+			if (launchShortcut != null && launchShortcut.getClass().getName().equals(launcher))
+				return launchShortcut;
+			
+			try {
+				Class<?> launcherClass = Class.forName(launcher);
+				launchShortcut = (ILaunchShortcut) launcherClass.newInstance();
+				return launchShortcut;
+			}
+			catch (Exception ex)
+			{
+				IStatus status = OTSamplesPlugin.createErrorStatus("Unable to create launcher", ex); //$NON-NLS-1$
+				throw new CoreException(status);
+			} 
+		}
+
+		// OT_COPY_PASTE: STATE: 3.2: most parts copy&paste from SampleStandbyContent.doBrowse()
+		private IProject getProject()
+		{
+			IWorkspaceRoot root = PDEPlugin.getWorkspace().getRoot();
+			IProject[] projects = root.getProjects();
+			String sid = getSampleID();
+			if (sid == null)
+				return null;
+			for (int i = 0; i < projects.length; i++) {
+				IProject project = projects[i];
+				if (!project.exists() || !project.isOpen())
+					continue;
+				IFile pfile = project.getFile("sample.properties"); //$NON-NLS-1$
+				if (pfile.exists()) {
+					try {
+						InputStream is = pfile.getContents();
+						Properties prop = new Properties();
+						prop.load(is);
+						is.close();
+						String id = prop.getProperty("id"); //$NON-NLS-1$
+						if (id != null && id.equals(sid)) {
+							return project;
+						}
+					} catch (IOException e) {
+						PDEPlugin.logException(e);
+					} catch (CoreException e) {
+						PDEPlugin.logException(e);
+					}
+				}
+			}
+			
+			return null;
+		}
+		
+		protected abstract String getSampleID();
+	}
+	
+	// stupid, stupid...
+	public class SampleStandbyContentAdaptor extends SampleRunner playedBy SampleStandbyContent
+	{
+		@SuppressWarnings("decapsulation")
+		void doRun(String launcher, String target, final boolean debug) <- replace void doRun(String launcher, String target, final boolean debug);
+		
+		@SuppressWarnings("decapsulation")
+		String getSampleID() -> get IConfigurationElement sample with {
+			result <- sample.getAttribute("id") //$NON-NLS-1$
+		}
+	}
+
+	public class SampleEditorAdaptor extends SampleRunner playedBy SampleEditor
+	{
+		@SuppressWarnings("decapsulation")
+		void doRun(String launcher, String target, final boolean debug) <- replace void doRun(String launcher, String target, final boolean debug);
+
+		@SuppressWarnings("decapsulation")
+		String getSampleID() -> Properties loadContent() with {
+			result <- result.getProperty("id") //$NON-NLS-1$
+		}
+	}
+}
