]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fixes #3456: DateField rendered wrong in readonly mode
authorJouni Koivuviita <jouni.koivuviita@itmill.com>
Wed, 7 Oct 2009 06:46:26 +0000 (06:46 +0000)
committerJouni Koivuviita <jouni.koivuviita@itmill.com>
Wed, 7 Oct 2009 06:46:26 +0000 (06:46 +0000)
svn changeset:9121/svn branch:6.2

WebContent/VAADIN/themes/base/datefield/datefield.css
WebContent/VAADIN/themes/base/styles.css
WebContent/VAADIN/themes/base/textfield/textfield.css
WebContent/VAADIN/themes/reindeer/datefield/datefield.css
WebContent/VAADIN/themes/reindeer/styles.css
WebContent/VAADIN/themes/reindeer/textfield/textfield.css
WebContent/VAADIN/themes/runo/styles.css
src/com/vaadin/terminal/gwt/client/ui/VPopupCalendar.java
src/com/vaadin/terminal/gwt/client/ui/VTextualDate.java

index 05038aa7830312789815237e51309931a6f41560..1427ff2195e106ba3e55948e6b824ca1202aabd6 100644 (file)
@@ -7,6 +7,9 @@
 .v-datefield-button {
        cursor: pointer;
 }
+.v-readonly .v-datefield-button {
+       display: none;
+}
 .v-datefield-calendarpanel table {
        width: 100%;
 }
