<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>IT Mill Toolkit</display-name>
+ <servlet>
+ <servlet-name>SelectDemo</servlet-name>
+ <servlet-class>com.itmill.toolkit.terminal.web.ApplicationServlet</servlet-class>
+ <init-param>
+ <param-name>application</param-name>
+ <param-value>com.itmill.toolkit.demo.SelectDemo</param-value>
+ </init-param>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>SelectDemo</servlet-name>
+ <url-pattern>/SelectDemo/*</url-pattern>
+ </servlet-mapping>
+
<servlet>
<servlet-name>BufferedComponents</servlet-name>
<servlet-class>com.itmill.toolkit.terminal.web.ApplicationServlet</servlet-class>
\r
<div id="toolkit"></div>\r
\r
+\r
<div class="feature-browser">\r
<h4>Feature Browser</h4>\r
<div class="option">\r
<span class="link"><a href="src/com/itmill/toolkit/demo/TreeFilesystem.java.html">TreeFilesystem.java</a></span>\r
</div>\r
\r
+ <div class="feature-browser">\r
+ <h3><a href="SelectDemo?renderingMode=ajax">Select demo</a></h3>\r
+ <div class="option">\r
+ <p>\r
+ This example shows select component with default and lazy loading functionality enabled (a.k.a Google Suggest).\r
+ Click to first select component and type few letters using your keyboard to see it in action.\r
+ Second select component has default functionality.\r
+ </p>\r
+ </div>\r
+ Source code:\r
+ <span class="link"><a href="src/com/itmill/toolkit/demo/SelectDemo.java.html">SelectDemo.java</a></span>\r
+ </div>\r
+ \r
<div class="feature-browser">\r
<h3><a href="FilterSelect?renderingMode=ajax">FilterSelect demo</a></h3>\r
<div class="option">\r
--- /dev/null
+package com.itmill.toolkit.demo;
+
+import java.sql.SQLException;
+import com.itmill.toolkit.data.util.QueryContainer;
+import com.itmill.toolkit.demo.util.SampleDatabase;
+import com.itmill.toolkit.ui.*;
+
+/**
+ * This example demonstrates what is lazy loading feature on Select component.
+ * Demo Uses similar concepts to QueryContainerDemo.
+ *
+ * @author IT Mill Ltd.
+ * @since 4.0.0
+ *
+ */
+public class SelectDemo extends com.itmill.toolkit.Application {
+
+ // Select component where SQL rows are attached (using QueryContainer)
+ private Select select = new Select();
+
+ private Select lazySelect = new Select();
+
+ // Database provided with sample data
+ private SampleDatabase sampleDatabase;
+
+ /**
+ * Initialize Application. Demo components are added to main window.
+ */
+ public void init() {
+ Window main = new Window("Select demo");
+ setMainWindow(main);
+
+ // set the application to use Corporate -theme
+ setTheme("corporate");
+
+ // Main window contains heading, table, select and tree
+ Panel panel = new Panel("Select demo (a.k.a Google Suggests)");
+ panel.addComponent(lazySelect);
+ panel.addComponent(new Label("<hr />", Label.CONTENT_XHTML));
+ panel.addComponent(select);
+ main.addComponent(panel);
+
+ // create demo database
+ sampleDatabase = new SampleDatabase();
+
+ initSelects();
+ }
+
+ private void initSelects() {
+ // init select
+ select.setCaption("All employees default functionality.");
+ select.setItemCaptionPropertyId("WORKER");
+ // populate Toolkit select component with test SQL table rows
+ try {
+ QueryContainer qc = new QueryContainer(
+ "SELECT ID, UNIT||', '||LASTNAME||' '||FIRSTNAME"
+ + " AS WORKER FROM employee ORDER BY WORKER",
+ sampleDatabase.getConnection());
+ select.setContainerDataSource(qc);
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+
+ // init lazySelect
+ lazySelect.setCaption("All employees with lazy loading "
+ + "(a.k.a Google Suggests) activated.");
+ lazySelect.setItemCaptionPropertyId("WORKER");
+ // use lazy loading (a.k.a Google Suggest)
+ lazySelect.setLazyLoading(true);
+ // use same datasource as select object uses
+ lazySelect.setContainerDataSource(select.getContainerDataSource());
+ }
+
+}