aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--WebContent/WEB-INF/web.xml13
-rw-r--r--WebContent/index.html14
-rw-r--r--src/com/itmill/toolkit/demo/SelectDemo.java74
3 files changed, 101 insertions, 0 deletions
diff --git a/WebContent/WEB-INF/web.xml b/WebContent/WEB-INF/web.xml
index a7d76dadd1..2d860167fc 100644
--- a/WebContent/WEB-INF/web.xml
+++ b/WebContent/WEB-INF/web.xml
@@ -3,6 +3,19 @@
<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>
<init-param>
diff --git a/WebContent/index.html b/WebContent/index.html
index 3e3c038125..4c4a5abc5d 100644
--- a/WebContent/index.html
+++ b/WebContent/index.html
@@ -11,6 +11,7 @@
<div id="toolkit"></div>
+
<div class="feature-browser">
<h4>Feature Browser</h4>
<div class="option">
@@ -180,6 +181,19 @@
</div>
<div class="feature-browser">
+ <h3><a href="SelectDemo?renderingMode=ajax">Select demo</a></h3>
+ <div class="option">
+ <p>
+ This example shows select component with default and lazy loading functionality enabled (a.k.a Google Suggest).
+ Click to first select component and type few letters using your keyboard to see it in action.
+ Second select component has default functionality.
+ </p>
+ </div>
+ Source code:
+ <span class="link"><a href="src/com/itmill/toolkit/demo/SelectDemo.java.html">SelectDemo.java</a></span>
+ </div>
+
+ <div class="feature-browser">
<h3><a href="FilterSelect?renderingMode=ajax">FilterSelect demo</a></h3>
<div class="option">
<p>
diff --git a/src/com/itmill/toolkit/demo/SelectDemo.java b/src/com/itmill/toolkit/demo/SelectDemo.java
new file mode 100644
index 0000000000..e8a76d1686
--- /dev/null
+++ b/src/com/itmill/toolkit/demo/SelectDemo.java
@@ -0,0 +1,74 @@
+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());
+ }
+
+}