<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>User Assistance Overview</title>
	<!--base href="http://www.eclipse.org/eclipse/platform-ua/"/-->
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<meta name="author" content="User Assistance team" />
	<meta name="keywords" content="Help, Intro, Welcome, Cheatsheet, Cheat Sheet, UA, User Assistance, Overview" />
	<link rel="stylesheet" type="text/css" href="/eclipse.org-common/themes/Phoenix/css/small.css" title="small" />
	<link rel="alternate stylesheet" type="text/css" href="/eclipse.org-common/themes/Phoenix/css/large.css" title="large" />
	<link rel="stylesheet" type="text/css" href="/eclipse.org-common/themes/Phoenix/css/visual.css" media="screen" />
	<link rel="stylesheet" type="text/css" href="/eclipse.org-common/themes/Phoenix/css/layout.css" media="screen" />
	<link rel="stylesheet" type="text/css" href="/eclipse.org-common/themes/Phoenix/css/print.css" media="print" />
	<script type="text/javascript" src="/eclipse.org-common/themes/Phoenix/styleswitcher.js"></script>
	</head>
<body>
<div id="header">
	<a href="/"><img src="/eclipse.org-common/themes/Phoenix/images/header_logo.gif" width="163" height="68" border="0" alt="Eclipse Logo" class="logo" /></a>
	<div id="searchbar">
		<img src="/eclipse.org-common/themes/Phoenix/images/searchbar_transition.gif" width="92" height="26" class="transition" alt="" />

		<img src="/eclipse.org-common/themes/Phoenix/images/searchbar_header.gif" width="64" height="17" class="header" alt="Search" />
		<form method="get" action="/search/search.cgi">
			<input type="hidden" name="t" value="All" />
			<input type="hidden" name="t" value="Doc" />
			<input type="hidden" name="t" value="Downloads" />
			<input type="hidden" name="t" value="Wiki" />
			<input type="hidden" name="wf" value="574a74" />
			<input type="text" name="q" value="" />
			<input type="image" class="button" src="/eclipse.org-common/themes/Phoenix/images/searchbar_submit.gif" alt="Submit" onclick="this.submit();" />

		</form>
	</div>
	<ul id="headernav">
		<li class="first"><a class="smallText" title="Small Text" href="#" onclick="setActiveStyleSheet('small');return false;">A</a> <a class="largeText" title="Large Text" href="#" onclick="setActiveStyleSheet('large');return false;">A</a></li>
		<li><a href="/org/foundation/contact.php">Contact</a></li>
		<li><a href="/legal/">Legal</a></li>

	</ul>
</div><div id="topnav">
	<ul>
		<li>&nbsp;&nbsp;&nbsp;</li>
		<li class="tabstart">&#160;&#160;&#160;</li>
		<li><a class="" href="/" target="_self">Home</a></li>
		<li class="tabstart">&#160;&#160;&#160;</li>
		<li><a class="" href="/community/" target="_self">Community</a></li>

		<li class="tabstart">&#160;&#160;&#160;</li>
		<li><a class="" href="/membership/" target="_self">Membership</a></li>
		<li class="tabstart">&#160;&#160;&#160;</li>
		<li><a class="" href="http://wiki.eclipse.org/index.php/Development_Resources" target="_self">Committers</a></li>
		<li class="tabstart">&#160;&#160;&#160;</li>
		<li><a class="" href="/downloads/" target="_self">Downloads</a></li>
		<li class="tabstart">&#160;&#160;&#160;</li>

		<li><a class="" href="/resources/" target="_self">Resources</a></li>
		<li class="tabstart">&#160;&#160;&#160;</li>
		<li><a class="" href="/projects/" target="_self">Projects</a></li>
		<li class="tabstart">&#160;&#160;&#160;</li>
		<li><a class="" href="/org/" target="_self">About Us</a></li>
		<li class="tabseparator">&#160;&#160;&#160;</li>			
	</ul>
</div>

