<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>Thoughts On Eclipse UI</title>
	
	<link>http://eclipseblog.ostroukhovs.com</link>
	<description>Useful bits of code</description>
	<lastBuildDate>Tue, 07 Sep 2010 17:31:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ThoughtsAboutEclipseUi" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="thoughtsabouteclipseui" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Using expressions in your extension points</title>
		<link>http://eclipseblog.ostroukhovs.com/2010/09/07/using-expressions-in-your-extension-points/</link>
		<comments>http://eclipseblog.ostroukhovs.com/2010/09/07/using-expressions-in-your-extension-points/#comments</comments>
		<pubDate>Tue, 07 Sep 2010 17:31:36 +0000</pubDate>
		<dc:creator>Eugene Ostroukhov</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Tips & Tricks]]></category>

		<guid isPermaLink="false">http://eclipseblog.ostroukhovs.com/?p=200</guid>
		<description><![CDATA[Originally I meant to create a reference of the Eclipse expressions and properties available in SDK but there is already such article in Eclipse Wiki. I would strongly recommend bookmarking that article &#8211; it is an excellent reference. I would like to describe how you could leverage the expressions in your extension points (when you [...]]]></description>
			<content:encoded><![CDATA[
<p>Originally I meant to create a reference of the Eclipse expressions and properties available in SDK but there is already such article in <a href="http://wiki.eclipse.org/Command_Core_Expressions" target="_blank">Eclipse Wiki</a>. I would strongly recommend bookmarking that article &#8211; it is an excellent reference. I would like to describe how you could leverage the expressions in your extension points (when you declare extension points as opposed to providing extensions to platform extension points). There are several reasons to use expressions as a part of your extension point:</p>
<ol>
<li>Lazy initialization &#8211; expression can be tested without activating the plugin that contributed the extension.</li>
<li>External declaration &#8211; expressions are declared in the plugin.xml and that sometimes makes it easier to maintain them.</li>
<li>Flexible and pluggable language. Users can leverage <a href="http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/extension-points/org_eclipse_core_expressions_definitions.html">org.eclipse.core.expressions.definitions</a> extension point to declare reusable expressions. Users can also leverage <a href="http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/extension-points/org_eclipse_core_expressions_definitions.html">org.eclipse.core.expressions.propertyTesters</a> to declare property testers that contain complex logic.</li>
</ol>
<p>To use expression in your extension point you will need to update your extension point schema file (exsd file) to declare expression language elements. The easiest way is by referencing expression language schema:</p>
<pre class="brush: xml; ">
&lt;include schemaLocation=&quot;schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd&quot;/&gt;
</pre>
<p>This will import all the elements so you can use them in the extension elements editor:</p>
<p><a href="http://eclipseblog.ostroukhovs.com/wp-content/uploads/2010/09/9-7-2010-10-08-47-AM.png"><img class="aligncenter size-full wp-image-201" title="expressionelements" src="http://eclipseblog.ostroukhovs.com/wp-content/uploads/2010/09/9-7-2010-10-08-47-AM.png" alt="Expression elmeents in the extension element editor" width="570" height="454" /></a>Note that you can specify any expression element as the expression root. I would recommend to using the &#8220;enablement&#8221; element as this would let you get all changes to expression languages as they appear in the subsequent Eclipse releases. Plug-in developers will see the expressions in the PDE editor after extension point definition is updated.</p>
<p>To test the expression you will need to parse the expression:</p>
<pre class="brush: java; ">
IConfigurationElement[] children = configurationElement.getChildren(&quot;enablement&quot;);
if (children.length == 1) {
    expression = ExpressionConverter.getDefault().perform(children[0]);
}
</pre>
<p>Then you will have to create &#8220;evaluation context&#8221; and evaluate the expression. Evaluation context provides all the variables that are available to the expression &#8211; like &#8220;activeWorkbenchWindow&#8221; and others in the commands framework. You may spacify one object as a &#8220;default&#8221; (it is &#8220;project&#8221; variable in my snippet):</p>
<pre class="brush: java; ">
final EvaluationResult result = expression.evaluate(new EvaluationContext(null, project));
</pre>
<p>&#8220;result&#8221; will be one of FALSE, TRUE and NOT_LOADED. NOT_LOADED is mostly when the user references the propery tester from inactive plug-in and tells the framework to avoid plug-in activation to instantiate just the property tester.</p>
<p>After this point the user will be able to use the expressions with your extension point just the same way they are used in extension points declared by core Eclipse.</p>
<div><span style="font-family: Arial, sans-serif;"><span style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"><br />
</span></span></div>

<img src="http://feeds.feedburner.com/~r/ThoughtsAboutEclipseUi/~4/7dYdjQ8mDQs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://eclipseblog.ostroukhovs.com/2010/09/07/using-expressions-in-your-extension-points/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tools for Mobile Web</title>
		<link>http://eclipseblog.ostroukhovs.com/2010/07/27/tools-for-mobile-web/</link>
		<comments>http://eclipseblog.ostroukhovs.com/2010/07/27/tools-for-mobile-web/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 09:00:02 +0000</pubDate>
		<dc:creator>Eugene Ostroukhov</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Symbian]]></category>

		<guid isPermaLink="false">http://eclipseblog.ostroukhovs.com/?p=176</guid>
		<description><![CDATA[We (the Symbian Foundation) proposed a new project &#8211; Tools for Mobile Web. We offer our code as a basis for this new Eclipse project and now that we released version 1.0 of our product we would like to focus on this contribution. I would like to better explain what we would like to see [...]]]></description>
			<content:encoded><![CDATA[
<p>We (the <a href="http://www.symbian.org/" target="_blank">Symbian Foundation</a>) proposed a new project &#8211; <a href="http://eclipse.org/proposals/tmw/" target="_blank">Tools for Mobile Web</a>. We offer <a href="http://developer.symbian.org/wiki/index.php/Symbian_Web_Development_Tools_(WRT_Tools)#1.0.0_Known_Issues">our code</a> as a basis for this new Eclipse project and now that we released version 1.0 of our product we would like to focus on this contribution. I would like to better explain what we would like to see out of this project. We did several presentations already so there are some common questions we had to answer.</p>
<h3>What is &#8220;mobile web&#8221;?</h3>
<p>In the scope of this project &#8220;mobile web&#8221; means &#8220;mobile web runtimes&#8221; that are present on most modern popular smartphones. Developers can use web technologies (HTML, CSS and JavaScript) to create mobile applications. These applications are quite different from the regular web pages in that they are not served from a web site but are installed on the device not unlike regular &#8220;native&#8221; mobile applications. They can be distributed through the OVI store or other platform-dependent application stores. These application have a broader access to device capabilities &#8211; they can access GPS and accelerometer sensor readings, use device-specific UI (i.e. software buttons on Symbian phones), read address book or be notified when SMS or MMS message was received.</p>
<div id="attachment_179" class="wp-caption aligncenter" style="width: 510px"><a href="http://eclipseblog.ostroukhovs.com/wp-content/uploads/2010/07/simulator-e1279563582870.png"><img class="size-full wp-image-179" title="Simulator" src="http://eclipseblog.ostroukhovs.com/wp-content/uploads/2010/07/simulator-e1279563582870.png" alt="Simulator can run web runtime applications and provides basic controls to trigger events" width="500" height="620" /></a><p class="wp-caption-text">Device simulator</p></div>
<h3>But there is <a href="http://eclipse.org/webtools/" target="_blank">Web Tools Project</a> already!</h3>
<p>TWM does not mean to reimplement WTP functionality. We build on top of the WTP reusing all the powerful tools in provides (like JSDT). We focus on adding functionality that is specific to mobile development &#8211; like deployment to phone or mobile API simulation.</p>
<h3>Will you add support for JQuery UI (or &lt;your other favorite JS library&gt;)?</h3>
<p>Our focus is on adding mobile development-specific functionality. We do not plan to implement functionality that users consider &#8220;missing&#8221; from the WTP. On the other hand we hope to cooperate with WTP and possibly contribute to such areas. Once the WTP gets support for the library then TMW will &#8220;inherit&#8221; it.</p>
<p>We are watching closely JavaScript frameworks that are more specific to mobile application development. We already added support for PhoneGap framework and we may add support for other frameworks as they mature and gain popularity.</p>
<h3>Is there any timeframe on when the tools will be available?</h3>
<p>You can already <a href="http://developer.symbian.org/wiki/index.php/Symbian_Web_Development_Tools_(WRT_Tools)">download</a> Tools that support Symbian WRT development. They are feature complete and EPL licensed so we encourage you to try them whether you are a JavaScript developer looking to expand to mobile platforms or an Eclipse enthusiast interested in IDEs for mobile. Currently we are focused on refactoring our code to add support for any number of the runtimes and to prepare it for migration to eclipse.org. From that point we will continue development of both Symbian-specific and runtime-agnostic parts.</p>
<h3>What about support for other platforms?</h3>
<p>We have implemented support for PhoneGap APIs but we only package applications for Symbian platform. <a href="http://www.aplixcorp.com/en/index.html" target="_blank">Aplix</a> already stepped up to contribute support for <a href="http://bondi.omtp.org/default.aspx" target="_blank">BONDI</a> runtime. We expect other interested parties to contribute support for other platforms.</p>
<h3>What can the IDE do?</h3>
<p>It is a fully integrated IDE that supports application development cycle from creating a new application project to deployment on the device or packaging for distribution.</p>
<div id="attachment_177" class="wp-caption aligncenter" style="width: 510px"><a href="http://eclipseblog.ostroukhovs.com/wp-content/uploads/2010/07/ide-highlevel.png"><img class="size-full wp-image-177" title="ide-highlevel" src="http://eclipseblog.ostroukhovs.com/wp-content/uploads/2010/07/ide-highlevel-e1279324075922.png" alt="IDE main screen" width="500" height="375" /></a><p class="wp-caption-text">Main screen</p></div>
<p>Our editing experience is based on WTP were we extended JSDT with the support for mobile libraries and added CSS validator and application manifest validator.</p>
<p>Another important part is the simulator and debugger that are built into our IDE. It can be used as a live preview of your application or as a runtime for debugging. Our primary goal was to reduce overhead of the mobile application development so we chose to use desktop browser (Chrome) to ensure maximum debugger performance. We understand that this approach is not completely accurate but it had proven to be &#8220;good enough&#8221; for debugging of the vast majority of the tasks. We plan on adding on-device debugging in one of the next releases.</p>
<h3>How do I start using this IDE?</h3>
<p>Follow <a href="http://developer.symbian.org/wiki/index.php/Symbian_Web_Development_Tools_(WRT_Tools)" target="_blank">this link</a> for up-to-date information on using our IDE. Do not hesitate to contact us on our <a href="http://developer.symbian.org/forum/forumdisplay.php?f=51" target="_blank">forums</a> or submit bugs to <a href="http://developer.symbian.org/bugs/enter_bug.cgi?product=WRT%20Tools" target="_blank">bugtracker</a>.</p>
<h3>How is this IDE related to other solutions for WRT development (i.e. Nokia plug-in for Aptana, Dreamweaver)?</h3>
<p>Our code owes to a large degree to Nokia code contribution. Our initial goal was to achieve feature-parity with Aptana-based solution. We added several important features including PhoneGap support and acceleration events simulation that were not available in the original code.</p>

<img src="http://feeds.feedburner.com/~r/ThoughtsAboutEclipseUi/~4/ZPh_rP4OOWI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://eclipseblog.ostroukhovs.com/2010/07/27/tools-for-mobile-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why open-source?</title>
		<link>http://eclipseblog.ostroukhovs.com/2010/06/04/why-open-source/</link>
		<comments>http://eclipseblog.ostroukhovs.com/2010/06/04/why-open-source/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 15:19:29 +0000</pubDate>
		<dc:creator>Eugene Ostroukhov</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Symbian]]></category>

		<guid isPermaLink="false">http://eclipseblog.ostroukhovs.com/?p=139</guid>
		<description><![CDATA[The first questions developers ask about out new Mobile Web IDE is &#8220;why do we need another solution?&#8221; This question is really justified provided there are already several established alternatives in all shapes and sizes. Our answer is that we wanted to have a completely open-sourced tools &#8211; and that leads to another question. &#8220;Why [...]]]></description>
			<content:encoded><![CDATA[
<p>The first questions developers ask about out new <a href="http://eclipseblog.ostroukhovs.com/2010/03/18/wrt-tools/">Mobile Web IDE</a> is &#8220;why do we need another solution?&#8221; This question is really justified provided there are already several established <a href="http://www.forum.nokia.com/Technology_Topics/Web_Technologies/Browsing/Tools_for_Mobile_Web_Developers.xhtml" target="_blank">alternatives</a> in all shapes and sizes.</p>
<p>Our answer is that we wanted to have a completely open-sourced tools &#8211; and that leads to another question. &#8220;Why should we (as users) care?&#8221; Now that open-source is not that much of a buzz-word it used to be most users don&#8217;t really care if they can see the source code &#8211; they are more concerned with usability and ROI. This is what we hope to achieve with our project:</p>
<ol>
<li>Single all-in-one download for every platform. All you need to install our IDE is to <a href="http://builds.symbian.org/sf_builds/wrt_ide/" target="_blank">download ZIP file</a> for your platform and to unzip it anywhere on your filesystem.</li>
<li>Use latest-and-greatest upstream projects available from the community. We use JSDT for JavaScript editing, Chrome Java SDK for debugging, W3C CSS validator for validation.</li>
<li>Use our codebase for an effort to provide a reference IDE for mobile web development. We want to contribute our project to serve as a basis for <a href="http://eclipse.org/proposals/tmw/" target="_self">Eclipse project</a> that will foster development of similar IDEs for different runtimes. Currently all major mobile platforms provide a way to create and deploy applications using web technologies. Until this point there was a separate IDE for each platform and we hope our project will encourage cooperation and ultimately result in better tools and consistent user experience.</li>
</ol>
<p>We have a lot of plans that should justify having &#8220;yet another&#8221; Mobile Web IDE even more:</p>
<ol>
<li>Support other mobile APIs. Currently we are working on out-of-box PhoneGap support but we will also consider other APIs and runtimes.</li>
<li>Improve preview and simulation. We are working on support for more sensors and mobile APIs.</li>
<li>Streamline UI.</li>
</ol>
<p>So we encourage you to give the IDE a try. You can post your comments and suggestions to our <a href="http://developer.symbian.org/forum/forumdisplay.php?f=51" target="_self">forum</a>. We would be grateful for any bug reports posted to our <a href="http://developer.symbian.org/bugs/enter_bug.cgi?product=WRT%20Tools" target="_self">bugtracker</a>.</p>

<img src="http://feeds.feedburner.com/~r/ThoughtsAboutEclipseUi/~4/aoqW1AdBgpk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://eclipseblog.ostroukhovs.com/2010/06/04/why-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Jetty as an OSGi HTTP Service</title>
		<link>http://eclipseblog.ostroukhovs.com/2010/05/19/using-jetty-as-an-osgi-http-service/</link>
		<comments>http://eclipseblog.ostroukhovs.com/2010/05/19/using-jetty-as-an-osgi-http-service/#comments</comments>
		<pubDate>Wed, 19 May 2010 14:00:30 +0000</pubDate>
		<dc:creator>Eugene Ostroukhov</dc:creator>
				<category><![CDATA[Tips & Tricks]]></category>

		<guid isPermaLink="false">http://eclipseblog.ostroukhovs.com/?p=147</guid>
		<description><![CDATA[I was unable to find any documentation on how to use Jetty as an OSGi HTTP service. We needed it as a part of our WRT tools effort to host a code that would serve as a runtime environment (sort of &#8220;emulator&#8221;) for the user code. I guess there are many other scenarios that could [...]]]></description>
			<content:encoded><![CDATA[
<p>I was unable to find any documentation on how to use Jetty as an OSGi HTTP service. We needed it as a part of our <a href="http://developer.symbian.org/wiki/index.php/Web_Runtime_(WRT)_Quick_Start_with_WrtTools" target="_blank">WRT tools</a> effort to host a code that would serve as a runtime environment (sort of &#8220;emulator&#8221;) for the user code. I guess there are many other scenarios that could make use of the embedded server.</p>
<p>Basically, everything you need to know can be found in <a title="org.eclipse.wst.ws.internal.explorer. WebappManager" href="http://dev.eclipse.org/viewcvs/index.cgi/webservices/plugins/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/WebappManager.java?revision=1.2&amp;root=WebTools_Project&amp;view=markup" target="_blank">org.eclipse.wst.ws.internal.explorer.WebappManager</a> class that is part of the WebTools project. The code is very simple:</p>
<pre class="brush: java; ">
Dictionary d = new Hashtable();
d.put(&quot;http.port&quot;, new Integer(getPortParameter())); //$NON-NLS-1$
// set the base URL
d.put(&quot;context.path&quot;, &quot;/wse&quot;); //$NON-NLS-1$ //$NON-NLS-2$
d.put(&quot;other.info&quot;, &quot;org.eclipse.wst.ws.explorer&quot;); //$NON-NLS-1$ //$NON-NLS-2$

// suppress Jetty INFO/DEBUG messages to stderr
Logger.getLogger(&quot;org.mortbay&quot;).setLevel(Level.WARNING); //$NON-NLS-1$

JettyConfigurator.startServer(webappName, d);
checkBundle();
</pre>
<p>In our code we do not specify the context path (so we have root as a context path) and specify a different ID so both our code and Web Services tools could coexist.</p>
<p>What is really important is that the server will run in Eclipse process and deployed servlets can have access to Eclipse APIs so you can interact with the workbench as you need &#8211; i.e. you can have all the settings stored in the preference store and configurable from the preference page, access the workspace and interact with your IDE (i.e. in our case it is possible to do AJAX call to disconnect JavaScript debugger).</p>
<p>There are two ways to register servlets:</p>
<ol>
<li>Programmatic (using OSGi APIs)</li>
<li>Declarative (using org.eclipse.equinox.http.registry.servlets extension point)</li>
</ol>
<p>In our application we use programmatic way so we don&#8217;t have to rely on singletons to integrate them with our IDE.</p>

<img src="http://feeds.feedburner.com/~r/ThoughtsAboutEclipseUi/~4/8-wi9QwGzgo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://eclipseblog.ostroukhovs.com/2010/05/19/using-jetty-as-an-osgi-http-service/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Open Web Development Tools for Mobile</title>
		<link>http://eclipseblog.ostroukhovs.com/2010/03/18/wrt-tools/</link>
		<comments>http://eclipseblog.ostroukhovs.com/2010/03/18/wrt-tools/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 21:56:27 +0000</pubDate>
		<dc:creator>Eugene Ostroukhov</dc:creator>
				<category><![CDATA[Symbian]]></category>

		<guid isPermaLink="false">http://eclipseblog.ostroukhovs.com/?p=115</guid>
		<description><![CDATA[Here at Symbian Foundation we believe that one of the best way to attract users to a mobile platform is to have more/better applications. The best way to have more/better applications is to attract more developers. And one of the best ways to attract more developers is to provide better tools. And one of the [...]]]></description>
			<content:encoded><![CDATA[
<p>Here at Symbian Foundation we believe that one of the best way to attract users to a mobile platform is to have more/better applications. The best way to have more/better applications is to attract more developers. And one of the best ways to attract more developers is to provide better tools. And one of the best ways to provide better IDE is to build on top of Eclipse.</p>
<p>And that is exactly what we are aiming to do.</p>
<p>We took (in no particular order):</p>
<ol>
<li>Contributions from our member company (Nokia)</li>
<li><a href="http://eclipse.org/eclipse/" target="_blank">Eclipse Platform from Eclipse Foundation</a></li>
<li><a href="http://eclipse.org/jsdt/" target="_blank">JavaScript Developer Tools from Eclipse Foundation</a></li>
<li>JS debugger from <a href="http://code.google.com/p/chromedevtools/" target="_blank">Google Chrome Developer Tools</a></li>
</ol>
<p>and glued them together to produce a new IDE that will make web development experience for Symbian platform much more pleasant.</p>
<p><img class="aligncenter size-medium wp-image-118" title="wrtide" src="http://eclipseblog.ostroukhovs.com/wp-content/uploads/2010/03/wrtide.png" alt="" width="800" /></p>
<p>This is what you can do with our IDE:</p>
<ol>
<li>Create a new WRT (Web Runtime) application project from one of the predefined templates or using existing packaged WRT application (WGZ file) as a template.</li>
<li>Edit HTML, JS and other files. This featureset is coming from WTP and JSDT in particular. We added validation for project metadata files and CSS files.</li>
<li>Debug the application. Chrome browser is used as a runtime and Chrome Developer Tools are used for debugger UI.</li>
<li>Package your application for distribution or deploy it directly to a device.</li>
</ol>
<p>You can find the builds for different platforms on our <a href="http://cdn.symbian.org/SF_builds/wrt_ide/">downloads site</a>. We plan to release the first version on March 31st.</p>
<p>Everybody is invited to:</p>
<ul>
<li>Visit the <a href="http://developer.symbian.org/main/source/packages/package/index.php?pk=263" target="_blank">project page</a> to obtain the sources. Use &#8220;Eclipse for JEE Developers&#8221; bundle with installed XULRunner as a target platform. Target platform can also be downloaded <a href="http://dl.dropbox.com/u/3318176/eclipse-352-target%28jee%29.zip">here</a> (single downloads for all platforms).</li>
<li>Try the IDE (there is a <a href="http://developer.symbian.org/wiki/index.php/Web_Runtime_(WRT)_Quick_Start_with_WrtTools" target="_blank">quickstart</a> document)</li>
<li>Comment on our <a href="http://developer.symbian.org/forum/forumdisplay.php?f=42" target="_blank">forums</a> or <a href="http://developer.symbian.org/mailman/listinfo/td-tools-dev" target="_blank">mailing list</a>.</li>
<li>Submit bugs to our <a href="http://developer.symbian.org/bugs/enter_bug.cgi?product=WRT%20Tools" target="_blank">bugtracker</a> (like if there are any&#8230;).</li>
<li>Participate in the project.</li>
</ul>
<p>At this point this project is very much focused on Symbian platform and WRT in particular. But we are planning to expand the scope &#8211; both to encompass increasing scope of web support in Symbian platform (<a href="http://developer.symbian.org/wiki/index.php/Common_Web_Runtime_MCP" target="_blank">cWRT</a> is one example) and to supporting more libraries and runtimes that are not platform-specific.</p>
<p>I hope to share some development experience in this blog so feel free to ask any questions on implementation.</p>
<p>I would really like to thank developers from Eclipse.org project and Google Chrome Developer Tools for making available all the great frameworks and tools.</p>

<img src="http://feeds.feedburner.com/~r/ThoughtsAboutEclipseUi/~4/EPsiEhUJ-G4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://eclipseblog.ostroukhovs.com/2010/03/18/wrt-tools/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>“Participate in community!” they said…</title>
		<link>http://eclipseblog.ostroukhovs.com/2009/12/11/participate-in-community-they-said/</link>
		<comments>http://eclipseblog.ostroukhovs.com/2009/12/11/participate-in-community-they-said/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 12:25:04 +0000</pubDate>
		<dc:creator>Eugene Ostroukhov</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://eclipseblog.ostroukhovs.com/?p=112</guid>
		<description><![CDATA[I see a lot of discussion in the blogs on how to invite new developers to participate. They all are talking about people being reluctant to do development, making the eclipse.org site interface more inviting &#8211; but really, is this the biggest problem? I wonder, does anybody think obscure location of the CVS URL would [...]]]></description>
			<content:encoded><![CDATA[
<p>I see a lot of discussion in the blogs on how to invite new developers to participate. They all are talking about people being reluctant to do development, making the eclipse.org site interface more inviting &#8211; but really, is this the biggest problem? I wonder, does anybody think obscure location of the CVS URL would really stop anybody from trying to enhance the favorite framework?</p>
<p>Consider this (the ones that I remember):</p>
<p><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=287887" target="_blank">Bug 287887</a> &#8211; I haven&#8217;t seen response like &#8220;why would anybody want this&#8221; or else. The patch was submitted 3 months ago.</p>
<p><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=155479" target="_blank">Bug 155479</a> &#8211; several commercial projects would like to see it. Patch was submitted in April.</p>
<p><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=166906" target="_blank">Bug 166906</a> &#8211; pretty irritating bug. The patch was submitted four years ago.</p>
<p>Note &#8211; these are patches to make Eclipse better from the end-user POV. It&#8217;s not the patches to make Eclipse frameworks more open for extension so we can build better products on top of it &#8211; I&#8217;m pretty sure that most commercial developers know that there is next to no chance to get such change into Eclipse.org.</p>
<p>The result is quite simple. I joined a new company recently and from the start I say &#8211; do not expect the Eclipse.org to cooperate. We need to consider a way to branch projects we use &#8211; before we reach the point it is not possible to deliver proper product to our customers because the framework was not designed to support something.</p>
<p>I believe there should be a strict policy in Eclipse.org for handling patches &#8211; i.e. the projects should commit to responding for the patch in 2 weeks or one month &#8211; and either describe what&#8217;s wrong or to incorporate the patch into main repository. Otherwise there will be many Eclipses &#8211; Git makes it really simple.</p>
<p>And I&#8217;m not mentioning this: <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=262846" target="_blank">262846</a> &#8211; pure enhancement to make simple API for the popular feature. I submitted this one in February &#8211; and I missed some Eclipse.org deadline. The result? Even in the best-case scenario I won&#8217;t be able to use this in my commercial product till Summer 2010 &#8211; 1.5 years. That&#8217;s if we don&#8217;t consider that the chances of this bug being committed are still slim. So why bother? 1.5 years is a long time.</p>

<img src="http://feeds.feedburner.com/~r/ThoughtsAboutEclipseUi/~4/ZBlDNw0HQnM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://eclipseblog.ostroukhovs.com/2009/12/11/participate-in-community-they-said/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Release names</title>
		<link>http://eclipseblog.ostroukhovs.com/2009/11/17/release-names/</link>
		<comments>http://eclipseblog.ostroukhovs.com/2009/11/17/release-names/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 15:56:41 +0000</pubDate>
		<dc:creator>Eugene Ostroukhov</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://eclipseblog.ostroukhovs.com/?p=94</guid>
		<description><![CDATA[I wonder if I&#8217;m the only one who can&#8217;t remember fancy names for Eclipse releases &#8211; Europa, Ganymede, Galileo, Helios. I think it&#8217;s not really good that there&#8217;s no easy way to memorize them (I wonder if they were meant to be in alphabetical order &#8211; if not for &#8220;Ganymede&#8221; and &#8220;Galileo&#8221;). Eclipse releases annually [...]]]></description>
			<content:encoded><![CDATA[
<p>I wonder if I&#8217;m the only one who can&#8217;t remember fancy names for Eclipse releases &#8211; Europa, Ganymede, Galileo, Helios. I think it&#8217;s not really good that there&#8217;s no easy way to memorize them (I wonder if they were meant to be in alphabetical order &#8211; if not for &#8220;Ganymede&#8221; and &#8220;Galileo&#8221;). Eclipse releases annually &#8211; so why doesn&#8217;t it has name like &#8220;Eclipse 2007&#8243;?</p>
<p>So:</p>
<table width="50%">
<tbody>
<tr>
<th align="left">Name</th>
<th>Platform/JDT/PDE</th>
<th>CDT</th>
<th>WTP</th>
<th>BIRT</th>
<th>Site</th>
</tr>
<tr>
<td>Callisto</td>
<td style="text-align: center;">3.2</td>
<td style="text-align: center;">3.1</td>
<td style="text-align: center;">1.5</td>
<td style="text-align: center;">2.1</td>
<td style="text-align: center;"><a href="http://www.eclipse.org/callisto/" target="_blank">link</a></td>
</tr>
<tr>
<td>Europa</td>
<td style="text-align: center;">3.3</td>
<td style="text-align: center;">4.0</td>
<td style="text-align: center;">2.0</td>
<td style="text-align: center;">2.2</td>
<td style="text-align: center;"><a href="http://eclipse.org/europa/" target="_blank">link</a></td>
</tr>
<tr>
<td>Ganymede</td>
<td style="text-align: center;">3.4</td>
<td style="text-align: center;">5.0</td>
<td style="text-align: center;">3.0</td>
<td style="text-align: center;">2.3</td>
<td style="text-align: center;"><a href="http://eclipse.org/ganymede/" target="_blank">link</a></td>
</tr>
<tr>
<td>Galileo</td>
<td style="text-align: center;">3.5</td>
<td style="text-align: center;">6.0</td>
<td style="text-align: center;">3.1</td>
<td style="text-align: center;">2.5</td>
<td style="text-align: center;"><a href="http://eclipse.org/galileo/" target="_blank">link</a></td>
</tr>
<tr>
<td>Helios</td>
<td style="text-align: center;">3.6</td>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"><a href="http://eclipse.org/helios/" target="_blank">link</a></td>
</tr>
</tbody>
</table>

<img src="http://feeds.feedburner.com/~r/ThoughtsAboutEclipseUi/~4/9jdFFuuJjEM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://eclipseblog.ostroukhovs.com/2009/11/17/release-names/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>WTP Frameworks Not Only For Web</title>
		<link>http://eclipseblog.ostroukhovs.com/2009/10/15/wtp-frameworks-not-only-for-web/</link>
		<comments>http://eclipseblog.ostroukhovs.com/2009/10/15/wtp-frameworks-not-only-for-web/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 20:17:37 +0000</pubDate>
		<dc:creator>Eugene Ostroukhov</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Tips & Tricks]]></category>

		<guid isPermaLink="false">http://eclipseblog.ostroukhovs.com/?p=84</guid>
		<description><![CDATA[WTP is a huge codebase with a lot of ready solutions for the problems that many Eclipse plug-in developers face. Unfortunately to me it looks like these solutions are not picked up as the people consider WTP only to concern with web site authoring. I would like to list some frameworks I believe are useful [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://www.eclipse.org/webtools/">WTP</a> is a huge codebase with a lot of ready solutions for the problems that many Eclipse plug-in developers face. Unfortunately to me it looks like these solutions are not picked up as the people consider WTP only to concern with web site authoring. I would like to list some frameworks I believe are useful in all areas where Eclipse is adopted:</p>
<h2>1. Faceted Project Framework</h2>
<p>(Link to <a href="http://www.eclipse.org/articles/Article-BuildingProjectFacets/tutorial.html">tutorial</a>)</p>
<p><img class="aligncenter size-full wp-image-85" title="facets" src="http://eclipseblog.ostroukhovs.com/wp-content/uploads/2009/10/Picture-5.png" alt="facets" width="669" height="395" />Essentialy Facets are project natures &#8211; only on steroids. Project natures can easily be added to a project and you can test if the project has specific nature &#8211; but the facets framework provides so much more:</p>
<p>1. Well defined facet lifecycle. Facet can be added, removed, upgraded you can define interdependence between facets. All done using clean API.</p>
<p>2. UI. You don&#8217;t need to implement your own menu action cramming the toolbars and confusing the user. You can contribute wizard pages that users will be able to invoke either when creating new project or when editing project properties. Sure, it is still possible to create custom action, wizard, etc.</p>
<p>As far as I understood this framework will be a basis for a projects framework in E4. I believe that will really streamline Eclipse user experience in many ways.</p>
<h2>2. Structured Source Editing Framework</h2>
<p>(Link to <a href="http://www.eclipse.org/webtools/sse/">subproject page</a>)</p>
<p><img class="aligncenter size-full wp-image-86" title="sse" src="http://eclipseblog.ostroukhovs.com/wp-content/uploads/2009/10/Picture-6.png" alt="sse" width="628" height="314" />Extremely great source editors for XML, XSL, JSP, HTML, CSS, XSD &#8211; and other files. The editor has rich navigation &amp; editing features JDT user would expect and is also extremely extensible. If you need to create an editor for XML-based file type you can pick the SSE XML editor and start customizing in small increments &#8211; outline view, content assistant, auto edit strategies, formatting, validation, hyperlinks. SSE editors can be embedded into multipage editors. Model management facilities can be used outside of the editor itself (i.e. from some toolbar action) and will help avoid conflicts when user did some change to the file that is already opened in the editor.</p>
<p>It is also possible to use custom parser to create editor for non-XML files.</p>
<p>I believe that SSE is long overdue in core Eclipse platform &#8211; PDE editor and ANT script would really benefit from reacher source editing capabilities (i.e. formatting).</p>
<h2>3. Validation Framework</h2>
<p>(Extension point <a href="http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclipse.wst.validation.doc.isv/reference/extension-points/vf/org_eclipse_wst_validation_validatorV2.html">description</a>)</p>
<p><img class="aligncenter size-full wp-image-87" title="validation" src="http://eclipseblog.ostroukhovs.com/wp-content/uploads/2009/10/Picture-7.png" alt="validation" width="699" height="617" /></p>
<p>This framework provides a clean and easy way to add build-time validation to workspace resources. This way project will have only one validation builder attached to it and it is easy to change the set of validators between product versions. The framework will handle dull tasks like markers management (i.e. there&#8217;s no need to remove the markers after the user fixed the problem) and properly call the validator on manual or auto build. There is also UI to manage validators on workspace and project levels.</p>

<img src="http://feeds.feedburner.com/~r/ThoughtsAboutEclipseUi/~4/-erLHAHVN7c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://eclipseblog.ostroukhovs.com/2009/10/15/wtp-frameworks-not-only-for-web/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>CCombos are evil</title>
		<link>http://eclipseblog.ostroukhovs.com/2009/09/05/ccombos-are-evil/</link>
		<comments>http://eclipseblog.ostroukhovs.com/2009/09/05/ccombos-are-evil/#comments</comments>
		<pubDate>Sat, 05 Sep 2009 12:00:27 +0000</pubDate>
		<dc:creator>Eugene Ostroukhov</dc:creator>
				<category><![CDATA[Tips & Tricks]]></category>

		<guid isPermaLink="false">http://eclipseblog.ostroukhovs.com/?p=78</guid>
		<description><![CDATA[org.eclipse.swt.custom.CCombo are evil and should never be used as components on dialogs and editors! They look deceptively &#8220;fine&#8221; on Windows: But on MacOS X (I would expect same on on GTK) they look completely wrong: It is not always possible to test on other OSes &#8211; so I believe avoiding this component is a good [...]]]></description>
			<content:encoded><![CDATA[
<p>org.eclipse.swt.custom.CCombo are evil and should never be used as components on dialogs and editors!</p>
<p>They look deceptively &#8220;fine&#8221; on Windows:<br />
<img class="aligncenter size-full wp-image-79" title="ccombo_win" src="http://eclipseblog.ostroukhovs.com/wp-content/uploads/2009/09/Picture-3.png" alt="ccombo_win" width="184" height="145" /></p>
<p>But on MacOS X (I would expect same on on GTK) they look completely wrong:</p>
<p><img class="aligncenter size-full wp-image-80" title="ccombo_macosx" src="http://eclipseblog.ostroukhovs.com/wp-content/uploads/2009/09/Picture-1.png" alt="ccombo_macosx" width="304" height="219" />It is not always possible to test on other OSes &#8211; so I believe avoiding this component is a good way to make the UI look better on other OSes.</p>

<img src="http://feeds.feedburner.com/~r/ThoughtsAboutEclipseUi/~4/o4N-g-0DfUY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://eclipseblog.ostroukhovs.com/2009/09/05/ccombos-are-evil/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Same Button, Different Meaning</title>
		<link>http://eclipseblog.ostroukhovs.com/2009/08/27/same-button-different-meaning/</link>
		<comments>http://eclipseblog.ostroukhovs.com/2009/08/27/same-button-different-meaning/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 20:46:56 +0000</pubDate>
		<dc:creator>Eugene Ostroukhov</dc:creator>
				<category><![CDATA[Enhancement]]></category>

		<guid isPermaLink="false">http://eclipseblog.ostroukhovs.com/?p=72</guid>
		<description><![CDATA[Consider following two images: Here you can see what I consider as a major UI antipattern &#8211; Cancel button has two distinct roles. In the first case it works as a close button on the window title bar &#8211; if the user clicks it, the wizard dialog will close and the user input will be [...]]]></description>
			<content:encoded><![CDATA[
<p>Consider following two images:<br />
<img class="aligncenter size-full wp-image-73" title="wizard" src="http://eclipseblog.ostroukhovs.com/wp-content/uploads/2009/08/wizard.png" alt="wizard" width="605" height="491" /></p>
<p><img class="aligncenter size-full wp-image-74" title="wizard_progress" src="http://eclipseblog.ostroukhovs.com/wp-content/uploads/2009/08/wizard_progress.png" alt="wizard_progress" width="605" height="491" />Here you can see what I consider as a major UI antipattern &#8211; Cancel button has two distinct roles. In the first case it works as a close button on the window title bar &#8211; if the user clicks it, the wizard dialog will close and the user input will be lost. In the bottom case the Cancel button is a &#8220;Cancel task&#8221; button &#8211; the task will be stopped but the dialog will be retained. This is pretty confusing for the users as they are not sure if they loose input in later case. I suggest we introduce a new button that will explicitly stop the task but has nothing to do with wizard dialog:</p>
<p><img class="aligncenter size-full wp-image-75" title="stopbutton" src="http://eclipseblog.ostroukhovs.com/wp-content/uploads/2009/08/newui.png" alt="stopbutton" width="605" height="496" />This way Cancel button always mimics Close Window button &#8211; i.e. it is grayed out when the wizard dialog cannot be closed. I filed this enhancement suggestion (along with a patch) as bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=287887">287887</a> in Eclipse.org bugtracker.</p>

<img src="http://feeds.feedburner.com/~r/ThoughtsAboutEclipseUi/~4/XzqmumcOwt8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://eclipseblog.ostroukhovs.com/2009/08/27/same-button-different-meaning/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
