]> source.dussan.org Git - vaadin-framework.git/commitdiff
Calendar updates.
authorMarc Englund <marc.englund@itmill.com>
Fri, 17 Aug 2007 13:02:02 +0000 (13:02 +0000)
committerMarc Englund <marc.englund@itmill.com>
Fri, 17 Aug 2007 13:02:02 +0000 (13:02 +0000)
svn changeset:2058/svn branch:trunk

src/com/itmill/toolkit/demo/CalendarDemo.java
src/com/itmill/toolkit/terminal/gwt/client/ui/ICalendar.java
src/com/itmill/toolkit/terminal/gwt/public/component-themes/common/css/common.css

index abcde1eadc9a066ab7c4d47a28cf2178d07bca3c..24f1ba96811c642c5e142e0b7f2693b27f174d8e 100644 (file)
@@ -3,10 +3,12 @@ package com.itmill.toolkit.demo;
 import java.sql.SQLException;
 import java.util.Date;
 
+import com.itmill.toolkit.data.Property.ValueChangeEvent;
+import com.itmill.toolkit.data.Property.ValueChangeListener;
 import com.itmill.toolkit.data.util.QueryContainer;
 import com.itmill.toolkit.demo.util.SampleCalendarDatabase;
-import com.itmill.toolkit.ui.Button;
 import com.itmill.toolkit.ui.CalendarField;
+import com.itmill.toolkit.ui.OrderedLayout;
 import com.itmill.toolkit.ui.Window;
 
 /**
@@ -25,7 +27,8 @@ public class CalendarDemo extends com.itmill.toolkit.Application {
     private SampleCalendarDatabase sampleDatabase;
 
     // The calendar UI component
-    private CalendarField calendar;
+    private CalendarField from;
+    private CalendarField to;
 
     /**
      * Initialize Application. Demo components are added to main window.
@@ -33,33 +36,62 @@ public class CalendarDemo extends com.itmill.toolkit.Application {
     public void init() {
        Window main = new Window("Calendar demo");
        setMainWindow(main);
+       
+       main.setLayout(new OrderedLayout(OrderedLayout.ORIENTATION_HORIZONTAL));
 
        // set the application to use Corporate -theme
        setTheme("corporate");
 
        // create the calendar component and add to layout
-       calendar = new CalendarField();
-       main.addComponent(calendar);
-       calendar.setResolution(CalendarField.RESOLUTION_HOUR);
+       from = new CalendarField();
+       main.addComponent(from);
+       from.setResolution(CalendarField.RESOLUTION_HOUR);
+       from.setImmediate(true);
+       
+       to = new CalendarField();
+       main.addComponent(to);
+       to.setResolution(CalendarField.RESOLUTION_HOUR);
+       to.setEnabled(false);
+       to.setImmediate(true);
+
+       from.addListener(new ValueChangeListener() {
+           public void valueChange(ValueChangeEvent event) {
+               Date fd = (Date)from.getValue();
+               Date td = (Date)to.getValue();
+               if (fd == null) {
+                   to.setValue(null);
+                   to.setEnabled(false);
+                   return;
+               } else {
+                   to.setEnabled(true);
+               }
+               to.setMinimumDate(fd);
+               if (td == null||td.before(fd)) {
+                   to.setValue(fd);
+               }
+           }       
+       });
+
 
        // initialize the sample database and set as calendar datasource
        sampleDatabase = new SampleCalendarDatabase();
-       initCalendar();
+       initCalendars();
        
        // Don't allow dates before today
-       calendar.setMinimumDate(new Date());
+       from.setMinimumDate(new Date());
        
     }
 
     /**
      * Populates table component with all rows from calendar table.
      */