<div id="topnavsep"></div><div id="leftcol">
<ul id="leftnav">
<li><a href="http://wiki.eclipse.org/index.php/Development_Resources">Committers</a></li>
<li><a href="/newsgroups/">Newsgroups</a></li>
<li><a href="https://bugs.eclipse.org/bugs/">Bugs</a></li>
<li><a href="/articles/">Articles</a></li>
<li><a href="http://www.eclipse.org/mail/">Mailing Lists</a></li>
<li class="separator"><a class="separator" href="index.php">Projects &#160;&#160;<img src="/eclipse.org-common/themes/Phoenix/images/leftnav_bullet_down.gif" border="0" alt="" /></a></li>
<li><a href="http://www.eclipse.org/platform/">Platform</a></li>
<li><a href="http://www.eclipse.org/equinox/">Equinox</a></li>

<li><a href="http://www.eclipse.org/jdt/">JDT</a></li>
<li><a href="http://www.eclipse.org/pde/">PDE</a></li>
<li class="separator"><a class="separator" href="http://www.eclipse.org/eclipse/development/">Development &#160;&#160;<img src="/eclipse.org-common/themes/Phoenix/images/leftnav_bullet_down.gif" border="0" alt="" /></a></li>
  <li style="background-image: url(/eclipse.org-common/themes/Phoenix/images/leftnav_fade.jpg); background-repeat: repeat-x; border-style: none;">
			<br /><br /><br /><br /><br /><br /><br /><br />
  </li>
</ul>

