<?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/"
	>

<channel>
	<title>The Isomorphic Software Blog</title>
	<atom:link href="http://blog.isomorphic.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.isomorphic.com</link>
	<description>The Isomorphic Software Blog</description>
	<lastBuildDate>Mon, 01 Apr 2013 20:26:01 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Smart GWT 4.0 / SmartClient 9.0 in Final Beta</title>
		<link>http://blog.isomorphic.com/smart-gwt-4-0-smartclient-9-0-in-final-beta/</link>
		<comments>http://blog.isomorphic.com/smart-gwt-4-0-smartclient-9-0-in-final-beta/#comments</comments>
		<pubDate>Mon, 01 Apr 2013 20:26:01 +0000</pubDate>
		<dc:creator>ray</dc:creator>
				<category><![CDATA[Feature]]></category>
		<category><![CDATA[Release]]></category>
		<category><![CDATA[SmartClient]]></category>
		<category><![CDATA[SmartGWT]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[smartclient]]></category>
		<category><![CDATA[smartgwt]]></category>

		<guid isPermaLink="false">http://blog.isomorphic.com/?p=1553</guid>
		<description><![CDATA[Today we&#8217;re pleased to announce that Smart GWT 4.0 and SmartClient 9.0 have hit &#8220;final beta&#8221; status.  This means we are feature frozen and have just a few remaining known bugs (most of them obscure). We recommend that anyone currently planning an upgrade should start using the latest beta builds unless you&#8217;re on the verge ...]]></description>
				<content:encoded><![CDATA[<p>Today we&#8217;re pleased to announce that Smart GWT 4.0 and SmartClient 9.0 have hit &#8220;final beta&#8221; status.  This means we are feature frozen and have just a few remaining known bugs (most of them obscure). We recommend that anyone currently planning an upgrade should start using the latest beta builds unless you&#8217;re on the verge of completing your application.</p>
<p>Please use the following links to download the new release:</p>
<ul>
<li>
<h4>Smart GWT 4.0d:</h4>
<p><a href="http://smartclient.com/builds/SmartGWT/4.0d" target="_blank">http://smartclient.com/builds/SmartGWT/4.0d</a></li>
</ul>
<ul>
<li>
<h4>SmartClient 9.0d:</h4>
<p><a href="http://smartclient.com/builds/SmartClient/9.0d" target="_blank">http://smartclient.com/builds/SmartClient/9.0d</a></li>
</ul>
<p><i><span style="text-decoration: underline;">Please Note</span>: There isn&#8217;t any special build labeled &#8220;beta&#8221;.  To get the latest beta build, please download the latest 4.0d or 9.0d <a href="http://www.smartclient.com/builds">nightly builds</a>.</i></p>
<h3>New Features</h3>
<p>In addition to features <a href="http://blog.isomorphic.com/smart-gwt-4-x-smartclient-9-x-feature-roadmap/">already announced</a> in our last <a href="http://blog.isomorphic.com/smart-gwt-4-x-smartclient-9-x-feature-roadmap/">roadmap</a> post, the following new features are part of the final 4.0 / 9.0 release:</p>
<ul>
<li>
<h4>Image Export of Charts and Drawings</h4>
<p>You can now take any <a style="font-size: 1em;" href="http://www.smartclient.com/smartgwtee-latest/javadoc/com/smartgwt/client/widgets/chart/FacetChart.html">FacetChart</a><span style="font-size: 1em;"> or </span><a style="font-size: 1em;" href="http://www.smartclient.com/smartgwtee-latest/javadoc/com/smartgwt/client/widgets/drawing/DrawPane.html">DrawPane</a><span style="font-size: 1em;"> and obtain an image in various formats, either in the browser or on the server side.  This has a variety of applications, such as including images of charts or diagrams in programmatically generated emails, reports, or static web content.</span></p>
<p><a href="http://blog.isomorphic.com/wp-content/uploads/2013/03/1-export-a.jpg"><img class="size-full wp-image-1599  alignnone" alt="Wide View of Image Export" src="http://blog.isomorphic.com/wp-content/uploads/2013/03/1-export-a.jpg" width="500" height="200" /></a><br />
<i>Wide View</i></p>
<p><a href="http://blog.isomorphic.com/wp-content/uploads/2013/03/1-export-topright.jpg"><img class="size-full wp-image-1600 " alt="Detail View of Image Export" src="http://blog.isomorphic.com/wp-content/uploads/2013/03/1-export-topright.jpg" width="500" height="85" /></a><br />
<i>Detail View</i></li>
</ul>
<ul>
<li>
<h4>Tab Drag Reorder</h4>
<p><a href="http://www.smartclient.com/smartgwtee-latest/javadoc/com/smartgwt/client/widgets/tab/TabSet.html">TabSet</a> now supports drag-reordering of tabs &#8211; just set <tt>TabSet.canReorderTabs</tt> to enable it.<br />
This also includes a new API <tt>TabSet.reorderTab</tt> which simplifies the process or rearranging tabs (previously an <tt>addTab()</tt>, <tt>removeTab()</tt> cycle was required).</p>
<p><a href="http://blog.isomorphic.com/wp-content/uploads/2013/03/2-reorderTabs-vertical.jpg"><img class="size-full wp-image-1603 alignnone" alt="Tab Drag Reorder example" src="http://blog.isomorphic.com/wp-content/uploads/2013/03/2-reorderTabs-vertical.jpg" width="300" height="146" /></a></li>
</ul>
<ul>
<li>
<h4>Component XML Namespacing &amp; Reuse</h4>
<p>It is now possible to load screens from Component XML without using any global widget IDs, yet still have programmatic access to all the widgets defined in Component XML (through a new <tt>getByLocalId</tt> API).<br />
This avoids the need to have any kind of coordination of ID usage across screens, simplifying management of Component XML.<br />
It also allows the same screen to be created multiple times in the same application, so you can create <i>reusable</i> component XML screen definitions for recurring application layouts.<br />
For details on the new usage pattern, take a look at <a href="http://www.smartclient.com/smartgwtee-latest/javadoc/com/smartgwt/client/rpc/RPCManager.html#cacheScreens"><tt>RPCManager.cacheScreens()</tt></a> and <a href="http://www.smartclient.com/smartgwtee-latest/javadoc/com/smartgwt/client/rpc/RPCManager.html#createScreen"><tt>RPCManager.createScreen()</tt></a>.</li>
</ul>
<ul>
<li>
<h4>ComboBox Minimum Search Strings</h4>
<p>A frequently requested small feature: allow a <a href="http://www.smartclient.com/smartgwtee-latest/javadoc/com/smartgwt/client/widgets/form/fields/ComboBoxItem.html">ComboBoxItem</a> to enforce a minimum length for the search string before a server query is actually attempted.  This is now a single setting, <a href="http://www.smartclient.com/smartgwtee-latest/javadoc/com/smartgwt/client/widgets/form/fields/ComboBoxItem.html#getMinimumSearchLength"><tt>ComboBoxItem.minimumSearchLength</tt></a>, with a configurable message that is displayed when the search string is too short.</p>
<p><a href="http://blog.isomorphic.com/wp-content/uploads/2013/03/3-minimumSearch-crop.jpg"><img class="size-full wp-image-1608" alt="ComboBox Minimum Search Strings example" src="http://blog.isomorphic.com/wp-content/uploads/2013/03/3-minimumSearch-crop.jpg" width="300" height="123" /></a></li>
</ul>
<ul>
<li>
<h4>WebDriver Support</h4>
<p>Previously announced as a feature that would probably land somewhere in the 4.x / 9.x series, WebDriver support is in fact present in 4.0 and 9.0. Take a look at the <a href="http://www.smartclient.com/smartgwtee-latest/javadoc/com/smartgwt/client/docs/AutomatedTesting.html">Automated Testing Overview</a> for details of the new support and how to use it. This includes:</p>
<ol>
<li>Support for SmartClient locator strings, providing stable, logical access to testable component that works across browser, skin and version differences.</li>
<li>Java APIs equivalent to the extremely useful custom commands exposed by our Selenium IDE extensions, such as <tt>waitForGridDone()</tt>.</li>
<li>Support for direct execution of Selenese scripts against WebDriver (normally impossible with WebDriver in general).</li>
<li>Support for generation of WebDriver / JUnit Java code equivalent to a Selenese script (important because Selenium IDE does not produce usable WebDriver code).</li>
</ol>
</li>
</ul>
<ul>
<li>
<h4>Format On Blur</h4>
<p>Another small nicety &#8211; you can now optionally apply formatters to editable text fields when they do not have keyboard focus.<br />
This is particularly useful for a ComboBox that shows related records, because it allows you to reveal additional data from other fields in the selected record.  The screenshot below is from the &#8220;Format Related Value&#8221; sample, which demonstrates this feature:<br />
Clicking on the search field changes the text back to the search string so the user can do a new search.</p>
<p><a href="http://blog.isomorphic.com/wp-content/uploads/2013/03/4-FormatOnBlur-a.jpg"><img class="alignnone size-full wp-image-1616" alt="Format On Blur example" src="http://blog.isomorphic.com/wp-content/uploads/2013/03/4-FormatOnBlur-a.jpg" width="400" height="110" /></a></li>
</ul>
<ul>
<li>
<h4>Server SimpleTypes</h4>
<p><a href="http://www.smartclient.com/smartgwtee-latest/javadoc/com/smartgwt/client/docs/serverds/SimpleType.html">SimpleTypes</a> are powerful features that allow you to define reusable atomic types, including validation rules, formatters, custom editors and other behaviors that can be reused across all components.The server framework now supports server-side declarations of SimpleTypes in .type.xml files. Like validators declared on a <a href="http://www.smartclient.com/smartgwtee-latest/javadoc/com/smartgwt/client/data/DataSourceField.html">DataSourceField</a>, validators declared in server-side SimpleTypes are enforced by the server framework.  See the new docs <a href="http://www.smartclient.com/smartgwtee-latest/javadoc/com/smartgwt/client/docs/serverds/SimpleType.html">here</a>.</li>
</ul>
<ul>
<li>
<h4>Internationalization Audit</h4>
<p>We&#8217;ve created an automated process that verifies that all messages in the system can now be translated via the user-contributed locale files maintained at <a href="http://www.getlocalization.com/">GetLocalization.com</a>.  This script picked up some 60 new strings that are part of 4.0 features, or that previously would have required manual coding to set.</p>
<p>If you&#8217;d like to help with translations, now is a great time to visit <a href="http://www.getlocalization.com/isomorphic/">our project</a> at GetLocalization.com and help translate all the newly available messages.</li>
</ul>
<p><b><i><span style="text-decoration: underline;">A Note for customers with Smart GWT 3.x / SmartClient 8.x Licenses</span></i></b></p>
<p><i>Smart GWT 4.x / SmartClient 9.x is a paid upgrade for Smart GWT 3.x / SmartClient 8.x license holders. If you upgraded or purchased licenses <span style="text-decoration: underline;">on or after November 21, 2012</span> then you already have a Smart GWT 4.x / SmartClient 9.x license. Otherwise, please <a href="http://smartclient.com/company/contact.jsp">contact us</a> for upgrade pricing.</i></p>
<p><i>Upgrade prices are based upon the date of your previous purchase. If you bought Smart GWT 3.x / SmartClient 8.x recently you may be eligible for a significant discount, so don’t delay. Get access to the entire Smart GWT 4.x / SmartClient 9.x series by upgrading today!</i></p>
<p>As always, please send us any bug reports or feedback in <i><a href="http://forums.smartclient.com/">the Forums</a></i>. Please be clear about what product and version you’re using when reporting issues.</p>
<p><a href="http://smartclient.com/product/download.jsp">Download</a> our cutting-edge development pre-releases to get started using our new features now!</p>
<p>Enjoy!</p>
<p><i>The Isomorphic Team</i></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.isomorphic.com/smart-gwt-4-0-smartclient-9-0-in-final-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Smart GWT 4.x / SmartClient 9.x Feature Roadmap</title>
		<link>http://blog.isomorphic.com/smart-gwt-4-x-smartclient-9-x-feature-roadmap/</link>
		<comments>http://blog.isomorphic.com/smart-gwt-4-x-smartclient-9-x-feature-roadmap/#comments</comments>
		<pubDate>Tue, 29 Jan 2013 06:13:35 +0000</pubDate>
		<dc:creator>ray</dc:creator>
				<category><![CDATA[Roadmap]]></category>
		<category><![CDATA[SmartClient]]></category>
		<category><![CDATA[SmartGWT]]></category>
		<category><![CDATA[Charts]]></category>
		<category><![CDATA[selenium]]></category>
		<category><![CDATA[smartclient]]></category>
		<category><![CDATA[smartgwt]]></category>
		<category><![CDATA[statistics]]></category>

		<guid isPermaLink="false">http://blog.isomorphic.com/?p=1411</guid>
		<description><![CDATA[Today we&#8217;re pleased to announce the feature roadmap for Smart GWT 4.x and SmartClient 9.x. Many of the new features are already complete, and if you’re comfortable using development builds you can go try them out right now. Smart GWT 4.x development builds SmartClient 9.x development builds If you upgraded or purchased licenses on or ...]]></description>
				<content:encoded><![CDATA[<p>Today we&#8217;re pleased to announce the feature roadmap for Smart GWT 4.x and SmartClient 9.x. Many of the new features are already complete, and if you’re comfortable using <a href="http://smartclient.com/builds">development builds</a> you can go try them out right now.</p>
<ul>
<li><b><a href="http://smartclient.com/builds/SmartGWT/4.0d">Smart GWT 4.x development builds</a></b></li>
<li><b><a href="http://smartclient.com/builds/SmartClient/9.0d">SmartClient 9.x development builds</a></b></li>
</ul>
<p><i>If you upgraded or purchased licenses <span style="text-decoration: underline;">on or after November 21, 2012</span> then you already have a 4.x license. Otherwise, please <a href="http://smartclient.com/company/contact.jsp">contact us</a> for upgrade pricing.</i></p>
<p>So, without further ado, here are the new features coming soon for Smart GWT 4.x / SmartClient 9.x.</p>
<h3>New Features</h3>
<p>The following features are committed for Smart GWT 4.0 / SmartClient 9.0.</p>
<ul>
<li>
<h4>Zoomable Charts</h4>
</li>
</ul>
<p style="padding-left: 60px;">Charts can now display huge datasets and allow the user to zoom into any portion of the data using an intuitive double-ended slider to define the visible range. This sample is under <i>Charting &gt;&gt; Zoom Charts &gt;&gt; Stock Prices</i>.</p>
<div id="attachment_1414" class="wp-caption aligncenter" style="width: 510px"><a href="http://blog.isomorphic.com/wp-content/uploads/2013/01/1-zoomable-charts.jpg"><img class="size-full wp-image-1414" title="Zoomable Charts" alt="Zoomable Charts example showing stock price of Apple, Inc. over a 5-year date range" src="http://blog.isomorphic.com/wp-content/uploads/2013/01/1-zoomable-charts.jpg" width="500" height="330" /></a><p class="wp-caption-text">Zoomable Charts</p></div>
<ul>
<li>
<h4>Error Bars</h4>
</li>
</ul>
<p style="padding-left: 60px;">Charts can now display optional error bars for better visualization of datasets that have uncertainty (such as scientific measurements). This sample is under <i>Charting &gt;&gt; Statistics &gt;&gt; Error Bars</i>.</p>
<div id="attachment_1418" class="wp-caption aligncenter" style="width: 510px"><a href="http://blog.isomorphic.com/wp-content/uploads/2013/01/2-error-bars.jpg"><img class="size-full wp-image-1418" alt="Error Bars for better visualization of datasets with uncertainty" src="http://blog.isomorphic.com/wp-content/uploads/2013/01/2-error-bars.jpg" width="500" height="330" /></a><p class="wp-caption-text">Error Bars</p></div>
<ul>
<li>
<h4>Curve-Fitting and Statistics features</h4>
</li>
</ul>
<p style="padding-left: 60px;">Scatter charts can calculate and display either lines or curves that best fit the dataset. This sample is under <em>Charting &gt;&gt; Statistics &gt;&gt; Regression Lines.</em></p>
<div id="attachment_1419" class="wp-caption aligncenter" style="width: 510px"><a href="http://blog.isomorphic.com/wp-content/uploads/2013/01/3-best-fit.jpg"><img class="size-full wp-image-1419" alt="Scatter Chart with Curve-Fitting" src="http://blog.isomorphic.com/wp-content/uploads/2013/01/3-best-fit.jpg" width="500" height="337" /></a><p class="wp-caption-text">Scatter Chart with Curve-Fitting</p></div>
<p style="padding-left: 60px;">In addition, all charts can now visually show the average value and standard deviation (a measure of how far data points are from the average). This sample is under <i>Charting &gt;&gt; Statistics &gt;&gt; Mean &amp; Deviation.</i></p>
<div id="attachment_1424" class="wp-caption aligncenter" style="width: 510px"><a href="http://blog.isomorphic.com/wp-content/uploads/2013/01/4-mean-deviation.jpg"><img class="size-full wp-image-1424 " title="Column Chart with Average Value and Standard Deviation" alt="Column Chart with Average Value and Standard Deviation" src="http://blog.isomorphic.com/wp-content/uploads/2013/01/4-mean-deviation.jpg" width="500" height="343" /></a><p class="wp-caption-text">Column Chart with Average Value &amp; Standard Deviation</p></div>
<ul>
<li>
<h4>Multi-Level Grouping UI</h4>
</li>
</ul>
<p style="padding-left: 60px;">Users can now configure multi-level grouping in any ListGrid via a simple dialog. Just set <tt>canMultiGroup</tt> to enable this feature on any ListGrid. This sample is in <i>Grids &gt;&gt; Grouping &amp; Summaries &gt;&gt; Multi Grouping</i>.</p>
<div id="attachment_1425" class="wp-caption aligncenter" style="width: 510px"><a href="http://blog.isomorphic.com/wp-content/uploads/2013/01/5-multi-grouping.jpg"><img class="size-full wp-image-1425" alt="Multi-Level Grouping User Interface for configuration of any ListGrid." src="http://blog.isomorphic.com/wp-content/uploads/2013/01/5-multi-grouping.jpg" width="500" height="477" /></a><p class="wp-caption-text">Multi-Level Grouping UI</p></div>
<ul>
<li>
<h4>Selenium TestRunner</h4>
</li>
</ul>
<p style="padding-left: 60px;">We&#8217;ve implemented the &#8220;holy grail&#8221; of <a href="http://en.wikipedia.org/wiki/Continuous_integration">Continuous Integration (CI)</a>: every time a developer makes a change, a massive test suite is run, and if there are any regressions relative to the last run, emails are sent around so the problem can be immediately addressed.</p>
<p style="padding-left: 60px;">As part of Smart GWT 4.0, we are taking part of the system we use for doing this, called <a title="TestRunner" href="http://www.smartclient.com/smartgwtee-latest/javadoc/com/smartgwt/client/docs/TestRunner.html"><b>Selenium TestRunner</b></a>, and making it an official part of the product (for <i>Power Edition</i> licenses and above).</p>
<p style="padding-left: 60px;">We&#8217;ll be covering this in more detail in upcoming blog posts. However, if you already understand the value of this feature, it&#8217;s <a title="TestRunner" href="http://www.smartclient.com/smartgwtee-latest/javadoc/com/smartgwt/client/docs/TestRunner.html">fully documented</a> and ready to use now.</p>
<ul>
<li>
<h4>Advanced Field Picker</h4>
</li>
</ul>
<p style="padding-left: 60px;">Some grids show a small subset of hundreds of available fields. With this many fields, it becomes awkward to choose and arrange fields by drag-re-ordering of headers and picking fields from a menu. To address this we&#8217;ve added an alternative mode for picking fields, enabled by setting <tt>useAdvancedFieldPicker</tt>. This dual-grid interface allows you to define the visible fields and their order via intuitive drag and drop. This sample is in <i>Grids &gt;&gt; Appearance &gt;&gt; Field Picker</i>.</p>
<div id="attachment_1427" class="wp-caption aligncenter" style="width: 510px"><a href="http://blog.isomorphic.com/wp-content/uploads/2013/01/6-field-picker.jpg"><img class="size-full wp-image-1427" alt="Advanced Field Picker is a dual-grid interface for definition of visible fields." src="http://blog.isomorphic.com/wp-content/uploads/2013/01/6-field-picker.jpg" width="500" height="280" /></a><p class="wp-caption-text">Advanced Field Picker</p></div>
<ul>
<li>
<h4>Time &amp; Datetime Editing Enhancements</h4>
</li>
</ul>
<p style="padding-left: 60px;">The TimeItem now supports a mode where users can pick from drop-down lists instead of directly typing in times.  The control can be configured to limit choices of minutes or hours, which can be useful for scheduling applications.</p>
<div id="attachment_1429" class="wp-caption aligncenter" style="width: 202px"><a href="http://blog.isomorphic.com/wp-content/uploads/2013/01/7-time-item.jpg"><img class="size-full wp-image-1429" alt="TimeItem Enhancement supports drop-down lists." src="http://blog.isomorphic.com/wp-content/uploads/2013/01/7-time-item.jpg" width="192" height="135" /></a><p class="wp-caption-text">TimeItem Enhancement</p></div>
<p style="padding-left: 60px;">In addition, for &#8220;datetime&#8221; fields (fields that combine both a date and time value), the DateChooser has been enhanced to allow picking both the date and time.</p>
<div id="attachment_1431" class="wp-caption aligncenter" style="width: 410px"><a href="http://blog.isomorphic.com/wp-content/uploads/2013/01/8-datetime1.jpg"><img class=" wp-image-1431 " alt="DateChooser Enhancement for datetime allows picking of both date and time." src="http://blog.isomorphic.com/wp-content/uploads/2013/01/8-datetime1.jpg" width="400" height="230" /></a><p class="wp-caption-text">DateTime Enhancement</p></div>
<ul>
<li>
<h4>Smart GWT AutoChild support</h4>
</li>
</ul>
<p style="padding-left: 60px;">AutoChildren are automatically generated subcomponents, like the header that a Window automatically creates. New APIs for Smart GWT enable accessing and configuring these subcomponents purely from Java, which can be useful for advanced skinning and sub-classing scenarios.</p>
<p style="padding-left: 60px;">For details, take a look at <tt>Canvas/FormItem.setAutoChildProperties()</tt>, and <tt>Canvas.getCanvasAutoChild()</tt>.</p>
<h3>Upcoming Features</h3>
<p>The following features are committed for future Smart GWT 4.x / SmartClient 9.x releases.</p>
<ul>
<li>
<h4>Server-based SimpleTypes</h4>
</li>
</ul>
<p style="padding-left: 60px;">SimpleTypes enable you to create a custom, reusable field type. This lets you share logic such as validation and formatting rules across different fields in different DataSources that need the same rule.</p>
<p style="padding-left: 60px;">Smart GWT 4.x / SmartClient 9.x will introduce the ability to declare SimpleTypes server-side, so that the parts of a simple type definition that have a server-side impact (most importantly, validation) can also be shared across server-side DataSource definitions (.ds.xml files).</p>
<ul>
<li>
<h4>Declarative Grouping &amp; Sums</h4>
</li>
</ul>
<p style="padding-left: 60px;">Smart GWT 4.x / SmartClient 9.x will introduce the ability to declare simple grouping and summing for DataSource requests, right in the DataSource definition.  For example, working with the <tt>orderItem</tt> sample DataSource, you could declare an <tt>operationBinding</tt> like so to create a fetch operation that will return the total sales for a set of <tt>orderItem</tt>s:</p>
<p style="text-align: center;"><a href="http://blog.isomorphic.com/wp-content/uploads/2013/01/9-order-item.jpg"><img class="size-full wp-image-1435 aligncenter" alt="operationBinding example that returns total sales for a set of orderItems." src="http://blog.isomorphic.com/wp-content/uploads/2013/01/9-order-item.jpg" width="439" height="97" /></a></p>
<p style="padding-left: 60px;">This <tt>operationBinding</tt> will still accept search criteria, sort directions and other normal features of fetch operations, so this simple declaration creates a fully searchable grouping.</p>
<p style="padding-left: 60px;">You can also programmatically request such queries via new APIs on the DSRequest object (<tt>setGroupBy()</tt>, <tt>setFieldFunction()</tt>).</p>
<p style="padding-left: 60px;">This new capability works with the built-in <a href="http://en.wikipedia.org/wiki/Sql">SQL</a>, <a href="http://en.wikipedia.org/wiki/Hibernate_(Java)">Hibernate</a> and <a href="http://en.wikipedia.org/wiki/Java_Persistence_API">JPA</a> DataSources. Note also that a the pre-existing SQL Templating feature of SQLDataSource allows yet more sophisticated grouping and SQL-based calculations for those who need it (see <a href="http://www.smartclient.com/smartgwtee/showcase/#sql_dynamic_reporting">this sample</a>).</p>
<ul>
<li>
<h4>Selenium WebDriver support</h4>
</li>
</ul>
<p style="padding-left: 60px;">Official <a href="http://en.wikipedia.org/wiki/Selenium_(software)#Selenium_WebDriver">WebDriver</a> support is currently planned for the Smart GWT 4.x / SmartClient 9.x series of releases. As we&#8217;ve noted in our docs, WebDriver has some pretty serious drawbacks relative to <a href="http://en.wikipedia.org/wiki/Selenium_(software)#Selenium_Remote_Control">Selenium RC</a> (discussed <a href="http://www.smartclient.com/smartgwtee/javadoc/com/smartgwt/client/docs/AutomatedTesting.html">here</a>), however, for some organizations, none of the drawbacks happen to apply.</p>
<p style="padding-left: 60px;">We do plan to address WebDriver&#8217;s primary drawback, that is, no ability to execute Selenese (or more generally, no ability to execute tests recorded in Selenium IDE without extensive modifications).</p>
<p style="padding-left: 60px;">If you plan to use WebDriver and you want to make sure official support is available by a specific date or a specific use case is supported, use the <a href="http://www.smartclient.com/services/index.jsp#features">Feature Sponsorship</a> program to get involved.</p>
<h3>Need something else?</h3>
<p>As always, the <a href="http://www.smartclient.com/services/index.jsp#features">Feature Sponsorship</a> program is available to help you get more of out of your platform, and spend less time writing and maintaining custom code. Now is a great time to propose a feature as there&#8217;s still time for it to be included in upcoming Smart GWT 4.x / SmartClient 9.x releases.</p>
<p>Enjoy!</p>
<p><i>The Isomorphic Team</i></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.isomorphic.com/smart-gwt-4-x-smartclient-9-x-feature-roadmap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Go from Mockup to Code with Reify</title>
		<link>http://blog.isomorphic.com/go-from-mockup-to-code-with-reify/</link>
		<comments>http://blog.isomorphic.com/go-from-mockup-to-code-with-reify/#comments</comments>
		<pubDate>Tue, 08 Jan 2013 18:32:02 +0000</pubDate>
		<dc:creator>ray</dc:creator>
				<category><![CDATA[Feature]]></category>
		<category><![CDATA[SmartClient]]></category>
		<category><![CDATA[SmartGWT]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[balsamiq]]></category>
		<category><![CDATA[reify]]></category>
		<category><![CDATA[smartclient]]></category>
		<category><![CDATA[smartgwt]]></category>

		<guid isPermaLink="false">http://blog.isomorphic.com/?p=1302</guid>
		<description><![CDATA[We’re big fans of wireframe mockup tools, so we’re excited to announce a new tool that generates SmartClient and Smart GWT code from mockups in one easy step. It’s called Reify – an actual English word meaning “to make something abstract more real or concrete”. Design using a wireframe mockup tool like Balsamiq, then use Reify to ...]]></description>
				<content:encoded><![CDATA[<p>We’re big fans of wireframe mockup tools, so we’re excited to announce a new tool that generates SmartClient and Smart GWT code from mockups in one easy step. It’s called <strong><a title="Reify Mockup Importer" href="http://smartclient.com/product/reify.jsp" target="_blank">Reify</a></strong> – an actual English word meaning “to make something abstract more real or concrete”. Design using a wireframe mockup tool like <a href="http://www.balsamiq.com/">Balsamiq</a>, then use Reify to instantly transform exported mockups into working screens backed by clean, clear code that follows our best practices.</p>
<p>There are already several tools available that can turn mockups into simple interactive web pages, PDFs, and other formats so they can be more easily shared. That&#8217;s <span style="text-decoration: underline;">not</span> what Reify does.</p>
<p>Instead, <strong>Reify deeply analyzes your mockups and produces source code similar to what a developer might write by hand</strong>. This allows your team to skip over the phase of painstakingly recreating the UI shown in the mockup, and move directly to adding business logic and data binding.</p>
<h3>Watch the Video</h3>
<p style="text-align: center;"><a title="Reify Mockup Importer" href="http://www.smartclient.com/videos/reify_video.html" target="_blank"><img class="size-full wp-image-1304 aligncenter" title="reify-video" alt="Reify Video Thumbnail" src="http://blog.isomorphic.com/wp-content/uploads/2012/11/reify-play.jpg" width="550" height="340" /></a></p>
<h4>Use the tools you already know.</h4>
<p>Many teams already use simple wire-framing tools such as <a href="http://www.balsamiq.com/">Balsamiq</a> to create, edit, and share mockups of new user interfaces as part of the design process. This allows any product manager, business analyst, project manager, or end user to directly contribute to application design using an intuitive tool. <a href="http://www.balsamiq.com/">Balsamiq</a> also enables your team to host, collaborate and iterate your UX projects on or offline before settling on a design for development.</p>
<h4>Don’t re-create. Re-use.</h4>
<p>Reify allows you to get much more out of your mockups. Normally, when a mockup is handed off for implementation, your developers needed to laboriously duplicate the mockup in actual code &#8211; one screen at a time. This is an enormous waste of time and effort, and typically causes extra iterations as developers inevitably miss subtle but important details. With Reify, you can go straight from a mockup to working code that reproduces your intended design.</p>
<p><a href="http://blog.isomorphic.com/wp-content/uploads/2012/11/reify-import.jpg"><img class="aligncenter size-full wp-image-1319" title="reify-import" alt="Balsamiq mockup imported by Reify" src="http://blog.isomorphic.com/wp-content/uploads/2012/11/reify-import.jpg" width="550" height="650" /></a></p>
<h4>Use Reify with <strong>any</strong> mockup.</h4>
<p>You can benefit from Reify even if your organization doesn’t currently use <a href="http://www.balsamiq.com/">Balsamiq</a> for mockups. If you receive mockups in another format (such as a file from an image editing tool or HTML page), use <a href="http://www.balsamiq.com/">Balsamiq</a> to build a new mockup with Reify continuously showing you the resulting screen on the fly. It’s like sketching on a digital whiteboard with an Isomorphic engineer implementing your design in real-time.</p>
<h3>How does it work?</h3>
<p>In <a href="http://www.balsamiq.com/">Balsamiq</a>, placing a widget on top of a window or tab is enough for the mockup to look right. However, working applications need to know that a widget is contained by a tab or window, or the wrong thing will happen when the screen is resized or the window dragged.</p>
<p>Reify deeply analyzes your mockup to discover the relationships that are implied by the way you arranged widgets. Containment relationships are automatically discovered, labels are automatically associated with input controls, input controls are automatically grouped into logical forms, and aligned components are grouped into flexible layouts that respond as expected to browser resizes.</p>
<p>Reify even compensates for imprecision in mockups by recognizing that a set of controls is meant to be perfectly aligned even if the mockup is a few pixels off, and recognizing that the intended size of a control is its visible size, not the size of its (invisible) bounding box.</p>
<h4>Clean, Extensible Code</h4>
<p>Tools that generate code often produce awful results that cannot be meaningfully extended. Reify is different.</p>
<p>Reify outputs screens in Isomorphic’s Component XML format, a concise, declarative format similar to Flash’s MXML or Microsoft’s XAML. Reify makes great efforts to produce clean, minimal code. For example, if a component gets its size from its container, Reify won’t output the redundant size information on the component. More generally, Reify will avoid outputting code that would set a property to its default value.</p>
<p>Screens created by Reify can be connected to real data sources in one step, and event handlers and business logic can be added while keeping the screen definition in XML. This enables a clean separation between layout and logic, and allows non-developers to understand and modify screen layout without breaking business logic.</p>
<h4>No Limits</h4>
<p>You can easily mix and match between screens imported via Reify and classic hand-coded screens and layouts. For example, if you have created a highly dynamic, portal-style layout manager that couldn&#8217;t be built just with XML, you can still use Reify to create portlets, wizards, and other screens controlled by your advanced layout manager.</p>
<p>Or, you can create a screen that has a placeholder for a dynamically generated component, and insert that component programmatically after the Reify-created screen is loaded.</p>
<p style="text-align: center;"><a href="http://blog.isomorphic.com/wp-content/uploads/2012/11/reify-no-limits.jpg"><img class="aligncenter size-full wp-image-1324" title="reify-no-limits" alt="Imported widgets, imported screens, and hand-coded screens using Reify" src="http://blog.isomorphic.com/wp-content/uploads/2012/11/reify-no-limits.jpg" width="550" height="223" /></a></p>
<p>Reify lets you maintain any part of your application in easy-to-read, easy-to-modify XML, while still allowing advanced, data driven techniques to be used wherever appropriate &#8211; the best of both worlds.</p>
<h3>Get Started</h3>
<p>You can <b><a href="http://www-reify.isomorphic.com/tools/bmmlImporter.jsp">Try Reify</a></b> online, without installing anything, at the <b><a href="http://www-reify.isomorphic.com/tools/bmmlImporter.jsp">live demo site</a></b>! Here are two sample mockups so you can try it right now (Sample 1: <a href="https://isomorphic.mybalsamiq.com/projects/testproject/example+mockup+for+Balsamiq+resizebars+and+layouts.bmml">Resize bars &amp; Layouts</a>; Sample 2: <a href="https://isomorphic.mybalsamiq.com/projects/testproject/example+mockup+for+demo+3+v1.0.bmml">Navigation, Charts</a>). Or, if you’re ready to get started then download our <a href="http://www.smartclient.com/product/download.jsp">free 60-day trial</a>.</p>
<h3>Licensing</h3>
<ul>
<li>Reify is available in Smart GWT 3.1 and SmartClient 8.3 <em>Pro Edition</em> and above.</li>
<li><em><span style="text-decoration: underline;">Note to existing Smart GWT 2.x Users</span>: 3.x is a paid upgrade for 2.x license holders. Upgrade discounts may vary, and are based upon the date of your last purchase. For a quote please contact <a href="http://www.smartclient.com/company/get_quote.jsp">sales</a>.</em></li>
</ul>
<div>
<h3>Enhance Reify to meet your needs</h3>
<p>Would Reify fit perfectly into your workflow if it had just one more feature? You can have it added! As with our other products, we have a <a title="Feature Sponsorship" href="http://www.smartclient.com/services/index.jsp#features">Feature Sponsorship</a> program that allows you to fund development of new features.</p>
</div>
<p>Enjoy!</p>
<p><em>The Isomorphic Team</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.isomorphic.com/go-from-mockup-to-code-with-reify/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Upgrade from LGPL?</title>
		<link>http://blog.isomorphic.com/why-upgrade-from-lgpl/</link>
		<comments>http://blog.isomorphic.com/why-upgrade-from-lgpl/#comments</comments>
		<pubDate>Fri, 07 Dec 2012 22:37:39 +0000</pubDate>
		<dc:creator>ray</dc:creator>
				<category><![CDATA[SmartClient]]></category>
		<category><![CDATA[SmartGWT]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[balsamiq]]></category>
		<category><![CDATA[reify]]></category>
		<category><![CDATA[smartclient]]></category>
		<category><![CDATA[smartgwt]]></category>

		<guid isPermaLink="false">http://blog.isomorphic.com/?p=1332</guid>
		<description><![CDATA[Why Upgrade? If you&#8217;re a user of the free LGPL version of our products, you may be wondering if now is the right time to upgrade to a full version. Most users don&#8217;t realize how many immediate benefits come from an upgrade to Pro or above, without the need to rework how your application functions. ...]]></description>
				<content:encoded><![CDATA[<h3>Why Upgrade?</h3>
<p>If you&#8217;re a user of the free LGPL version of our products, you may be wondering if now is the right time to upgrade to a full version. Most users don&#8217;t realize how many <strong>immediate</strong> benefits come from an upgrade to Pro or above, <em>without</em> the need to rework how your application functions.</p>
<p>This is a rare opportunity to purchase new licenses and optional modules at <strong><span style="text-decoration: underline;"><a href="http://www.smartclient.com/product/">30% off until the end of the year</a></span></strong>. If you are upgrading an existing Pro, Power, or Enterprise license from a previous version, we’ll stack an additional 30% discount <strong><em>on top of</em></strong> the discount you receive for owning a qualifying older license. <span style="text-decoration: underline;"><strong><a href="http://www.smartclient.com/company/get_quote.jsp">Contact sales for an upgrade quote today!</a></strong></span></p>
<h3>Benefits of upgrading to Pro+ Edition</h3>
<h4>1.  Export to Excel and other formats</h4>
<p style="padding-left: 30px;">Whether you&#8217;re using REST-based integration, GWT-RPC or something custom &#8211; you can export to Excel and other formats as soon as you install our server .jars and servlets <strong>without</strong> reworking how your application loads data. This approach, called a &#8220;client-driven export&#8221;, works with any <em>ListGrid</em> or <em>TreeGrid</em> and only requires a single method call &#8211; listGrid.exportClientData().</p>
<h4>2.  Print to PDF</h4>
<p style="padding-left: 30px;">Make any printable screen into a .PDF without reworking your application in any way, again using a single method call &#8211; RPCManager.exportContent(). <a href="http://www.smartclient.com/smartgwtee-latest/server/javadoc/com/isomorphic/contentexport/PdfExport.html#getPdfRenderer(java.lang.String,java.util.Map)">Server-side APIs</a> allow you to capture the generated PDF so that you can attach it to email, save it to disk, or whatever else you need. This feature makes any UI you build into a simple &#8220;report&#8221;, and may obviate the need to install and configure separate reporting packages.</p>
<h4>3.  Charts</h4>
<p style="padding-left: 30px;">Pro Edition and above include our <a href="http://blog.isomorphic.com/html5-charts-with-mobile-support/">HTML5 charting engine</a>, with powerful features like:</p>
<ul>
<ul>
<li><a title="Dual-axis Charts" href="http://www.smartclient.com/smartgwtee/showcase/#dualAxisChartMA">Dual-axis</a> and <a title="3-axis Charts" href="http://www.smartclient.com/smartgwtee/showcase/#threePlusChartMA">3-axis charts</a></li>
<li>Log scale charts (examples: <a href="http://smartclient.com/#_Charting_Log.Scaling">SmartClient</a>; <a href="http://smartclient.com/smartgwtee/showcase/#logScalingChart">Smart GWT</a>)</li>
<li><a href="http://blog.isomorphic.com/html5-charts-with-mobile-support/">Switching chart type</a><a href="http://blog.isomorphic.com/html5-charts-with-mobile-support/">s</a> on the fly (examples: <a href="http://smartclient.com/#simpleChart">SmartClient</a>; <a href="http://smartclient.com/smartgwtee/showcase/#simpleChart">Smart GWT</a>)</li>
<li>Zoom-able charts <em>(coming soon)</em></li>
<li>Statistics features like curve fitting <em>(coming soon)</em></li>
</ul>
</ul>
<p style="padding-left: 30px;">You could argue indefinitely about the relative merits of our built-in engine vs. other commercial packages you could integrate into your application. However, any quality add-on from a third party would cost nearly as much as a Pro license, but <strong>only</strong> give you charts. <strong>In addition</strong>, you’d have to integrate it yourself with possibly serious technical hurdles around printing, export to PDF, drag and drop with other components, and other things that our built-in charts do automatically.</p>
<p style="padding-left: 30px;">The charting engine in Pro+ Edition is a no-brainer decision for anyone who currently uses the <em>LGPL Edition</em> and needs charts.</p>
<h4>4.  Reify (and other tools)</h4>
<p style="padding-left: 30px;"><a href="http://smartclient.com/product/reify.jsp">Reify</a> allows you to transform <a href="http://www.balsamiq.com/">Balsamiq</a> mockups into working screens backed by clean, clear code. Screens imported via Reify can be added to an existing application without changing its data binding approaches or architecture in any way. Components in Reify screens can connect to <em>RestDataSource</em> or any other type of <em>DataSource</em>, and screens generated in Reify can be placed into layouts and other containers created in a normal hand-coded application.</p>
<p style="padding-left: 30px;"> Reify lets you keep everything you&#8217;ve already built, and add new functionality with a radically improved and more efficient process.</p>
<h4>5.  Peace of mind</h4>
<p style="padding-left: 30px;">Many corporate legal departments are allergic to OSS licenses and would prefer to see a standard commercial license. But, perhaps more importantly, any innovative company today is exposed to tremendous risk from &#8220;patent trolls&#8221; &#8211; litigious companies that holding dubious patents and <a href="http://arstechnica.com/tech-policy/2012/09/eolas-strikes-again-sues-facebook-wal-mart-and-disney-over-uc-patents/">make a business</a> out of suing other companies. Legal defense costs can easily run <a href="http://news.cnet.com/8301-32973_3-57409792-296/how-much-is-that-patent-lawsuit-going-to-cost-you/">into the millions</a>, even when the lawsuit is baseless.</p>
<ul>
<ul>
<li>Do you have staff that can provide clear evidence that a web-related patent is invalid due to prior art?</li>
<li>If the best option is to give in and settle even when you&#8217;re in the right, are you prepared to create and maintain a fork of our products in order to avoid the bogus patents at issue?</li>
</ul>
</ul>
<p style="padding-left: 30px;">Among other &#8220;peace of mind&#8221; terms, Enterprise licenses allow you to secure Isomorphic&#8217;s future assistance in such matters <strong>before</strong> the issue comes up.</p>
<h3>More benefits in the future</h3>
<p>These are just the <strong>immediate</strong> benefits you get from upgrading to Pro+ Edition, <em>without reworking any of your existing code</em>. Longer term, you can<em> </em>incrementally switch over to<em> </em>using more features, still with a minimum amount of rework.</p>
<p>For example, you can convert a <em>RestDataSource</em> or other client-side <em>DataSource</em> to a server-based <em>DataSource</em>, but still use <a href="http://smartclient.com/product/#serverDataBinding">DMI</a> to call existing business logic. This gives you access to a wide variety of server features, including; <a href="http://smartclient.com/product/#declarativeSecurity">Declarative Security</a>, <a href="http://www.smartclient.com/smartgwtee/showcase/#validation_dmi">Server-side Validation</a>, and <a href="http://smartclient.com/product/#automaticTransactions">Transaction Chaining</a> <strong>and</strong> allows you to delete a lot of repetitive, &#8220;boilerplate&#8221; code. This approach leaves your actual business and persistence logic intact and unchanged, and can even be done on an incremental, screen-by-screen or DataSource-by-DataSource basis.</p>
<h3>How to make it happen</h3>
<p>Are you an engineer wishing you could use the more advanced versions of our software, and frustrated by your company re-implementing the features of Pro+?  Out of the features above, we feel that the <a href="http://smartclient.com/product/reify.jsp">Reify</a> tool and this <a title="Reify Mockup Importer" href="http://smartclient.com/videos/reify_video.html" target="_blank">intro video</a> will play best with management, but don&#8217;t discount the power of argument #5 (Peace of Mind). Strange as it may seem, raising the legal and risk-related benefits of a relationship with Isomorphic may be the way you get the upgrade you want.</p>
<p>Now is the perfect time to buy one of our commercial licenses and super-charge your applications, so don’t delay. <span style="text-decoration: underline;"><strong><a href="http://www.smartclient.com/product/">Buy online</a></strong></span>, or <span style="text-decoration: underline;"><strong><a href="http://www.smartclient.com/company/get_quote.jsp">contact sales</a></strong></span> for a quote today!</p>
<p>Enjoy!</p>
<p><em>The Isomorphic Team</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.isomorphic.com/why-upgrade-from-lgpl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Smart GWT 3.1 / SmartClient 8.3 Released and 30% off Holiday Sale</title>
		<link>http://blog.isomorphic.com/smart-gwt-3-1-smartclient-8-3-released-and-30-off-holiday-sale/</link>
		<comments>http://blog.isomorphic.com/smart-gwt-3-1-smartclient-8-3-released-and-30-off-holiday-sale/#comments</comments>
		<pubDate>Wed, 21 Nov 2012 20:11:34 +0000</pubDate>
		<dc:creator>ray</dc:creator>
				<category><![CDATA[Release]]></category>
		<category><![CDATA[SmartClient]]></category>
		<category><![CDATA[SmartGWT]]></category>
		<category><![CDATA[Charts]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[CubeGrid]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[release smartgwt smartclient]]></category>
		<category><![CDATA[server scripting]]></category>
		<category><![CDATA[server scripts]]></category>
		<category><![CDATA[smartclient]]></category>
		<category><![CDATA[smartgwt]]></category>

		<guid isPermaLink="false">http://blog.isomorphic.com/?p=1207</guid>
		<description><![CDATA[We are pleased to announce that Smart GWT 3.1 and SmartClient 8.3 have been released! In celebration of the release, you have the opportunity to purchase new licenses or upgrade existing licenses at 30% off until the end of the year. The new release is a massive leap forward, and includes a dizzying array of new features. The ...]]></description>
				<content:encoded><![CDATA[<p>We are pleased to announce that Smart GWT 3.1 and SmartClient 8.3 have been released! In celebration of the release, you have the opportunity to purchase new licenses or upgrade existing licenses at <a title="SmartClient / Smart GWT Product Overview" href="http://www.smartclient.com/product/"><strong>30% off until the end of the year</strong></a>.</p>
<p>The new release is a massive leap forward, and includes a dizzying array of new features. The list below only includes the major new features, so please see the changelog.html file in the SDK for a complete rundown of the latest features, bug fixes, and enhancements.</p>
<p><a href="http://smartclient.com/product/download.jsp">Download</a> the new releases today!</p>
<h3><strong>Feature List</strong></h3>
<ul>
<li><strong><a href="http://blog.isomorphic.com/announcing-smart-gwt-3-1-smartclient-8-3-release-candidate-new-features/#multi-axis">Multi-Axis HTML5 Charts</a>:</strong>  <a href="http://blog.isomorphic.com/html5-charts-with-mobile-support/">HTML5 Charts</a> now support multiple vertical axes, each with their own gradations.</li>
</ul>
<div id="attachment_1186" class="wp-caption aligncenter" style="width: 510px"><a href="http://blog.isomorphic.com/wp-content/uploads/2012/09/dual-axis-chart.jpg"><img class="size-full wp-image-1186" title="dual-axis-chart" src="http://blog.isomorphic.com/wp-content/uploads/2012/09/dual-axis-chart.jpg" alt="Dual-Axis HTML5 Chart" width="500" height="393" /></a><p class="wp-caption-text">Example of Dual-Axis HTML5 Chart</p></div>
<ul>
<li><strong><a href="http://blog.isomorphic.com/smart-gwt-3-1-smartclient-8-3-feature-roadmap/#cell-selection">Cell-Level Selection</a>:</strong>  <em><a href="http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/widgets/grid/ListGrid.html">ListGrid</a></em> now supports cell-level selection by setting <em>canSelectCells:true</em>. Click and drag to highlight blocks of cells, and select or deselect individual cells in the grid.</li>
</ul>
<ul>
<li><strong><a href="http://blog.isomorphic.com/smart-gwt-3-1-smartclient-8-3-feature-roadmap/#excel">Excel Copy and Paste</a>:</strong>  Copy and paste tabular data between Grids and Excel (or similar spreadsheet applications). Grid to Excel, Grid to Grid, and Excel to Grid copy and paste are all supported.</li>
</ul>
<ul>
<li><strong><a href="http://blog.isomorphic.com/smart-gwt-3-1-smartclient-8-3-feature-roadmap/#timeline">Timeline</a>:</strong>  A <em><a href="http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/widgets/calendar/Calendar.html">Calendar</a></em> widget for visualizing schedules, assigning tasks, or other horizontal displays of time-based information. Timeline supports drag to move or re-size events, hover for more detail, and editing by clicking events in the timeline.</li>
</ul>
<div id="attachment_845" class="wp-caption aligncenter" style="width: 505px"><a href="http://blog.isomorphic.com/wp-content/uploads/2012/04/timeline.jpg"><img class=" wp-image-845 " title="timeline" src="http://blog.isomorphic.com/wp-content/uploads/2012/04/timeline.jpg" alt="Timeline Calendar Widget" width="495" height="311" /></a><p class="wp-caption-text">Timeline</p></div>
<ul>
<li><strong><a href="http://blog.isomorphic.com/smart-gwt-3-1-smartclient-8-3-feature-roadmap/#component-xml">Component XML Improvements and Documentation</a>:</strong>  Define screens or parts of screens in XML, including on-the-fly loading from dynamic storage such as a database. Complete with simplified APIs and more comprehensive documentation.</li>
</ul>
<ul>
<li><strong><a href="http://blog.isomorphic.com/smart-gwt-3-1-smartclient-8-3-feature-roadmap/#simpletypes">More Powerful SimpleTypes</a>:</strong>  SimpleTypes previously allowed you to define a reusable atomic field type such as a zipCode or emailAddress. The SimpleType API can now define custom sorting and filtering behaviors, and the underlying stored value can be a custom object rather than just an atomic type such as String.</li>
</ul>
<ul>
<li><strong><a href="http://blog.isomorphic.com/smart-gwt-3-1-smartclient-8-3-feature-roadmap/#localization">Simplified Localization for Server-Based DataSource (.ds.xml files)</a>:</strong>  Directly configure localized field titles and error messages in your .ds.xml file. An improvement over the previous process that involved treating .ds.xml files as .jsps.</li>
</ul>
<ul>
<li><strong><a href="http://blog.isomorphic.com/smart-gwt-3-1-smartclient-8-3-feature-roadmap/#rtl">RTL Support</a>:</strong>  RTL stands for “right-to-left” and is a key component when delivering an application in a language such as Hebrew or Arabic. RTL mode will horizontally flip the content layouts and ordering so that layouts reverse stacking order and show scrollbars to the left of every window.</li>
</ul>
<ul>
<li><strong><a href="http://blog.isomorphic.com/css3-mode/">CSS3 skins</a>:</strong>  Existing skins have been upgraded with a ‘CSS3 mode’. CSS3 skins have the same look and feel as current skins on modern browsers, but use radically less media, have a simpler <a href="http://en.wikipedia.org/wiki/Document_Object_Model">Document Object Model (DOM)</a> for faster rendering, and are easier to modify.</li>
</ul>
<ul>
<li><strong><a href="http://blog.isomorphic.com/server-scripting/">Server Script Blocks</a>:</strong>  Embed code snippets directly in .ds.xml files for server-side business logic. Use Java or any other language that can run in a <a href="http://en.wikipedia.org/wiki/Java_Virtual_Machine">Java Virtual Machine (JVM)</a>; including <a href="http://en.wikipedia.org/wiki/Groovy_(programming_language)">Groovy</a>, server-side JavaScript, Python, Ruby, <a href="http://en.wikipedia.org/wiki/Scala_(programming_language)">Scala</a> and <a href="http://en.wikipedia.org/wiki/Clojure">Clojure</a>.</li>
</ul>
<ul>
<li><strong><a href="http://blog.isomorphic.com/smart-gwt-3-1-smartclient-8-3-feature-roadmap/#gauge">Gauge Widget</a>:</strong>  Speedometer-like display with configurable sectors, tick marks, labels, needle position and colors based on the <em><a href="http://blog.isomorphic.com/drawing-cross-browser-vector-graphics/">Drawing</a></em> module.</li>
</ul>
<div id="attachment_815" class="wp-caption aligncenter" style="width: 505px"><a href="http://blog.isomorphic.com/wp-content/uploads/2012/03/gauge.jpg"><img class=" wp-image-815 " title="gauge-widget" src="http://blog.isomorphic.com/wp-content/uploads/2012/03/gauge.jpg" alt="Gauge Widget" width="495" height="176" /></a><p class="wp-caption-text">Gauge Widget</p></div>
<ul>
<li><strong><a href="http://blog.isomorphic.com/announcing-smart-gwt-3-1-smartclient-8-3-release-candidate-new-features/#scatter">Scatter Charts</a>:</strong>  Scatter charts show data sets with two continuously varying axes, such as plotting the age and weight of a set of people. In addition, multiple data sets can now be shown in different colors.</li>
</ul>
<ul>
<li><strong><a href="http://blog.isomorphic.com/announcing-smart-gwt-3-1-smartclient-8-3-release-candidate-new-features/#combobox">Multi-Select ComboBox</a>:</strong>  This new control combines the type-ahead completion interface of a classic <a href="http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/widgets/form/fields/ComboBoxItem.html">ComboBox</a> with multiple item selection. Several options are provided for displaying previously chosen items, allowing the control to fit in a variety of different contexts. Load-on-demand is supported for working with large data sets.</li>
</ul>
<ul>
<li><strong><a href="http://blog.isomorphic.com/announcing-smart-gwt-3-1-smartclient-8-3-release-candidate-new-features/#selenium">Selenium Upgrades</a>:</strong>  Scripts recorded in the <a href="http://seleniumhq.org/">Selenium</a> IDE now insert intelligent, automatic waits. This eliminates the need to insert manual wait commands into recorded scripts, or run scripts with long delays between commands.</li>
</ul>
<ul>
<li><strong><a href="http://blog.isomorphic.com/announcing-smart-gwt-3-1-smartclient-8-3-release-candidate-new-features/#header-spans">Multi-Level HeaderSpans (with auto-fitting)</a>:</strong>  You can now have as many levels of <a href="http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/widgets/grid/HeaderSpan.html">‘header spans’</a> as you like (not just two). Header spans also support auto-fitting to titles.</li>
</ul>
<ul>
<li><strong><a href="http://blog.isomorphic.com/announcing-smart-gwt-3-1-smartclient-8-3-release-candidate-new-features/#primary-keys">Composite Primary Keys</a>:  </strong><a href="http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/widgets/grid/ListGrid.html">ListGrid</a> editing now supports <a href="http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/data/DataSource.html">DataSources</a> with ‘composite’ primary keys, meaning two or more fields can be required to uniquely identify a record. Server-side, <a href="http://en.wikipedia.org/wiki/SQL">SQL</a>, <a href="http://en.wikipedia.org/wiki/Java_Persistence_API">JPA</a> and <a href="http://en.wikipedia.org/wiki/Hibernate_(Java)">Hibernate</a> connectors also support composite keys.</li>
</ul>
<ul>
<li><strong><a href="http://blog.isomorphic.com/announcing-smart-gwt-3-1-smartclient-8-3-release-candidate-new-features/#row-spanning">Row Spanning Cells in Grids</a>:</strong>  Grids will now allow cells to span multiple rows, providing a handy way to visually emphasize aggregation, or common values between rows.</li>
</ul>
<ul>
<li><strong><a href="http://blog.isomorphic.com/announcing-smart-gwt-3-1-smartclient-8-3-release-candidate-new-features/#fiscal-year">Fiscal Year Awareness</a>:  </strong>You can now declare a fiscal calendar to be used throughout your application, and date pickers will present an enhanced interface oriented toward weeks of the fiscal year.</li>
</ul>
<ul>
<li><strong><a href="http://blog.isomorphic.com/announcing-smart-gwt-3-1-smartclient-8-3-release-candidate-new-features/#cubegrid">CubeGrid Single-Axis Load on Demand</a>:</strong>  The <a href="http://blog.isomorphic.com/introducing-the-cubegrid/">CubeGrid</a> has the ability to load data on demand, and also has the ability to automatically hide empty rows or columns in an incomplete data cube (where not all dimension values can be crossed with all other dimension values). However, until now these two capabilities were mutually exclusive: we couldn’t determine if a row was empty without complete data.</li>
</ul>
<ul>
<li><strong><a href="http://blog.isomorphic.com/smart-gwt-3-1-smartclient-8-3-feature-roadmap/#improved-html5">Improved HTML5 Charts</a>:</strong>  Printing support including export to PDF, built-in hovers, examples of adding your own elements and interactivity, new &#8216;skinning&#8217; API&#8217;s to enhance control over fonts, colors, shadows and more.</li>
</ul>
<p>You can learn more about Smart GWT 3.1 and SmartClient 8.3 in our <a href="http://blog.isomorphic.com/smart-gwt-3-1-smartclient-8-3-feature-roadmap/">Feature Roadmap</a> and <a href="http://blog.isomorphic.com/announcing-smart-gwt-3-1-smartclient-8-3-release-candidate-new-features/">Release Candidate</a> announcements. As always, please send us any bug reports or feedback in <em><a href="http://forums.smartclient.com/">the Forums</a></em>. Please be clear about what product and version you’re using when reporting issues.</p>
<h3><strong>30% Sale Pricing</strong></h3>
<p style="text-align: left;"><em>*Starting on release day, ending on 12/31/2012.</em></p>
<table style="text-align: left;" width="100%" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="text-align: center;"><strong>LGPL</strong></td>
<td style="text-align: center;"><strong>PRO</strong></td>
<td style="text-align: center;"><strong>POWER</strong></td>
<td style="text-align: center;"><strong>ENTERPRISE</strong></td>
</tr>
<tr>
<td style="text-align: center;">Free</td>
<td style="text-align: center;"><strong><span style="color: #ff0000;">$522 </span></strong><span style="text-decoration: line-through;">$745</span> per developer <span style="color: #ff0000;"><br />
(30% off)</span></td>
<td style="text-align: center;"><strong><span style="color: #ff0000;">$1365 </span></strong><span style="text-decoration: line-through;">$1950</span> per developer <span style="color: #ff0000;"><br />
(30% off)</span></td>
<td style="text-align: center;">Choose: Per Developer<br />
<strong>or</strong> Per CPU<br />
<strong>or</strong> Flat Rate</td>
</tr>
<tr>
<td style="text-align: center;"><a href="http://www.smartclient.com/product/download.jsp">Download Now</a><br />
Free</td>
<td style="text-align: center;"><a href="http://www.smartclient.com/product/download.jsp">Download Now</a><br />
Free, Full-Featured 60-day trial</td>
<td style="text-align: center;"><a href="http://www.smartclient.com/product/download.jsp">Download Now</a><br />
Free, Full-Featured 60-day trial</td>
<td style="text-align: center;"><a href="http://www.smartclient.com/product/download.jsp">Download Now</a><br />
Free, Full-Featured 60-day trial</td>
</tr>
<tr>
<td></td>
<td style="text-align: center;"><a href="https://www.isomorphic.com/product/buyNow.jsp?pro=1">Buy Now</a><br />
1 Pro License<strong><span style="color: #ff0000;"><br />
$522 </span></strong><span style="text-decoration: line-through;">$745</span><br />
<span style="color: #ff0000;">(30% off)</span></td>
<td style="text-align: center;"><a href="https://www.isomorphic.com/product/buyNow.jsp?pro=1">Buy Now</a><br />
1 Power License<strong><span style="color: #ff0000;"><br />
$1365 </span></strong><span style="text-decoration: line-through;">$1950</span><br />
<span style="color: #ff0000;">(30% off)</span></td>
<td style="text-align: center;"><a href="http://www.smartclient.com/company/get_quote.jsp">Get Quote</a><br />
Ready to buy?</td>
</tr>
<tr>
<td></td>
<td style="text-align: center;"><a href="https://www.isomorphic.com/product/buyNow.jsp?pro=1">Buy Now</a><br />
4 Pro Licenses<strong><span style="color: #ff0000;"><br />
$2086 </span></strong><span style="text-decoration: line-through;">$2980</span><br />
<span style="color: #ff0000;">(30% off)</span></td>
<td style="text-align: center;"><a href="https://www.isomorphic.com/product/buyNow.jsp?pro=1">Buy Now</a><br />
4 Power Licenses<strong><span style="color: #ff0000;"><br />
$5460 </span></strong><span style="text-decoration: line-through;">$7800</span><br />
<span style="color: #ff0000;">(30% off)</span></td>
<td></td>
</tr>
<tr>
<td></td>
<td style="text-align: center;"><a href="https://www.isomorphic.com/product/buyNow.jsp?pro=1">Buy Now</a><br />
10 Pro Licenses<strong><span style="color: #ff0000;"><br />
$5215 </span></strong><span style="text-decoration: line-through;">$7450</span><br />
<span style="color: #ff0000;">(30% off)</span></td>
<td style="text-align: center;"><a href="https://www.isomorphic.com/product/buyNow.jsp?pro=1">Buy Now</a><br />
10 Power Licenses<strong><span style="color: #ff0000;"><br />
$13650 </span></strong><span style="text-decoration: line-through;">$19500</span><br />
<span style="color: #ff0000;">(30% off)</span></td>
<td></td>
</tr>
</tbody>
</table>
<ul>
<li>To order an upgrade from a previous version and for more options, please contact <a title="Request a Quote" href="http://www.smartclient.com/company/get_quote.jsp">sales</a>.</li>
<li>For more information about how our licenses work, please see the <a title="Product &amp; Licensing FAQ" href="http://www.smartclient.com/product/licensingFAQ.jsp">Product &amp; Licensing FAQ</a>.</li>
</ul>
<p><a href="http://www.smartclient.com/product/download.jsp">Download</a> Smart GWT 3.1 or SmartClient 8.3 to get started using our new features today!</p>
<p>Enjoy!</p>
<p><em>The Isomorphic Team</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.isomorphic.com/smart-gwt-3-1-smartclient-8-3-released-and-30-off-holiday-sale/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing Smart GWT 3.1 / SmartClient 8.3 Release Candidate, New Features</title>
		<link>http://blog.isomorphic.com/announcing-smart-gwt-3-1-smartclient-8-3-release-candidate-new-features/</link>
		<comments>http://blog.isomorphic.com/announcing-smart-gwt-3-1-smartclient-8-3-release-candidate-new-features/#comments</comments>
		<pubDate>Tue, 18 Sep 2012 19:46:36 +0000</pubDate>
		<dc:creator>ray</dc:creator>
				<category><![CDATA[Feature]]></category>
		<category><![CDATA[Release]]></category>
		<category><![CDATA[SmartClient]]></category>
		<category><![CDATA[SmartGWT]]></category>
		<category><![CDATA[Charts]]></category>
		<category><![CDATA[Crosstabs]]></category>
		<category><![CDATA[CubeGrid]]></category>
		<category><![CDATA[Data Cube]]></category>
		<category><![CDATA[drawing]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[OLAP]]></category>
		<category><![CDATA[Pivot Tables]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[release smartgwt smartclient]]></category>
		<category><![CDATA[Roadmap]]></category>
		<category><![CDATA[smartclient]]></category>
		<category><![CDATA[smartgwt]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://blog.isomorphic.com/?p=1115</guid>
		<description><![CDATA[We’re pleased to announce that SmartGWT 3.1/SmartClient 8.3 has officially achieved &#8216;release candidate&#8217; status. We’ve seen zero release-blocking bugs multiple times in the last week, so we expect the upcoming final version to be released in 2-3 weeks. As a result, we recommend that anyone currently developing with Smart GWT 3.x or SmartClient 8.x switch ...]]></description>
				<content:encoded><![CDATA[<p>We’re pleased to announce that SmartGWT 3.1/SmartClient 8.3 has officially achieved &#8216;release candidate&#8217; status. We’ve seen zero release-blocking bugs multiple times in the last week, so we expect the upcoming final version to be released in 2-3 weeks. As a result, we recommend that anyone currently developing with Smart GWT 3.x or SmartClient 8.x switch over to the new release now unless you’re on the verge of completing your application.</p>
<p>Please use the following links to download the new release:</p>
<ul>
<li>
<h4>Smart GWT 3.1:</h4>
<p><a title="Smart GWT 3.1" href="http://smartclient.com/builds/SmartGWT/3.1d"><span style="text-decoration: underline;">http://smartclient.com/builds/SmartGWT/3.1d</span></a></li>
<li>
<h4>SmartClient 8.3:</h4>
<p><a title="SmartClient 8.3" href="http://smartclient.com/builds/SmartClient/8.3d"><span style="text-decoration: underline;">http://smartclient.com/builds/SmartClient/8.3d</span></a></li>
</ul>
<p><em>Please Note: There isn’t any special build labeled &#8220;RC&#8221;. In order to get the release candidate, please download the latest 3.1d or 8.3d <a href="http://www.smartclient.com/builds">nightly builds</a>.</em></p>
<p>In addition, we’ve added several new major features since our last <a href="http://blog.isomorphic.com/smart-gwt-3-1-smartclient-8-3-feature-roadmap/">roadmap</a> announcement, and listed them below.</p>
<h3><strong>New Features</strong></h3>
<ul>
<li>
<h4 id="multi-axis">Multi-Axis HTML5 Charts</h4>
<p><a href="http://blog.isomorphic.com/html5-charts-with-mobile-support/">HTML5 Charts</a> now support multiple vertical axes, each with their own gradations. These types of charts can be used to show values with different units <em>(e.g. sales in dollars vs. total units shipped)</em>, and/or very different ranges <em>(e.g. gross revenue vs. profit)</em> on the same chart.</p>
<p>Triple-axis and quad-axis charts are also supported, and it’s now possible to render data in any mix of styles <em>(e.g. lines over columns over area)</em>.</p>
<p><div id="attachment_1186" class="wp-caption alignnone" style="width: 510px"><a href="http://blog.isomorphic.com/wp-content/uploads/2012/09/dual-axis-chart.jpg"><img class="size-full wp-image-1186" title="dual-axis-chart" src="http://blog.isomorphic.com/wp-content/uploads/2012/09/dual-axis-chart.jpg" alt="Dual-Axis HTML5 Chart" width="500" height="393" /></a><p class="wp-caption-text">Example of Dual-Axis HTML5 Chart</p></div></li>
</ul>
<ul>
<li>
<h4 id="scatter">Scatter Charts</h4>
<p>Scatter charts can now show data sets with two continuously varying axes, such as plotting the age and weight of a set of people. In addition, multiple data sets can now be shown in different colors.</p>
<p><div id="attachment_1199" class="wp-caption alignnone" style="width: 473px"><a href="http://blog.isomorphic.com/wp-content/uploads/2012/09/scatter-chart-upgrade.jpg"><img class="size-full wp-image-1199" title="scatter-chart-upgrade" src="http://blog.isomorphic.com/wp-content/uploads/2012/09/scatter-chart-upgrade.jpg" alt="Scatter Chart Upgrade" width="463" height="464" /></a><p class="wp-caption-text">Example of Scatter Chart Upgrade</p></div></li>
</ul>
<ul>
<li>
<h4 id="combobox">Multi-Select ComboBox</h4>
<p>This new control combines the type-ahead completion interface of a classic <a href="http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/widgets/form/fields/ComboBoxItem.html">ComboBox</a> with multiple item selection. Several options are provided for displaying previously chosen items, allowing the control to fit in a variety of different contexts. Load-on-demand is supported for working with large data sets.</p>
<div id="attachment_1181" class="wp-caption alignnone" style="width: 432px"><a href="http://blog.isomorphic.com/wp-content/uploads/2012/09/multicomboboxitem-flow.jpg"><img class="size-full wp-image-1181" title="multicomboboxitem-flow" src="http://blog.isomorphic.com/wp-content/uploads/2012/09/multicomboboxitem-flow.jpg" alt="MultiComboBox in &quot;flow&quot; mode " width="422" height="110" /></a><p class="wp-caption-text">Example of MultiComboBox in &#8220;flow&#8221; mode</p></div>
<p><div id="attachment_1167" class="wp-caption alignnone" style="width: 488px"><a href="http://blog.isomorphic.com/wp-content/uploads/2012/09/multicomboboxitem-vertical-reverse.jpg"><img class="size-full wp-image-1167 " title="multicomboboxitem-vertical-reverse" src="http://blog.isomorphic.com/wp-content/uploads/2012/09/multicomboboxitem-vertical-reverse.jpg" alt="MultiComboBoxItem &quot;Vertical Reverse&quot; mode" width="478" height="177" /></a><p class="wp-caption-text">Example of MultiComboBoxItem in &#8220;vertical reverse&#8221; mode</p></div></li>
</ul>
<ul>
<li>
<h4 id="selenium">Selenium Upgrades</h4>
<p>Scripts recorded in the <a href="http://seleniumhq.org/">Selenium</a> IDE now insert intelligent, automatic waits. This eliminates the need to insert manual wait commands into recorded scripts, or run scripts with long delays between commands.</p>
<p>The automatically inserted wait commands are also smarter. Rather than just waiting for <a href="http://en.wikipedia.org/wiki/Document_Object_Model">DOM</a> elements to appear, they understand application-level concerns such as waiting for modal operations to complete before proceeding.</p>
<p>A greatly expanded <em><a href="http://www.smartclient.com/smartgwtee-latest/javadoc/com/smartgwt/client/docs/UsingSelenium.html">Using Selenium</a></em> user guide covers best practices, using custom commands, advanced APIs, running Selenium under <a href="http://www.junit.org/">JUnit</a> and more.</li>
</ul>
<ul>
<li>
<h4 id="header-spans">Multi-Level HeaderSpans (with auto-fitting)</h4>
<p>You can now have as many levels of <a href="http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/widgets/grid/HeaderSpan.html">‘header spans’</a> as you like (not just two). Header spans also support auto-fitting to titles.</li>
</ul>
<ul>
<li>
<h4 id="primary-keys">Composite Primary Keys</h4>
<p><a href="http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/widgets/grid/ListGrid.html">ListGrid</a> editing now supports <a href="http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/data/DataSource.html">DataSources</a> with ‘composite’ primary keys, meaning two or more fields can be required to uniquely identify a record.</p>
<p>Server-side, <a href="http://en.wikipedia.org/wiki/SQL">SQL</a>, <a href="http://en.wikipedia.org/wiki/Java_Persistence_API">JPA</a> and <a href="http://en.wikipedia.org/wiki/Hibernate_(Java)">Hibernate</a> connectors also support composite keys.</li>
</ul>
<ul>
<li>
<h4 id="row-spanning">Row Spanning Cells in Grids</h4>
<p>Grids will now allow cells to span multiple rows, providing a handy way to visually emphasize aggregation, or common values between rows.</li>
</ul>
<ul>
<li>
<h4 id="fiscal-year">Fiscal year Awareness</h4>
<p>You can now declare a fiscal calendar to be used throughout your application, and date pickers will present an enhanced interface oriented toward weeks of the fiscal year.</li>
</ul>
<ul>
<li>
<h4 id="cubegrid">CubeGrid Single-Axis Load on Demand</h4>
<p>The <a href="http://blog.isomorphic.com/introducing-the-cubegrid/">CubeGrid</a> has the ability to load data on demand, and also has the ability to automatically hide empty rows or columns in an incomplete data cube (where not all dimension values can be crossed with all other dimension values). However, until now these two capabilities were mutually exclusive: we couldn&#8217;t determine if a row was empty without complete data.</p>
<p>A new setting:</p>
<pre><strong><span style="color: #0000ff;">hideEmptyAxis: "row" | "column"</span></strong></pre>
<p>allows you to declare that load-on-demand will be used for only one axis so that empty rows or columns on the other axis can still be automatically hidden.</li>
</ul>
<ul>
<li>
<h4 id="more-html5">More HTML5 Charts Upgrades</h4>
<p>A new setting:</p>
<pre><strong><span style="color: #0000ff;"><strong>showValueOnHover</strong></span></strong></pre>
<p>can be enabled to show the value nearest to the mouse pointer when a user hovers over a chart.</p>
<p><em>Overlays</em> use our general-purpose <a href="http://blog.isomorphic.com/drawing-cross-browser-vector-graphics/">Drawing</a> API to show additional graphical elements on top of a chart. A sample of this has been added under Charting -&gt; Adding Elements.</p>
<p><em>Export to PDF</em> is now supported for IE8 and earlier.</li>
</ul>
<ul>
<li>
<h4>RTL Support</h4>
<p>Adds support for languages that are read from ‘right-to-left’, such as Hebrew or Arabic. Previously announced as a 3.x / 8.x feature, we can now confirm that this is a supported capability for the 3.1 / 8.3 release.</li>
</ul>
<p><span style="text-decoration: underline;"><strong><em>A Note for Smart GWT customers with 2.x Licenses</em></strong></span></p>
<p><em>Smart GWT 3.x is a paid upgrade for Smart GWT 2.x license holders, and upgrade prices are based upon the date of your previous purchase. If you bought 2.x recently you may be eligible for a significant discount, so don’t delay. Get access to the entire 3.x series by upgrading today. For a quote, please contact <a href="http://www.smartclient.com/company/get_quote.jsp">sales</a>.</em></p>
<p>As always, please send us any bug reports or feedback in <em><a href="http://forums.smartclient.com/">the Forums</a></em>. Please be clear about what product and version you’re using when reporting issues.</p>
<p>Download <a href="http://smartclient.com/builds/SmartGWT/3.1d">Smart GWT 3.1</a> or <a href="http://smartclient.com/builds/SmartClient/8.3d">SmartClient 8.3</a> to get started using our new features now!</p>
<p>Enjoy!</p>
<p><em>The Isomorphic Team</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.isomorphic.com/announcing-smart-gwt-3-1-smartclient-8-3-release-candidate-new-features/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Connecting the CubeGrid with Pentaho Mondrian, JasperReports and Microsoft Analysis Services</title>
		<link>http://blog.isomorphic.com/connecting-the-cubegrid-with-pentaho-mondrian-jasperreports-and-microsoft-analysis-services/</link>
		<comments>http://blog.isomorphic.com/connecting-the-cubegrid-with-pentaho-mondrian-jasperreports-and-microsoft-analysis-services/#comments</comments>
		<pubDate>Tue, 14 Aug 2012 01:11:02 +0000</pubDate>
		<dc:creator>ray</dc:creator>
				<category><![CDATA[Feature]]></category>
		<category><![CDATA[SmartClient]]></category>
		<category><![CDATA[SmartGWT]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Crosstabs]]></category>
		<category><![CDATA[CubeGrid]]></category>
		<category><![CDATA[Data Cube]]></category>
		<category><![CDATA[OLAP]]></category>
		<category><![CDATA[Pivot Tables]]></category>
		<category><![CDATA[smartclient]]></category>
		<category><![CDATA[smartgwt]]></category>

		<guid isPermaLink="false">http://blog.isomorphic.com/?p=1030</guid>
		<description><![CDATA[Why use the CubeGrid? Popular Online Analytical Analytical Processing (OLAP) server technologies such as Pentaho Mondrian Project, JasperReports, and Microsoft SQL Server Analysis Services (SSAS) enable business users to analyze large quantities of data, offering features such as drilling into and cross-tabulating information from complex analytical queries in real-time. However, the default user interfaces (UIs) are limited, and ...]]></description>
				<content:encoded><![CDATA[<h3>Why use the CubeGrid?</h3>
<p>Popular <a href="http://en.wikipedia.org/wiki/Online_analytical_processing">Online Analytical Analytical Processing (OLAP)</a> server technologies such as <a href="http://mondrian.pentaho.com/">Pentaho Mondrian Project</a>, <a href="http://jasperforge.org/projects/jasperreports">JasperReports</a>, and <a href="http://www.microsoft.com/sqlserver">Microsoft SQL Server Analysis Services (SSAS)</a> enable business users to analyze large quantities of data, offering features such as drilling into and cross-tabulating information from complex analytical queries in real-time. However, the default user interfaces (UIs) are limited, and it can be difficult or impossible to add the additional behaviors that are typically needed when integrating with a larger application. Connecting <a href="http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/widgets/cube/CubeGrid.html">CubeGrid</a> APIs to these multidimensional, or &#8216;cube&#8217;, data sources will allow you to:</p>
<ul>
<li>
<h4><em>Create a more powerful and higher performance UI to replace the built-in UIs, and</em></h4>
</li>
<li>
<h4><em>Seamlessly integrate custom OLAP interfaces into your larger applications.</em></h4>
</li>
</ul>
<p>The CubeGrid is a high-end data analysis engine that wraps OLAP functionality into a single <a href="http://smartclient.com/product/smartgwt.jsp">Smart GWT</a> or <a href="http://smartclient.com/product/smartclient.jsp">SmartClient</a> interactive grid component for fast access to multidimensional data and calculations. Please see our previous post, <em><a href="http://blog.isomorphic.com/introducing-the-cubegrid/">Introducing the CubeGrid</a></em>, for more information about the advanced OLAP features in our <a href="http://smartclient.com/product/#analytics">Analytics Module</a>.</p>
<p>This article explains how to connect the CubeGrid user interface to several common sources of cube data using <a href="http://en.wikipedia.org/wiki/Multidimensional_Expressions">MDX</a>, <a href="http://en.wikipedia.org/wiki/XMLA">XMLA</a>, and <a href="http://www.olap4j.org/">OLAP4J</a>.</p>
<ul>
<li><strong>MDX</strong> (MultiDimensional eXpressions) is a query language for multidimensional databases, in the same way <a href="http://en.wikipedia.org/wiki/Sql">SQL</a> is used to query relational databases.</li>
</ul>
<ul>
<li><strong>XMLA</strong> (XML for Analysis, or XML/A) is a <a href="http://en.wikipedia.org/wiki/SOAP">Simple Object Access Protocol (SOAP)</a>-based <a href="http://en.wikipedia.org/wiki/Xml">XML</a> protocol, designed specifically for universal data access to any standard multidimensional data source.</li>
</ul>
<ul>
<li><strong>OLAP4J</strong> is an open Java API for OLAP, similar to <a href="http://en.wikipedia.org/wiki/Jdbc">JDBC</a>, but specifically created to access multidimensional datasets.</li>
</ul>
<h3>Server Technology Overview</h3>
<ul>
<li><strong>Pentaho Mondrian Project</strong> (Community Edition) is an open source OLAP server written in Java and available under the <a href="http://en.wikipedia.org/wiki/Eclipse_Public_License">Eclipse Public License (EPL)</a>. Mondrian enables interactive analysis of very large datasets stored in SQL databases without writing SQL. It supports the MDX (multidimensional expressions) query language, plus the XMLA and OLAP4J interface specifications. It reads from SQL (and other data sources) and aggregates data in a memory cache.</li>
</ul>
<ul>
<li><strong>JasperReports Server</strong> (Community Edition) is an open source, stand-alone and embeddable OLAP reporting server written in Java and available under the <a href="http://en.wikipedia.org/wiki/GNU_General_Public_License">GNU General Public License (GPL)</a>. JasperReports Server enables delivery of information on a real-time or scheduled basis to the web, printers, or a variety of file formats, including; PDF, HTML, Microsoft Excel, RTF, ODT, XML, or comma-separated values. JasperReports Server uses the same Mondrian OLAP engine as Pentaho Mondrian Project, and can be integrated with the CubeGrid using a similar methodology.</li>
</ul>
<ul>
<li><strong>Microsoft SQL Server Analysis Services (SSAS)</strong> is available as a part of <a href="http://en.wikipedia.org/wiki/Microsoft_Sql_Server">Microsoft SQL Server</a>, a proprietary <a href="http://en.wikipedia.org/wiki/RDBMS">RDBMS</a> written in C++ and sold in a wide variety of commercial and free <a href="http://en.wikipedia.org/wiki/Microsoft_Sql_Server#Editions">editions</a>. SQL Server Analysis Services adds OLAP and data mining capabilities for SQL Server databases. Microsoft’s OLAP engine supports <a href="http://en.wikipedia.org/wiki/MOLAP">MOLAP</a>, <a href="http://en.wikipedia.org/wiki/ROLAP">ROLAP</a> and <a href="http://en.wikipedia.org/wiki/HOLAP">HOLAP</a> storage modes for data, and supports the XMLA standard as the underlying communication protocol. Cube data can be accessed using MDX and <a href="http://en.wikipedia.org/wiki/Language_Integrated_Query">LINQ</a> queries, and data mining specific functionality is exposed via the <a href="http://en.wikipedia.org/wiki/Data_Mining_Extensions">DMX</a> query language.</li>
</ul>
<table style="text-align: left;" width="100%" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="text-align: left;"><strong>OLAP Server</strong></td>
<td style="text-align: left;"><strong>Company</strong></td>
<td style="text-align: left;"><strong>Version</strong></td>
<td style="text-align: left;"><strong>Language</strong></td>
<td style="text-align: left;"><strong>License</strong></td>
</tr>
<tr>
<td style="text-align: left;">Pentaho Mondrian Server</td>
<td style="text-align: left;"><a href="http://mondrian.pentaho.com/">Pentaho</a></td>
<td style="text-align: left;">3.4.0</td>
<td style="text-align: left;">Java</td>
<td style="text-align: left;"><a href="http://en.wikipedia.org/wiki/Eclipse_Public_License">EPL</a></td>
</tr>
<tr>
<td style="text-align: left;">JasperReports Server</td>
<td style="text-align: left;"><a href="http://jasperforge.org/projects/jasperreports">JasperSoft</a></td>
<td style="text-align: left;">4.5.0</td>
<td style="text-align: left;">Java</td>
<td style="text-align: left;"><a href="http://en.wikipedia.org/wiki/GPL">GPL</a></td>
</tr>
<tr>
<td style="text-align: left;">Microsoft SQL Server</td>
<td style="text-align: left;"><a href="http://technet.microsoft.com/en-us/sqlserver/cc510300.aspx">Microsoft</a></td>
<td style="text-align: left;">2012</td>
<td style="text-align: left;">C++</td>
<td style="text-align: left;"><a href="http://en.wikipedia.org/wiki/Microsoft_Sql_Server#Editions">Proprietary</a></td>
</tr>
</tbody>
</table>
<h3>Connecting the CubeGrid</h3>
<p>Multidimensional data sets are called <em>Data Cubes</em>, which consist of features or attributes called <em>Dimensions</em>.  Each corresponding <em>Dimension</em> will also have feature values or attribute values called <em>Members</em>. These definitions have analogous nomenclature in the CubeGrid, as shown in the table below<strong>:</strong></p>
<table style="text-align: left;" width="100%" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="text-align: left;"><strong>OLAP</strong></td>
<td style="text-align: left;"><strong>CubeGrid</strong></td>
<td style="text-align: left;"><strong>Definition</strong></td>
</tr>
<tr>
<td style="text-align: left;"><em>Data Cube</em></td>
<td style="text-align: left;"><em>Cube</em></td>
<td style="text-align: left;">Multidimensional dataset</td>
</tr>
<tr>
<td style="text-align: left;"><em>Dimension</em></td>
<td style="text-align: left;"><em>Facet</em></td>
<td style="text-align: left;">Dimension, attribute, or feature</td>
</tr>
<tr>
<td style="text-align: left;"><em>Member</em></td>
<td style="text-align: left;"><em>Facet Value</em></td>
<td style="text-align: left;">Dimension member, attribute value, or feature value</td>
</tr>
</tbody>
</table>
<p>On the <strong><em>server side</em></strong>, we first need to set up our <em>DataSources</em> to fetch the necessary data. We have four Java Classes for our <em>DataSources</em>:</p>
<ul>
<li><strong><em>OLAPDataSourceCubes</em></strong> gets all available <em>Data Cubes</em> in the OLAP database.</li>
</ul>
<ul>
<li><strong><em>OLAPDataSourceDimensions</em></strong> gets all available <em>Dimensions</em> for the selected <em>Data Cube</em> (for placement on rows or columns in the CubeGrid).</li>
</ul>
<ul>
<li><strong><em>OLAPDataSourceMembers</em></strong> gets all available <em>Members</em> for the selected <em>Dimension</em>,<em> </em>with only one call to the server.</li>
</ul>
<ul>
<li><strong><em>OLAPDataSource</em></strong> gets all available data with a query based on the MDX Object Model.</li>
</ul>
<p>The selected <em>Data Cube</em> and <em>Dimensions</em> are sent from client to server as criteria obtained from <em>DSRequest</em>.</p>
<p>Lastly, the <em>DBConnection</em> Java Class is required for connection to the chosen OLAP server. There are three variations of the <em>getConnection()</em> method:</p>
<ul>
<li><strong><em>getConnection()</em></strong> creates an OLAP connection to Mondrian server by default. For this example, we used the &#8220;FoodMart&#8221; sample dataset included with Mondrian.</li>
</ul>
<ul>
<li><strong><em>getConnectionJasper()</em></strong> creates an OLAP connection to JasperReports Server. To use this method, first rename <em>getConnectionJasper()</em> to <em>getConnection().</em> For this example, we used the sample dataset included with JasperReports Server.</li>
</ul>
<ul>
<li><strong><em>getConnectionAServices()</em></strong> creates an OLAP connection to Microsoft Analysis Services. To use this method, first rename <em>getConnectionAServices</em> to <em>getConnection(). </em>For this example, we used the Adventure Works samples referenced below.</li>
</ul>
<p>On the <strong><em>client side</em></strong>, we already have the code required to interface with the CubeGrid. This is very similar to the <em><a href="http://smartclient.com/smartgwtee/showcase/#cube_analytics">Advanced Cube</a></em> sample in the <em><a href="http://smartclient.com/smartgwtee/showcase/#main">Showcase</a></em>, except that <em>Data Cubes</em>, <em>Dimensions</em> and associated <em>Members</em> are fetched dynamically.</p>
<p>The software versions used in this sample are:</p>
<ul>
<li><a href="http://www.olap4j.org/">Driver Olap4j</a>, version 1.0.0.445</li>
<li><a href="http://mondrian.pentaho.com/">Pentaho Mondrian</a>, version 3.2.1.13885</li>
<li><a href="http://jasperforge.org/projects/jasperserver">JasperReports Server</a>, version 4.1.0</li>
<li>Windows Server 2003 with Analysis Services R2 2008 using the <a href="http://msftdbprodsamples.codeplex.com/releases/view/88252">Adventure Works 2008R2 Analysis Services Project</a> sample, and <a href="http://adventureworksdw2008.codeplex.com/downloads/get/372236">AdventureWorksDW2008R2</a> sample database</li>
</ul>
<p>Download the project source code used in the examples <a href="http://wiki.smartclient.com/download/attachments/1441839/SmartgwtOLAPDynamic.zip?version=1&amp;modificationDate=1342646268974">here</a>.</p>
<h3>Examples</h3>
<p>Lastly, we’ll show a few images of the Project in action.</p>
<p><strong>Figure 1</strong>: Creating the CubeGrid from a connected OLAP server (from left to right)</p>
<ul>
<li>Opening screen for <em>Data Cube</em> selection</li>
<li>Select <em>Data Cube</em> from the OLAP Server</li>
<li>Select <em>Dimensions (Facets)</em> of the <em>Data Cube</em> for placement on rows and columns</li>
<li>Select ‘Create CubeGrid’</li>
</ul>
<div id="attachment_1095" class="wp-caption aligncenter" style="width: 560px"><a href="http://blog.isomorphic.com/wp-content/uploads/2012/08/figure-1-web.jpg"><img class="size-full wp-image-1095 " title="cubegrid-connect-1" src="http://blog.isomorphic.com/wp-content/uploads/2012/08/figure-1-web.jpg" alt="Creating the CubeGrid" width="550" height="310" /></a><p class="wp-caption-text">Figure 1: Creating the CubeGrid</p></div>
<p><strong>Figure 2</strong>: The newly created CubeGrid with Control Panel for <em>Dimension (Facet)</em> manipulation</p>
<div id="attachment_1096" class="wp-caption aligncenter" style="width: 560px"><a href="http://blog.isomorphic.com/wp-content/uploads/2012/08/figure-2-web.jpg"><img class="size-full wp-image-1096 " title="cubegrid-connect-2" src="http://blog.isomorphic.com/wp-content/uploads/2012/08/figure-2-web.jpg" alt="Opening Screen for the CubeGrid" width="550" height="291" /></a><p class="wp-caption-text">Figure 2: Opening Screen for the CubeGrid</p></div>
<p><strong>Figure 3: </strong>View <em>Members (Facet Values)</em> of selected <em>Dimensions (Facets)</em> using the Control Panel</p>
<div id="attachment_1097" class="wp-caption aligncenter" style="width: 560px"><a href="http://blog.isomorphic.com/wp-content/uploads/2012/08/figure-3-web.jpg"><img class="size-full wp-image-1097" title="cubegrid-connect-3-web" src="http://blog.isomorphic.com/wp-content/uploads/2012/08/figure-3-web.jpg" alt="View Members of selected Dimensions in the CubeGrid" width="550" height="287" /></a><p class="wp-caption-text">Figure 3: View Members of selected Dimensions in the CubeGrid</p></div>
<p><strong>Figure 4: </strong>Reposition <em>Dimensions (Facets)</em> on the fly for alternate views</p>
<div id="attachment_1098" class="wp-caption aligncenter" style="width: 560px"><a href="http://blog.isomorphic.com/wp-content/uploads/2012/08/figure-4-web.jpg"><img class="size-full wp-image-1098" title="cubegrid-connect-4" src="http://blog.isomorphic.com/wp-content/uploads/2012/08/figure-4-web.jpg" alt="Alternate View of the CubeGrid" width="550" height="310" /></a><p class="wp-caption-text">Figure 4: Alternate View of the CubeGrid</p></div>
<p>Note that the UI shown above is built out of ordinary SmartGWT components such as ListGrids and Menus (and of course the CubeGrid). This means that, unlike the pre-built UIs bundled with OLAP products, the UI shown above can be easily rearranged and extended. For example, you could add context menus that launch application-specific actions when the user right-clicks on data or dimension values.</p>
<p><strong><em><span style="text-decoration: underline;">Please Note</span>:</em></strong><em> Some Dimensions in the test cubes are very large and not collapsible due to their non-hierarchical nature. For example, the &#8216;Customers&#8217; dimension in the &#8216;Sales&#8217; cube sample for Mondrian shows <span style="text-decoration: underline;">all values</span>. As a result, the cube may become difficult to navigate or show a slow scripts browser warning. The recommended way to avoid this is to require that the end user choose specific members from large dimensions before adding them to the cube.</em></p>
<h3><strong>Pre-requisites</strong></h3>
<ul>
<li>The sample application shown above is open source and free to use. You can download the project source code used in the examples <a href="http://wiki.smartclient.com/download/attachments/1441839/SmartgwtOLAPDynamic.zip?version=1&amp;modificationDate=1342646268974">here</a>.</li>
</ul>
<ul>
<li>The CubeGrid component requires the <em><a href="http://www.smartclient.com/product/">Power Edition</a></em> or above with our optional <em><a href="http://www.smartclient.com/product/#analytics">Analytics Module</a></em>. For more information about our editions and optional modules, please visit our <a href="http://smartclient.com/product/">Product Overview</a> page.</li>
</ul>
<p><a href="http://www.smartclient.com/product/download.jsp">Download</a> the Smart GWT or SmartClient Evaluation to get started using our advanced analytics today!</p>
<p>Enjoy,</p>
<p><em>The Isomorphic Team</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.isomorphic.com/connecting-the-cubegrid-with-pentaho-mondrian-jasperreports-and-microsoft-analysis-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Advanced HTML5 interfaces for .NET</title>
		<link>http://blog.isomorphic.com/advanced-html5-interfaces-for-net/</link>
		<comments>http://blog.isomorphic.com/advanced-html5-interfaces-for-net/#comments</comments>
		<pubDate>Tue, 03 Jul 2012 19:59:15 +0000</pubDate>
		<dc:creator>ray</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[SmartClient]]></category>
		<category><![CDATA[SmartGWT]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[AdvancedCriteria]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[CRUD]]></category>
		<category><![CDATA[lgpl]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[NHibernate]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[smartclient]]></category>
		<category><![CDATA[smartgwt]]></category>
		<category><![CDATA[support]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://blog.isomorphic.com/?p=1011</guid>
		<description><![CDATA[If you&#8217;re a .NET developer or you know a .NET developer, you may have heard about the confusing situation facing enterprise web developers on the .NET platform: Silverlight is basically deprecated ASP.NET is severely dated HTML5 is the future, but using raw HTML5 directly is way too low-level SmartClient and Smart GWT provide the powerful ...]]></description>
				<content:encoded><![CDATA[<p>If you&#8217;re a <a href="http://en.wikipedia.org/wiki/.NET_Framework">.NET</a> developer or you know a <a href="http://en.wikipedia.org/wiki/.NET_Framework">.NET</a> developer, you may have heard about the confusing situation facing enterprise web developers on the <a href="http://en.wikipedia.org/wiki/.NET_Framework">.NET</a> platform:</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Silverlight">Silverlight</a> is basically deprecated</li>
<li><a href="http://en.wikipedia.org/wiki/ASP.NET">ASP.NET</a> is severely dated</li>
<li><a href="http://en.wikipedia.org/wiki/Html5">HTML5</a> is the future, but using raw <a href="http://en.wikipedia.org/wiki/Html5">HTML5</a> directly is way too low-level</li>
</ul>
<p>SmartClient and Smart GWT provide the powerful <a href="http://en.wikipedia.org/wiki/Html5">HTML5</a> components needed to build modern business web applications, and now we have provided a <a title="Integrating with ASP.NET MVC" href="http://wiki.smartclient.com/display/Main/Integrating+with+ASP.Net+MVC" target="_blank"><strong>free</strong></a> sample server implementation for <span style="text-decoration: underline;"><a href="http://www.asp.net/mvc">ASP.NET MVC</a></span>, with an extensive, multi-part tutorial showing how it works!</p>
<p>The server implementation &amp; tutorial cover:</p>
<ol>
<li>Using <a href="http://nhforge.org/Default.aspx">NHibernate</a> to implement all <a href="http://en.wikipedia.org/wiki/Create,_read,_update_and_delete">CRUD</a> operations (create, retrieve, update and delete) with a <a href="http://en.wikipedia.org/wiki/REST">REST</a> interface</li>
<li>Implementing data paging / load-on-demand</li>
<li>Supporting search and sort: both simple criteria and <em><a href="http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/data/AdvancedCriteria.html">AdvancedCriteria</a></em></li>
<li>Using transactions for interactions like multi-row editing in a grid</li>
<li>A data-driven approach that can access new <a href="http://nhforge.org/Default.aspx">NHibernate</a> entities without writing any code</li>
</ol>
<p>This server implementation works with the free, open source, <strong><em>LGPL Edition</em></strong> of SmartClient or Smart GWT, so the entire client and server solution is free and open source.</p>
<p>Further, <a title="Support Services" href="http://www.smartclient.com/services/index.jsp#support" target="_blank"><strong>commercial support</strong></a> is also available &#8211; there is no need to buy a license, and we can help you with the sample server code as well.</p>
<p>To view the tutorial and download the server code as a Visual Studio project, start here:</p>
<p style="padding-left: 30px;"><a href="http://wiki.smartclient.com/display/Main/Integrating+with+ASP.Net+MVC">http://wiki.smartclient.com/display/Main/Integrating+with+ASP.Net+MVC</a></p>
<p>To find out more about our <a href="http://www.smartclient.com/services/index.jsp#support">Support</a><em> </em>offerings and sign up, start here:</p>
<p style="padding-left: 30px;"><a href="http://www.smartclient.com/services/index.jsp#support">http://www.smartclient.com/services/index.jsp#support</a></p>
<p>Enjoy!</p>
<p><em>The Isomorphic Team</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.isomorphic.com/advanced-html5-interfaces-for-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS3 Mode</title>
		<link>http://blog.isomorphic.com/css3-mode/</link>
		<comments>http://blog.isomorphic.com/css3-mode/#comments</comments>
		<pubDate>Thu, 07 Jun 2012 06:48:08 +0000</pubDate>
		<dc:creator>ray</dc:creator>
				<category><![CDATA[Feature]]></category>
		<category><![CDATA[SmartClient]]></category>
		<category><![CDATA[SmartGWT]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[smartclient]]></category>
		<category><![CDATA[smartgwt]]></category>

		<guid isPermaLink="false">http://blog.isomorphic.com/?p=973</guid>
		<description><![CDATA[What is it? Our three most commonly used skins (Enterprise, Enterprise Blue and Graphite) now have a &#8220;CSS3 mode&#8221; that replaces almost all images required for the skin with CSS3 settings that look nearly identical to the image-based appearance. This results in a performance boost both through a simplified Document Object Model (DOM) and by ...]]></description>
				<content:encoded><![CDATA[<h3>What is it?</h3>
<p>Our three most commonly used skins (Enterprise, Enterprise Blue and Graphite) now have a &#8220;CSS3 mode&#8221; that replaces almost all images required for the skin with <a href="http://en.wikipedia.org/wiki/Cascading_Style_Sheets#CSS_3">CSS3</a> settings that look nearly identical to the image-based appearance. This results in a performance boost both through a simplified <a href="http://en.wikipedia.org/wiki/Document_Object_Model">Document Object Model (DOM)</a> and by loading far fewer images than before.</p>
<p>CSS3 mode is used by default in modern browsers such as <a href="http://www.mozilla.org/en-US/firefox/new/">Firefox</a>, <a href="https://www.google.com/intl/en/chrome/browser/">Chrome</a> and <a href="http://www.apple.com/safari/">Safari</a>. However, <a href="http://windows.microsoft.com/en-US/internet-explorer/products/ie/home">Internet Explorer 9</a> does not have sufficient CSS support to closely match the existing image-based skin, so CSS3 mode is not enabled by default. If CSS3 mode is manually enabled for IE, this will result in a degraded appearance that is similar across IE6, 7, 8 and 9. For example, rounded elements such as tabs will become square, and gradient backgrounds will have subtly lower quality due to IE’s lack of CSS color stop support.</p>
<h3>How does it work?</h3>
<p>To override the default decision on whether to use CSS3 support, set the JavaScript global variable <em>&lt;code&gt;isc_css3Mode&lt;/code&gt;</em> before any of the SmartClient libraries are loaded. For example:</p>
<p style="padding-left: 30px;"><a href="http://blog.isomorphic.com/wp-content/uploads/2012/06/css3-mode-script.jpg"><img class=" wp-image-977 alignnone" title="css3-mode-script" src="http://blog.isomorphic.com/wp-content/uploads/2012/06/css3-mode-script.jpg" alt="&lt;script&gt;isc_css3Mode = &quot;on&quot;;&lt;/script&gt;" width="378" height="28" /></a></p>
<p>There are three CSS3 mode settings:</p>
<ul>
<li>
<h4>&#8220;supported&#8221;</h4>
<p><em>(default setting) CSS3 mode will only be used for fully supported browsers (including rounded edges and full gradient support)</em></li>
</ul>
<ul>
<li>
<h4>&#8220;on&#8221;</h4>
<p><em>CSS3 mode will always be used for all browsers</em></li>
</ul>
<ul>
<li>
<h4>&#8220;off&#8221;</h4>
<p><em>CSS3 mode will never be used for all browsers</em></li>
</ul>
<p>If you want more control than these settings provide, you can create a custom skin based on one of the above three skins and modify <em>load_skin.js</em>. The JavaScript variable <em>useCSS3</em> defined in <em>load_skin.js</em> controls whether CSS3 mode is used.</p>
<p><em><span style="text-decoration: underline;">A Note for Internet Explorer 9</span>:  We are working on improving IE9 support with the limited CSS3 features provided by this browser. However, the well-published workarounds for IE9&#8242;s CSS3 bugs create other bugs of their own that are, as yet, unresolved.</em></p>
<h3>Examples</h3>
<p>In the examples below, images rendered with CSS3 mode “on” or “off” are basically identical without a magnifying glass.</p>
<div id="attachment_984" class="wp-caption aligncenter" style="width: 560px"><a href="http://blog.isomorphic.com/wp-content/uploads/2012/06/hello-world-web.jpg"><img class="size-full wp-image-984" title="hello-world-web" src="http://blog.isomorphic.com/wp-content/uploads/2012/06/hello-world-web.jpg" alt="SmartClient &quot;Hello World&quot; buttons with CSS3 mode turned on or off." width="550" height="200" /></a><p class="wp-caption-text">Hello World</p></div>
<div id="attachment_989" class="wp-caption aligncenter" style="width: 560px"><a href="http://blog.isomorphic.com/wp-content/uploads/2012/06/editing-html-on-web.jpg"><img class="size-full wp-image-989" title="editing-html-on-web" src="http://blog.isomorphic.com/wp-content/uploads/2012/06/editing-html-on-web.jpg" alt="Editing HTML example with CSS3 mode &quot;on&quot; (Enterprise skin)" width="550" height="289" /></a><p class="wp-caption-text">Editing HTML with CSS3 mode &quot;on&quot; (Enterprise skin)</p></div>
<div id="attachment_990" class="wp-caption aligncenter" style="width: 560px"><a href="http://blog.isomorphic.com/wp-content/uploads/2012/06/editing-html-off-web.jpg"><img class="size-full wp-image-990" title="editing-html-off-web" src="http://blog.isomorphic.com/wp-content/uploads/2012/06/editing-html-off-web.jpg" alt="Editing HTML example with CSS3 mode &quot;off&quot; (Enterprise skin)" width="550" height="289" /></a><p class="wp-caption-text">Editing HTML with CSS3 mode &quot;off&quot; (Enterprise skin)</p></div>
<p>For more information, please download the latest Smart GWT 3.1d or SmartClient 8.3d <a href="http://www.smartclient.com/builds">nightly builds</a>. SmartClient Documentation can be found in the <em>SmartClient Reference</em> under <em>Concepts &gt;&gt; Skinning / Theming.</em></p>
<h3>Licensing</h3>
<ul>
<li>CSS3 mode will be available for Smart GWT 3.1 and SmartClient 8.3 (coming soon).</li>
</ul>
<ul>
<li><em><span style="text-decoration: underline;">A Note for Smart GWT customers with 2.x Licenses</span>: Smart GWT 3.x is a paid upgrade for Smart GWT 2.x license holders, and upgrade prices are based upon the date of your previous purchase. If you bought recently you may be eligible for a discount. Get access to the entire 3.x series by upgrading now! For a quote, please contact <a href="mailto:sales@isomorphic.com">sales</a>.</em></li>
</ul>
<p>As always, please send us any bug reports or feedback in <em><a href="http://forums.smartclient.com/">the Forums</a></em>. Please be clear about what product and version you’re using when reporting issues.</p>
<p>This feature is nearly complete and can be evaluated now in our Smart GWT 3.x and SmartClient 8.3x <a href="http://www.smartclient.com/builds">nightly builds</a>, complete with samples and documentation. Download <a href="http://www.smartclient.com/builds/SmartGWT/3.x">Smart GWT 3.x</a> or <a href="http://www.smartclient.com/builds/SmartClient/8.x">SmartClient 8.x</a> to get started using this new feature today!</p>
<p>Enjoy!</p>
<p><em>The Isomorphic Team</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.isomorphic.com/css3-mode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Server Scripting</title>
		<link>http://blog.isomorphic.com/server-scripting/</link>
		<comments>http://blog.isomorphic.com/server-scripting/#comments</comments>
		<pubDate>Fri, 01 Jun 2012 00:38:42 +0000</pubDate>
		<dc:creator>ray</dc:creator>
				<category><![CDATA[Feature]]></category>
		<category><![CDATA[SmartClient]]></category>
		<category><![CDATA[SmartGWT]]></category>
		<category><![CDATA[scriptlets]]></category>
		<category><![CDATA[server scripting]]></category>
		<category><![CDATA[server scripts]]></category>
		<category><![CDATA[smartclient]]></category>
		<category><![CDATA[smartgwt]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://blog.isomorphic.com/?p=909</guid>
		<description><![CDATA[What is it? Server Scripting allows you to embed code snippets directly in DataSource XML (.ds.xml) files for implementation of simple server-side business logic. These code snippets, or &#8220;scriptlets&#8221;, enable you to insert code right next to the affected definition without having to create a separate file or class to hold the logic. This simplifies ...]]></description>
				<content:encoded><![CDATA[<h3>What is it?</h3>
<p>Server Scripting allows you to embed code snippets directly in DataSource XML (.ds.xml) files for implementation of simple server-side business logic. These code snippets, or &#8220;scriptlets&#8221;, enable you to insert code right next to the affected definition without having to create a separate file or class to hold the logic. This simplifies development and speeds up testing by eliminating the need to compile and restart. You can write scriplets in any <a href="http://www.jcp.org/en/jsr/detail?id=223">JSR 223</a> compatible language, including Java itself, as well as other languages such as <a href="http://en.wikipedia.org/wiki/Groovy_(programming_language)">Groovy</a>, JavaScript, <a href="http://en.wikipedia.org/wiki/Apache_Velocity">Velocity</a>, Python, Ruby, <a href="http://en.wikipedia.org/wiki/Scala_(programming_language)">Scala</a> or <a href="http://en.wikipedia.org/wiki/Clojure">Clojure</a>.</p>
<h3>Why use it?</h3>
<p>Scriplets have several major advantages over using <em><a href="http://www.smartclient.com/smartgwtee/javadoc/com/smartgwt/client/docs/serverds/ServerObject.html">&lt;serverObject&gt;</a></em> to call a normal Java method.</p>
<ul>
<li>
<h4>Simplicity and Clarity</h4>
<p>Scriptlets put business logic right next to the relevant persistence operation instead of in a separate .java file.</li>
<li>
<h4>Faster Development Cycle</h4>
<p>Scriptlets are compiled and executed dynamically, so you don’t need to recompile or redeploy server code to try out changes. Just edit your DataSource, then reload the page or retry the operation. Our framework will automatically detect the modified DataSource and uses the updated scriptlet. Note that scriplets are only recompiled when you change them, so they’ll only be compiled once in the final deployment of your application.</li>
</ul>
<h3>Java as a &#8220;scripting language&#8221;</h3>
<p>The ability to use Java as a “scripting language” is particularly powerful:</p>
<ul>
<li>Developers do not have to know more than one language to work with the code for your application.</li>
</ul>
<ul>
<li>Scriptlets can easily be moved into normal .java files if they are identified as reusable, become too large to manage in a .ds.xml file, or if the (small) performance boost of compiling them to .class files is desired.  There is no need to translate from some other language into Java.</li>
</ul>
<p>For these reasons we recommend using Server Scripting with Java &#8211; even for teams that would not normally consider adopting a &#8220;scripting language&#8221;.</p>
<h3>Examples</h3>
<p>The two primary use cases for server scripting are:</p>
<ul>
<li>
<h4>DMI Scriptlets</h4>
<p><a href="http://www.smartclient.com/smartgwtee/javadoc/com/smartgwt/client/docs/DmiOverview.html">Direct Method Invocation (DMI)</a> scriptlets are declared by adding a <em>&lt;script&gt;</em> tag to an <em><a href="http://www.smartclient.com/smartgwtee/javadoc/com/smartgwt/client/docs/serverds/OperationBinding.html">&lt;operationBinding&gt;</a></em> or <em><a href="http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/data/DataSource.html">&lt;DataSource&gt;</a></em> tag.  Like DMI logic declared via <em>&lt;serverObject&gt;</em>, DMI scriptlets can be used to add business logic by modifying the <a href="http://www.smartclient.com/smartgwtee/server/javadoc/com/isomorphic/datasource/DSRequest.html">DSRequest</a> before it is executed, modifying the default <a href="http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/data/DSResponse.html">DSResponse</a>, or taking other, unrelated actions.</li>
<li>
<h4>Scriptlet Validators</h4>
<p>Scriplet Validators are declared by adding a <em>&lt;serverCondition&gt;</em> tag to a <em>&lt;validator&gt;</em> definition.  Like a validator declared via <em>&lt;serverObject&gt;</em>, a scriptlet validator defines whether data is valid by running arbitrary logic, then returning true or false.</li>
</ul>
<p>For example, the following DMI scriptlet enforces a security constraint where all operations on the DataSource will involve the sessionId so a user can only view and modify their own records.</p>
<div id="attachment_947" class="wp-caption aligncenter" style="width: 443px"><a href="http://blog.isomorphic.com/wp-content/uploads/2012/05/DMI-scriptlet.jpg"><img class="size-full wp-image-947 " title="DMI Scriptlet example" src="http://blog.isomorphic.com/wp-content/uploads/2012/05/DMI-scriptlet.jpg" alt="Example of Direct Method Invocation (DMI) scriplet code" width="433" height="256" /></a><p class="wp-caption-text">DMI Scriplet example</p></div>
<p>There is no need for a formal class or method definition even though Java is used &#8211; the context of a DMI Script is always the same, and the Server Scripting system avoids the need to add this &#8220;boilerplate code&#8221;.</p>
<p>For more information and examples, please download the latest Smart GWT 3.1d or SmartClient 8.3d <a href="http://www.smartclient.com/builds">nightly builds</a>.</p>
<ul>
<li>Detailed examples for both Smart GWT and SmartClient can be found in the Examples folder under <em>Server Examples &gt;&gt; Server Scripting</em>.</li>
</ul>
<ul>
<li>SmartClient Documentation can be found in the SmartClient Reference under <em>Concepts &gt;&gt; Server Scripting.</em></li>
</ul>
<ul>
<li>Smart GWT Documentation can be found in the JavaDoc under <em>com.smartgwt.client.docs.ServerScript</em>.</li>
</ul>
<h3>Pre-requisites</h3>
<ul>
<li>Server Scripting will be available in <em>Pro Edition</em> and above for Smart GWT 3.1 and SmartClient 8.3 (coming soon).</li>
</ul>
<ul>
<li><em><span style="text-decoration: underline;">A Note for Smart GWT customers with 2.x Licenses</span></em>: <em>Smart GWT 3.x is a paid upgrade for Smart GWT 2.x license holders, and upgrade prices are based upon the date of your previous purchase. If you bought recently you may be eligible for a discount. Get access to the entire 3.x series by upgrading now! For a quote, please contact <a href="mailto:sales@isomorphic.com">sales</a>.</em></li>
</ul>
<p>As always, please send us any bug reports or feedback in <em><a href="http://forums.smartclient.com/">the Forums</a></em>. Please be clear about what product and version you’re using when reporting issues.</p>
<p>This feature is nearly complete and can be evaluated now in our Smart GWT 3.x and SmartClient 8.x <a href="http://www.smartclient.com/builds">nightly builds</a>, complete with samples and documentation. Download <a href="http://www.smartclient.com/builds/SmartGWT/3.x">Smart GWT 3.x</a> or <a href="http://www.smartclient.com/builds/SmartClient/8.x">SmartClient 8.x</a> to get started using this new feature today!</p>
<p>Enjoy!</p>
<p><em>The Isomorphic Team</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.isomorphic.com/server-scripting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
