<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Vincent Zurczak&#039;s Blog &#187; Eclipse</title>
	<atom:link href="http://vzurczak.wordpress.com/category/eclipse/feed/" rel="self" type="application/rss+xml" />
	<link>http://vzurczak.wordpress.com</link>
	<description>My technical blog</description>
	<lastBuildDate>Tue, 29 May 2012 09:46:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='vzurczak.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Vincent Zurczak&#039;s Blog &#187; Eclipse</title>
		<link>http://vzurczak.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://vzurczak.wordpress.com/osd.xml" title="Vincent Zurczak&#039;s Blog" />
	<atom:link rel='hub' href='http://vzurczak.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Git, Patches and new Contributors</title>
		<link>http://vzurczak.wordpress.com/2012/01/05/git-patches-new-contributors/</link>
		<comments>http://vzurczak.wordpress.com/2012/01/05/git-patches-new-contributors/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 21:51:41 +0000</pubDate>
		<dc:creator>vzurczak</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Diff files]]></category>
		<category><![CDATA[Eclipse contributions]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Paches]]></category>

		<guid isPermaLink="false">http://vzurczak.wordpress.com/?p=325</guid>
		<description><![CDATA[I have recently committed in the Eclipse BPEL Designer some patches that were contributed in our Bugzilla. This fact itself is not important. However, I used the Git command apply and kept the author name in the commit. I had never used this feature before, but it is extremely powerful. And very convenient to track [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vzurczak.wordpress.com&#038;blog=10081016&#038;post=325&#038;subd=vzurczak&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have recently committed in the Eclipse BPEL Designer some patches that were contributed in our Bugzilla. This fact itself is not important. However, I used the Git command <strong>apply</strong> and kept the author name in the commit. I had never used this feature before, but it is extremely powerful. And very convenient to <strong>track activities and propose new committers on a project</strong>.</p>
<p>I let some traces in this article (as an example and for me, for later).<br />
Notice that the <strong>apply</strong> command did not work with EGit, I had to use the command line. I guess it will be fixed in a future version.</p>
<ul>
<li>First, we need a patch, given as a diff file, e.g. in <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=357512">a bug entry</a>.</li>
<li>As a committer, you should apply and check this patch. So, you first need to copy the patch in your (cloned) Git repository.</li>
<li>Get some stats about the patch :
<pre><em>git apply --stat myPatchFile</em></pre>
</li>
</ul>
<ul>
<li>Make sure the patch can be applied :
<pre><em>git apply --check myPatchFile</em></pre>
</li>
</ul>
<ul>
<li>Apply the patch :
<pre><em>git apply myPatchFile</em></pre>
</li>
</ul>
<ul>
<li>Delete the patch file.</li>
</ul>
<p>Then, you can check that the patch works and then commit it, before pushing the modification.<br />
One important thing is to keep the author&#8217;s name in the commit. The author and the committer are different. And both can be kept in the commit and in the history. Here is an example in the command line:</p>
<blockquote>
<pre>git commit -a --author="authorUsername &lt;author.mail.address@sth.com&gt;"</pre>
</blockquote>
<p>After the push, both the author and commiter names will appear in the repository.</p>
<p><a href="http://vzurczak.files.wordpress.com/2012/01/git-patches.jpg"><img class="alignnone size-medium wp-image-326" title="Git-Patches" src="http://vzurczak.files.wordpress.com/2012/01/git-patches.jpg?w=300&h=61" alt="The author and committer names appear in the history" width="300" height="61" /></a></p>
<p>I don&#8217;t know if everyone in Eclipse projects uses this feature, but from the community perspective, this is very interesting (IMO).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vzurczak.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vzurczak.wordpress.com/325/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vzurczak.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vzurczak.wordpress.com/325/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vzurczak.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vzurczak.wordpress.com/325/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vzurczak.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vzurczak.wordpress.com/325/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vzurczak.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vzurczak.wordpress.com/325/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vzurczak.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vzurczak.wordpress.com/325/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vzurczak.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vzurczak.wordpress.com/325/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vzurczak.wordpress.com&#038;blog=10081016&#038;post=325&#038;subd=vzurczak&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vzurczak.wordpress.com/2012/01/05/git-patches-new-contributors/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/45cf3bb2253fd4285acb0cfeba915a18?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vzurczak</media:title>
		</media:content>

		<media:content url="http://vzurczak.files.wordpress.com/2012/01/git-patches.jpg?w=300" medium="image">
			<media:title type="html">Git-Patches</media:title>
		</media:content>
	</item>
		<item>
		<title>Enhanced Tabs thanks to ScrolledPageBook</title>
		<link>http://vzurczak.wordpress.com/2012/01/04/enhanced-tabs-thanks-to-scrolledpagebook/</link>
		<comments>http://vzurczak.wordpress.com/2012/01/04/enhanced-tabs-thanks-to-scrolledpagebook/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 21:49:45 +0000</pubDate>
		<dc:creator>vzurczak</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Java tips]]></category>
		<category><![CDATA[Scrolled Page Book]]></category>
		<category><![CDATA[SWT]]></category>
		<category><![CDATA[Tabs]]></category>

		<guid isPermaLink="false">http://vzurczak.wordpress.com/?p=312</guid>
		<description><![CDATA[With SWT, tab folders are a way to integrate in a same container several widgets. However, it appears to be quite limited in terms of design and creativity. I here propose some alternatives for sexier user interfaces. Tab Folder This is our witness section. Here is a snippet (the full code is avilable at the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vzurczak.wordpress.com&#038;blog=10081016&#038;post=312&#038;subd=vzurczak&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>With SWT, <a href="http://www.eclipse.org/swt/widgets/">tab folders</a> are a way to integrate in a same container several widgets. However, it appears to be quite limited in terms of design and creativity. I here propose some alternatives for sexier user interfaces.</p>
<h2>Tab Folder</h2>
<p>This is our witness section.<br />
Here is a snippet (the full code is avilable at the end of the article)&#8230;</p>
<p><pre class="brush: java;">public void createTabs( Composite parent ) {

	final TabFolder tabFolder = new TabFolder( parent, SWT.NONE );
	tabFolder.setLayoutData( new GridData( GridData.FILL_BOTH ));

	for( int i=0; i&lt;=4; i++) {
		TabItem tabItem = new TabItem( tabFolder, SWT.NONE );
		tabItem.setText( &quot;Item &quot; + i );
		tabItem.setControl( createTabContent( tabFolder ));
	}
}

private Composite createTabContent( Composite parent ) {

	Composite c = new Composite( parent, SWT.NONE );
	c.setLayout( new GridLayout( 2, false ));
	String[] properties = { &quot;First Name:&quot;, &quot;Last Name:&quot;, &quot;Nick Name:&quot; };

	for( String property : properties ) {
		new Label( c, SWT.NONE ).setText( property );
		new Text( c, SWT.SINGLE | SWT.BORDER ).setLayoutData( new GridData( GridData.FILL_HORIZONTAL ));
	}

	return c;
}</pre></p>
<p>And here is a screenshot.</p>
<p><a href="http://vzurczak.files.wordpress.com/2012/01/enhanced-tabs-thanks-to-scrolledpagebook-tabfolder.jpg"><img class="alignnone size-medium wp-image-313" title="Enhanced-Tabs-thanks-to-ScrolledPageBook--TabFolder" src="http://vzurczak.files.wordpress.com/2012/01/enhanced-tabs-thanks-to-scrolledpagebook-tabfolder.jpg?w=300&h=203" alt="An example with a Tab folder" width="300" height="203" /></a></p>
<p>As you can see, everything is centered, except the tabs.<br />
And that&#8217;s not cool at all.</p>
<h2>Custom Tab Folder</h2>
<p>The <a href="http://help.eclipse.org/indigo/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/custom/CTabFolder.html">CTabFolder class</a> is a little more powerful, but similar limitations appear quickly. It is not possible to center the tabs. And they are either above or below the content, never on side.</p>
<p><a href="http://vzurczak.files.wordpress.com/2012/01/enhanced-tabs-thanks-to-scrolledpagebook-ctabfolder.jpg"><img class="alignnone size-medium wp-image-314" title="Enhanced-Tabs-thanks-to-ScrolledPageBook--CTabFolder" src="http://vzurczak.files.wordpress.com/2012/01/enhanced-tabs-thanks-to-scrolledpagebook-ctabfolder.jpg?w=300&h=201" alt="An example with a CTab folder" width="300" height="201" /></a></p>
<p><pre class="brush: java;">public void createTabs( Composite parent ) {

	final CTabFolder tabFolder = new CTabFolder( parent, SWT.BORDER );
	tabFolder.setLayoutData( new GridData( GridData.FILL_BOTH ));
	tabFolder.setSimple( false );

	for( int i=0; i&lt;=4; i++ ) {
		CTabItem tabItem = new CTabItem( tabFolder, SWT.NONE );
		tabItem.setText( &quot; Item &quot; + i + &quot; &quot; );
		tabItem.setControl( createTabContent( tabFolder ));
	}
}</pre></p>
<p>Note that you can <a href="http://www.java2s.com/Tutorial/Java/0280__SWT/AddImagetoCTabFolder.htm">add images</a> on the tab.</p>
<h2>Scrolled Page Book</h2>
<p>An alternative to these classes is <a href="http://help.eclipse.org/indigo/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/forms/widgets/ScrolledPageBook.html">ScrolledPageBook</a>.<br />
It can be used in Eclipse plugins, but also in standalone applications. In addition to SWT bundles, you only have to add <strong>org.eclipse.ui.forms</strong> to your classpath. No need to be in a form to use it.</p>
<p>Let&#8217;s see a first illustration, with navigation labels and not (yet) tabs.<br />
The principle is simple: you have a set of labels and a scrolled page book. When the user clicks on a label, we change the displayed page in the book.</p>
<p><pre class="brush: java;">public void createTabs( Composite parent ) {

	// Add the container for navigation labels
	final int tabCpt = 5;
	Composite container = new Composite( parent, SWT.NONE );
	container.setLayout( new GridLayout( tabCpt, true ));
	container.setLayoutData( new GridData( SWT.CENTER, SWT.DEFAULT, true, false ));

	// Add the page book
	final ScrolledPageBook pageBook = new ScrolledPageBook( parent );
	pageBook.setLayoutData( new GridData( GridData.FILL_BOTH ));

	// The listener when the user clicks on a &quot;tab&quot;
	Listener listener = new Listener() {
		@Override
		public void handleEvent( Event event ) {
			pageBook.showPage( event.widget.getData());
		}
	};

	// Register the pages and bind it all
	for( int i=0; i&lt;=4; i++ ) {
		Label l = new Label( container, SWT.BORDER );
		l.setText( &quot;Item &quot; + i );
		l.setData( i );

		pageBook.registerPage( i, createTabContent( pageBook.getContainer(), i ));
		l.addListener( SWT.MouseDown, listener );
	}

	// Force to display the first tab
	pageBook.showPage( 0 );
}</pre></p>
<p>And here is a preview.</p>
<p><a href="http://vzurczak.files.wordpress.com/2012/01/enhanced-tabs-thanks-to-scrolledpagebook-simple-scrolledpagebook.jpg"><img class="alignnone size-medium wp-image-315" title="Enhanced-Tabs-thanks-to-ScrolledPageBook--Simple-ScrolledPageBook" src="http://vzurczak.files.wordpress.com/2012/01/enhanced-tabs-thanks-to-scrolledpagebook-simple-scrolledpagebook.jpg?w=300&h=202" alt="A first try with a scrolled page book" width="300" height="202" /></a></p>
<p>Ugly, isn&#8217;t it?<br />
But we can fix it.</p>
<h2>Tabs with a Scrolled Page Book</h2>
<p>To have a real tab&#8217;s look &amp; feel, we have to reduce the margin between the content and the labels. We also need make our labels look better. Partial borders will be added around the labels thanks to a paint listener.</p>
<p><a href="http://vzurczak.files.wordpress.com/2012/01/enhanced-tabs-thanks-to-scrolledpagebook-tabs-with-scrolledpagebook.jpg"><img class="alignnone size-medium wp-image-316" title="Enhanced-Tabs-thanks-to-ScrolledPageBook--Tabs-With-ScrolledPageBook" src="http://vzurczak.files.wordpress.com/2012/01/enhanced-tabs-thanks-to-scrolledpagebook-tabs-with-scrolledpagebook.jpg?w=300&h=200" alt="Tabs with a scrolled page book" width="300" height="200" /></a></p>
<p>Here is the code (it&#8217;s a little bit longer than before).</p>
<p><pre class="brush: java;">/**
 * Remember the selected index.
 */
private Integer selectedIndex = 0;

/**
 * Creates the tabs.
 * @param parent the parent
 */
public void createTabs( Composite parent ) {

	// Add the container for navigation labels
	final int tabCpt = 5;
	Composite container = new Composite( parent, SWT.NONE );
	GridLayout layout = new GridLayout( tabCpt, true );
	layout.marginHeight = 0;
	container.setLayout( layout );
	container.setLayoutData( new GridData( SWT.CENTER, SWT.DEFAULT, true, false ));

	// Add the page book
	final ScrolledPageBook pageBook = new ScrolledPageBook( parent );
	pageBook.setLayoutData( new GridData( GridData.FILL_BOTH ));

	// The listener when the user clicks on a &quot;tab&quot;
	final List&lt;Label&gt; navigationLabels = new ArrayList&lt;Label&gt; ();
	Listener listener = new Listener() {
		@Override
		public void handleEvent( Event event ) {
			pageBook.showPage( event.widget.getData());

			// Remember the last selected index
			TabsWithScrolledPageBookSnippet.this.selectedIndex = (Integer) event.widget.getData();

			// Highlight the selected tab
			for( Label l : navigationLabels ) {
				Color color;
				if( l != event.widget &amp;&amp; l.getParent() != event.widget )
					color = Display.getDefault().getSystemColor( SWT.COLOR_WIDGET_BACKGROUND );
				else
					color = Display.getDefault().getSystemColor( SWT.COLOR_WHITE );

				l.setBackground( color );
				l.getParent().setBackground( color );
			}
		}
	};

	// The paint listener, to paint partial borders
	PaintListener paintListener = new PaintListener() {
		@Override
		public void paintControl( PaintEvent event ) {

			Color color;
			if( TabsWithScrolledPageBookSnippet.this.selectedIndex.equals( event.widget.getData()))
				color = Display.getDefault().getSystemColor( SWT.COLOR_GRAY );
			else
				color = Display.getDefault().getSystemColor( SWT.COLOR_WIDGET_DARK_SHADOW );

			Rectangle rect = ((Composite) event.widget).getBounds();
			event.gc.setForeground( color );
			event.gc.setAntialias( SWT.ON );
			event.gc.drawLine( 0, 0, rect.width - 1, 0 );
			event.gc.drawLine( 0, 0, 0, rect.height - 1 );
			event.gc.drawLine( rect.width - 1, 0, rect.width - 1, rect.height - 1 );
		}
	};

	// Register the pages and bind it all
	for( int i=0; i&lt;tabCpt; i++ ) {
		Label l = createTabLabel( i, container, paintListener, listener );
		navigationLabels.add( l );
		pageBook.registerPage( i, createTabContent( pageBook.getContainer(), i ));
	}

	// Force to display the first tab (and force it to be highlighted)
	navigationLabels.get( 0 ).notifyListeners( SWT.MouseDown, new Event());
}

/**
 * Creates a label for the tab (wrapped in a composite for better display).
 * @param index the tab index
 * @param parent the container for the label
 * @param paintListener the paint listener for the label's container (to paint partial borders)
 * @param mouseDownListener the listener for when a tab is selected
 * @return the created label
 */
private Label createTabLabel( int index, Composite parent, PaintListener paintListener, Listener mouseDownListener ) {

	// Wrap the labels in a composite
	Composite c = new Composite( parent, SWT.NONE );
	c.setLayout( new GridLayout());
	c.setLayoutData( new GridData( 80, 25 ));
	c.setData( index );

	// To paint partial borders
	c.addPaintListener( paintListener );

	// Deal with the content
	Label l = new Label( c, SWT.NONE );
	l.setLayoutData( new GridData( SWT.CENTER, SWT.CENTER, true, true ));
	l.setText( &quot;Item &quot; + index );
	l.setData( index );

	// The click listener
	l.addListener( SWT.MouseDown, mouseDownListener );
	c.addListener( SWT.MouseDown, mouseDownListener );

	return l;
}</pre></p>
<h2>Horizontal Tabs</h2>
<p>By playing with the previous example, we can also obtain a result similar to the Eclipse tabbed properties. In the following example, the navigation labels are placed on the left of the content. I hardly changed the code (about 10 lines, it is just about the layout).</p>
<p><a href="http://vzurczak.files.wordpress.com/2012/01/enhanced-tabs-thanks-to-scrolledpagebook-other-tabs-with-scrolledpagebook.jpg"><img class="alignnone size-medium wp-image-317" title="Enhanced-Tabs-thanks-to-ScrolledPageBook--Other-Tabs-With-ScrolledPageBook" src="http://vzurczak.files.wordpress.com/2012/01/enhanced-tabs-thanks-to-scrolledpagebook-other-tabs-with-scrolledpagebook.jpg?w=300&h=203" alt="Another illustration of tabs implemented with a scrolled page book" width="300" height="203" /></a></p>
<p>The code is available in the archive below.</p>
<h2>Conclusion</h2>
<p>I hope these snippets (and screenshots) will help some of you.<br />
They also illustrate the use of the Scrolled Page Book class. Obviously, this could be used to create a custom and reusable widget (as an example shared in the <a href="http://eclipse.org/nebula/">Nebula project</a>). No need to say that it would be more simple with a HTML and CSS approach. <a href="http://www.eclipse.org/e4/">E4</a> may help in such an approach.</p>
<p>The complete source code for the snippets is available <a href="https://github.com/vincent-zurczak/My-Eclipse-Samples/tree/master/EnhancedTabsWithScrolledPageBook">on GitHub</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vzurczak.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vzurczak.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vzurczak.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vzurczak.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vzurczak.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vzurczak.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vzurczak.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vzurczak.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vzurczak.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vzurczak.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vzurczak.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vzurczak.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vzurczak.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vzurczak.wordpress.com/312/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vzurczak.wordpress.com&#038;blog=10081016&#038;post=312&#038;subd=vzurczak&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vzurczak.wordpress.com/2012/01/04/enhanced-tabs-thanks-to-scrolledpagebook/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/45cf3bb2253fd4285acb0cfeba915a18?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vzurczak</media:title>
		</media:content>

		<media:content url="http://vzurczak.files.wordpress.com/2012/01/enhanced-tabs-thanks-to-scrolledpagebook-tabfolder.jpg?w=300" medium="image">
			<media:title type="html">Enhanced-Tabs-thanks-to-ScrolledPageBook--TabFolder</media:title>
		</media:content>

		<media:content url="http://vzurczak.files.wordpress.com/2012/01/enhanced-tabs-thanks-to-scrolledpagebook-ctabfolder.jpg?w=300" medium="image">
			<media:title type="html">Enhanced-Tabs-thanks-to-ScrolledPageBook--CTabFolder</media:title>
		</media:content>

		<media:content url="http://vzurczak.files.wordpress.com/2012/01/enhanced-tabs-thanks-to-scrolledpagebook-simple-scrolledpagebook.jpg?w=300" medium="image">
			<media:title type="html">Enhanced-Tabs-thanks-to-ScrolledPageBook--Simple-ScrolledPageBook</media:title>
		</media:content>

		<media:content url="http://vzurczak.files.wordpress.com/2012/01/enhanced-tabs-thanks-to-scrolledpagebook-tabs-with-scrolledpagebook.jpg?w=300" medium="image">
			<media:title type="html">Enhanced-Tabs-thanks-to-ScrolledPageBook--Tabs-With-ScrolledPageBook</media:title>
		</media:content>

		<media:content url="http://vzurczak.files.wordpress.com/2012/01/enhanced-tabs-thanks-to-scrolledpagebook-other-tabs-with-scrolledpagebook.jpg?w=300" medium="image">
			<media:title type="html">Enhanced-Tabs-thanks-to-ScrolledPageBook--Other-Tabs-With-ScrolledPageBook</media:title>
		</media:content>
	</item>
		<item>
		<title>Changes and New Feature in the BPEL wizard</title>
		<link>http://vzurczak.wordpress.com/2011/11/09/changes-and-new-feature-in-the-bpel-wizard/</link>
		<comments>http://vzurczak.wordpress.com/2011/11/09/changes-and-new-feature-in-the-bpel-wizard/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 10:55:14 +0000</pubDate>
		<dc:creator>vzurczak</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[BPEL]]></category>
		<category><![CDATA[BPEL Designer]]></category>
		<category><![CDATA[Top-Down approach]]></category>
		<category><![CDATA[WSDL]]></category>

		<guid isPermaLink="false">http://vzurczak.wordpress.com/?p=287</guid>
		<description><![CDATA[Hi, I have just added a new way to create BPEL processes in the BPEL Designer. This feature allows to generate a BPEL skeleton from a WSDL port type. Roughly, it means we can generate BPEL processes that implement a given interface. In SOA, such a top-down approach is quite useful. It allows to be [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vzurczak.wordpress.com&#038;blog=10081016&#038;post=287&#038;subd=vzurczak&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hi,</p>
<p>I have just added a new way to create BPEL processes in the BPEL Designer.<br />
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=363278">This feature</a> allows to generate a BPEL skeleton from a WSDL port type. Roughly, it means we can generate BPEL processes that <em>implement</em> a given interface. In SOA, such a top-down approach is quite useful. It allows to be driven by service contracts.</p>
<p>In a RCP application I&#8217;m working on, I used to have this feature, but implemented through different means (and associated with an older fork of the BPEL Designer). It is now entirely based on the EMF metamodels (those of XML schemas, WSDL and BPEL). Since I want to get rid of this fork, I decided to contribute all my enhancements to the official BPEL Designer at Eclipse.org. And this feature is part of it.</p>
<p>Extending the wizard was also an opportunity to update the user interface in the creation wizard. Obviously, the former options of the wizard have been kept, even if they were reorganized. Here are some screenshots.</p>
<p>First, here is the new approach. You decide to create a BPEL from a WSDL contract&#8230;</p>
<p><a href="http://vzurczak.files.wordpress.com/2011/11/new-bpel-wizard-wsdl-1.jpg"><img class="size-medium wp-image-288 aligncenter" title="new-bpel-wizard--wsdl-1" src="http://vzurczak.files.wordpress.com/2011/11/new-bpel-wizard-wsdl-1.jpg?w=274&h=300" alt="Select the creation approach" width="274" height="300" /></a></p>
<p>You define the location of the WSDL and select the contract&#8230;</p>
<p><a href="http://vzurczak.files.wordpress.com/2011/11/new-bpel-wizard-wsdl-2.jpg"><img class="size-medium wp-image-289 aligncenter" title="new-bpel-wizard--wsdl-2" src="http://vzurczak.files.wordpress.com/2011/11/new-bpel-wizard-wsdl-2.jpg?w=273&h=300" alt="Specify the WSDL options" width="273" height="300" /></a></p>
<p>You can even import the WSDL (and its imports) in the project if you want.</p>
<p><a href="http://vzurczak.files.wordpress.com/2011/11/new-bpel-wizard-wsdl-3.jpg"><img class="size-medium wp-image-290 aligncenter" title="new-bpel-wizard--wsdl-3" src="http://vzurczak.files.wordpress.com/2011/11/new-bpel-wizard-wsdl-3.jpg?w=300&h=34" alt="Import the WSDL in the project" width="300" height="34" /></a></p>
<p>And eventually, you decide where to create the BPEL process.</p>
<p><a href="http://vzurczak.files.wordpress.com/2011/11/new-bpel-wizard-4.jpg"><img class="size-medium wp-image-291 aligncenter" title="new-bpel-wizard-4" src="http://vzurczak.files.wordpress.com/2011/11/new-bpel-wizard-4.jpg?w=273&h=300" alt="The target location" width="273" height="300" /></a></p>
<p>&nbsp;<br />
Here is a video of this wizard in action.<br />
<div class='embed-vimeo' style='text-align:center;'><iframe src='http://player.vimeo.com/video/31840439' width='400' height='300' frameborder='0'></iframe></div>
<p><a href="http://vimeo.com/31840439">Demonstration &#8211; WSDL to BPEL</a> from <a href="http://vimeo.com/user9210448">Vincent Zurczak</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>&nbsp;<br />
And here is how the former options are displayed now.</p>
<p><a href="http://vzurczak.files.wordpress.com/2011/11/new-bpel-wizard-template-1.jpg"><img class="size-medium wp-image-292 aligncenter" title="new-bpel-wizard--template-1" src="http://vzurczak.files.wordpress.com/2011/11/new-bpel-wizard-template-1.jpg?w=275&h=300" alt="Generate a BPEL from templates" width="275" height="300" /></a></p>
<p>The next page is about the template and its options.</p>
<p><a href="http://vzurczak.files.wordpress.com/2011/11/new-bpel-wizard-template-2.jpg"><img class="size-medium wp-image-293 aligncenter" title="new-bpel-wizard--template-2" src="http://vzurczak.files.wordpress.com/2011/11/new-bpel-wizard-template-2.jpg?w=276&h=300" alt="Fill-in the template options" width="276" height="300" /></a></p>
<p>These options depend on the selected template. A warning was also added to the &#8220;empty&#8221; template (this follows a discussion we had on the BPEL-dev mailing-list).</p>
<p><a href="http://vzurczak.files.wordpress.com/2011/11/new-bpel-wizard-template-3.jpg"><img class="size-medium wp-image-294 aligncenter" title="new-bpel-wizard--template-3" src="http://vzurczak.files.wordpress.com/2011/11/new-bpel-wizard-template-3.jpg?w=274&h=300" alt="The empty template" width="274" height="300" /></a></p>
<p>And you have already seen the page to select the target location.</p>
<p>&nbsp;<br />
This contribution comes with SWTBot tests and a new plugin with utilities for WSDL and XML schemas. It was committed <a href="http://git.eclipse.org/c/bpel/org.eclipse.bpel.git/tree/?h=new-bpel-wizard">on a branch</a> (thanks Git!). This way, it can be commented and discussed. Hopefully, this branch should then be merged with the master branch.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vzurczak.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vzurczak.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vzurczak.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vzurczak.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vzurczak.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vzurczak.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vzurczak.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vzurczak.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vzurczak.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vzurczak.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vzurczak.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vzurczak.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vzurczak.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vzurczak.wordpress.com/287/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vzurczak.wordpress.com&#038;blog=10081016&#038;post=287&#038;subd=vzurczak&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vzurczak.wordpress.com/2011/11/09/changes-and-new-feature-in-the-bpel-wizard/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/45cf3bb2253fd4285acb0cfeba915a18?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vzurczak</media:title>
		</media:content>

		<media:content url="http://vzurczak.files.wordpress.com/2011/11/new-bpel-wizard-wsdl-1.jpg?w=274" medium="image">
			<media:title type="html">new-bpel-wizard--wsdl-1</media:title>
		</media:content>

		<media:content url="http://vzurczak.files.wordpress.com/2011/11/new-bpel-wizard-wsdl-2.jpg?w=273" medium="image">
			<media:title type="html">new-bpel-wizard--wsdl-2</media:title>
		</media:content>

		<media:content url="http://vzurczak.files.wordpress.com/2011/11/new-bpel-wizard-wsdl-3.jpg?w=300" medium="image">
			<media:title type="html">new-bpel-wizard--wsdl-3</media:title>
		</media:content>

		<media:content url="http://vzurczak.files.wordpress.com/2011/11/new-bpel-wizard-4.jpg?w=273" medium="image">
			<media:title type="html">new-bpel-wizard-4</media:title>
		</media:content>

		<media:content url="http://vzurczak.files.wordpress.com/2011/11/new-bpel-wizard-template-1.jpg?w=275" medium="image">
			<media:title type="html">new-bpel-wizard--template-1</media:title>
		</media:content>

		<media:content url="http://vzurczak.files.wordpress.com/2011/11/new-bpel-wizard-template-2.jpg?w=276" medium="image">
			<media:title type="html">new-bpel-wizard--template-2</media:title>
		</media:content>

		<media:content url="http://vzurczak.files.wordpress.com/2011/11/new-bpel-wizard-template-3.jpg?w=274" medium="image">
			<media:title type="html">new-bpel-wizard--template-3</media:title>
		</media:content>
	</item>
	</channel>
</rss>