</div>
<div id="container">		
	<div id="midcolumn">
	
	<h1>User Assistance Overview</h1>
	
	<div class="homeitem3col">
	<h3>Overview</h3>
	
	<p>
	User Assistance is a component of the Eclipse Platform whose mission is to provide for assisting users of Eclipse
	applications in all phases of the usage cycle. It is not a single workbench artifact but rather a collection
	artifacts tailored to provide a particular flavor of assistance.
	</p>
	
	<p>
	The User Assistance component includes the following systems and mechanisms:
	</p>
	
	<ul>
	<li>Welcome</li>
	<li>Help</li>
	<li>Cheat sheets</li>
	<li>UI Forms*</li>
	<li>Samples</li>
	<li>Browsers</li>
	</ul>
	
	<p>
	* Although UI Forms are strictly a SWT-based toolkit for creating slick user interfaces and are not directly aimed at
	User Assistance, it is listed here because it is owned by the same team and because form-based UIs are typically
	easier to understand and use. In addition, UI Forms are particularly good at integrating user assistance content
	directly into the user interface. This reduces the need for users to leave the work area to read user assistance
	content.
	</p>
	
	<p>
	User Assistance is more than the current list of technologies. Our mission can be summed up in the following way:
	</p>
	
	<p>
	<em>The User Assistance component is a hub for all ideas and mechanisms that serve the purpose of making Eclipse 
	applications easier to use both for new and returning users.</em>
	</p>
	
	<p>
	We will briefly describe the current elements of the User Assistance component the following section.
	</p>
	</div>
	
	<div class="homeitem3col">
	<h3>Welcome</h3>
	
	<p>
	<a href="http://help.eclipse.org/topic/org.eclipse.platform.doc.isv/guide/ua_intro.htm">
	Welcome</a> support provides for greeting the first time users of an Eclipse application with a series of pages
	that are meant to introduce him/her to the application and make the initial experience favorable. The implementation
	can simply guide the user through the initial setup and then offer common tasks to do in the application, offer
	tutorials, samples (for development applications), links to online resources, news etc.
	</p>
	
	<p>
	The trigger and lifecycle of the welcome support is controlled by the workbench. If welcome content is registered,
	it will be opened on fresh startup. Once closed, it can be reopened from the Help menu. In the most direct form,
	welcome can be written using pure SWT widgets. However, a more typical scenario is to use the support provided by the
	User Assistance intro component and author welcome content as a series of web pages, using either XML, HTML or XHTML 
	format.
	</p>
	
	<p>
	When XML or XHTML formats are used, welcome content can be particularly flexible because content reuse, content
	contribution and dynamic content are supported.
	</p>
	
	<img class="illustration" src="images/overview_welcome.png" alt="Welcome page"/>
	</div>
	
	<div class="homeitem3col">
	<h3>Help</h3>
	
	<p>
	<a href="http://help.eclipse.org/topic/org.eclipse.platform.doc.isv/guide/ua_help.htm">The Eclipse platform's
	help</a> facilities provide the raw building blocks to structure and contribute documentation to the platform. It
	does not dictate structure or granularity of documentation. You can choose the tools and structure for your
	documentation that suits your needs.&nbsp;The help plug-in allows you to describe your documentation structure to
	the platform using a table of contents (toc) file.
	</p>
	
	<p>
	Help system can be used in three modes:
	</p>
	
	<ol>
	<li><b>Integrated</b> - If you are creating an Eclipse-based product, the help system is automatically provided.
	You can launch the help browser from the <b>Help</b> menu in the workbench, or through welcome or dynamic help
	links.</li>
	<li><b>Stand-alone (local)</b> - If you are creating an application that is not based on the Eclipse framework,
	you can still use the Eclipse help system. Your application can package and install the <i>stand-alone help
	system</i>, a very small version of Eclipse that has had everything except the help system stripped out of it.
	Then, your application can make API calls from its <b>Help</b> menu, or from UI objects, to launch the help
	browser. The stand-alone help system has all the features of the integrated help system, as described in the
	following sections. However, it interacts 	with the application UI for features such as context-sensitive help
	or active help will vary. All features except dynamic help and active help are supported.</li>
	<li><b>Infocenter (served)</b> - You can also allow your users to access the help system over the Internet or
	their intranet, by installing the stand-alone help system and the documentation plug-ins on a server. The
	application accesses the documentation by calling a URL, and the help system is shown in their web browser. The
	infocenter help system can be used both for client applications and for web applications, either of which can have 
	their help accessed remotely. All features except dynamic and active help are supported.</li>
	</ol>
	
	<img class="illustration" src="images/overview_help.png" alt="Online help"/>
	<img class="illustration" src="images/overview_dynamic_help.png" alt="Dynamic help"/>
	</div>
	
	<div class="homeitem3col">
	<h3>Cheat sheets</h3>
	
	<p>
	<a href="http://help.eclipse.org/topic/org.eclipse.platform.doc.isv/guide/ua_cheatsheet.htm">
	Cheat sheets</a> are a type of assistive technology that is meant to lead users through sequential tasks. They
	follow the user through steps, offer help links for each, provide an option to perform the step for the user or
	let the user do it herself. Cheat sheets are available from the Help menu but can be programmatically opened whenever
	a task assistance is needed.
	</p>
	
	<img class="illustration" src="images/overview_cheatsheets.png" alt="Cheat sheets"/>
	</div>
	
	<div class="homeitem3col">
	<h3>UI Forms</h3>
	
	<p>
	<a href="http://help.eclipse.org/topic/org.eclipse.platform.doc.isv/guide/forms.htm"> UI Forms</a> is a toolkit
	based on SWT for creating powerful Web-like user interfaces. It is not strictly part of user assistance but is used as
	a technology for many User Assistance artifacts (implementation of initial user experience for platforms that do not
	support embedded browser, dynamic help view, cheat sheets etc.). For example, PDE multi-page editors use UI Forms
	extensively:
	</p>
	
	<img class="illustration" src="images/overview_forms.png" alt="UI Forms"/>
	</div>
	
	<div class="homeitem3col">
	<h3>Samples</h3>
	
	<p>Samples are code artifacts that are imported into the workspace as projects so that users can browse the code and
	launch it. User Assistance provides support for samples that ensures the code compiles correctly regardless of the
	settings and the environment. When launched from the Welcome window, a Forms-based view provides assistance for the
	sample.
	</p>
	
	<img class="illustration" src="images/overview_samples.png" alt="Samples"/>
	
	<p>
	Support for samples will be reworked and opened up in the coming releases. Watch User Assistance home page for design
	documents in the near future.
	</p>
	</div>
	
	</div>
	
	<div id="rightcolumn">
		<div class="sideitem">
			<h6>Related links</h6>
			<ul>
				<li><a href="main.html">Home</a></li>
				<li><a href="overview.html">Overview</a></li>
				<li><a href="resources.html">Resources</a></li>
			</ul>
		</div>
	</div>

</div>
<div id="footer">
	<ul id="footernav">
		<li class="first"><a href="/">Home</a></li>
		<li><a href="/legal/privacy.php">Privacy Policy</a></li>
		<li><a href="/legal/termsofuse.php">Terms of Use</a></li>
	</ul>
	<p>Copyright &copy; 2006, 2012 The Eclipse Foundation and others. All Rights Reserved</p>

</div>
</body>
</html>