-    private void initCalendar() {
+    private void initCalendars() {
        try {
            QueryContainer qc = new QueryContainer("SELECT * FROM "
                    + SampleCalendarDatabase.DB_TABLE_NAME, sampleDatabase
                    .getConnection());
-           calendar.setContainerDataSource(qc);
+           from.setContainerDataSource(qc);
+           to.setContainerDataSource(qc);
        } catch (SQLException e) {
            e.printStackTrace();
        }
@@ -69,11 +101,18 @@ public class CalendarDemo extends com.itmill.toolkit.Application {
        // first one, so it's intentionally left out.
        // Start is the only mandatory property, but you'll probably want to
        // specify title as well.
-       calendar.setItemEndPropertyId(SampleCalendarDatabase.PROPERTY_ID_END);
-       calendar
+       from.setItemEndPropertyId(SampleCalendarDatabase.PROPERTY_ID_END);
+       from
+               .setItemTitlePropertyId(SampleCalendarDatabase.PROPERTY_ID_TITLE);
+       from
+               .setItemNotimePropertyId(SampleCalendarDatabase.PROPERTY_ID_NOTIME);
+       to.setItemEndPropertyId(SampleCalendarDatabase.PROPERTY_ID_END);
+       to
                .setItemTitlePropertyId(SampleCalendarDatabase.PROPERTY_ID_TITLE);
-       calendar
+       to
                .setItemNotimePropertyId(SampleCalendarDatabase.PROPERTY_ID_NOTIME);
+     
     }
 
 }
index f6473430c01f546ec9b624bcd13bff46f70c80a4..c9666b9e9e1f2f13148897d65fe45d567385db48 100644 (file)
@@ -29,9 +29,11 @@ public class ICalendar extends IDateField {
 \r
     private int realResolution = RESOLUTION_DAY;\r
 \r
+    private static final String CLASSNAME = IDateField.CLASSNAME + "-entrycalendar";\r
+    \r
     public ICalendar() {\r
        super();\r
-       setStyleName(CLASSNAME + "-entrycalendar");\r
+       setStyleName(CLASSNAME);\r
        calPanel = new ICalendarPanel(this);\r
        add(calPanel);\r
        this.entrySource = new EntrySource();\r
@@ -80,7 +82,7 @@ public class ICalendar extends IDateField {
            hourTable.addTableListener(this.ftListener);\r
            SimplePanel p = new SimplePanel();\r
            p.add(hourTable);\r
-           p.setStyleName(getStyleName() + "-hours");\r
+           p.setStyleName(CLASSNAME + "-hours");\r
            this.calPanel.getFlexCellFormatter().setColSpan(8, 0, 7);\r
            this.calPanel.setWidget(8, 0, p);\r
        }\r
@@ -94,7 +96,7 @@ public class ICalendar extends IDateField {
                }\r
            }\r
            hourTable.getRowFormatter().setStyleName(i,\r
-                   getStyleName() + "-row-" + style);\r
+                   CLASSNAME + "-row-" + style);\r
            if (firstRender) {\r
                String hstr = (i < 10 ? "0" : "") + i + ":00";\r
                if (this.dts.isTwelveHourClock()) {\r
@@ -103,21 +105,21 @@ public class ICalendar extends IDateField {
                }\r
                hourTable.setHTML(i, 0, "<span>" + hstr + "</span>");\r
                hourTable.getCellFormatter().setStyleName(i, 0,\r
-                       getStyleName() + "-time");\r
+                       CLASSNAME + "-time");\r
            }\r
            List entries = this.entrySource.getEntries(curr,\r
                    DateTimeService.RESOLUTION_HOUR);\r
+           String text = "";\r
            if (entries != null) {\r
-               String text = "";\r
                for (Iterator it = entries.iterator(); it.hasNext();) {\r
                    String title = ((ICalendarEntry) it.next()).getTitle();\r
                    text += (text == "" ? "" : ", ")\r
                            + (title != null ? title : "?");\r
                }\r
-               hourTable.setHTML(i, 1, "<span>" + text + "</span>");\r
-               hourTable.getCellFormatter().setStyleName(i, 1,\r
-                       getStyleName() + "-title");\r
            }\r
+           hourTable.setHTML(i, 1, "<span>" + text + "</span>");\r
+           hourTable.getCellFormatter().setStyleName(i, 1,\r
+                   CLASSNAME + "-title");\r
        }\r
 \r
     }\r
index 393b5733d404ae9224b72c7c6ff41c276c0fd01e..f2769090a0ac3b6af1e8525f91e74d833291b728 100644 (file)
@@ -24,7 +24,7 @@ select {
 \r
 .i-disabled {\r
        opacity: 0.3;\r
-       filter: alpha(opacity:30);\r
+       filter: Alpha(opacity=30);\r
 }\r
 \r
 .i-contextmenu {\r