{"id":294,"date":"2010-06-04T09:09:00","date_gmt":"2010-06-04T09:09:00","guid":{"rendered":"http:\/\/www.javacodegeeks.com\/2012\/10\/getting-started-with-smartgwt-for-awesome-gwt-interfaces.html"},"modified":"2012-10-21T19:15:58","modified_gmt":"2012-10-21T19:15:58","slug":"getting-started-smartgwt-gwt-interfaces","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2010\/06\/getting-started-smartgwt-gwt-interfaces.html","title":{"rendered":"Getting Started with SmartGWT for awesome GWT interfaces"},"content":{"rendered":"<p><span style=\"font-weight: bold\">Introduction to SmartGWT<\/span><\/p>\n<p>I recently started working with <a href=\"http:\/\/code.google.com\/p\/smartgwt\/\">SmartGWT<\/a>, a framework based on <a href=\"http:\/\/code.google.com\/webtoolkit\/\">GWT<\/a> that provides a comprehensive widget library for your application UI as well as assistance for server-side for data management. You can take look at its pretty functionality at the <a href=\"http:\/\/www.smartclient.com\/smartgwt\/showcase\">SmartGWT showcase<\/a>. I have prepared a short \u201cgetting started\u201d guide on how to integrate the library with your GWT project (I assume you have already installed the <a href=\"http:\/\/code.google.com\/webtoolkit\/gettingstarted.html\">GWT SDK<\/a> and the <a href=\"http:\/\/code.google.com\/eclipse\/\">Google plugin for Eclipse<\/a>). Note that Smart GWT is compatible with GWT 1.5.3 , GWT 1.6.4, GWT 1.7.x and GWT 2.0.x.<\/p>\n<p><span style=\"font-weight: bold\">Creating the GWT project<\/span><\/p>\n<p>First step is to download the library from the <a href=\"http:\/\/code.google.com\/p\/smartgwt\/downloads\/listhttp:\/\/code.google.com\/p\/smartgwt\/downloads\/list\">downloads section<\/a>. The version I will be using for this tutorial is 2.1 (download directly from <a href=\"http:\/\/smartgwt.googlecode.com\/files\/smartgwt-2.1.zip\">here<\/a>). Extract the ZIP file and in the new directory you will find the framework&#8217;s documentation, some samples, \u201cHello World\u201d examples and of course the necessary JAR files. Open the <a href=\"http:\/\/www.smartclient.com\/smartgwt\/javadoc\/\">JavaDocs<\/a> in a new browser tab.<\/p>\n<p>Next we create a new \u201cWeb Application Project\u201d in Eclipse. Choose the profound name \u201cSmartGWTIntroProject\u201d for the project and the appropriate packaging. Make sure that the \u201cUse Google Web Toolkt\u201d checkbox is checked (Google&#8217;s App Engine is not needed, so do not select that). The wizard will look something like this:<\/p>\n<p><a href=\"http:\/\/3.bp.blogspot.com\/_piNjpdpJZXA\/TAa6F61nlAI\/AAAAAAAAAA0\/2kD4qG3DWV4\/s1600\/01-smartgwt-project-wizard.png\"><img decoding=\"async\" alt=\"\" border=\"0\" src=\"http:\/\/3.bp.blogspot.com\/_piNjpdpJZXA\/TAa6F61nlAI\/AAAAAAAAAA0\/2kD4qG3DWV4\/s320\/01-smartgwt-project-wizard.png\" style=\"cursor: pointer;height: 320px;margin: 0px auto 10px;text-align: center;width: 278px\" \/><\/a><\/p>\n<p><span style=\"font-weight: bold\">Adding the SmartGWT library<\/span><\/p>\n<p>After the project skeleton is created, browse through your filesystem to the project&#8217;s location and create a new folder named \u201clib\u201d. Copy the \u201csmartgwt.jar\u201d file from the extracted ZIP to the newly created folder and refresh the project in Eclipse, so that the new file appears there. Then configure your project&#8217;s classpath to include the JAR file (Project ? Properties ? Java Build Path ? Add JARs&#8230;). Standard stuff so far. The expanded project in Eclipse should look like this:<\/p>\n<p><a href=\"http:\/\/1.bp.blogspot.com\/_piNjpdpJZXA\/TAa6kXcHt9I\/AAAAAAAAAA8\/RMiIK415mJk\/s1600\/02-smartgwt-project-expanded.png\"><img decoding=\"async\" alt=\"\" border=\"0\" src=\"http:\/\/1.bp.blogspot.com\/_piNjpdpJZXA\/TAa6kXcHt9I\/AAAAAAAAAA8\/RMiIK415mJk\/s320\/02-smartgwt-project-expanded.png\" style=\"cursor: pointer;height: 320px;margin: 0px auto 10px;text-align: center;width: 223px\" \/><\/a><\/p>\n<p>Then edit the module xml file (named \u201cSmartGWTIntroProject.gwt.xml\u201d) and add the following line after the standard \u201cinherits\u201d declarations:<\/p>\n<pre class=\"brush: xml\">&lt;inherits name=\"com.smartgwt.SmartGwt\"\/&gt;\r\n<\/pre>\n<p>The module xml file will be:<\/p>\n<pre class=\"brush: xml\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;module rename-to='smartgwtintroproject'&gt;\r\n&lt;!-- Inherit the core Web Toolkit stuff.                        --&gt;\r\n&lt;inherits name='com.google.gwt.user.User'\/&gt;\r\n\r\n&lt;!-- Inherit the default GWT style sheet.  You can change       --&gt;\r\n&lt;!-- the theme of your GWT application by uncommenting          --&gt;\r\n&lt;!-- any one of the following lines.                            --&gt;\r\n&lt;!-- &lt;inherits name='com.google.gwt.user.theme.standard.Standard'\/&gt; --&gt;\r\n&lt;!-- &lt;inherits name='com.google.gwt.user.theme.chrome.Chrome'\/&gt; --&gt;\r\n&lt;!-- &lt;inherits name='com.google.gwt.user.theme.dark.Dark'\/&gt;     --&gt;\r\n\r\n&lt;!-- Other module inherits                                      --&gt;\r\n\r\n&lt;inherits name=\"com.smartgwt.SmartGwt\"\/&gt;\r\n\r\n&lt;!-- Specify the app entry point class.                         --&gt;\r\n&lt;entry-point class='com.javacodegeeks.smartgwt.client.client.SmartGWTIntroProject'\/&gt;\r\n\r\n&lt;!-- Specify the paths for translatable code                    --&gt;\r\n&lt;source path='client'\/&gt;\r\n&lt;source path='shared'\/&gt;\r\n\r\n&lt;\/module&gt;\r\n<\/pre>\n<p>This allows GWT to know that your application will be using the SmartGWT library.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p>UPDATE: The &#8216;com.google.gwt.user.theme.standard.Standard&#8217; declaration should be removed or commented out like above, since it conflicts with certain SmartGWT styles.<\/p>\n<p>After this, locate the main HTML inside the \u201cwar\u201d folder. Edit that and add the following line before the compiled module declaration :<\/p>\n<pre class=\"brush: xml\">&lt;script&gt;var isomorphicDir=\"smartgwtintroproject\/sc\/\";&lt;\/script&gt;\r\n<\/pre>\n<p>UPDATE: From version 2.2, there is no longer need to define the isomorpihcDir value. Check the <a href=\"http:\/\/www.jroller.com\/sjivan\/entry\/smart_gwt_2_2_released\">Release Notes for Smart GWT 2.2<\/a>. However, for this tutorial (version 2.1 used) the declaration is needed. <\/p>\n<p>In the same file, scroll down and find the following lines:<\/p>\n<pre class=\"brush: xml\">&lt;td id=\"nameFieldContainer\"&gt;&lt;\/td&gt;\r\n&lt;td id=\"sendButtonContainer\"&gt;&lt;\/td&gt;\r\n<\/pre>\n<p>Replace those with the following:<\/p>\n<pre class=\"brush: xml\">&lt;td id=\"formContainer\"&gt;&lt;\/td&gt;\r\n&lt;td id=\"buttonContainer\"&gt;&lt;\/td&gt;\r\n<\/pre>\n<p>Those are the HTML elements that will hold the text item and the button that we will add later. <\/p>\n<p>The full HTML file follows:<\/p>\n<pre class=\"brush: xml\">&lt;!doctype html&gt;\r\n&lt;!-- The DOCTYPE declaration above will set the    --&gt;\r\n&lt;!-- browser's rendering engine into               --&gt;\r\n&lt;!-- \"Standards Mode\". Replacing this declaration  --&gt;\r\n&lt;!-- with a \"Quirks Mode\" doctype may lead to some --&gt;\r\n&lt;!-- differences in layout.                        --&gt;\r\n\r\n&lt;html&gt;\r\n&lt;head&gt;\r\n&lt;meta http-equiv=\"content-type\" content=\"text\/html; charset=UTF-8\"&gt;\r\n\r\n&lt;!--                                                               --&gt;\r\n&lt;!-- Consider inlining CSS to reduce the number of requested files --&gt;\r\n&lt;!--                                                               --&gt;\r\n&lt;link type=\"text\/css\" rel=\"stylesheet\" href=\"SmartGWTIntroProject.css\"&gt;\r\n\r\n&lt;!--                                           --&gt;\r\n&lt;!-- Any title is fine                         --&gt;\r\n&lt;!--                                           --&gt;\r\n&lt;title&gt;Web Application Starter Project&lt;\/title&gt;\r\n\r\n&lt;!--                                           --&gt;\r\n&lt;!-- This script loads your compiled module.   --&gt;\r\n&lt;!-- If you add any GWT meta tags, they must   --&gt;\r\n&lt;!-- be added before this line.                --&gt;\r\n&lt;!--                                           --&gt;\r\n&lt;script&gt;var isomorphicDir=\"smartgwtintroproject\/sc\/\";&lt;\/script&gt;\r\n&lt;script type=\"text\/javascript\" language=\"javascript\" src=\"smartgwtintroproject\/smartgwtintroproject.nocache.js\"&gt;&lt;\/script&gt;\r\n&lt;\/head&gt;\r\n\r\n&lt;!--                                           --&gt;\r\n&lt;!-- The body can have arbitrary html, or      --&gt;\r\n&lt;!-- you can leave the body empty if you want  --&gt;\r\n&lt;!-- to create a completely dynamic UI.        --&gt;\r\n&lt;!--                                           --&gt;\r\n&lt;body&gt;\r\n\r\n&lt;!-- OPTIONAL: include this if you want history support --&gt;\r\n&lt;iframe src=\"javascript:''\" id=\"__gwt_historyFrame\" tabIndex='-1' style=\"position:absolute;width:0;height:0;border:0\"&gt;&lt;\/iframe&gt;\r\n\r\n&lt;!-- RECOMMENDED if your web app will not function without JavaScript enabled --&gt;\r\n&lt;noscript&gt;\r\n&lt;div style=\"width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif\"&gt;\r\n\r\nYour web browser must have JavaScript enabled\r\nin order for this application to display correctly.\r\n&lt;\/div&gt;\r\n\r\n&lt;\/noscript&gt;\r\n\r\n&lt;h1&gt;\r\nWeb Application Starter Project&lt;\/h1&gt;\r\n\r\n&lt;table align=\"center\"&gt;\r\n&lt;tr&gt;\r\n&lt;td colspan=\"2\" style=\"font-weight:bold;\"&gt;Please enter your name:&lt;\/td&gt;        \r\n&lt;\/tr&gt;\r\n\r\n&lt;tr&gt;\r\n&lt;td id=\"formContainer\"&gt;&lt;\/td&gt;\r\n&lt;td id=\"buttonContainer\"&gt;&lt;\/td&gt;\r\n&lt;\/tr&gt;\r\n\r\n&lt;tr&gt;\r\n&lt;td colspan=\"2\" style=\"color:red;\" id=\"errorLabelContainer\"&gt;&lt;\/td&gt;\r\n&lt;\/tr&gt;\r\n\r\n&lt;\/table&gt;\r\n\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;\r\n<\/pre>\n<p><span style=\"font-weight: bold\">Creating the application entrypoint<\/span><\/p>\n<p>When a GWT is created via Eclipse, a lot of auto-generated files are created. One of those is the main Java file in the \u201cclient\u201d package, which works as the application&#8217;s entrypoint. So, remove the generated code and add the following:<\/p>\n<pre class=\"brush:java\">package com.javacodegeeks.smartgwt.client.client;\r\n\r\nimport com.google.gwt.core.client.EntryPoint;\r\nimport com.google.gwt.user.client.ui.RootPanel;\r\nimport com.smartgwt.client.util.SC;\r\nimport com.smartgwt.client.widgets.IButton;\r\nimport com.smartgwt.client.widgets.events.ClickEvent;\r\nimport com.smartgwt.client.widgets.events.ClickHandler;\r\nimport com.smartgwt.client.widgets.form.DynamicForm;\r\nimport com.smartgwt.client.widgets.form.fields.TextItem;\r\n\r\npublic class SmartGWTIntroProject implements EntryPoint {\r\n    \r\n    public void onModuleLoad() {\r\n        \r\n        final DynamicForm form = new DynamicForm();\r\n        final TextItem textItem = new TextItem();\r\n        textItem.setTitle(\"Name\");\r\n        form.setFields(textItem);\r\n        final IButton button = new IButton(\"Hello\");\r\n        \r\n        button.addClickHandler(new ClickHandler() {\r\n            public void onClick(ClickEvent event) {\r\n                String name = textItem.getValue().toString();\r\n                SC.say(\"Hello \" + name);\r\n            }\r\n        });\r\n        \r\n        RootPanel.get(\"formContainer\").add(form);\r\n        RootPanel.get(\"buttonContainer\").add(button);\r\n        \r\n    }\r\n\r\n}\r\n<\/pre>\n<p>Make sure that the imported packages are as shown above, because SmartGWT uses classes with names same with those of the core GWT framework. <\/p>\n<p><span style=\"font-weight: bold\">Launching the application<\/span><br \/>\nNext, we are ready to launch our application. Choose Run ? Run As ? Web Application and use your favourite browser to access the provided URL:<\/p>\n<p><a href=\"http:\/\/127.0.0.1:8888\/SmartGWTIntroProject.html?gwt.codesvr=127.0.0.1:9997\">http:\/\/127.0.0.1:8888\/SmartGWTIntroProject.html?gwt.codesvr=127.0.0.1:9997<\/a><\/p>\n<p>You should be able to see the following:<\/p>\n<p><a href=\"http:\/\/2.bp.blogspot.com\/_piNjpdpJZXA\/TAa8EV44SJI\/AAAAAAAAABM\/GDUvbG2B3Lg\/s1600\/06-smartgwt-hello-name.png\"><img decoding=\"async\" alt=\"\" border=\"0\" src=\"http:\/\/2.bp.blogspot.com\/_piNjpdpJZXA\/TAa8EV44SJI\/AAAAAAAAABM\/GDUvbG2B3Lg\/s320\/06-smartgwt-hello-name.png\" style=\"cursor: pointer;height: 195px;margin: 0px auto 10px;text-align: center;width: 320px\" \/><\/a><\/p>\n<p>That&#8217;s it. Now you are ready to create some cool applications, powered by SmartGWT. You can find the Eclipse project <a href=\"http:\/\/dl.dropbox.com\/u\/7215751\/JavaCodeGeeks\/SmartGWTIntroTutorial\/SmartGWTIntroProject.zip\">here<\/a> (some files have been removed from the project).<\/p>\n<p>This was just a short guide on how to add SmartGWT to your project. In the following posts I am going to create a full application based on SmartGWT in order to show you some of its wonderful capabilities. Stay tuned.<\/p>\n<div style=\"margin-bottom: 0px;margin-left: 0px;margin-right: 0px;margin-top: 0px\"><strong><i>Related Articles :<\/i><\/strong><\/div>\n<ul>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2011\/01\/advanced-smartgwt-tutorial-part-1.html\">Advanced SmartGWT Tutorial, Part 1<\/a><\/li>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2010\/06\/add-captcha-gwt-application.html\">Adding CAPTCHA to your GWT application<\/a><\/li>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2010\/12\/securing-gwt-apps-with-spring-security.html\">Securing GWT apps with Spring Security<\/a><\/li>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2010\/07\/gwt-2-spring-3-jpa-2-hibernate-35.html\">GWT 2 Spring 3 JPA 2 Hibernate 3.5 Tutorial \u2013 Eclipse and Maven 2 showcase<\/a><\/li>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2010\/07\/building-your-own-gwt-spring-manen.html\">Building your own GWT Spring Maven Archetype<\/a><\/li>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2010\/09\/gwt-ejb3-maven-jboss-51-integration.html\">GWT EJB3 Maven JBoss 5.1 integration tutorial<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Introduction to SmartGWT I recently started working with SmartGWT, a framework based on GWT that provides a comprehensive widget library for your application UI as well as assistance for server-side for data management. You can take look at its pretty functionality at the SmartGWT showcase. I have prepared a short \u201cgetting started\u201d guide on how &hellip;<\/p>\n","protected":false},"author":3,"featured_media":125,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[27,62],"class_list":["post-294","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-google-gwt","tag-smartgwt"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Getting Started with SmartGWT for awesome GWT interfaces - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"Introduction to SmartGWT I recently started working with SmartGWT, a framework based on GWT that provides a comprehensive widget library for your\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2010\/06\/getting-started-smartgwt-gwt-interfaces.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Getting Started with SmartGWT for awesome GWT interfaces - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"Introduction to SmartGWT I recently started working with SmartGWT, a framework based on GWT that provides a comprehensive widget library for your\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2010\/06\/getting-started-smartgwt-gwt-interfaces.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2010-06-04T09:09:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2012-10-21T19:15:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/google-gwt-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ilias Tsagklis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ilias Tsagklis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2010\\\/06\\\/getting-started-smartgwt-gwt-interfaces.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2010\\\/06\\\/getting-started-smartgwt-gwt-interfaces.html\"},\"author\":{\"name\":\"Ilias Tsagklis\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/9a83496b285d30c61e8a674625c1350e\"},\"headline\":\"Getting Started with SmartGWT for awesome GWT interfaces\",\"datePublished\":\"2010-06-04T09:09:00+00:00\",\"dateModified\":\"2012-10-21T19:15:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2010\\\/06\\\/getting-started-smartgwt-gwt-interfaces.html\"},\"wordCount\":679,\"commentCount\":7,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2010\\\/06\\\/getting-started-smartgwt-gwt-interfaces.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/google-gwt-logo.jpg\",\"keywords\":[\"Google GWT\",\"SmartGWT\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2010\\\/06\\\/getting-started-smartgwt-gwt-interfaces.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2010\\\/06\\\/getting-started-smartgwt-gwt-interfaces.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2010\\\/06\\\/getting-started-smartgwt-gwt-interfaces.html\",\"name\":\"Getting Started with SmartGWT for awesome GWT interfaces - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2010\\\/06\\\/getting-started-smartgwt-gwt-interfaces.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2010\\\/06\\\/getting-started-smartgwt-gwt-interfaces.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/google-gwt-logo.jpg\",\"datePublished\":\"2010-06-04T09:09:00+00:00\",\"dateModified\":\"2012-10-21T19:15:58+00:00\",\"description\":\"Introduction to SmartGWT I recently started working with SmartGWT, a framework based on GWT that provides a comprehensive widget library for your\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2010\\\/06\\\/getting-started-smartgwt-gwt-interfaces.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2010\\\/06\\\/getting-started-smartgwt-gwt-interfaces.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2010\\\/06\\\/getting-started-smartgwt-gwt-interfaces.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/google-gwt-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/google-gwt-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2010\\\/06\\\/getting-started-smartgwt-gwt-interfaces.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Getting Started with SmartGWT for awesome GWT interfaces\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/9a83496b285d30c61e8a674625c1350e\",\"name\":\"Ilias Tsagklis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/43505f28bb49f6e290c24be0b209ccc1af350f0f6587025ffd4847ef44bf6b78?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/43505f28bb49f6e290c24be0b209ccc1af350f0f6587025ffd4847ef44bf6b78?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/43505f28bb49f6e290c24be0b209ccc1af350f0f6587025ffd4847ef44bf6b78?s=96&d=mm&r=g\",\"caption\":\"Ilias Tsagklis\"},\"description\":\"Ilias is a software developer turned online entrepreneur. He is co-founder and Executive Editor at Java Code Geeks.\",\"sameAs\":[\"http:\\\/\\\/www.iliastsagklis.com\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/iliastsagklis\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/ilias-tsagklis\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Getting Started with SmartGWT for awesome GWT interfaces - Java Code Geeks","description":"Introduction to SmartGWT I recently started working with SmartGWT, a framework based on GWT that provides a comprehensive widget library for your","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.javacodegeeks.com\/2010\/06\/getting-started-smartgwt-gwt-interfaces.html","og_locale":"en_US","og_type":"article","og_title":"Getting Started with SmartGWT for awesome GWT interfaces - Java Code Geeks","og_description":"Introduction to SmartGWT I recently started working with SmartGWT, a framework based on GWT that provides a comprehensive widget library for your","og_url":"https:\/\/www.javacodegeeks.com\/2010\/06\/getting-started-smartgwt-gwt-interfaces.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2010-06-04T09:09:00+00:00","article_modified_time":"2012-10-21T19:15:58+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/google-gwt-logo.jpg","type":"image\/jpeg"}],"author":"Ilias Tsagklis","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Ilias Tsagklis","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2010\/06\/getting-started-smartgwt-gwt-interfaces.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2010\/06\/getting-started-smartgwt-gwt-interfaces.html"},"author":{"name":"Ilias Tsagklis","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/9a83496b285d30c61e8a674625c1350e"},"headline":"Getting Started with SmartGWT for awesome GWT interfaces","datePublished":"2010-06-04T09:09:00+00:00","dateModified":"2012-10-21T19:15:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2010\/06\/getting-started-smartgwt-gwt-interfaces.html"},"wordCount":679,"commentCount":7,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2010\/06\/getting-started-smartgwt-gwt-interfaces.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/google-gwt-logo.jpg","keywords":["Google GWT","SmartGWT"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2010\/06\/getting-started-smartgwt-gwt-interfaces.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2010\/06\/getting-started-smartgwt-gwt-interfaces.html","url":"https:\/\/www.javacodegeeks.com\/2010\/06\/getting-started-smartgwt-gwt-interfaces.html","name":"Getting Started with SmartGWT for awesome GWT interfaces - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2010\/06\/getting-started-smartgwt-gwt-interfaces.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2010\/06\/getting-started-smartgwt-gwt-interfaces.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/google-gwt-logo.jpg","datePublished":"2010-06-04T09:09:00+00:00","dateModified":"2012-10-21T19:15:58+00:00","description":"Introduction to SmartGWT I recently started working with SmartGWT, a framework based on GWT that provides a comprehensive widget library for your","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2010\/06\/getting-started-smartgwt-gwt-interfaces.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2010\/06\/getting-started-smartgwt-gwt-interfaces.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2010\/06\/getting-started-smartgwt-gwt-interfaces.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/google-gwt-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/google-gwt-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2010\/06\/getting-started-smartgwt-gwt-interfaces.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"Getting Started with SmartGWT for awesome GWT interfaces"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/9a83496b285d30c61e8a674625c1350e","name":"Ilias Tsagklis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/43505f28bb49f6e290c24be0b209ccc1af350f0f6587025ffd4847ef44bf6b78?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/43505f28bb49f6e290c24be0b209ccc1af350f0f6587025ffd4847ef44bf6b78?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/43505f28bb49f6e290c24be0b209ccc1af350f0f6587025ffd4847ef44bf6b78?s=96&d=mm&r=g","caption":"Ilias Tsagklis"},"description":"Ilias is a software developer turned online entrepreneur. He is co-founder and Executive Editor at Java Code Geeks.","sameAs":["http:\/\/www.iliastsagklis.com\/","https:\/\/www.linkedin.com\/in\/iliastsagklis"],"url":"https:\/\/www.javacodegeeks.com\/author\/ilias-tsagklis"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=294"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/294\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/125"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}