index 29be722503f701c25fe7cae09b5d4dc8a210fb19..93258c44fc12862ba8b24650268f972fe1491c88 100644 (file)
@@ -461,6 +461,9 @@ div.v-app-loading {
 .v-datefield-button {
        cursor: pointer;
 }
+.v-readonly .v-datefield-button {
+       display: none;
+}
 .v-datefield-calendarpanel table {
        width: 100%;
 }
@@ -1402,12 +1405,6 @@ textarea.v-textarea-prompt {
        color: #999;
        font-style: italic;
 }
-.v-textfield.v-readonly,
-.v-textarea.v-readonly {
-       background: transparent;
-       color: #222;
-       border: none;
-}
 .v-richtextarea {
        border: 1px solid #aaa;
        overflow: hidden;
index 097f6adab82607af21091caa5aad19510505a29f..b6209403b52a062dd78db7520841d03ffa0b6ebe 100644 (file)
@@ -11,12 +11,6 @@ textarea.v-textarea-prompt {
        color: #999;
        font-style: italic;
 }
-.v-textfield.v-readonly,
-.v-textarea.v-readonly {
-       background: transparent;
-       color: #222;
-       border: none;
-}
 .v-richtextarea {
        border: 1px solid #aaa;
        overflow: hidden;
index a2bf290326f6ccf2c778ade00aae80cf0a1e19e4..9abfde2676b299022358f9d67de3b45920530bc2 100644 (file)
@@ -213,7 +213,7 @@ td.v-datefield-calendarpanel-nextyear {
        padding: 8px 4px;
        border-radius: 3px;
        -webkit-border-radius: 3px;
-       -moz-border-radisu: 3px;
+       -moz-border-radius: 3px;
 }
 .v-sa .v-datefield-popup,
 .v-ff3 .v-datefield-popup,
@@ -233,20 +233,30 @@ td.v-datefield-calendarpanel-nextyear {
        width: 12em;
 }
 .v-datefield-popupcalendar .v-datefield-textfield {
-       border-right: none;
+       border-right-width: 0;
        height: 18px;
 }
-.v-ff .v-datefield-popupcalendar .v-datefield-textfield,
-.v-op .v-datefield-popupcalendar .v-datefield-textfield {
+.v-readonly .v-datefield-textfield {
+       border-right-width: 1px;
+}
+.v-ff .v-datefield-popupcalendar .v-datefield-textfield {
        border-radius-topright: 0;
        border-radius-bottomright: 0;
        -moz-border-radius-topright: 0;
        -moz-border-radius-bottomright: 0;
 }
+.v-ff .v-readonly .v-datefield-textfield {
+       border-radius: 3px;
+       -moz-border-radius: 3px;
+}
 .v-sa .v-datefield-popupcalendar .v-datefield-textfield,
 .v-ff35 .v-datefield-popupcalendar .v-datefield-textfield {
        border-width: 0 0 0 3px;
 }
+.v-sa .v-datefield-popupcalendar .v-textfield-readonly,
+.v-ff35 .v-datefield-popupcalendar .v-textfield-readonly {
+       border-width: 0 3px;
+}
 .v-datefield-popupcalendar .v-datefield-button {
        width: 24px;
        height: 23px;
index da13566aeccc8adcd92443a70d3941851234964e..88b8acccc4b113d3d9bb3721bcaee33f38428491 100644 (file)
@@ -461,6 +461,9 @@ div.v-app-loading {
 .v-datefield-button {
        cursor: pointer;
 }
+.v-readonly .v-datefield-button {
+       display: none;
+}
 .v-datefield-calendarpanel table {
        width: 100%;
 }
@@ -1402,12 +1405,6 @@ textarea.v-textarea-prompt {
        color: #999;
        font-style: italic;
 }
-.v-textfield.v-readonly,
-.v-textarea.v-readonly {
-       background: transparent;
-       color: #222;
-       border: none;
-}
 .v-richtextarea {
        border: 1px solid #aaa;
        overflow: hidden;
@@ -2600,7 +2597,7 @@ td.v-datefield-calendarpanel-nextyear {
        padding: 8px 4px;
        border-radius: 3px;
        -webkit-border-radius: 3px;
-       -moz-border-radisu: 3px;
+       -moz-border-radius: 3px;
 }
 .v-sa .v-datefield-popup,
 .v-ff3 .v-datefield-popup,
@@ -2620,20 +2617,30 @@ td.v-datefield-calendarpanel-nextyear {
        width: 12em;
 }
 .v-datefield-popupcalendar .v-datefield-textfield {
-       border-right: none;
+       border-right-width: 0;
        height: 18px;
 }
-.v-ff .v-datefield-popupcalendar .v-datefield-textfield,
-.v-op .v-datefield-popupcalendar .v-datefield-textfield {
+.v-readonly .v-datefield-textfield {
+       border-right-width: 1px;
+}
+.v-ff .v-datefield-popupcalendar .v-datefield-textfield {
        border-radius-topright: 0;
        border-radius-bottomright: 0;
        -moz-border-radius-topright: 0;
        -moz-border-radius-bottomright: 0;
 }
+.v-ff .v-readonly .v-datefield-textfield {
+       border-radius: 3px;
+       -moz-border-radius: 3px;
+}
 .v-sa .v-datefield-popupcalendar .v-datefield-textfield,
 .v-ff35 .v-datefield-popupcalendar .v-datefield-textfield {
        border-width: 0 0 0 3px;
 }
+.v-sa .v-datefield-popupcalendar .v-textfield-readonly,
+.v-ff35 .v-datefield-popupcalendar .v-textfield-readonly {
+       border-width: 0 3px;
+}
 .v-datefield-popupcalendar .v-datefield-button {
        width: 24px;
        height: 23px;
@@ -4394,20 +4401,6 @@ textarea.v-textarea-prompt {
        color: #5f6366;
 }
 
-/* Readonly */
-input.v-textfield-readonly,
-.v-sa input.v-textfield-readonly,
-.v-ff35 input.v-textfield-readonly,
-.black input.v-textfield-readonly,
-.v-sa .black input.v-textfield-readonly,
-.v-ff35 .black input.v-textfield-readonly {
-       border: none;
-       background: transparent;
-       -webkit-border-image: none;
-       -moz-border-image: none;
-       border-width: 0;
-}
-
 .v-tree-node {
        background: transparent url(tree/img/arrows.png) no-repeat 6px -10px;
        margin-bottom: 2px;
index 73434b902b659c63c7a3ef7f5998c5a1108a1345..129ebc13bc660711801816e1667e97ef708aeca9 100644 (file)
@@ -123,18 +123,4 @@ textarea.v-textarea-prompt {
 
 .black input.v-textfield-prompt {
        color: #5f6366;
-}
-
-/* Readonly */
-input.v-textfield-readonly,
-.v-sa input.v-textfield-readonly,
-.v-ff35 input.v-textfield-readonly,
-.black input.v-textfield-readonly,
-.v-sa .black input.v-textfield-readonly,
-.v-ff35 .black input.v-textfield-readonly {
-       border: none;
-       background: transparent;
-       -webkit-border-image: none;
-       -moz-border-image: none;
-       border-width: 0;
 }
\ No newline at end of file
index b4d79b92e587f31cdfd190a25e8b02bd09d2c0e8..ec5fcb2de1e2ae892dcf852c4cc89f7278ce1255 100644 (file)
@@ -461,6 +461,9 @@ div.v-app-loading {
 .v-datefield-button {
        cursor: pointer;
 }
+.v-readonly .v-datefield-button {
+       display: none;
+}
 .v-datefield-calendarpanel table {
        width: 100%;
 }
@@ -1402,12 +1405,6 @@ textarea.v-textarea-prompt {
        color: #999;
        font-style: italic;
 }
-.v-textfield.v-readonly,
-.v-textarea.v-readonly {
-       background: transparent;
-       color: #222;
-       border: none;
-}
 .v-richtextarea {
        border: 1px solid #aaa;
        overflow: hidden;
index 8143eb0ea979f464dcd9da9a88fb2551b8190b7a..413666b64465edd3d4e07613c4f966602c745ff0 100644 (file)
@@ -60,28 +60,7 @@ public class VPopupCalendar extends VTextualDate implements Paintable, Field,
         }\r
         calendarToggle.setEnabled(enabled);\r
 \r
-        handleReadonly();\r
-\r
-    }\r
-\r
-    private void handleReadonly() {\r
-        String currentDisplay = calendarToggle.getElement().getStyle()\r
-                .getProperty("display");\r
-        boolean currentReadonly = (currentDisplay != null && currentDisplay\r
-                .equals("none"));\r
-        if (currentReadonly != readonly) {\r
-            // We need to react only if the read-only status has changed\r
-            if (readonly) {\r
-                calendarToggle.getElement().getStyle().setProperty("display",\r
-                        "none");\r
-            } else {\r
-                calendarToggle.getElement().getStyle().setProperty("display",\r
-                        "");\r
-            }\r
-\r
-            // Force update of textfield size\r
-            updateWidth();\r
-        }\r
+        updateWidth();\r
 \r
     }\r
 \r
index 11f335e1527681070d889f954425d346b63b83b1..c1487f742bba81f0df057df2bb70c763d244709e 100644 (file)
@@ -82,6 +82,12 @@ public class VTextualDate extends VDateField implements Paintable, Field,
         if (uidl.hasAttribute("tabindex")) {\r
             text.setTabIndex(uidl.getIntAttribute("tabindex"));\r
         }\r
+\r
+        if (readonly) {\r
+            text.addStyleDependentName("readonly");\r
+        } else {\r
+            text.removeStyleDependentName("readonly");\r
+        }\r
     }\r
 \r
     protected String getFormatString() {\r
@@ -141,7 +147,8 @@ public class VTextualDate extends VDateField implements Paintable, Field,
         }\r
 \r
         text.setText(dateText);\r
-        text.setEnabled(enabled && !readonly);\r
+        text.setEnabled(enabled);\r
+        text.setReadOnly(readonly);\r
 \r
         if (readonly) {\r
             text.addStyleName("v-readonly");\r