Show
Ignore:
Timestamp:
07/28/08 13:12:15 (5 months ago)
Author:
magi@…
Message:

Updated book examples. Form example, editable Table with beans, QueryContainer? with Select.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/com/itmill/toolkit/tests/book/BookTestApplication.java

    r5113 r5119  
    66 
    77import java.net.URL; 
     8import java.sql.Connection; 
     9import java.sql.DriverManager; 
     10import java.sql.ResultSet; 
     11import java.sql.SQLException; 
     12import java.sql.Statement; 
    813import java.util.Iterator; 
    914import java.util.Locale; 
    1015import java.util.Map; 
    1116import java.util.Set; 
    12 import java.util.Vector; 
    13  
    14 import com.itmill.toolkit.data.Container; 
     17 
     18import org.hsqldb.*; 
     19 
    1520import com.itmill.toolkit.data.Item; 
    16 import com.itmill.toolkit.data.Property; 
    1721import com.itmill.toolkit.data.Validator; 
     22import com.itmill.toolkit.data.Container.PropertySetChangeEvent; 
     23import com.itmill.toolkit.data.Container.PropertySetChangeListener; 
    1824import com.itmill.toolkit.data.Property.ValueChangeEvent; 
    1925import com.itmill.toolkit.data.Property.ValueChangeListener; 
    20 import com.itmill.toolkit.data.util.BeanItem; 
     26import com.itmill.toolkit.data.util.QueryContainer; 
    2127import com.itmill.toolkit.data.validator.StringLengthValidator; 
    2228import com.itmill.toolkit.terminal.ClassResource; 
     
    3743import com.itmill.toolkit.ui.Embedded; 
    3844import com.itmill.toolkit.ui.ExpandLayout; 
    39 import com.itmill.toolkit.ui.Field; 
    40 import com.itmill.toolkit.ui.FieldFactory; 
    4145import com.itmill.toolkit.ui.Form; 
    4246import com.itmill.toolkit.ui.FormLayout; 
     
    5862import com.itmill.toolkit.ui.Window; 
    5963import com.itmill.toolkit.ui.Button.ClickEvent; 
    60 import com.itmill.toolkit.ui.Window.Notification; 
    6164 
    6265public class BookTestApplication extends com.itmill.toolkit.Application { 
     
    143146                        "customlayout", "spacing", "margin", "clientinfo", 
    144147                        "fillinform/templates", "notification", "print", 
    145                         "richtextfield"}; 
     148                        "richtextfield", "querycontainer"}; 
    146149                for (int i = 0; i < examples.length; i++) { 
    147150                    main.addComponent(new Label("<a href='" + context.toString() + 
     
    224227            } else if (example.equals("richtextfield")) { 
    225228                example_RichTextField(main, param); 
     229            } else if (example.equals("querycontainer")) { 
     230                example_QueryContainer(main, param); 
    226231            } else { 
    227232                ; // main.addComponent(new Label("Unknown test '"+example+"'.")); 
     
    14201425        main.addComponent(html); 
    14211426    } 
     1427 
     1428    void example_QueryContainer(final Window main, String param) { 
     1429        try { 
     1430            // Create a database connection 
     1431            Class.forName("org.hsqldb.jdbcDriver"); 
     1432            final Connection c = DriverManager.getConnection("jdbc:hsqldb:mem:qcexample", "sa", ""); 
     1433             
     1434            // Create an example table and put some data in it. 
     1435            Statement st = c.createStatement(); 
     1436            st.executeQuery("CREATE TABLE Prisoners (id INTEGER, name VARCHAR)"); 
     1437            st.close(); 
     1438            for (int i=0; i<100; i++) { 
     1439                st = c.createStatement(); 
     1440                st.executeQuery("INSERT INTO Prisoners (id, name) VALUES ("+i+",'I am number "+(i+1)+"')"); 
     1441                st.close(); 
     1442            } 
     1443             
     1444            // Query the database 
     1445            final QueryContainer qc = new QueryContainer("SELECT id,name FROM Prisoners", c); 
     1446             
     1447            // Create a component for selecting a query result item. 
     1448            Select select = new Select("Select an item"); 
     1449             
     1450            // The items shown in the selection component are obtained from the query. 
     1451            select.setContainerDataSource(qc); 
     1452             
     1453            // The item captions are obtained from a field in the query result.  
     1454            select.setItemCaptionMode(Select.ITEM_CAPTION_MODE_PROPERTY); 
     1455             
     1456            // Set the name of the field from which the item captions are obtained. 
     1457            select.setItemCaptionPropertyId("name"); 
     1458         
     1459            // When selection changes, display the selected item. 
     1460            select.setImmediate(true); 
     1461            final Label selection = new Label("Currently selected: -"); 
     1462            select.addListener(new ValueChangeListener() { 
     1463                public void valueChange(ValueChangeEvent event) { 
     1464                    // Get the item id of the currently selected item 
     1465                    Integer itemId = (Integer) event.getProperty().getValue(); 
     1466                     
     1467                    // Use the item ID to get the actual row from the query result. 
     1468                    Item qrItem = qc.getItem(itemId); 
     1469                     
     1470                    // Display the item ID 
     1471                    selection.setValue("Currently selected: result row "+itemId.intValue() + 
     1472                                       " (id="+qrItem.getItemProperty("id")+", " + 
     1473                                       "name="+qrItem.getItemProperty("name")+")"); 
     1474                } 
     1475            }); 
     1476             
     1477            main.addComponent(select); 
     1478            main.addComponent(selection); 
     1479        } catch (SQLException e) { 
     1480            e.printStackTrace(); 
     1481        } catch (ClassNotFoundException e) { 
     1482            e.printStackTrace(); 
     1483        } 
     1484    } 
    14221485}