You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SelectDemo.java 2.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /*
  2. @ITMillApache2LicenseForJavaFiles@
  3. */
  4. package com.itmill.toolkit.demo;
  5. import java.sql.SQLException;
  6. import com.itmill.toolkit.data.util.QueryContainer;
  7. import com.itmill.toolkit.demo.util.SampleDatabase;
  8. import com.itmill.toolkit.ui.Label;
  9. import com.itmill.toolkit.ui.Panel;
  10. import com.itmill.toolkit.ui.Select;
  11. import com.itmill.toolkit.ui.Window;
  12. import com.itmill.toolkit.ui.AbstractSelect.Filtering;
  13. /**
  14. * This example demonstrates what is lazy loading feature on Select component.
  15. * Demo Uses similar concepts to QueryContainerDemo.
  16. *
  17. * @author IT Mill Ltd.
  18. * @since 4.0.0
  19. *
  20. */
  21. public class SelectDemo extends com.itmill.toolkit.Application {
  22. // Select component where SQL rows are attached (using QueryContainer)
  23. private final Select select = new Select();
  24. private final Select lazySelect = new Select();
  25. // Database provided with sample data
  26. private SampleDatabase sampleDatabase;
  27. /**
  28. * Initialize Application. Demo components are added to main window.
  29. */
  30. public void init() {
  31. final Window main = new Window("Select demo");
  32. setMainWindow(main);
  33. // Main window contains heading, table, select and tree
  34. final Panel panel = new Panel("Select demo (a.k.a Google Suggests)");
  35. panel.addComponent(lazySelect);
  36. panel.addComponent(new Label("<hr />", Label.CONTENT_XHTML));
  37. panel.addComponent(select);
  38. main.addComponent(panel);
  39. // create demo database
  40. sampleDatabase = new SampleDatabase();
  41. initSelects();
  42. }
  43. private void initSelects() {
  44. // init select
  45. select.setCaption("All employees default functionality.");
  46. select.setItemCaptionPropertyId("WORKER");
  47. // populate Toolkit select component with test SQL table rows
  48. try {
  49. final QueryContainer qc = new QueryContainer(
  50. "SELECT ID, UNIT||', '||LASTNAME||' '||FIRSTNAME"
  51. + " AS WORKER FROM employee ORDER BY WORKER",
  52. sampleDatabase.getConnection());
  53. select.setContainerDataSource(qc);
  54. } catch (final SQLException e) {
  55. e.printStackTrace();
  56. }
  57. // init lazySelect
  58. lazySelect.setCaption("All employees with lazy loading "
  59. + "(a.k.a Google Suggests) activated.");
  60. lazySelect.setItemCaptionPropertyId("WORKER");
  61. lazySelect.setFilteringMode(Filtering.FILTERINGMODE_CONTAINS);
  62. // use same datasource as select object uses
  63. lazySelect.setContainerDataSource(select.getContainerDataSource());
  64. }
  65. }