diff options
61 files changed, 1875 insertions, 1704 deletions
diff --git a/WebContent/VAADIN/themes/base/accordion/accordion.scss b/WebContent/VAADIN/themes/base/accordion/accordion.scss index 6f4825f16b..833060ade8 100644 --- a/WebContent/VAADIN/themes/base/accordion/accordion.scss +++ b/WebContent/VAADIN/themes/base/accordion/accordion.scss @@ -3,7 +3,7 @@ .v-accordion { position: relative; outline: none; - overflow: hidden; + overflow: visible; text-align: left; /* Force default alignment */ } .v-accordion-item { @@ -11,7 +11,7 @@ zoom: 1; } .v-accordion-item-caption { - overflow: hidden; + overflow: visible; white-space: nowrap; background: #eee; border-bottom: 1px solid #ddd; diff --git a/WebContent/VAADIN/themes/base/base.scss b/WebContent/VAADIN/themes/base/base.scss index 42047e9af5..a16b063ba8 100644 --- a/WebContent/VAADIN/themes/base/base.scss +++ b/WebContent/VAADIN/themes/base/base.scss @@ -47,16 +47,6 @@ overflow: hidden; } -/* Temporarily moved here to make drag'n'drop work before #10384 is fixed */ -.v-drag-element { - z-index: 60000; - /* override any other position: properties */ - position: absolute !important; - opacity: 0.5; - filter: alpha(opacity=50); - cursor: default; -} - @mixin base { // @include base-app; diff --git a/WebContent/VAADIN/themes/base/common/common.scss b/WebContent/VAADIN/themes/base/common/common.scss index 9162e64a89..ac9154d2dc 100644 --- a/WebContent/VAADIN/themes/base/common/common.scss +++ b/WebContent/VAADIN/themes/base/common/common.scss @@ -204,6 +204,15 @@ body &.v-app-loading { padding: 2px; } +.v-drag-element { + z-index: 60000; + /* override any other position: properties */ + position: absolute !important; + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} + .v-clip { overflow: hidden; } diff --git a/WebContent/VAADIN/themes/chameleon/chameleon.scss b/WebContent/VAADIN/themes/chameleon/chameleon.scss index 855c9d19e1..8a24a73cbf 100644 --- a/WebContent/VAADIN/themes/chameleon/chameleon.scss +++ b/WebContent/VAADIN/themes/chameleon/chameleon.scss @@ -3,14 +3,6 @@ @import "components/components.scss"; @import "compound/compound.scss"; -/* Temporarily moved here to make drag'n'drop work before #10384 is fixed */ -.v-drag-element { - font-family: $chameleon-font-family; - font-size: $chameleon-font-size; - line-height: $chameleon-line-height; - color: #222; -} - @mixin chameleon { // TODO move this? @include base; diff --git a/WebContent/VAADIN/themes/chameleon/common/common.scss b/WebContent/VAADIN/themes/chameleon/common/common.scss index ab4651033e..050d100673 100644 --- a/WebContent/VAADIN/themes/chameleon/common/common.scss +++ b/WebContent/VAADIN/themes/chameleon/common/common.scss @@ -70,7 +70,8 @@ $chameleon-line-height: 1.4; .v-Notification, .v-menubar-submenu, .v-table-header-drag, - .v-menubar-submenu { + .v-menubar-submenu, + .v-drag-element { font-family: $chameleon-font-family; font-size: $chameleon-font-size; line-height: $chameleon-line-height; diff --git a/WebContent/VAADIN/themes/chameleon/components/accordion/accordion.scss b/WebContent/VAADIN/themes/chameleon/components/accordion/accordion.scss index f33577db9e..2fe0307fe0 100644 --- a/WebContent/VAADIN/themes/chameleon/components/accordion/accordion.scss +++ b/WebContent/VAADIN/themes/chameleon/components/accordion/accordion.scss @@ -1,31 +1,31 @@ -@mixin chameleon-accordion { +@mixin chameleon-accordion($primaryStyleName : v-accordion) { -.v-accordion { +.#{$primaryStyleName} { border: 1px solid #b3b3b3; } -.v-accordion-item-open { +.#{$primaryStyleName}-item-open { border-bottom: 1px solid #b3b3be; } -.v-accordion-item-caption, -.v-accordion-item-open .v-accordion-item-caption:active { +.#{$primaryStyleName}-item-caption, +.#{$primaryStyleName}-item-open .#{$primaryStyleName}-item-caption:active { padding: 0; background: transparent url(../../img/grad-light-top.png) repeat-x; border-width: 0 0 1px 0; border-style: solid none; } -div.v-accordion-item-caption, -div.v-accordion-item-open .v-accordion-item-caption:active { +div.#{$primaryStyleName}-item-caption, +div.#{$primaryStyleName}-item-open .#{$primaryStyleName}-item-caption:active { background-color: transparent; } -.v-accordion-item-caption .v-caption { +.#{$primaryStyleName}-item-caption .v-caption { padding: .2em .9em; } -.v-accordion-item-caption:active { +.#{$primaryStyleName}-item-caption:active { background-image: url(../../img/grad-dark-bottom.png); background-position: left bottom; } @@ -33,28 +33,28 @@ div.v-accordion-item-open .v-accordion-item-caption:active { /******************************************************************************* * Opaque ******************************************************************************/ -.v-accordion-opaque { +.#{$primaryStyleName}-opaque { border-radius: 4px; -webkit-border-radius: 4px; -moz-border-radius: 4px; } -.v-accordion-opaque .v-accordion-item-caption, -.v-accordion-opaque .v-accordion-item-open { +.#{$primaryStyleName}-opaque .#{$primaryStyleName}-item-caption, +.#{$primaryStyleName}-opaque .#{$primaryStyleName}-item-open { border: none; } -.v-accordion-opaque .v-accordion-item-caption, -.v-accordion-opaque .v-accordion-item-open .v-accordion-item-caption:active { +.#{$primaryStyleName}-opaque .#{$primaryStyleName}-item-caption, +.#{$primaryStyleName}-opaque .#{$primaryStyleName}-item-open .#{$primaryStyleName}-item-caption:active { background-color: #b8b8b8; } -.v-accordion-opaque .v-accordion-item-open { +.#{$primaryStyleName}-opaque .#{$primaryStyleName}-item-open { background-color: #fff; } -.v-accordion-opaque .v-accordion-item-first, -.v-accordion-opaque .v-accordion-item-first .v-accordion-item-caption { +.#{$primaryStyleName}-opaque .#{$primaryStyleName}-item-first, +.#{$primaryStyleName}-opaque .#{$primaryStyleName}-item-first .#{$primaryStyleName}-item-caption { -webkit-border-top-left-radius: 3px; -webkit-border-top-right-radius: 3px; -moz-border-radius-topleft: 3px; @@ -66,12 +66,12 @@ div.v-accordion-item-open .v-accordion-item-caption:active { /******************************************************************************* * Borderless ******************************************************************************/ -.v-accordion-borderless { +.#{$primaryStyleName}-borderless { border: none; } -.v-accordion-opaque.borderless, -.v-accordion-opaque.borderless .v-accordion-item-first .v-accordion-item-caption { +.#{$primaryStyleName}-opaque.borderless, +.#{$primaryStyleName}-opaque.borderless .#{$primaryStyleName}-item-first .#{$primaryStyleName}-item-caption { border-radius: 0; -webkit-border-radius: 0; -moz-border-radius: 0; diff --git a/WebContent/VAADIN/themes/chameleon/components/button/button.scss b/WebContent/VAADIN/themes/chameleon/components/button/button.scss index 28d96991a7..75970cdac7 100644 --- a/WebContent/VAADIN/themes/chameleon/components/button/button.scss +++ b/WebContent/VAADIN/themes/chameleon/components/button/button.scss @@ -1,15 +1,15 @@ -@mixin chameleon-button { +@mixin chameleon-button($primaryStyleName : v-button) { -.v-button:active, -.v-ie8 & .v-pressed.v-button, -div.v-button-down { +.#{$primaryStyleName}:active, +.v-ie8 & .v-pressed.#{$primaryStyleName}, +div.#{$primaryStyleName}-down { background-image: url(../../img/grad-dark-bottom2.png); background-color: #afafaf; } -.v-button:active .v-button-wrap, -.v-ie8 & .v-pressed.v-button .v-button-wrap, -.v-button-down .v-button-wrap { +.#{$primaryStyleName}:active .#{$primaryStyleName}-wrap, +.v-ie8 & .v-pressed.#{$primaryStyleName} .#{$primaryStyleName}-wrap, +.#{$primaryStyleName}-down .#{$primaryStyleName}-wrap { background-image: url(../../img/grad-dark-top2.png); border: 1px solid #888; padding: 3px 12px; @@ -18,17 +18,17 @@ div.v-button-down { -moz-border-radius: 2px; } -div.v-button-down .v-button-wrap { +div.#{$primaryStyleName}-down .#{$primaryStyleName}-wrap { background-image: url(../../img/grad-dark-top2.png); } -.v-button { +.#{$primaryStyleName} { overflow: hidden; } -.v-button, -.v-disabled.v-button:focus, -.v-disabled.v-button:active { +.#{$primaryStyleName}, +.v-disabled.#{$primaryStyleName}:focus, +.v-disabled.#{$primaryStyleName}:active { border: 1px solid #8b8b8b; background: #c9c9c9; border-radius: 3px; @@ -41,8 +41,8 @@ div.v-button-down .v-button-wrap { padding: 0; } -.v-button-wrap, -.v-disabled:active .v-button-wrap { +.#{$primaryStyleName}-wrap, +.v-disabled:active .#{$primaryStyleName}-wrap { display: block; padding: 4px 13px; border: none; @@ -55,22 +55,22 @@ div.v-button-down .v-button-wrap { -ms-text-overflow: ellipsis; } -.v-sa & .v-button, -.v-sa & .v-button-wrap, -.v-ff & .v-button, -.v-ff & .v-button-wrap { +.v-sa & .#{$primaryStyleName}, +.v-sa & .#{$primaryStyleName}-wrap, +.v-ff & .#{$primaryStyleName}, +.v-ff & .#{$primaryStyleName}-wrap { overflow: hidden; } -.v-button:focus { +.#{$primaryStyleName}:focus { outline: none; } -.v-button .v-icon { +.#{$primaryStyleName} .v-icon { margin-left: -0.5em; } -.v-button .v-button-caption { +.#{$primaryStyleName} .#{$primaryStyleName}-caption { line-height: 1.26; } @@ -78,7 +78,7 @@ div.v-button-down .v-button-wrap { /******************************************************************************* * Big ******************************************************************************/ -.v-button-big { +.#{$primaryStyleName}-big { font-size: 1.2em; } @@ -86,22 +86,22 @@ div.v-button-down .v-button-wrap { /******************************************************************************* * Small ******************************************************************************/ -.v-button-small { +.#{$primaryStyleName}-small { font-size: 0.85em; font-weight: normal; } -.v-button-small .v-button-wrap { +.#{$primaryStyleName}-small .#{$primaryStyleName}-wrap { padding: 3px 11px; } -.v-button-small:active .v-button-wrap, -.v-ie8 & .v-button-small.v-pressed .v-button-wrap, -.v-button-down.small .v-button-wrap { +.#{$primaryStyleName}-small:active .#{$primaryStyleName}-wrap, +.v-ie8 & .#{$primaryStyleName}-small.v-pressed .#{$primaryStyleName}-wrap, +.#{$primaryStyleName}-down.small .#{$primaryStyleName}-wrap { padding: 2px 10px; } -.v-button-small .v-icon { +.#{$primaryStyleName}-small .v-icon { margin-top: -4px; margin-bottom: -4px; } @@ -110,13 +110,13 @@ div.v-button-down .v-button-wrap { /******************************************************************************* * Wide ******************************************************************************/ -.v-button-wide .v-button-wrap { +.#{$primaryStyleName}-wide .#{$primaryStyleName}-wrap { padding-left: 26px; padding-right: 26px; } -.v-button-wide:active .v-button-wrap, -.v-ie8 & .v-button-wide.v-pressed .v-button-wrap { +.#{$primaryStyleName}-wide:active .#{$primaryStyleName}-wrap, +.v-ie8 & .#{$primaryStyleName}-wide.v-pressed .#{$primaryStyleName}-wrap { padding-left: 25px; padding-right: 25px; } @@ -125,13 +125,13 @@ div.v-button-down .v-button-wrap { /******************************************************************************* * Tall ******************************************************************************/ -.v-button-tall .v-button-wrap { +.#{$primaryStyleName}-tall .#{$primaryStyleName}-wrap { padding-top: 13px; padding-bottom: 13px; } -.v-button-tall:active .v-button-wrap, -.v-ie8 & .v-button-tall.v-pressed .v-button-wrap { +.#{$primaryStyleName}-tall:active .#{$primaryStyleName}-wrap, +.v-ie8 & .#{$primaryStyleName}-tall.v-pressed .#{$primaryStyleName}-wrap { padding-top: 12px; padding-bottom: 12px; } @@ -140,8 +140,8 @@ div.v-button-down .v-button-wrap { /******************************************************************************* * Default ******************************************************************************/ -.v-button-default, -.v-disabled.v-button-default:focus { +.#{$primaryStyleName}-default, +.v-disabled.#{$primaryStyleName}-default:focus { font-weight: bold; } @@ -149,18 +149,18 @@ div.v-button-down .v-button-wrap { /******************************************************************************* * Link & borderless ******************************************************************************/ -div.v-button-link, -div.v-button-link:focus, -.v-button-link:active, -div.v-disabled.v-button-link, -div.v-disabled.v-button-link:focus, -body.v-ie & .v-pressed.v-button-link, -div.v-button-borderless, -div.v-button-borderless:focus, -.v-button-borderless:active, -div.v-disabled.v-button-borderless, -div.v-disabled.v-button-borderless:focus, -body.v-ie & .v-pressed.v-button-borderless { +div.#{$primaryStyleName}-link, +div.#{$primaryStyleName}-link:focus, +.#{$primaryStyleName}-link:active, +div.v-disabled.#{$primaryStyleName}-link, +div.v-disabled.#{$primaryStyleName}-link:focus, +body.v-ie & .v-pressed.#{$primaryStyleName}-link, +div.#{$primaryStyleName}-borderless, +div.#{$primaryStyleName}-borderless:focus, +.#{$primaryStyleName}-borderless:active, +div.v-disabled.#{$primaryStyleName}-borderless, +div.v-disabled.#{$primaryStyleName}-borderless:focus, +body.v-ie & .v-pressed.#{$primaryStyleName}-borderless { background: transparent; font-weight: normal; text-shadow: none; @@ -170,23 +170,23 @@ body.v-ie & .v-pressed.v-button-borderless { -moz-box-shadow: none; } -.v-button-link .v-button-wrap, -.v-button-borderless .v-button-wrap { +.#{$primaryStyleName}-link .#{$primaryStyleName}-wrap, +.#{$primaryStyleName}-borderless .#{$primaryStyleName}-wrap { display: inline; } -div.v-button-link .v-button-wrap, -div.v-button-link:focus .v-button-wrap, -.v-button-link:active .v-button-wrap, -div.v-disabled.v-button-link .v-button-wrap, -div.v-disabled.v-button-link:focus .v-button-wrap, -body.v-ie & .v-pressed.v-button-link .v-button-wrap, -div.v-button-borderless .v-button-wrap, -div.v-button-borderless:focus .v-button-wrap, -.v-button-borderless:active .v-button-wrap, -div.v-disabled.v-button-borderless .v-button-wrap, -div.v-disabled.v-button-borderless:focus .v-button-wrap, -body.v-ie & .v-pressed.v-button-borderless .v-button-wrap { +div.#{$primaryStyleName}-link .#{$primaryStyleName}-wrap, +div.#{$primaryStyleName}-link:focus .#{$primaryStyleName}-wrap, +.#{$primaryStyleName}-link:active .#{$primaryStyleName}-wrap, +div.v-disabled.#{$primaryStyleName}-link .#{$primaryStyleName}-wrap, +div.v-disabled.#{$primaryStyleName}-link:focus .#{$primaryStyleName}-wrap, +body.v-ie & .v-pressed.#{$primaryStyleName}-link .#{$primaryStyleName}-wrap, +div.#{$primaryStyleName}-borderless .#{$primaryStyleName}-wrap, +div.#{$primaryStyleName}-borderless:focus .#{$primaryStyleName}-wrap, +.#{$primaryStyleName}-borderless:active .#{$primaryStyleName}-wrap, +div.v-disabled.#{$primaryStyleName}-borderless .#{$primaryStyleName}-wrap, +div.v-disabled.#{$primaryStyleName}-borderless:focus .#{$primaryStyleName}-wrap, +body.v-ie & .v-pressed.#{$primaryStyleName}-borderless .#{$primaryStyleName}-wrap { background: transparent; font-weight: normal; text-shadow: none; @@ -196,24 +196,24 @@ body.v-ie & .v-pressed.v-button-borderless .v-button-wrap { -moz-box-shadow: none; } -.v-button-link:focus .v-button-caption, -.v-button-borderless:focus .v-button-caption { +.#{$primaryStyleName}-link:focus .#{$primaryStyleName}-caption, +.#{$primaryStyleName}-borderless:focus .#{$primaryStyleName}-caption { border: 1px dotted gray; margin: -1px; } -.v-button-link:active .v-button-caption, -.v-button-borderless:active .v-button-caption { +.#{$primaryStyleName}-link:active .#{$primaryStyleName}-caption, +.#{$primaryStyleName}-borderless:active .#{$primaryStyleName}-caption { border: none; margin: 0; } -.v-button-borderless:active .v-icon { +.#{$primaryStyleName}-borderless:active .v-icon { opacity: .6; } -.v-button-link .v-icon, -.v-button-borderless .v-icon { +.#{$primaryStyleName}-link .v-icon, +.#{$primaryStyleName}-borderless .v-icon { margin-left: 0; } @@ -221,18 +221,18 @@ body.v-ie & .v-pressed.v-button-borderless .v-button-wrap { /******************************************************************************* * Icon-on-top ******************************************************************************/ -.v-button-icon-on-top.v-button-borderless:focus .v-button-caption { +.#{$primaryStyleName}-icon-on-top.#{$primaryStyleName}-borderless:focus .#{$primaryStyleName}-caption { margin-top: 1px; } -.v-button-icon-on-top .v-button-caption, -.v-button-icon-on-top:focus .v-button-caption, -.v-button-icon-on-top.v-button-borderless:active .v-button-caption { +.#{$primaryStyleName}-icon-on-top .#{$primaryStyleName}-caption, +.#{$primaryStyleName}-icon-on-top:focus .#{$primaryStyleName}-caption, +.#{$primaryStyleName}-icon-on-top.#{$primaryStyleName}-borderless:active .#{$primaryStyleName}-caption { display: block; margin-top: 2px; } -.v-button-icon-on-top .v-icon { +.#{$primaryStyleName}-icon-on-top .v-icon { margin: 0; } @@ -240,7 +240,7 @@ body.v-ie & .v-pressed.v-button-borderless .v-button-wrap { /******************************************************************************* * Icon-on-right ******************************************************************************/ -.v-button-icon-on-right .v-icon { +.#{$primaryStyleName}-icon-on-right .v-icon { float: right; margin-left: 3px; margin-right: -0.5em; @@ -250,11 +250,11 @@ body.v-ie & .v-pressed.v-button-borderless .v-button-wrap { /******************************************************************************* * Icon-only ******************************************************************************/ -.v-button-icon-only .v-button-caption { +.#{$primaryStyleName}-icon-only .#{$primaryStyleName}-caption { display: none; } -.v-button-icon-only .v-icon { +.#{$primaryStyleName}-icon-only .v-icon { margin-right: -.5em; } diff --git a/WebContent/VAADIN/themes/chameleon/components/label/label.scss b/WebContent/VAADIN/themes/chameleon/components/label/label.scss index a1c75ad2f1..5952ee2802 100644 --- a/WebContent/VAADIN/themes/chameleon/components/label/label.scss +++ b/WebContent/VAADIN/themes/chameleon/components/label/label.scss @@ -1,40 +1,40 @@ -@mixin chameleon-label { +@mixin chameleon-label($primaryStyleName : v-label) { /******************************************************************************* * Different headers ******************************************************************************/ -.v-label-h1, -.v-label h1, -.v-label-h2, -.v-label h2, -.v-label-h3, -.v-label h3, -.v-label-h4, -.v-label h4 { +.#{$primaryStyleName}-h1, +.#{$primaryStyleName} h1, +.#{$primaryStyleName}-h2, +.#{$primaryStyleName} h2, +.#{$primaryStyleName}-h3, +.#{$primaryStyleName} h3, +.#{$primaryStyleName}-h4, +.#{$primaryStyleName} h4 { margin: 0; font-weight: bold; } -.v-label-h1, -.v-label h1 { +.#{$primaryStyleName}-h1, +.#{$primaryStyleName} h1 { padding: .75em 0 .5em 0; font-size: 1.85em; } -.v-label-h2, -.v-label h2 { +.#{$primaryStyleName}-h2, +.#{$primaryStyleName} h2 { padding: .67em 0 .33em 0; font-size: 1.4em; } -.v-label-h3, -.v-label h3 { +.#{$primaryStyleName}-h3, +.#{$primaryStyleName} h3 { margin: .71em 0 .29em 0; font-size: 1.1em; } -.v-label-h4, -.v-label h4 { +.#{$primaryStyleName}-h4, +.#{$primaryStyleName} h4 { padding: .23em 0; font-size: 1em; } @@ -43,7 +43,7 @@ /******************************************************************************* * Big ******************************************************************************/ -.v-label-big { +.#{$primaryStyleName}-big { font-size: 1.2em; } @@ -51,7 +51,7 @@ /******************************************************************************* * Small ******************************************************************************/ -.v-label-small { +.#{$primaryStyleName}-small { font-size: 0.9em; line-height: 1.3; opacity: .8; @@ -62,7 +62,7 @@ /******************************************************************************* * Tiny ******************************************************************************/ -.v-label-tiny { +.#{$primaryStyleName}-tiny { font-size: 0.85em; line-height: 1.2; opacity: .7; @@ -73,8 +73,8 @@ /******************************************************************************* * Warning & error ******************************************************************************/ -&.v-app .v-label-warning, -&.v-app .v-label-error { +&.v-app .#{$primaryStyleName}-warning, +&.v-app .#{$primaryStyleName}-error { color: #574734; background: #fffec8 url(../../img/label-warning-icon.png) no-repeat .2em 50%; white-space: nowrap; @@ -87,7 +87,7 @@ text-shadow: none; } -&.v-app .v-label-error { +&.v-app .#{$primaryStyleName}-error { color: #fff; font-weight: bold; background: #c22f24 url(../../img/label-error-icon.png) no-repeat .2em 50%; @@ -98,14 +98,14 @@ /******************************************************************************* * Big warning & big error ******************************************************************************/ -.v-label-big.v-label-warning, -.v-label-big.v-label-error { +.#{$primaryStyleName}-big.#{$primaryStyleName}-warning, +.#{$primaryStyleName}-big.#{$primaryStyleName}-error { background-image: url(../../img/label-warning-icon-big.png); background-position: 0 50%; padding: .5em 1em .5em 3em; } -.v-label-big.v-label-error { +.#{$primaryStyleName}-big.#{$primaryStyleName}-error { background-image: url(../../img/label-error-icon-big.png); } @@ -113,7 +113,7 @@ /******************************************************************************* * Loading ******************************************************************************/ -&.v-app .v-label-loading { +&.v-app .#{$primaryStyleName}-loading { height: 32px; line-height: 32px; background-image: url(../../../base/common/img/loading-indicator.gif); diff --git a/WebContent/VAADIN/themes/chameleon/components/menubar/menubar.scss b/WebContent/VAADIN/themes/chameleon/components/menubar/menubar.scss index 55ade4c060..b2cba85067 100644 --- a/WebContent/VAADIN/themes/chameleon/components/menubar/menubar.scss +++ b/WebContent/VAADIN/themes/chameleon/components/menubar/menubar.scss @@ -1,26 +1,26 @@ -@mixin chameleon-menubar { +@mixin chameleon-menubar($primaryStyleName : v-menubar) { -.v-menubar { +.#{$primaryStyleName} { padding: 0 .4em; background: #c9c9c9 url(../../img/grad-light-top.png) repeat-x; border: 1px solid #b3b3b3; border-width: 1px 0; } -.v-menubar .v-menubar-menuitem { +.#{$primaryStyleName} .#{$primaryStyleName}-menuitem { padding: .2em .5em; line-height: normal; } -.v-menubar-submenu .v-menubar-menuitem { +.#{$primaryStyleName}-submenu .#{$primaryStyleName}-menuitem { padding-right:1.5em; } -.v-menubar-submenu .v-menubar-submenu-indicator { +.#{$primaryStyleName}-submenu .#{$primaryStyleName}-submenu-indicator { margin-top: .1em; } -.v-menubar-submenu .v-menubar-menuitem-selected { +.#{$primaryStyleName}-submenu .#{$primaryStyleName}-menuitem-selected { background-image: url(../../img/grad-light-top2.png); background-position: 0 -1px; } diff --git a/WebContent/VAADIN/themes/chameleon/components/notification/notification.scss b/WebContent/VAADIN/themes/chameleon/components/notification/notification.scss index 020c29ed09..1218b476f5 100644 --- a/WebContent/VAADIN/themes/chameleon/components/notification/notification.scss +++ b/WebContent/VAADIN/themes/chameleon/components/notification/notification.scss @@ -1,6 +1,6 @@ -@mixin chameleon-notification { +@mixin chameleon-notification($primaryStyleName : v-Notification) { -div.v-Notification { +div.#{$primaryStyleName} { -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; @@ -10,34 +10,34 @@ div.v-Notification { box-shadow: 0 2px 5px rgba(0,0,0,.7); } -.v-Notification p { +.#{$primaryStyleName} p { line-height: 1.3; } -div.v-Notification-warning { +div.#{$primaryStyleName}-warning { background-color: #fffec8; color: #574734; border: 2px solid #fee3af; } -div.v-Notification-warning h1 { +div.#{$primaryStyleName}-warning h1 { padding-left: 44px; background: transparent url(../../img/label-warning-icon-big.png) no-repeat 0 50%; } -div.v-Notification-error { +div.#{$primaryStyleName}-error { color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.3); background: #c22f24 url(../../img/error-close.png) no-repeat right top; border: 2px solid #ca3030; } -div.v-Notification-error h1 { +div.#{$primaryStyleName}-error h1 { padding-left: 44px; background: transparent url(../../img/label-error-icon-big.png) no-repeat 0 50%; } -div.v-Notification-tray { +div.#{$primaryStyleName}-tray { color: #fff; margin: 0 5px 5px 0; background: #3b3b3b url(../../img/grad-light-top2.png) repeat-x; @@ -49,17 +49,17 @@ div.v-Notification-tray { text-shadow: 0 1px 1px rgba(0,0,0,.5); } -.v-Notification-tray h1 { +.#{$primaryStyleName}-tray h1 { font-size: 14px; line-height: 18px; } -.v-Notification-tray p { +.#{$primaryStyleName}-tray p { font-size: 12px; font-weight: normal; } -div.v-Notification-system { +div.#{$primaryStyleName}-system { color: #fff; border: none; background-color: #b40000; diff --git a/WebContent/VAADIN/themes/chameleon/components/panel/panel.scss b/WebContent/VAADIN/themes/chameleon/components/panel/panel.scss index 88b3d7b804..bc6a8f555c 100644 --- a/WebContent/VAADIN/themes/chameleon/components/panel/panel.scss +++ b/WebContent/VAADIN/themes/chameleon/components/panel/panel.scss @@ -1,6 +1,6 @@ -@mixin chameleon-panel { +@mixin chameleon-panel($primaryStyleName : v-panel) { -.v-panel-caption { +.#{$primaryStyleName}-caption { background: #b9dcff; font-size: 1.2em; border: 1px solid #b3b3b3; @@ -8,21 +8,21 @@ padding: .2em .6em; } -.v-panel-nocaption { +.#{$primaryStyleName}-nocaption { padding: 0; height: 0; overflow: hidden; border-top: 1px solid #b3b3b3; } -.v-panel-content { +.#{$primaryStyleName}-content { background: #fff; border: 1px solid #b3b3b3; border-top: none; border-bottom: none; } -.v-panel-deco { +.#{$primaryStyleName}-deco { height: 0; overflow: hidden; border-top: 1px solid #b3b3b3; @@ -32,13 +32,13 @@ /******************************************************************************* * Borderless ******************************************************************************/ -div.v-panel-caption-borderless { +div.#{$primaryStyleName}-caption-borderless { border: none; } -div.v-panel-nocaption-borderless, -div.v-panel-content-borderless, -div.v-panel-deco-borderless { +div.#{$primaryStyleName}-nocaption-borderless, +div.#{$primaryStyleName}-content-borderless, +div.#{$primaryStyleName}-deco-borderless { border: none; background: transparent; } @@ -47,13 +47,13 @@ div.v-panel-deco-borderless { /******************************************************************************* * Light ******************************************************************************/ -.v-panel-light .v-panel-caption-light { +.#{$primaryStyleName}-light .#{$primaryStyleName}-caption-light { background: transparent; font-weight: normal; border-bottom: 1px solid #b3b3b3; } -div.v-panel-content-light { +div.#{$primaryStyleName}-content-light { background: transparent; } @@ -61,7 +61,7 @@ div.v-panel-content-light { /******************************************************************************* * Bubble ******************************************************************************/ -.v-panel-bubble .v-panel-captionwrap { +.#{$primaryStyleName}-bubble .#{$primaryStyleName}-captionwrap { border: 1px solid #b3b3b3; border-bottom: none; background: #fff; @@ -73,7 +73,7 @@ div.v-panel-content-light { overflow: hidden; } -.v-panel-bubble .v-panel-caption-bubble { +.#{$primaryStyleName}-bubble .#{$primaryStyleName}-caption-bubble { border: none; background-image: url(../../img/grad-light-top.png); background-repeat: repeat-x; @@ -89,13 +89,13 @@ div.v-panel-content-light { padding: .3em .6em; } -.v-panel-nocaption-bubble { +.#{$primaryStyleName}-nocaption-bubble { padding: 0; margin: 0; border: none; } -.v-panel-deco-bubble { +.#{$primaryStyleName}-deco-bubble { height: 2px; border: 1px solid #b3b3b3; border-top: none; @@ -110,14 +110,14 @@ div.v-panel-content-light { /******************************************************************************* * Borderless Bubble ******************************************************************************/ -div.v-panel-borderless .v-panel-captionwrap, -div.v-panel-borderless .v-panel-deco-bubble { +div.#{$primaryStyleName}-borderless .#{$primaryStyleName}-captionwrap, +div.#{$primaryStyleName}-borderless .#{$primaryStyleName}-deco-bubble { border: none; padding: 0; background: transparent; } -div.v-panel-borderless .v-panel-content-bubble { +div.#{$primaryStyleName}-borderless .#{$primaryStyleName}-content-bubble { background: transparent; } diff --git a/WebContent/VAADIN/themes/chameleon/components/popupview/popupview.scss b/WebContent/VAADIN/themes/chameleon/components/popupview/popupview.scss index 88e13cb46d..978ca56391 100644 --- a/WebContent/VAADIN/themes/chameleon/components/popupview/popupview.scss +++ b/WebContent/VAADIN/themes/chameleon/components/popupview/popupview.scss @@ -1,6 +1,6 @@ -@mixin chameleon-popupview { +@mixin chameleon-popupview($primaryStyleName : v-popupview) { -.v-popupview-popup { +.#{$primaryStyleName}-popup { padding: .3em .4em; } diff --git a/WebContent/VAADIN/themes/chameleon/components/progressindicator/progressindicator.scss b/WebContent/VAADIN/themes/chameleon/components/progressindicator/progressindicator.scss index 6bacf31e3e..56eb2cc6c9 100644 --- a/WebContent/VAADIN/themes/chameleon/components/progressindicator/progressindicator.scss +++ b/WebContent/VAADIN/themes/chameleon/components/progressindicator/progressindicator.scss @@ -1,6 +1,6 @@ -@mixin chameleon-progressindicator { +@mixin chameleon-progressindicator($primaryStyleName : v-progressindicator) { -.v-progressindicator-wrapper { +.#{$primaryStyleName}-wrapper { border-radius: 2px; -webkit-border-radius: 2px; -moz-border-radius: 2px; @@ -10,7 +10,7 @@ line-height: 1px; } -.v-progressindicator-indicator { +.#{$primaryStyleName}-indicator { border-radius: 2px; -webkit-border-radius: 2px; -moz-border-radius: 2px; @@ -24,12 +24,12 @@ /******************************************************************************* * Small ******************************************************************************/ -.v-progressindicator-small { +.#{$primaryStyleName}-small { width: 110px; } -.v-progressindicator-small .v-progressindicator-wrapper, -.v-progressindicator-small .v-progressindicator-indicator { +.#{$primaryStyleName}-small .#{$primaryStyleName}-wrapper, +.#{$primaryStyleName}-small .#{$primaryStyleName}-indicator { height: 2px; border-radius: 1px; -webkit-border-radius: 1px; @@ -40,12 +40,12 @@ /******************************************************************************* * Big ******************************************************************************/ -.v-progressindicator-big { +.#{$primaryStyleName}-big { width: 250px; } -.v-progressindicator-big .v-progressindicator-wrapper, -.v-progressindicator-big .v-progressindicator-indicator { +.#{$primaryStyleName}-big .#{$primaryStyleName}-wrapper, +.#{$primaryStyleName}-big .#{$primaryStyleName}-indicator { height: 14px; border-radius: 4px; -webkit-border-radius: 4px; @@ -56,17 +56,17 @@ /******************************************************************************* * Indeterminates ******************************************************************************/ -.v-progressindicator-indeterminate.v-progressindicator-big { +.#{$primaryStyleName}-indeterminate.#{$primaryStyleName}-big { width: 42px; height: 42px; background: #fff url(../../../base/common/img/ajax-loader-big.gif) no-repeat 50%; } -.v-progressindicator-indeterminate.v-disabled { +.#{$primaryStyleName}-indeterminate.v-disabled { display: none; } -.v-progressindicator-indeterminate.v-progressindicator-bar { +.#{$primaryStyleName}-indeterminate.#{$primaryStyleName}-bar { display: block; width: 150px; height: 9px; @@ -75,17 +75,17 @@ -moz-border-radius: 2px; } -.v-progressindicator-indeterminate.bar.v-progressindicator-small { +.#{$primaryStyleName}-indeterminate.bar.#{$primaryStyleName}-small { width: 110px; height: 4px; } -.v-progressindicator-indeterminate.bar.v-progressindicator-big { +.#{$primaryStyleName}-indeterminate.bar.#{$primaryStyleName}-big { width: 200px; height: 16px; } -.v-progressindicator-indeterminate.bar .v-progressindicator-wrapper { +.#{$primaryStyleName}-indeterminate.bar .#{$primaryStyleName}-wrapper { display: block; background: #fff url(../../img/indeterminate-progress.gif); border-radius: 3px; @@ -94,7 +94,7 @@ overflow: hidden; } -.v-progressindicator-indeterminate.bar .v-progressindicator-indicator { +.#{$primaryStyleName}-indeterminate.bar .#{$primaryStyleName}-indicator { display: block; background: transparent url(../../img/grad-light-top.png) repeat-x; border: none; @@ -105,11 +105,11 @@ overflow: hidden; } -.v-progressindicator-indeterminate.bar.v-progressindicator-small .v-progressindicator-indicator { +.#{$primaryStyleName}-indeterminate.bar.#{$primaryStyleName}-small .#{$primaryStyleName}-indicator { background: transparent; } -.v-progressindicator-indeterminate.bar.v-disabled .v-progressindicator-indicator { +.#{$primaryStyleName}-indeterminate.bar.v-disabled .#{$primaryStyleName}-indicator { background: #fff; } diff --git a/WebContent/VAADIN/themes/chameleon/components/selects/selects.scss b/WebContent/VAADIN/themes/chameleon/components/selects/selects.scss index bc0d75e35b..7810e818bf 100644 --- a/WebContent/VAADIN/themes/chameleon/components/selects/selects.scss +++ b/WebContent/VAADIN/themes/chameleon/components/selects/selects.scss @@ -1,10 +1,10 @@ -@mixin chameleon-selects { +@mixin chameleon-selects($primaryStyleName : v-filterselect) { -.v-filterselect { +.#{$primaryStyleName} { overflow: hidden; } -&.v-app input.v-filterselect-input { +&.v-app input.#{$primaryStyleName}-input { margin: 0; padding: 0; border: none; @@ -12,72 +12,72 @@ line-height: normal; } -&.v-app input.v-filterselect-input[type=text] { +&.v-app input.#{$primaryStyleName}-input[type=text] { padding: 0; } -.v-filterselect-focus .v-filterselect-input, -.v-filterselect .v-filterselect-input:focus { +.#{$primaryStyleName}-focus .#{$primaryStyleName}-input, +.#{$primaryStyleName} .#{$primaryStyleName}-input:focus { outline: none; } -.v-filterselect-big.v-filterselect-search { +.#{$primaryStyleName}-big.#{$primaryStyleName}-search { padding-left: 22px; } -.v-filterselect-button { +.#{$primaryStyleName}-button { width: 16px; height: 1.2em; background-position: -5px -11px; opacity: .4; } -.v-filterselect-button:hover { +.#{$primaryStyleName}-button:hover { opacity: .7; } -.v-filterselect-button:active { +.#{$primaryStyleName}-button:active { opacity: 1; } -.v-filterselect-small .v-filterselect-button { +.#{$primaryStyleName}-small .#{$primaryStyleName}-button { height: 0.95em; background-position: -5px -12px; } -.v-filterselect-suggestpopup { +.#{$primaryStyleName}-suggestpopup { margin-top: .4em; } -.v-filterselect-suggestmenu tr { +.#{$primaryStyleName}-suggestmenu tr { line-height:1.4em; } -&.v-app .v-filterselect-suggestpopup-small td { +&.v-app .#{$primaryStyleName}-suggestpopup-small td { font-size: .85em; } -&.v-app .v-filterselect-suggestpopup-big td { +&.v-app .#{$primaryStyleName}-suggestpopup-big td { font-size: 1.1em; } -.v-filterselect-big .v-filterselect-button { +.#{$primaryStyleName}-big .#{$primaryStyleName}-button { height: 1.4em; background-position: -5px -9px; } -.v-filterselect-search .v-filterselect-button { +.#{$primaryStyleName}-search .#{$primaryStyleName}-button { width: 0; overflow: hidden; } -.v-filterselect-prompt .v-filterselect-input { +.#{$primaryStyleName}-prompt .#{$primaryStyleName}-input { font-style: normal; } -.v-filterselect-prevpage-off, -.v-filterselect-nextpage-off, -.v-filterselect-prevpage, -.v-filterselect-nextpage { +.#{$primaryStyleName}-prevpage-off, +.#{$primaryStyleName}-nextpage-off, +.#{$primaryStyleName}-prevpage, +.#{$primaryStyleName}-nextpage { border-style: solid; border-width: 1px 0; border-color: #b3b3b3; @@ -89,29 +89,29 @@ -ms-user-select: none; } -.v-filterselect-prevpage:active, -.v-filterselect-nextpage:active { +.#{$primaryStyleName}-prevpage:active, +.#{$primaryStyleName}-nextpage:active { // TODO check - was missing a part of the rule background-image: #c9c9c9 url(../../img/grad-dark-bottom2.png); background-position: left bottom; } -.v-filterselect-prevpage-off span, -.v-filterselect-nextpage-off span, -.v-filterselect-prevpage span, -.v-filterselect-nextpage span { +.#{$primaryStyleName}-prevpage-off span, +.#{$primaryStyleName}-nextpage-off span, +.#{$primaryStyleName}-prevpage span, +.#{$primaryStyleName}-nextpage span { display: block; text-indent: -9999px; height: 12px; background: transparent url(../../../base/common/img/sprites.png) no-repeat 50% 3px; } -.v-filterselect-nextpage-off span, -.v-filterselect-nextpage span { +.#{$primaryStyleName}-nextpage-off span, +.#{$primaryStyleName}-nextpage span { background-position: 50% -12px; } -.v-filterselect-status { +.#{$primaryStyleName}-status { font-size: .85em; margin: 1px 0 -3px; user-select: none; @@ -120,16 +120,16 @@ -ms-user-select: none; } -.v-filterselect-suggestmenu .gwt-menuItem-selected { +.#{$primaryStyleName}-suggestmenu .gwt-menuItem-selected { background-image: url(../../img/grad-light-top2.png); background-position: 0 -1px; } -.v-filterselect-suggestpopup-small .v-filterselect-status { +.#{$primaryStyleName}-suggestpopup-small .#{$primaryStyleName}-status { font-size: .8em; } -.v-filterselect-suggestpopup-big .v-filterselect-status { +.#{$primaryStyleName}-suggestpopup-big .#{$primaryStyleName}-status { font-size: .9em; } @@ -145,13 +145,13 @@ /******************************************************************************* * Non-editable combobox (i.e. themable select) ******************************************************************************/ -.v-filterselect-select-button { +.#{$primaryStyleName}-select-button { background: #c9c9c9 url(../../img/grad-light-top.png) repeat-x; position: relative; padding: .3em .5em; } -.v-filterselect-select-button .v-filterselect-input { +.#{$primaryStyleName}-select-button .#{$primaryStyleName}-input { display: block; width: 100% !important; user-select: none; @@ -159,7 +159,7 @@ -webkit-user-select: none; } -.v-filterselect-select-button .v-filterselect-button { +.#{$primaryStyleName}-select-button .#{$primaryStyleName}-button { position: absolute; width: 100%; top: 0; diff --git a/WebContent/VAADIN/themes/chameleon/components/slider/slider.scss b/WebContent/VAADIN/themes/chameleon/components/slider/slider.scss index bef69b3472..30c5eb85cb 100644 --- a/WebContent/VAADIN/themes/chameleon/components/slider/slider.scss +++ b/WebContent/VAADIN/themes/chameleon/components/slider/slider.scss @@ -1,6 +1,6 @@ -@mixin chameleon-slider { +@mixin chameleon-slider($primaryStyleName : v-slider) { -.v-slider { +.#{$primaryStyleName} { border-top: 1px solid #9a9c9e; border-bottom: 1px solid #bdbfc1; margin: 3px 0; @@ -9,7 +9,7 @@ -moz-border-radius: 3px; } -.v-slider-base { +.#{$primaryStyleName}-base { height: 4px; background: #e0e2e2 url(../../img/grad-dark-top2.png) repeat-x; border-top: 1px solid #adb0b1; @@ -20,7 +20,7 @@ -moz-border-radius: 2px; } -.v-slider-handle { +.#{$primaryStyleName}-handle { background: #c9c9c9 url(../../img/grad-dark-bottom2.png) repeat-x left bottom; border: 1px solid #b3b3b3; width: 10px; @@ -34,23 +34,23 @@ cursor: pointer; } -.v-slider-handle-active { +.#{$primaryStyleName}-handle-active { background-color: #afafaf; } -.v-slider-vertical { +.#{$primaryStyleName}-vertical { width: auto; margin: 0 4px; border-width: 0 1px; } -.v-slider-vertical .v-slider-base { +.#{$primaryStyleName}-vertical .#{$primaryStyleName}-base { background-image: none; width: 4px; border-width: 1px 1px 0; } -.v-slider-vertical .v-slider-handle { +.#{$primaryStyleName}-vertical .#{$primaryStyleName}-handle { width: 10px; height: 10px; margin: 0; diff --git a/WebContent/VAADIN/themes/chameleon/components/splitpanel/splitpanel.scss b/WebContent/VAADIN/themes/chameleon/components/splitpanel/splitpanel.scss index e2bcf0a909..2496be6513 100644 --- a/WebContent/VAADIN/themes/chameleon/components/splitpanel/splitpanel.scss +++ b/WebContent/VAADIN/themes/chameleon/components/splitpanel/splitpanel.scss @@ -1,21 +1,21 @@ -@mixin chameleon-splitpanel { +@mixin chameleon-splitpanel($primaryStyleName : v-splitpanel) { -.v-splitpanel-hsplitter div, -.v-splitpanel-vsplitter div { +.#{$primaryStyleName}-hsplitter div, +.#{$primaryStyleName}-vsplitter div { background: transparent url(../../img/split-handle.png) no-repeat 2px 50%; margin: 0 -1px; width: 9px; } -.v-splitpanel-vsplitter div { +.#{$primaryStyleName}-vsplitter div { background-position: 50% 2px; margin: -1px 0; width: auto; height: 9px; } -.v-splitpanel-hsplitter, -.v-splitpanel-hsplitter-locked { +.#{$primaryStyleName}-hsplitter, +.#{$primaryStyleName}-hsplitter-locked { border-style: solid; border-width: 0 1px; border-color: #b0b0b0; @@ -23,8 +23,8 @@ background: #b3b3b3 url(../../img/grad-light-left.png) repeat-y; } -.v-splitpanel-vsplitter, -.v-splitpanel-vsplitter-locked { +.#{$primaryStyleName}-vsplitter, +.#{$primaryStyleName}-vsplitter-locked { border-style: solid; border-width: 1px 0; border-color: #b0b0b0; @@ -35,15 +35,15 @@ /******************************************************************************* * Small ******************************************************************************/ -&.v-app .v-splitpanel-hsplitter-small, -&.v-app .v-splitpanel-hsplitter-small-locked { +&.v-app .#{$primaryStyleName}-hsplitter-small, +&.v-app .#{$primaryStyleName}-hsplitter-small-locked { width: 1px; border: none; background-image: none; } -&.v-app .v-splitpanel-vsplitter-small, -&.v-app .v-splitpanel-vsplitter-small-locked { +&.v-app .#{$primaryStyleName}-vsplitter-small, +&.v-app .#{$primaryStyleName}-vsplitter-small-locked { height: 1px; border: none; background-image: none; @@ -51,13 +51,13 @@ line-height: 1px; } -.v-splitpanel-hsplitter-small div { +.#{$primaryStyleName}-hsplitter-small div { width: 7px; margin-left: -2px; background: transparent; } -.v-splitpanel-vsplitter-small div { +.#{$primaryStyleName}-vsplitter-small div { height: 7px; margin-top: -2px; background: transparent; diff --git a/WebContent/VAADIN/themes/chameleon/components/table/table.scss b/WebContent/VAADIN/themes/chameleon/components/table/table.scss index 8ecc1878ae..9a90222c86 100644 --- a/WebContent/VAADIN/themes/chameleon/components/table/table.scss +++ b/WebContent/VAADIN/themes/chameleon/components/table/table.scss @@ -1,31 +1,31 @@ -@mixin chameleon-table { +@mixin chameleon-table($primaryStyleName : v-table) { -.v-table-header-wrap, -.v-table-header-drag { +.#{$primaryStyleName}-header-wrap, +.#{$primaryStyleName}-header-drag { background: #c9c9c9 url(../../img/grad-light-top.png) repeat-x; height: 1.4em; line-height: normal; } -.v-table-caption-container, -.v-table-header-drag { +.#{$primaryStyleName}-caption-container, +.#{$primaryStyleName}-header-drag { padding-top: .2em; padding-right: 4px; } -.v-table-header-drag { +.#{$primaryStyleName}-header-drag { padding-left: .3em; } -.v-table-resizer { +.#{$primaryStyleName}-resizer { background: transparent; border-right: 1px solid #b3b3b3; padding-left: 1px; height: 1.4em; } -/* Targets the same element as .v-table-resizer */ -div.v-table-focus-slot-left { +/* Targets the same element as .#{$primaryStyleName}-resizer */ +div.#{$primaryStyleName}-focus-slot-left { background: transparent; border-left: 2px solid #b3b3b3; border-right: none; @@ -35,42 +35,42 @@ div.v-table-focus-slot-left { margin: 0; } -.v-table-row, -.v-table-row-odd { +.#{$primaryStyleName}-row, +.#{$primaryStyleName}-row-odd { background: transparent; } -.v-table-generated-row { +.#{$primaryStyleName}-generated-row { background: #c9c9c9; } -.v-table tr.v-selected { +.#{$primaryStyleName} tr.v-selected { background-image: url(../../img/grad-light-top2.png); background-position: 0 -1px; } -div.v-table-focus-slot-right { +div.#{$primaryStyleName}-focus-slot-right { background: transparent; border-right: 2px solid #b3b3b3; padding-left: 0; margin: 0; } -.v-table-column-selector { +.#{$primaryStyleName}-column-selector { margin-top: -1.35em; } -.v-table-cell-content { +.#{$primaryStyleName}-cell-content { border-right: none; padding-right: 7px; } -.v-table-caption-container .v-icon { +.#{$primaryStyleName}-caption-container .v-icon { vertical-align: middle; margin: -0.37em 2px 0 0; } -.v-table-header-drag .v-icon { +.#{$primaryStyleName}-header-drag .v-icon { vertical-align: middle; } @@ -91,7 +91,7 @@ div.v-table-focus-slot-right { background-image: url(../../icons/bullet-white.png); } -.v-table-scrollposition { +.#{$primaryStyleName}-scrollposition { font-size: 0.9em; opacity: .85; filter: alpha(opacity=85); @@ -100,17 +100,17 @@ div.v-table-focus-slot-right { /******************************************************************************* * Small ******************************************************************************/ -.v-table-small .v-table-caption-container, -.v-table-small .v-table-body { +.#{$primaryStyleName}-small .#{$primaryStyleName}-caption-container, +.#{$primaryStyleName}-small .#{$primaryStyleName}-body { font-size: 0.85em; } -.v-table-small .v-table-resizer, -.v-table-small .v-table-header-wrap { +.#{$primaryStyleName}-small .#{$primaryStyleName}-resizer, +.#{$primaryStyleName}-small .#{$primaryStyleName}-header-wrap { height: 1.2em; } -.v-table-small .v-table-column-selector { +.#{$primaryStyleName}-small .#{$primaryStyleName}-column-selector { margin-top: -1.2em; } @@ -118,28 +118,28 @@ div.v-table-focus-slot-right { /******************************************************************************* * Big ******************************************************************************/ -.v-table-big .v-table-caption-container, -.v-table-big .v-table-body { +.#{$primaryStyleName}-big .#{$primaryStyleName}-caption-container, +.#{$primaryStyleName}-big .#{$primaryStyleName}-body { font-size: 1.2em; } -.v-table-big .v-table-caption-container { +.#{$primaryStyleName}-big .#{$primaryStyleName}-caption-container { padding-top: .3em; } -.v-table-big .v-table-resizer, -.v-table-big .v-table-header-wrap { +.#{$primaryStyleName}-big .#{$primaryStyleName}-resizer, +.#{$primaryStyleName}-big .#{$primaryStyleName}-header-wrap { height: 1.8em; } -.v-table-big .v-table-column-selector { +.#{$primaryStyleName}-big .#{$primaryStyleName}-column-selector { margin-top: -1.5em; } /******************************************************************************* * Striped ******************************************************************************/ -.v-table-striped .v-table-row-odd { +.#{$primaryStyleName}-striped .#{$primaryStyleName}-row-odd { background-color: #e6e6e6; } @@ -147,7 +147,7 @@ div.v-table-focus-slot-right { /******************************************************************************* * Strong ******************************************************************************/ -.v-table-strong .v-table-caption-container { +.#{$primaryStyleName}-strong .#{$primaryStyleName}-caption-container { font-weight: bold; } @@ -155,12 +155,12 @@ div.v-table-focus-slot-right { /******************************************************************************* * Borderless ******************************************************************************/ -.v-table-borderless .v-table-header-wrap, -.v-table-borderless .v-table-body { +.#{$primaryStyleName}-borderless .#{$primaryStyleName}-header-wrap, +.#{$primaryStyleName}-borderless .#{$primaryStyleName}-body { border: none; } -div.v-table-borderless .v-table-body { +div.#{$primaryStyleName}-borderless .#{$primaryStyleName}-body { background: transparent; } diff --git a/WebContent/VAADIN/themes/chameleon/components/tabsheet/tabsheet.scss b/WebContent/VAADIN/themes/chameleon/components/tabsheet/tabsheet.scss index 258df79922..dfa1c51c3a 100644 --- a/WebContent/VAADIN/themes/chameleon/components/tabsheet/tabsheet.scss +++ b/WebContent/VAADIN/themes/chameleon/components/tabsheet/tabsheet.scss @@ -1,23 +1,23 @@ -@mixin chameleon-tabsheet { +@mixin chameleon-tabsheet($primaryStyleName : v-tabsheet) { -.v-tabsheet-spacertd div { +.#{$primaryStyleName}-spacertd div { border-color: #b3b3b3; border-left: none; } -.v-tabsheet-tabitem { +.#{$primaryStyleName}-tabitem { border: none; border-bottom: 1px solid #b3b3b3; padding: 0; } -.v-tabsheet-tabitem .v-caption { +.#{$primaryStyleName}-tabitem .v-caption { padding: .2em .8em; margin: 1px; margin-bottom: 0; } -.v-tabsheet-tabitem-selected { +.#{$primaryStyleName}-tabitem-selected { background-color: #c9c9c9; border: 1px solid #b3b3b3; border-bottom: none; @@ -28,7 +28,7 @@ overflow: hidden; } -.v-tabsheet-tabitem-selected .v-caption { +.#{$primaryStyleName}-tabitem-selected .v-caption { background: transparent url(../../img/grad-light-top.png) repeat-x; margin: 0; padding-bottom: .25em; @@ -38,18 +38,18 @@ -moz-border-radius-topright: 2px; } -.v-tabsheet-content { +.#{$primaryStyleName}-content { background: #fff; border-color: #b3b3b3; } -.v-tabsheet-deco { +.#{$primaryStyleName}-deco { height: 0; background: transparent; border-top: 1px solid #b3b3b3; } -.v-tabsheet-caption-close { +.#{$primaryStyleName}-caption-close { width: 14px; height: 15px; overflow: hidden; @@ -60,18 +60,18 @@ margin: .2em 0 0 0; } -.v-tabsheet-caption-close:hover { +.#{$primaryStyleName}-caption-close:hover { background-position: .5em -25px; } -.v-tabsheet-caption-close:active { +.#{$primaryStyleName}-caption-close:active { background-position: .5em -50px; } /******************************************************************************* * Scroller ******************************************************************************/ -.v-tabsheet-scroller { +.#{$primaryStyleName}-scroller { height: 14px; margin-top: -1.6em; position: relative; @@ -83,12 +83,12 @@ -moz-border-radius: 6px; } -.v-tabsheet-scrollerPrev, -.v-tabsheet-scrollerNext, -.v-tabsheet-scrollerPrev-disabled, -.v-tabsheet-scrollerNext-disabled, -.v-tabsheet-scrollerPrev-disabled:active, -.v-tabsheet-scrollerNext-disabled:active { +.#{$primaryStyleName}-scrollerPrev, +.#{$primaryStyleName}-scrollerNext, +.#{$primaryStyleName}-scrollerPrev-disabled, +.#{$primaryStyleName}-scrollerNext-disabled, +.#{$primaryStyleName}-scrollerPrev-disabled:active, +.#{$primaryStyleName}-scrollerNext-disabled:active { border: 1px solid #b3b3b3; border-width: 0; background: transparent url(../../img/tab-arrows.png) no-repeat 6px 50%; @@ -99,34 +99,34 @@ filter: alpha(opacity=50); } -.v-tabsheet-scroller button::-moz-focus-inner { +.#{$primaryStyleName}-scroller button::-moz-focus-inner { border: none; padding: 0; } -.v-tabsheet-scrollerNext, -.v-tabsheet-scrollerNext-disabled, -.v-tabsheet-scrollerNext-disabled:active { +.#{$primaryStyleName}-scrollerNext, +.#{$primaryStyleName}-scrollerNext-disabled, +.#{$primaryStyleName}-scrollerNext-disabled:active { background-position: -10px 50%; border-left-width: 1px; } -.v-tabsheet-scrollerPrev:hover, -.v-tabsheet-scrollerNext:hover { +.#{$primaryStyleName}-scrollerPrev:hover, +.#{$primaryStyleName}-scrollerNext:hover { opacity: .75; filter: alpha(opacity=75); } -.v-tabsheet-scrollerPrev:active, -.v-tabsheet-scrollerNext:active { +.#{$primaryStyleName}-scrollerPrev:active, +.#{$primaryStyleName}-scrollerNext:active { opacity: 1; filter: none; } -.v-tabsheet-scrollerPrev-disabled, -.v-tabsheet-scrollerNext-disabled, -.v-tabsheet-scrollerPrev-disabled:active, -.v-tabsheet-scrollerNext-disabled:active { +.#{$primaryStyleName}-scrollerPrev-disabled, +.#{$primaryStyleName}-scrollerNext-disabled, +.#{$primaryStyleName}-scrollerPrev-disabled:active, +.#{$primaryStyleName}-scrollerNext-disabled:active { opacity: .1; filter: alpha(opacity=10); } @@ -136,11 +136,11 @@ /******************************************************************************* * open-only-closable ******************************************************************************/ -.v-tabsheet-open-only-closable .v-tabsheet-caption-close { +.#{$primaryStyleName}-open-only-closable .#{$primaryStyleName}-caption-close { visibility: hidden; } -.v-tabsheet-open-only-closable .v-tabsheet-tabitem-selected .v-tabsheet-caption-close { +.#{$primaryStyleName}-open-only-closable .#{$primaryStyleName}-tabitem-selected .#{$primaryStyleName}-caption-close { visibility: visible; } @@ -148,14 +148,14 @@ /******************************************************************************* * Borderless ******************************************************************************/ -.v-tabsheet-borderless .v-tabsheet-content-borderless, -.v-tabsheet-deco-borderless { +.#{$primaryStyleName}-borderless .#{$primaryStyleName}-content-borderless, +.#{$primaryStyleName}-deco-borderless { border: none; background: transparent; } -.v-tabsheet-tabs-borderless .v-tabsheet-tabitem-selected, -.v-tabsheet-tabs-borderless .v-tabsheet-tabitem-selected .v-caption { +.#{$primaryStyleName}-tabs-borderless .#{$primaryStyleName}-tabitem-selected, +.#{$primaryStyleName}-tabs-borderless .#{$primaryStyleName}-tabitem-selected .v-caption { background-color: transparent; } diff --git a/WebContent/VAADIN/themes/chameleon/components/textfield/textfield.scss b/WebContent/VAADIN/themes/chameleon/components/textfield/textfield.scss index 026a7e5bfe..860d91a6e7 100644 --- a/WebContent/VAADIN/themes/chameleon/components/textfield/textfield.scss +++ b/WebContent/VAADIN/themes/chameleon/components/textfield/textfield.scss @@ -1,6 +1,6 @@ -@mixin chameleon-textfield { +@mixin chameleon-textfield($primaryStyleName : v-textfield) { -input.v-textfield, +input.#{$primaryStyleName}, textarea.v-textarea, .v-filterselect { line-height: normal; @@ -17,40 +17,40 @@ textarea.v-textarea, margin: 0; } -input.v-textfield[type="text"], +input.#{$primaryStyleName}[type="text"], textarea.v-textarea, .v-filterselect { padding: .2em; } -input.v-textfield[type="text"] { +input.#{$primaryStyleName}[type="text"] { height: 1.2em; } -input.v-widget.v-textfield[type="text"], +input.v-widget.#{$primaryStyleName}[type="text"], .v-filterselect { height: 1.6em; } -&.v-app input.v-textfield, +&.v-app input.#{$primaryStyleName}, &.v-app textarea.v-textarea, &.v-app input.v-filterselect-input { color: #222; } -.v-ie & input.v-textfield, +.v-ie & input.#{$primaryStyleName}, .v-ie & textarea.v-textarea, .v-ie & .v-filterselect { border-top-color: #808080; } -&.v-app input.v-textfield-prompt, +&.v-app input.#{$primaryStyleName}-prompt, &.v-app textarea.v-textarea-prompt { font-style: normal; color: #999; } -input.v-textfield-focus, +input.#{$primaryStyleName}-focus, textarea.v-textarea-focus { background-color: #fffce1; } @@ -59,7 +59,7 @@ textarea.v-textarea-focus { /******************************************************************************* * Readonly ******************************************************************************/ -input.v-textfield-readonly, +input.#{$primaryStyleName}-readonly, textarea.v-textarea-readonly { border: none; background: transparent; @@ -69,7 +69,7 @@ textarea.v-textarea-readonly { /******************************************************************************* * Small ******************************************************************************/ -&.v-app input.v-textfield-small, +&.v-app input.#{$primaryStyleName}-small, &.v-app textarea.v-textarea-small, .v-datefield-small .v-datefield-textfield, .v-datefield-small .v-datefield-button, @@ -81,7 +81,7 @@ textarea.v-textarea-readonly { /******************************************************************************* * Big (and big search) ******************************************************************************/ -&.v-app input.v-textfield-big, +&.v-app input.#{$primaryStyleName}-big, &.v-app textarea.v-textarea-big, .v-datefield-big .v-datefield-textfield, .v-datefield-big .v-datefield-button, @@ -89,7 +89,7 @@ textarea.v-textarea-readonly { font-size: 1.2em; } -input.v-textfield-big[type=text], +input.#{$primaryStyleName}-big[type=text], .v-datefield-big input.v-datefield-textfield[type=text] { padding: .3em; } @@ -99,14 +99,14 @@ textarea.v-textarea, padding: .3em; } -input.v-textfield-big.v-textfield-search, +input.#{$primaryStyleName}-big.#{$primaryStyleName}-search, .v-filterselect-search.v-filterselect-big { background-image: url(../../img/magnifier-big.png); background-repeat: no-repeat; background-position: 4px 50%; } -input.v-textfield-big.v-textfield-search[type=text] { +input.#{$primaryStyleName}-big.#{$primaryStyleName}-search[type=text] { padding-left: 26px; } @@ -118,14 +118,14 @@ input.v-textfield-big.v-textfield-search[type=text] { /******************************************************************************* * Search ******************************************************************************/ -input.v-textfield-search, +input.#{$primaryStyleName}-search, .v-filterselect-search { background-image: url(../../img/magnifier.png); background-repeat: no-repeat; background-position: 3px 50%; } -input.v-textfield-search[type=text], +input.#{$primaryStyleName}-search[type=text], .v-filterselect-search { padding-left: 17px; } diff --git a/WebContent/VAADIN/themes/chameleon/components/tree/tree.scss b/WebContent/VAADIN/themes/chameleon/components/tree/tree.scss index fc80f51a2a..9b33cd0155 100644 --- a/WebContent/VAADIN/themes/chameleon/components/tree/tree.scss +++ b/WebContent/VAADIN/themes/chameleon/components/tree/tree.scss @@ -1,25 +1,25 @@ -@mixin chameleon-tree { +@mixin chameleon-tree($primaryStyleName : v-tree) { -.v-tree-node-caption { +.#{$primaryStyleName}-node-caption { margin-left: 16px; } -.v-tree-node span { +.#{$primaryStyleName}-node span { padding: .1em .3em; border-radius: 2px; -webkit-border-radius: 2px; -moz-border-radius: 2px; } -.v-tree-node-children { +.#{$primaryStyleName}-node-children { padding-left: 16px; } -.v-tree-node-selected span { +.#{$primaryStyleName}-node-selected span { background-color: #333; } -.v-tree-connectors .v-tree-node-caption { +.#{$primaryStyleName}-connectors .#{$primaryStyleName}-node-caption { padding-bottom: 1px; } diff --git a/WebContent/VAADIN/themes/chameleon/components/window/window.scss b/WebContent/VAADIN/themes/chameleon/components/window/window.scss index f1a6b5e529..e9524745f8 100644 --- a/WebContent/VAADIN/themes/chameleon/components/window/window.scss +++ b/WebContent/VAADIN/themes/chameleon/components/window/window.scss @@ -1,6 +1,6 @@ -@mixin chameleon-window { +@mixin chameleon-window($primaryStyleName : v-window) { -.v-window-closebox { +.#{$primaryStyleName}-closebox { width: 14px; height: 15px; overflow: hidden; @@ -13,41 +13,41 @@ z-index: 2; } -.v-window-closebox:hover { +.#{$primaryStyleName}-closebox:hover { background-position: 0 -25px; } -.v-window-closebox:active { +.#{$primaryStyleName}-closebox:active { background-position: 0 -50px; } -.v-window { +.#{$primaryStyleName} { background-image: none; } -.v-window-wrap { +.#{$primaryStyleName}-wrap { border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; background-image: url(../../img/grad-light-top.png); background-repeat: repeat-x; } -.v-window-outerheader { +.#{$primaryStyleName}-outerheader { padding: .2em 1.7em .5em 1.2em; height: auto; text-align: center; } -.v-window-header { +.#{$primaryStyleName}-header { font-weight: normal; } -.v-window-footer { +.#{$primaryStyleName}-footer { height: 0; position: static; } -.v-window-resizebox { +.#{$primaryStyleName}-resizebox { background: transparent url(../../img/resize.png) no-repeat; width: 14px; height: 14px; diff --git a/WebContent/VAADIN/themes/reindeer/accordion/accordion.scss b/WebContent/VAADIN/themes/reindeer/accordion/accordion.scss index 2646bfaa8b..bc332dd13b 100644 --- a/WebContent/VAADIN/themes/reindeer/accordion/accordion.scss +++ b/WebContent/VAADIN/themes/reindeer/accordion/accordion.scss @@ -5,10 +5,12 @@ border-radius: 2px; -webkit-border-radius: 2px; -moz-border-radius: 2px; - overflow: hidden; + overflow: visible; } .#{$primaryStyleName}-item { background-color: #fff; + display: inline-block; + width: 100%; } .#{$primaryStyleName}-item-caption { height: 19px; @@ -28,10 +30,7 @@ border-top: none; } .#{$primaryStyleName}-item-caption .v-caption { - padding: 3px 0 5px 10px; -} -.v-ie & .#{$primaryStyleName}-item-caption .v-caption { - padding: 2px 0 6px 10px; + padding: 3px 0 0px 10px; } .#{$primaryStyleName}-item-open .#{$primaryStyleName}-item-caption { background-image: url(../tabsheet/img/tabbar-bg-sel.png); /** sprite-ref: verticals; sprite-alignment: repeat */ diff --git a/WebContent/VAADIN/themes/reindeer/common/common.scss b/WebContent/VAADIN/themes/reindeer/common/common.scss index 7de3365717..5e85cb09bc 100644 --- a/WebContent/VAADIN/themes/reindeer/common/common.scss +++ b/WebContent/VAADIN/themes/reindeer/common/common.scss @@ -25,6 +25,7 @@ .v-contextmenu, .v-Notification, .v-menubar-submenu, +.v-drag-element, .v-table-header-drag { font-family: Arial, Helvetica, Tahoma, Verdana, sans-serif; font-size: 12px; diff --git a/WebContent/VAADIN/themes/reindeer/reindeer.scss b/WebContent/VAADIN/themes/reindeer/reindeer.scss index 880378e34a..ce6b54610e 100644 --- a/WebContent/VAADIN/themes/reindeer/reindeer.scss +++ b/WebContent/VAADIN/themes/reindeer/reindeer.scss @@ -32,14 +32,6 @@ background: #f5f5f5; } -/* Temporarily moved here to make drag'n'drop work before #10384 is fixed */ -.v-drag-element { - font-family: Arial, Helvetica, Tahoma, Verdana, sans-serif; - font-size: 12px; - line-height: normal; - color: #222; -} - @mixin reindeer { // should this be here? @include base; diff --git a/WebContent/VAADIN/themes/runo/absolutelayout/absolutelayout.scss b/WebContent/VAADIN/themes/runo/absolutelayout/absolutelayout.scss index 623110ff63..e87d9f64ad 100644 --- a/WebContent/VAADIN/themes/runo/absolutelayout/absolutelayout.scss +++ b/WebContent/VAADIN/themes/runo/absolutelayout/absolutelayout.scss @@ -1,6 +1,6 @@ -@mixin runo-absolutelayout { +@mixin runo-absolutelayout($primaryStyleName : v-absolutelayout) { -.v-absolutelayout-wrapper { +.#{$primaryStyleName}-wrapper { position: absolute; overflow:hidden; } diff --git a/WebContent/VAADIN/themes/runo/accordion/accordion.scss b/WebContent/VAADIN/themes/runo/accordion/accordion.scss index f9c9487536..deeb494371 100644 --- a/WebContent/VAADIN/themes/runo/accordion/accordion.scss +++ b/WebContent/VAADIN/themes/runo/accordion/accordion.scss @@ -1,6 +1,6 @@ -@mixin runo-accordion { +@mixin runo-accordion($primaryStyleName : v-accordion) { -.v-accordion-item-caption { +.#{$primaryStyleName}-item-caption { height: 31px; background: #edf0f0 url(img/bg.png); font-size: 15px; @@ -8,35 +8,35 @@ border: none; border-top: 1px solid #c8cccd; } -.v-accordion-item-caption .v-caption { +.#{$primaryStyleName}-item-caption .v-caption { padding: 7px 0 6px 31px; background: transparent url(img/collapsed-icon.png) no-repeat 18px 50%; } -.v-accordion-item-open .v-accordion-item-caption { +.#{$primaryStyleName}-item-open .#{$primaryStyleName}-item-caption { color: #3b4b57; background: #d5dee2 url(img/selected-bg.png); border-bottom: 1px solid #b4b9ba; text-shadow: 0 1px 0 #fff; } -.v-accordion-item-open .v-accordion-item-caption .v-caption { +.#{$primaryStyleName}-item-open .#{$primaryStyleName}-item-caption .v-caption { background-image: url(img/expanded-icon.png); background-position: 17px 50%; } -.v-accordion-item-first .v-accordion-item-caption { +.#{$primaryStyleName}-item-first .#{$primaryStyleName}-item-caption { border-top: none; } -.v-accordion-item-caption .v-caption:hover { +.#{$primaryStyleName}-item-caption .v-caption:hover { color: #3b4b57; } /* Light style */ -.v-accordion-light .v-accordion-item-caption { +.#{$primaryStyleName}-light .#{$primaryStyleName}-item-caption { height: 24px; padding: 3px 2px; background: transparent; border: none; } -.v-accordion-light .v-accordion-item-caption .v-caption { +.#{$primaryStyleName}-light .#{$primaryStyleName}-item-caption .v-caption { padding: 4px 15px 4px 28px; font-size: 12px; line-height: 16px; diff --git a/WebContent/VAADIN/themes/runo/button/button.scss b/WebContent/VAADIN/themes/runo/button/button.scss index 5da6211804..b303dd2e02 100644 --- a/WebContent/VAADIN/themes/runo/button/button.scss +++ b/WebContent/VAADIN/themes/runo/button/button.scss @@ -1,16 +1,16 @@ -@mixin runo-button { +@mixin runo-button($primaryStyleName : v-button) { -.v-button { +.#{$primaryStyleName} { padding: 1px; border: none; background: transparent; } -.v-button:focus { +.#{$primaryStyleName}:focus { outline: none; } -.v-button:focus .v-button-wrap { +.#{$primaryStyleName}:focus .#{$primaryStyleName}-wrap { border-color: #57a7ed; border-top-color: #60aef1; border-bottom-color: #4c9adf; @@ -18,8 +18,8 @@ -moz-box-shadow: 0 0 2px #57a7ed; } -.v-button:active .v-button-wrap, -.v-button.v-pressed .v-button-wrap { +.#{$primaryStyleName}:active .#{$primaryStyleName}-wrap, +.#{$primaryStyleName}.v-pressed .#{$primaryStyleName}-wrap { background-position: 0 -79px; background-color: #e7e9e9; border-color: #b8bdbe; @@ -32,8 +32,8 @@ text-shadow: none; } -.v-button .v-button-wrap, -.v-disabled.v-button .v-button-wrap { +.#{$primaryStyleName} .#{$primaryStyleName}-wrap, +.v-disabled.#{$primaryStyleName} .#{$primaryStyleName}-wrap { display: block; font-size: 12px; border: 1px solid #bdc1c2; @@ -59,8 +59,8 @@ } /* Small style */ -.v-button-small .v-button-wrap, -.v-disabled.v-button-small .v-button-wrap { +.#{$primaryStyleName}-small .#{$primaryStyleName}-wrap, +.v-disabled.#{$primaryStyleName}-small .#{$primaryStyleName}-wrap { font-size: 11px; line-height: 13px; padding: 1px 12px; @@ -69,8 +69,8 @@ /* Big style */ -.v-button-big .v-button-wrap, -.v-disabled.v-button-big .v-button-wrap { +.#{$primaryStyleName}-big .#{$primaryStyleName}-wrap, +.v-disabled.#{$primaryStyleName}-big .#{$primaryStyleName}-wrap { font-size: 15px; line-height: 18px; padding: 4px 18px; @@ -83,14 +83,14 @@ /* Default style */ -.v-button-default:focus .v-button-wrap { +.#{$primaryStyleName}-default:focus .#{$primaryStyleName}-wrap { background-color: #60839a; background-position: 0 -158px; text-shadow: 0 -1px 0 #657883; } -.v-button-default:active .v-button-wrap, -.v-button-default.v-pressed .v-button-wrap { +.#{$primaryStyleName}-default:active .#{$primaryStyleName}-wrap, +.#{$primaryStyleName}-default.v-pressed .#{$primaryStyleName}-wrap { background-position: 0 -79px; background-color: #8f9898; border-color: #737e81; @@ -102,8 +102,8 @@ -moz-box-shadow: 0 1px 2px rgba(0,0,0,.4) inset; } -.v-button-default .v-button-wrap, -.v-disabled.v-button-default .v-button-wrap { +.#{$primaryStyleName}-default .#{$primaryStyleName}-wrap, +.v-disabled.#{$primaryStyleName}-default .#{$primaryStyleName}-wrap { border-color: #899395; border-top-color: #a4abae; border-bottom-color: #727b7d; @@ -119,15 +119,15 @@ /* Link style */ -.v-button-link, -.v-disabled.v-button-link { +.#{$primaryStyleName}-link, +.v-disabled.#{$primaryStyleName}-link { padding: 0; } -.v-button-link .v-button-wrap, -.v-disabled.v-button-link .v-button-wrap, -.v-button-link:active .v-button-wrap, -.v-disabled.v-button-pressedv-button-link .v-button-wrap { +.#{$primaryStyleName}-link .#{$primaryStyleName}-wrap, +.v-disabled.#{$primaryStyleName}-link .#{$primaryStyleName}-wrap, +.#{$primaryStyleName}-link:active .#{$primaryStyleName}-wrap, +.v-disabled.#{$primaryStyleName}-pressedv-button-link .#{$primaryStyleName}-wrap { border: none; background: transparent; padding: 0; @@ -140,11 +140,11 @@ text-shadow: none; } -.v-button-link:focus { +.#{$primaryStyleName}-link:focus { outline: 1px dotted #4897dc; } -.v-button-link:focus .v-button-wrap { +.#{$primaryStyleName}-link:focus .#{$primaryStyleName}-wrap { -webkit-box-shadow: none; -moz-box-shadow: none; } diff --git a/WebContent/VAADIN/themes/runo/common/common.scss b/WebContent/VAADIN/themes/runo/common/common.scss index 8a2cdb95bc..9d4b4a4858 100644 --- a/WebContent/VAADIN/themes/runo/common/common.scss +++ b/WebContent/VAADIN/themes/runo/common/common.scss @@ -28,7 +28,8 @@ .v-datefield-popup, .v-contextmenu, .v-Notification, -.v-menubar-submenu { +.v-menubar-submenu, +.v-drag-element { font-family: "Trebuchet MS", geneva, helvetica, arial, tahoma, verdana, sans-serif; color: #464f52; font-size: 13px; diff --git a/WebContent/VAADIN/themes/runo/formlayout/formlayout.scss b/WebContent/VAADIN/themes/runo/formlayout/formlayout.scss index bb27da1d5b..59151feeb7 100644 --- a/WebContent/VAADIN/themes/runo/formlayout/formlayout.scss +++ b/WebContent/VAADIN/themes/runo/formlayout/formlayout.scss @@ -1,33 +1,33 @@ -@mixin runo-formlayout { +@mixin runo-formlayout($primaryStyleName : v-formlayout) { -.v-formlayout-cell .v-errorindicator { +.#{$primaryStyleName}-cell .v-errorindicator { width: 10px; height: 16px; background: transparent url(../icons/16/error.png) no-repeat top right; } -.v-formlayout-captioncell { +.#{$primaryStyleName}-captioncell { text-align:right; white-space: nowrap; } -.v-formlayout-spacing > tbody > .v-formlayout-row > .v-formlayout-captioncell, -.v-formlayout-spacing > tbody > .v-formlayout-row > .v-formlayout-contentcell, -.v-formlayout-spacing > tbody > .v-formlayout-row > .v-formlayout-errorcell { +.#{$primaryStyleName}-spacing > tbody > .#{$primaryStyleName}-row > .#{$primaryStyleName}-captioncell, +.#{$primaryStyleName}-spacing > tbody > .#{$primaryStyleName}-row > .#{$primaryStyleName}-contentcell, +.#{$primaryStyleName}-spacing > tbody > .#{$primaryStyleName}-row > .#{$primaryStyleName}-errorcell { padding-top: 8px; } -.v-formlayout-margin-top > tbody > .v-formlayout-firstrow > .v-formlayout-captioncell, -.v-formlayout-margin-top > tbody > .v-formlayout-firstrow > .v-formlayout-contentcell, -.v-formlayout-margin-top > tbody > .v-formlayout-firstrow > .v-formlayout-errorcell { +.#{$primaryStyleName}-margin-top > tbody > .#{$primaryStyleName}-firstrow > .#{$primaryStyleName}-captioncell, +.#{$primaryStyleName}-margin-top > tbody > .#{$primaryStyleName}-firstrow > .#{$primaryStyleName}-contentcell, +.#{$primaryStyleName}-margin-top > tbody > .#{$primaryStyleName}-firstrow > .#{$primaryStyleName}-errorcell { padding-top: 15px; } -.v-formlayout-margin-bottom > tbody > .v-formlayout-lastrow > .v-formlayout-captioncell, -.v-formlayout-margin-bottom > tbody > .v-formlayout-lastrow > .v-formlayout-contentcell, -.v-formlayout-margin-bottom > tbody > .v-formlayout-lastrow > .v-formlayout-errorcell { +.#{$primaryStyleName}-margin-bottom > tbody > .#{$primaryStyleName}-lastrow > .#{$primaryStyleName}-captioncell, +.#{$primaryStyleName}-margin-bottom > tbody > .#{$primaryStyleName}-lastrow > .#{$primaryStyleName}-contentcell, +.#{$primaryStyleName}-margin-bottom > tbody > .#{$primaryStyleName}-lastrow > .#{$primaryStyleName}-errorcell { padding-bottom: 15px; } -.v-formlayout-margin-left > tbody > .v-formlayout-row > .v-formlayout-captioncell { +.#{$primaryStyleName}-margin-left > tbody > .#{$primaryStyleName}-row > .#{$primaryStyleName}-captioncell { padding-left: 18px; } -.v-formlayout-margin-right > tbody > .v-formlayout-row > .v-formlayout-contentcell { +.#{$primaryStyleName}-margin-right > tbody > .#{$primaryStyleName}-row > .#{$primaryStyleName}-contentcell { padding-right: 18px; } /* form */ diff --git a/WebContent/VAADIN/themes/runo/gridlayout/gridlayout.scss b/WebContent/VAADIN/themes/runo/gridlayout/gridlayout.scss index a8e9f7a7cd..e3fb628a6b 100644 --- a/WebContent/VAADIN/themes/runo/gridlayout/gridlayout.scss +++ b/WebContent/VAADIN/themes/runo/gridlayout/gridlayout.scss @@ -1,18 +1,18 @@ -@mixin runo-gridlayout { +@mixin runo-gridlayout($primaryStyleName : v-gridlayout) { -.v-gridlayout-margin-top { +.#{$primaryStyleName}-margin-top { padding-top: 15px; } -.v-gridlayout-margin-bottom { +.#{$primaryStyleName}-margin-bottom { padding-bottom: 15px; } -.v-gridlayout-margin-left { +.#{$primaryStyleName}-margin-left { padding-left: 18px; } -.v-gridlayout-margin-right { +.#{$primaryStyleName}-margin-right { padding-right: 18px; } -.v-gridlayout-spacing-on { +.#{$primaryStyleName}-spacing-on { padding-left: 8px; padding-top: 8px; } diff --git a/WebContent/VAADIN/themes/runo/label/label.scss b/WebContent/VAADIN/themes/runo/label/label.scss index b5308e4696..926f1d2cc3 100644 --- a/WebContent/VAADIN/themes/runo/label/label.scss +++ b/WebContent/VAADIN/themes/runo/label/label.scss @@ -1,16 +1,16 @@ -@mixin runo-label { +@mixin runo-label($primaryStyleName : v-label) { -.v-label h1, -.v-label h2, -.v-label h3, -.v-label h4, -.v-label h5, -.v-label h6 { +.#{$primaryStyleName} h1, +.#{$primaryStyleName} h2, +.#{$primaryStyleName} h3, +.#{$primaryStyleName} h4, +.#{$primaryStyleName} h5, +.#{$primaryStyleName} h6 { color: #404749; } -.v-label-h1, -.v-label h1 { +.#{$primaryStyleName}-h1, +.#{$primaryStyleName} h1 { margin: 0; padding: 8px 0 4px; font-size: 24px; @@ -20,8 +20,8 @@ text-shadow: 0 1px 1px #fff; } -.v-label-h2, -.v-label h2 { +.#{$primaryStyleName}-h2, +.#{$primaryStyleName} h2 { color: #f14c1a; font-size: 18px; letter-spacing: -0.03em; @@ -29,16 +29,16 @@ padding: 13px 0 5px; } -.v-label-h3, -.v-label h3 { +.#{$primaryStyleName}-h3, +.#{$primaryStyleName} h3 { font-size: 15px; letter-spacing: -0.03em; font-weight: normal; text-shadow: 0 1px 1px #fff; } -.v-label-h4, -.v-label h4 { +.#{$primaryStyleName}-h4, +.#{$primaryStyleName} h4 { font-size: 13px; font-weight: normal; text-shadow: 0 1px 1px #fff; @@ -46,14 +46,14 @@ padding: 8px 0 4px; } -.v-label-small { +.#{$primaryStyleName}-small { font-size: .87em; line-height: 1.4; color: #707679; } -.v-label hr, -.v-label-hr { +.#{$primaryStyleName} hr, +.#{$primaryStyleName}-hr { height: 2px; overflow: hidden; background: #ccd2d3; @@ -62,12 +62,12 @@ border-bottom: 1px solid #fff; margin: 0; } -.v-label-hr { +.#{$primaryStyleName}-hr { height: 1px; } -.v-sa & .v-label hr, -.v-ie8 & .v-label hr { +.v-sa & .#{$primaryStyleName} hr, +.v-ie8 & .#{$primaryStyleName} hr { height: 1px; } diff --git a/WebContent/VAADIN/themes/runo/link/link.scss b/WebContent/VAADIN/themes/runo/link/link.scss index 8c08a718b8..6970c6b2d8 100644 --- a/WebContent/VAADIN/themes/runo/link/link.scss +++ b/WebContent/VAADIN/themes/runo/link/link.scss @@ -1,6 +1,6 @@ -@mixin runo-link { +@mixin runo-link($primaryStyleName : v-link) { -.v-link a { +.#{$primaryStyleName} a { color: #464f52; } diff --git a/WebContent/VAADIN/themes/runo/menubar/menubar.scss b/WebContent/VAADIN/themes/runo/menubar/menubar.scss index a9c26a4b24..51efc6f28f 100644 --- a/WebContent/VAADIN/themes/runo/menubar/menubar.scss +++ b/WebContent/VAADIN/themes/runo/menubar/menubar.scss @@ -1,21 +1,21 @@ -@mixin runo-menubar { +@mixin runo-menubar($primaryStyleName : v-menubar) { -.v-menubar { +.#{$primaryStyleName} { color: #464f52; border-left: 1px solid #c6cbcc; } -.v-menubar .v-menubar-menuitem { +.#{$primaryStyleName} .#{$primaryStyleName}-menuitem { padding: 1px 10px; border: 1px solid #c6cbcc; border-left: none; height: 18px; line-height: 18x; } -.v-menubar-menuitem-selected { +.#{$primaryStyleName}-menuitem-selected { color: #fff; background: #5daee8; } -.v-menubar-submenu { +.#{$primaryStyleName}-submenu { background: #e9eced url(../tabsheet/img/tab-bg.png); font-family: "Trebuchet MS", geneva, helvetica, arial, tahoma, verdana, sans-serif; color: #464f52; @@ -26,13 +26,13 @@ border-top: 1px solid #d0d4d5; border-left: 1px solid #d0d4d5; } -.v-menubar-submenu .v-menubar-menuitem { +.#{$primaryStyleName}-submenu .#{$primaryStyleName}-menuitem { padding-top: 1px; padding-bottom: 1px; line-height: 16px; padding-left: 10px; } -.v-menubar-submenu .v-menubar-menuitem-caption .v-icon { +.#{$primaryStyleName}-submenu .#{$primaryStyleName}-menuitem-caption .v-icon { vertical-align: middle; } diff --git a/WebContent/VAADIN/themes/runo/notification/notification.scss b/WebContent/VAADIN/themes/runo/notification/notification.scss index f81f304923..af0a2edc32 100644 --- a/WebContent/VAADIN/themes/runo/notification/notification.scss +++ b/WebContent/VAADIN/themes/runo/notification/notification.scss @@ -1,6 +1,6 @@ -@mixin runo-notification { +@mixin runo-notification($primaryStyleName : v-Notification) { -.v-Notification { +.#{$primaryStyleName} { font-family: "Trebuchet MS", geneva, helvetica, arial, tahoma, verdana, sans-serif; background-color: #94a0a3; color: #ffffff; @@ -15,35 +15,35 @@ -moz-box-shadow: 0 3px 10px rgba(0,0,0,.3); margin: 10px; } -.v-Notification h1, -.v-Notification p, -.v-Notification-error h1, -.v-Notification-error p, -.v-Notification-warning h1, -.v-Notification-warning p { +.#{$primaryStyleName} h1, +.#{$primaryStyleName} p, +.#{$primaryStyleName}-error h1, +.#{$primaryStyleName}-error p, +.#{$primaryStyleName}-warning h1, +.#{$primaryStyleName}-warning p { display: inline; font-weight: normal; line-height: normal; margin: 0 10px 0 0; } -.v-Notification-warning { +.#{$primaryStyleName}-warning { background: #fff1e4; color: #dd3400; border: 2px solid #ffaa90; opacity: 1; } -.v-Notification-error { +.#{$primaryStyleName}-error { background: #f13d13 url(img/close-error.png) no-repeat right 5px; padding-right: 50px; } -.v-Notification-tray { +.#{$primaryStyleName}-tray { background: #575e60; padding: 3px; -webkit-box-shadow: 0 3px 6px rgba(0,0,0,.5); -moz-box-shadow: 0 3px 6px rgba(0,0,0,.5); max-width: 17em; } -.v-Notification-tray h1 { +.#{$primaryStyleName}-tray h1 { display: block; font-weight: bold; font-size: 0.9em; @@ -55,14 +55,14 @@ -webkit-border-radius: 2px; border-radius: 2px; } -.v-Notification-tray p { +.#{$primaryStyleName}-tray p { display: block; font-size: 0.8em; line-height: 1.2; margin: 4px 10px 5px 10px; color: #e4e7ea; } -.v-Notification-system { +.#{$primaryStyleName}-system { background-color: #ff0a0a; font-size: .9em; padding: 14px 32px; diff --git a/WebContent/VAADIN/themes/runo/orderedlayout/orderedlayout.scss b/WebContent/VAADIN/themes/runo/orderedlayout/orderedlayout.scss index bb202433b5..d01371599c 100644 --- a/WebContent/VAADIN/themes/runo/orderedlayout/orderedlayout.scss +++ b/WebContent/VAADIN/themes/runo/orderedlayout/orderedlayout.scss @@ -1,34 +1,34 @@ -@mixin runo-orderedlayout { +@mixin runo-orderedlayout($primaryStyleName : v-orderedlayout) { -.v-orderedlayout-margin-top, +.#{$primaryStyleName}-margin-top, .v-horizontallayout-margin-top, .v-verticallayout-margin-top, .v-csslayout-margin-top, .v-layout.v-margin-top { padding-top: 15px; } -.v-orderedlayout-margin-right, +.#{$primaryStyleName}-margin-right, .v-horizontallayout-margin-right, .v-verticallayout-margin-right, .v-csslayout-margin-right, .v-layout.v-margin-right { padding-right: 18px; } -.v-orderedlayout-margin-bottom, +.#{$primaryStyleName}-margin-bottom, .v-horizontallayout-margin-bottom, .v-verticallayout-margin-bottom, .v-csslayout-margin-bottom, .v-layout.v-margin-bottom { padding-bottom: 15px; } -.v-orderedlayout-margin-left, +.#{$primaryStyleName}-margin-left, .v-horizontallayout-margin-left, .v-verticallayout-margin-left, .v-csslayout-margin-left, .v-layout.v-margin-left { padding-left: 18px; } -.v-orderedlayout-spacing-on, +.#{$primaryStyleName}-spacing-on, .v-horizontallayout-spacing-on, .v-verticallayout-spacing-on { padding-top: 8px; diff --git a/WebContent/VAADIN/themes/runo/panel/panel.scss b/WebContent/VAADIN/themes/runo/panel/panel.scss index d33bcc5c62..1243cfbb77 100644 --- a/WebContent/VAADIN/themes/runo/panel/panel.scss +++ b/WebContent/VAADIN/themes/runo/panel/panel.scss @@ -1,15 +1,15 @@ -@mixin runo-panel { +@mixin runo-panel($primaryStyleName : v-panel) { -.v-panel { +.#{$primaryStyleName} { background: transparent url(img/top-left.png) no-repeat; } -.v-panel-caption .v-errorindicator { +.#{$primaryStyleName}-caption .v-errorindicator { padding-right: 20px; background: transparent url(../icons/16/error.png) no-repeat bottom center; } -.v-panel-caption, -.v-panel-caption-light { +.#{$primaryStyleName}-caption, +.#{$primaryStyleName}-caption-light { font-size: 18px; line-height: normal; font-weight: normal; @@ -21,22 +21,22 @@ background: transparent url(img/top-right.png) no-repeat right top; text-overflow: ellipsis; } -.v-panel-nocaption { +.#{$primaryStyleName}-nocaption { height: 9px; margin-left: 10px; background: transparent url(img/top-right.png) no-repeat right top; } -.v-panel-content { +.#{$primaryStyleName}-content { border: 1px solid #babfc0; border-bottom: 1px solid #dee2e3; background-color: #fff; } -.v-panel-deco { +.#{$primaryStyleName}-deco { height: 9px; background: transparent url(img/bottom-right.png) repeat-x right top; margin-left: 9px; } -.v-panel-deco:before { +.#{$primaryStyleName}-deco:before { display: block; width: 9px; @@ -45,37 +45,37 @@ background: transparent url(img/bottom-left.png) no-repeat; } /* Light panel style */ -.v-panel-light, -.v-panel-caption-light { +.#{$primaryStyleName}-light, +.#{$primaryStyleName}-caption-light { background: transparent; } -.v-panel-caption-light { +.#{$primaryStyleName}-caption-light { border-bottom: 1px solid #babfc0; margin: 0; padding-left: 18px; } -.v-panel-nocaption-light { +.#{$primaryStyleName}-nocaption-light { background: transparent; border: none; height: 0; margin: 0; } -.v-panel-content-light { +.#{$primaryStyleName}-content-light { border: none; background: transparent; } -.v-panel-deco-light { +.#{$primaryStyleName}-deco-light { height: 0; overflow: hidden; } /* IE specific rules */ -.v-ie8 & .v-panel-content { +.v-ie8 & .#{$primaryStyleName}-content { border-bottom: 1px solid #babfc0; } -.v-ie8 & .v-panel-content-light { +.v-ie8 & .#{$primaryStyleName}-content-light { border-bottom: none; } -.v-ie8 & .v-panel-deco { +.v-ie8 & .#{$primaryStyleName}-deco { height: 0; overflow: hidden; } diff --git a/WebContent/VAADIN/themes/runo/popupview/popupview.scss b/WebContent/VAADIN/themes/runo/popupview/popupview.scss index ddae62902e..e5bc664fdd 100644 --- a/WebContent/VAADIN/themes/runo/popupview/popupview.scss +++ b/WebContent/VAADIN/themes/runo/popupview/popupview.scss @@ -1,9 +1,9 @@ -@mixin runo-popupview { +@mixin runo-popupview($primaryStyleName : v-popupview) { -.v-popupview { +.#{$primaryStyleName} { background: transparent; } -.v-popupview-popup { +.#{$primaryStyleName}-popup { border: 1px solid #babfc0; border-bottom: 1px solid #dee2e3; background: #fff; diff --git a/WebContent/VAADIN/themes/runo/progressindicator/progressindicator.scss b/WebContent/VAADIN/themes/runo/progressindicator/progressindicator.scss index 31d4493b78..9664a473b2 100644 --- a/WebContent/VAADIN/themes/runo/progressindicator/progressindicator.scss +++ b/WebContent/VAADIN/themes/runo/progressindicator/progressindicator.scss @@ -1,22 +1,22 @@ -@mixin runo-progressindicator { +@mixin runo-progressindicator($primaryStyleName : v-progressindicator) { -.v-progressindicator-wrapper { +.#{$primaryStyleName}-wrapper { background: #dfe2e4 url(img/base.gif) repeat-x; border: 1px solid #b6bbbc; } -.v-disabled .v-progressindicator-wrapper { +.v-disabled .#{$primaryStyleName}-wrapper { background-image: url(img/disabled.gif); } -.v-progressindicator-indicator { +.#{$primaryStyleName}-indicator { background: #f7f9f9 url(img/progress.png); } -.v-progressindicator-indicator { +.#{$primaryStyleName}-indicator { background: #f7f9f9 url(img/progress.png); } -.v-progressindicator-indeterminate { +.#{$primaryStyleName}-indeterminate { background: #fff url(../../base/common/img/ajax-loader-medium.gif) no-repeat 50%; } -.v-progressindicator-indeterminate-disabled { +.#{$primaryStyleName}-indeterminate-disabled { background: #dfe2e4; } diff --git a/WebContent/VAADIN/themes/runo/runo.scss b/WebContent/VAADIN/themes/runo/runo.scss index a5150b2d16..de4d2b3bbd 100644 --- a/WebContent/VAADIN/themes/runo/runo.scss +++ b/WebContent/VAADIN/themes/runo/runo.scss @@ -31,13 +31,6 @@ background: #e9eced; } -/* Temporarily moved here to make drag'n'drop work before #10384 is fixed */ -.v-drag-element { - font-family: "Trebuchet MS", geneva, helvetica, arial, tahoma, verdana, sans-serif; - color: #464f52; - font-size: 13px; -} - @mixin runo { // TODO move? @include base; diff --git a/WebContent/VAADIN/themes/runo/select/select.scss b/WebContent/VAADIN/themes/runo/select/select.scss index 6ba9acecd7..cc9846f145 100644 --- a/WebContent/VAADIN/themes/runo/select/select.scss +++ b/WebContent/VAADIN/themes/runo/select/select.scss @@ -1,4 +1,4 @@ -@mixin runo-select { +@mixin runo-select($primaryStyleName : v-filterselect) { .v-select-select { font-size: 13px; @@ -14,14 +14,14 @@ /** Filterselect aka ComboBox styles */ -.v-filterselect { +.#{$primaryStyleName} { height: 23px; background: transparent url(img/bg-left-filter.png) no-repeat; padding-left: 4px; } -&.v-app .v-filterselect .v-filterselect-input, -.v-window .v-filterselect .v-filterselect-input, -.v-popupview-popup .v-filterselect .v-filterselect-input { +&.v-app .#{$primaryStyleName} .#{$primaryStyleName}-input, +.v-window .#{$primaryStyleName} .#{$primaryStyleName}-input, +.v-popupview-popup .#{$primaryStyleName} .#{$primaryStyleName}-input { background: transparent url(img/bg-center-filter.png) no-repeat 1px 0; border: none; height: 23px; @@ -29,38 +29,38 @@ padding: 2px 0 1px 2px; font-size: 13px; } -.v-filterselect-prompt .v-filterselect-input { +.#{$primaryStyleName}-prompt .#{$primaryStyleName}-input { font-style: normal; } -.v-filterselect-input:focus { +.#{$primaryStyleName}-input:focus { /* remove safari/mac outline from this element */ outline: none; } -.v-filterselect-focus { +.#{$primaryStyleName}-focus { outline: 1px solid #5daee8; outline-offset: -1px; } -.v-sa & .v-filterselect-focus { +.v-sa & .#{$primaryStyleName}-focus { /* place safari focus outline around the whole thing */ outline: 5px auto -webkit-focus-ring-color; outline-offset: -4px; } -.v-filterselect-button { +.#{$primaryStyleName}-button { width: 25px; height: 23px; background: transparent url(img/bg-right-filter.png); } -.v-filterselect-button:hover { +.#{$primaryStyleName}-button:hover { background-position: bottom left; } -.v-disabled .v-filterselect-button:hover, -.v-readonly .v-filterselect-button:hover { +.v-disabled .#{$primaryStyleName}-button:hover, +.v-readonly .#{$primaryStyleName}-button:hover { background-position: top left; } -.v-filterselect.v-readonly .v-filterselect-input { +.#{$primaryStyleName}.v-readonly .#{$primaryStyleName}-input { background: transparent; } -.v-filterselect-suggestpopup { +.#{$primaryStyleName}-suggestpopup { background: #f6f7f7; border: 1px solid #b6bbbc; font-family: "Trebuchet MS", geneva, helvetica, arial, tahoma, verdana, sans-serif; @@ -69,45 +69,45 @@ line-height: 18px; margin-top: -1px; } -.v-filterselect-suggestmenu .gwt-MenuItem { +.#{$primaryStyleName}-suggestmenu .gwt-MenuItem { padding: 1px 6px; cursor: pointer; height: 18px; } -.v-ff & .v-filterselect-suggestmenu .gwt-MenuItem { +.v-ff & .#{$primaryStyleName}-suggestmenu .gwt-MenuItem { height: 20px; } -.v-filterselect-suggestmenu .gwt-MenuItem .v-icon { +.#{$primaryStyleName}-suggestmenu .gwt-MenuItem .v-icon { margin-right: 3px; } -.v-filterselect-suggestmenu .gwt-MenuItem-selected { +.#{$primaryStyleName}-suggestmenu .gwt-MenuItem-selected { background: #5daee8; color: #fff; } -.v-filterselect-nextpage, -.v-filterselect-nextpage-off, -.v-filterselect-prevpage-off, -.v-filterselect-prevpage { +.#{$primaryStyleName}-nextpage, +.#{$primaryStyleName}-nextpage-off, +.#{$primaryStyleName}-prevpage-off, +.#{$primaryStyleName}-prevpage { height: 11px; width:100%; background: transparent url(img/button-bg.png) no-repeat 50% 0; margin: 2px 0 0 0; } -.v-filterselect-prevpage, -.v-filterselect-prevpage-off { +.#{$primaryStyleName}-prevpage, +.#{$primaryStyleName}-prevpage-off { background-position: 50% -1px; margin: 0 0 2px 0; } -.v-filterselect-prevpage:hover { +.#{$primaryStyleName}-prevpage:hover { background-position: 50% bottom; } -.v-filterselect-nextpage:hover { +.#{$primaryStyleName}-nextpage:hover { background-position: 50% -12px; } -.v-filterselect-nextpage span, -.v-filterselect-nextpage-off span, -.v-filterselect-prevpage-off span, -.v-filterselect-prevpage span { +.#{$primaryStyleName}-nextpage span, +.#{$primaryStyleName}-nextpage-off span, +.#{$primaryStyleName}-prevpage-off span, +.#{$primaryStyleName}-prevpage span { display: block; height: 12px; width:100%; @@ -116,11 +116,11 @@ cursor: pointer; overflow: hidden; } -.v-filterselect-nextpage span, -.v-filterselect-nextpage-off span { +.#{$primaryStyleName}-nextpage span, +.#{$primaryStyleName}-nextpage-off span { background: transparent url(img/arrow-down.png) no-repeat 50% 60%; } -.v-filterselect-status { +.#{$primaryStyleName}-status { font-size: 11px; line-height: 11px; width: 100%; @@ -133,13 +133,13 @@ /* Error styles (disabled by default) ---------------------------------- -.v-filterselect-error { +.#{$primaryStyleName}-error { background-image: url(img/bg-left-filter-error.png); } -.v-filterselect-error .v-filterselect-input { +.#{$primaryStyleName}-error .#{$primaryStyleName}-input { background-image: url(img/bg-center-filter-error.png); } -.v-filterselect-error .v-filterselect-button { +.#{$primaryStyleName}-error .#{$primaryStyleName}-button { background-image: url(img/bg-right-filter-error.png); } .v-select-error .v-select-option, diff --git a/WebContent/VAADIN/themes/runo/shadow/shadow.scss b/WebContent/VAADIN/themes/runo/shadow/shadow.scss index 96a911fca4..f24cab1bd2 100644 --- a/WebContent/VAADIN/themes/runo/shadow/shadow.scss +++ b/WebContent/VAADIN/themes/runo/shadow/shadow.scss @@ -1,31 +1,31 @@ -@mixin runo-shadow { +@mixin runo-shadow($primaryStyleName : v-shadow) { -.v-shadow { +.#{$primaryStyleName} { position: absolute; } -.v-shadow .top-left { +.#{$primaryStyleName} .top-left { position: absolute; overflow: hidden; top: -3px; left: -4px; width: 8px; height: 8px; background: transparent url(img/top-left.png); } -.v-shadow .top { +.#{$primaryStyleName} .top { position: absolute; overflow: hidden; top: -3px; left: 4px; height: 8px; right: 4px; background: transparent url(img/top.png); } -.v-shadow .top-right { +.#{$primaryStyleName} .top-right { position: absolute; overflow: hidden; top: -3px; right: -4px; width: 8px; height: 8px; background: transparent url(img/top-right.png); } -.v-shadow .left { +.#{$primaryStyleName} .left { position: absolute; overflow: hidden; top: 5px; left: -4px; width: 8px; @@ -33,14 +33,14 @@ background: transparent url(img/left.png); } -.v-shadow .center { +.#{$primaryStyleName} .center { position: absolute; overflow: hidden; top: 5px; left: 4px; bottom: 3px; right: 4px; background: transparent url(img/center.png); } -.v-shadow .right { +.#{$primaryStyleName} .right { position: absolute; overflow: hidden; top: 5px; right: -4px; width: 8px; @@ -48,21 +48,21 @@ background: transparent url(img/right.png); } -.v-shadow .bottom-left { +.#{$primaryStyleName} .bottom-left { position: absolute; overflow: hidden; bottom: -5px; left: -4px; width: 8px; height: 8px; background: transparent url(img/bottom-left.png); } -.v-shadow .bottom { +.#{$primaryStyleName} .bottom { position: absolute; overflow: hidden; bottom: -5px; left: 4px; right: 4px; height: 8px; background: transparent url(img/bottom.png); } -.v-shadow .bottom-right { +.#{$primaryStyleName} .bottom-right { position: absolute; overflow: hidden; bottom: -5px; right: -4px; width: 8px; height: 8px; diff --git a/WebContent/VAADIN/themes/runo/slider/slider.scss b/WebContent/VAADIN/themes/runo/slider/slider.scss index 3bc9e28702..aa8cbe3e7a 100644 --- a/WebContent/VAADIN/themes/runo/slider/slider.scss +++ b/WebContent/VAADIN/themes/runo/slider/slider.scss @@ -1,11 +1,11 @@ -@mixin runo-slider { +@mixin runo-slider($primaryStyleName : v-slider) { -.v-slider { +.#{$primaryStyleName} { border-top: 1px solid #cccfd0; border-bottom: 1px solid #cccfd0; margin: 5px 0; } -.v-slider-base { +.#{$primaryStyleName}-base { /* changing the borders will require adjustments to ISlider.java */ height: 2px; background: #f3f3f4; @@ -13,18 +13,18 @@ border-left: 1px solid #cccfd0; border-right: 1px solid #cccfd0; } -.v-slider-handle { +.#{$primaryStyleName}-handle { background: transparent url(img/handle-horizontal.png); width: 12px; height: 12px; margin-top: -5px; cursor: pointer; } -.v-slider-handle:hover { +.#{$primaryStyleName}-handle:hover { background-position: left bottom; } -.v-slider-scrollbar .v-slider-handle, -.v-slider-scrollbar.v-slider-vertical .v-slider-handle { +.#{$primaryStyleName}-scrollbar .#{$primaryStyleName}-handle, +.#{$primaryStyleName}-scrollbar.#{$primaryStyleName}-vertical .#{$primaryStyleName}-handle { background: #ffffff; border: 1px solid #cccfd0; border-radius: 6px; @@ -32,14 +32,14 @@ -webkit-border-radius: 6px; } -.v-slider-vertical { +.#{$primaryStyleName}-vertical { width: 3px; margin: 0 5px; border: none; border-left: 1px solid #cccfd0; border-right: 1px solid #cccfd0; } -.v-slider-vertical .v-slider-base { +.#{$primaryStyleName}-vertical .#{$primaryStyleName}-base { width: 2px; border-left: 1px solid #cbcdce; border-right: none; @@ -47,25 +47,25 @@ border-top: 1px solid #cccfd0; border-bottom: 1px solid #cccfd0; } -.v-slider-vertical .v-slider-handle { +.#{$primaryStyleName}-vertical .#{$primaryStyleName}-handle { background: transparent url(img/handle-vertical.png); width: 12px; height: 12px; margin-left: -5px; } -.v-slider-vertical .v-slider-handle-active { +.#{$primaryStyleName}-vertical .#{$primaryStyleName}-handle-active { background-position: left bottom; } /* Disabled by default -.v-slider-error .v-slider-base { +.#{$primaryStyleName}-error .#{$primaryStyleName}-base { background:transparent; background-color: #FFE0E0; } */ /* Disabled by default -.v-slider-required .v-slider-base { +.#{$primaryStyleName}-required .#{$primaryStyleName}-base { background:transparent; background-color: #FFE0E0; } diff --git a/WebContent/VAADIN/themes/runo/splitpanel/splitpanel.scss b/WebContent/VAADIN/themes/runo/splitpanel/splitpanel.scss index dd01217380..84b8f5cd44 100644 --- a/WebContent/VAADIN/themes/runo/splitpanel/splitpanel.scss +++ b/WebContent/VAADIN/themes/runo/splitpanel/splitpanel.scss @@ -1,17 +1,17 @@ -@mixin runo-splitpanel { +@mixin runo-splitpanel($primaryStyleName : v-splitpanel) { -.v-splitpanel-horizontal, -.v-splitpanel-vertical { +.#{$primaryStyleName}-horizontal, +.#{$primaryStyleName}-vertical { overflow: hidden; } -.v-splitpanel-hsplitter, -.v-splitpanel-hsplitter-locked { +.#{$primaryStyleName}-hsplitter, +.#{$primaryStyleName}-hsplitter-locked { width: 6px; } -.v-splitpanel-hsplitter div, -.v-splitpanel-hsplitter-locked div { +.#{$primaryStyleName}-hsplitter div, +.#{$primaryStyleName}-hsplitter-locked div { width: 6px; position: absolute; top: 0; @@ -21,13 +21,13 @@ margin: 0 -1px; } -.v-splitpanel-vsplitter, -.v-splitpanel-vsplitter-locked { +.#{$primaryStyleName}-vsplitter, +.#{$primaryStyleName}-vsplitter-locked { height: 6px; } -.v-splitpanel-vsplitter div, -.v-splitpanel-vsplitter-locked div { +.#{$primaryStyleName}-vsplitter div, +.#{$primaryStyleName}-vsplitter-locked div { height: 6px; background: #ccd2d0 url(img/bg_ver.png); border: 1px solid #b6bbbc; @@ -36,49 +36,49 @@ /* Rounded style */ -.v-splitpanel-hsplitter-rounded div, -.v-splitpanel-vsplitter-rounded div, -.v-splitpanel-hsplitter-rounded-locked div, -.v-splitpanel-vsplitter-rounded-locked div { +.#{$primaryStyleName}-hsplitter-rounded div, +.#{$primaryStyleName}-vsplitter-rounded div, +.#{$primaryStyleName}-hsplitter-rounded-locked div, +.#{$primaryStyleName}-vsplitter-rounded-locked div { -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; } -.v-splitpanel-hsplitter-rounded div, -.v-splitpanel-hsplitter-rounded-locked div { +.#{$primaryStyleName}-hsplitter-rounded div, +.#{$primaryStyleName}-hsplitter-rounded-locked div { top: 4px; bottom: 4px; } -.v-splitpanel-vsplitter-rounded div, -.v-splitpanel-vsplitter-rounded-locked div { +.#{$primaryStyleName}-vsplitter-rounded div, +.#{$primaryStyleName}-vsplitter-rounded-locked div { margin: -1px 4px; } /* Small style */ -.v-splitpanel-hsplitter-small, -.v-splitpanel-vsplitter-small, -.v-splitpanel-hsplitter-small-locked, -.v-splitpanel-vsplitter-small-locked { +.#{$primaryStyleName}-hsplitter-small, +.#{$primaryStyleName}-vsplitter-small, +.#{$primaryStyleName}-hsplitter-small-locked, +.#{$primaryStyleName}-vsplitter-small-locked { background: #b6bbbc; } -.v-splitpanel-hsplitter-small, -.v-splitpanel-hsplitter-small-locked { +.#{$primaryStyleName}-hsplitter-small, +.#{$primaryStyleName}-hsplitter-small-locked { width: 1px; } -.v-splitpanel-vsplitter-small, -.v-splitpanel-vsplitter-small-locked { +.#{$primaryStyleName}-vsplitter-small, +.#{$primaryStyleName}-vsplitter-small-locked { height: 1px; } -.v-splitpanel-hsplitter-small div, -.v-splitpanel-hsplitter-small-locked div { +.#{$primaryStyleName}-hsplitter-small div, +.#{$primaryStyleName}-hsplitter-small-locked div { border: none; background: transparent; width: 5px; margin: 0 0 0 -2px; } -.v-splitpanel-vsplitter-small div, -.v-splitpanel-vsplitter-small-locked div { +.#{$primaryStyleName}-vsplitter-small div, +.#{$primaryStyleName}-vsplitter-small-locked div { border: none; background: transparent; height: 5px; diff --git a/WebContent/VAADIN/themes/runo/table/table.scss b/WebContent/VAADIN/themes/runo/table/table.scss index 47bcb2caca..3902ed7cb0 100644 --- a/WebContent/VAADIN/themes/runo/table/table.scss +++ b/WebContent/VAADIN/themes/runo/table/table.scss @@ -1,86 +1,86 @@ -@mixin runo-table { +@mixin runo-table($primaryStyleName : v-table) { -.v-table-header-wrap { +.#{$primaryStyleName}-header-wrap { height: 36px; border: 1px solid #b6bbbc; border-bottom: none; background: #e7e9ea url(img/header-bg.png) repeat-x; } -.v-table-header { +.#{$primaryStyleName}-header { height: 36px; } -.v-table-footer-wrap { +.#{$primaryStyleName}-footer-wrap { border-color: #b6bbbc; background: #e7e9ea url(img/header-bg.png) repeat-x; } -.v-table-footer td { +.#{$primaryStyleName}-footer td { border-right-color: #e8eaec; padding-top: 3px; padding-bottom: 3px; } -.v-table-resizer { +.#{$primaryStyleName}-resizer { height: 36px; width: 4px; background: transparent url(img/resizer-bg.png) repeat-y 100% 50%; } -.v-table-caption-container { +.#{$primaryStyleName}-caption-container { color: #393a3c; font-size: 15px; padding: 9px 2px 9px 0; text-shadow: #ffffff 0 1px 0; margin-left: 4px; } -.v-table-sort-indicator { +.#{$primaryStyleName}-sort-indicator { width: 0; height: 36px; } -.v-table-header-cell-asc .v-table-sort-indicator { +.#{$primaryStyleName}-header-cell-asc .#{$primaryStyleName}-sort-indicator { background: transparent url(img/sort-asc.png) no-repeat right 50%; width: 20px; height: 36px; } -.v-table-header-cell-desc .v-table-sort-indicator { +.#{$primaryStyleName}-header-cell-desc .#{$primaryStyleName}-sort-indicator { background: transparent url(img/sort-desc.png) no-repeat right 50%; width: 20px; height: 36px; } -.v-table-header-cell:hover, -.v-table-header-cell-asc:hover, -.v-table-header-cell-desc:hover { +.#{$primaryStyleName}-header-cell:hover, +.#{$primaryStyleName}-header-cell-asc:hover, +.#{$primaryStyleName}-header-cell-desc:hover { background: transparent url(img/header-bg-over.png) repeat-x; } -.v-table-body { +.#{$primaryStyleName}-body { background: #fff; border: 1px solid #b6bbbc; } -tr.v-table-row:hover, -tr.v-table-row-odd:hover { +tr.#{$primaryStyleName}-row:hover, +tr.#{$primaryStyleName}-row-odd:hover { background-color: #edeeee; } -.v-table-row, -.v-table-body-noselection .v-table-row:hover { +.#{$primaryStyleName}-row, +.#{$primaryStyleName}-body-noselection .#{$primaryStyleName}-row:hover { background-color: #fff; } -.v-table-row-odd, -.v-table-body-noselection .v-table-row-odd:hover { +.#{$primaryStyleName}-row-odd, +.#{$primaryStyleName}-body-noselection .#{$primaryStyleName}-row-odd:hover { background-color: #f6f7f7; } -.v-table-generated-row { +.#{$primaryStyleName}-generated-row { color: #393a3c; font-size: 15px; padding: 9px 2px 9px 0; text-shadow: #ffffff 0 1px 0; background: #e7e9ea; } -.v-table tr.v-selected { +.#{$primaryStyleName} tr.v-selected { background: #57a7ed; color: #fff; } -.v-table-cell-content { +.#{$primaryStyleName}-cell-content { padding: 0 6px 0 4px; border-right: none; } -.v-table-cell-wrapper { +.#{$primaryStyleName}-cell-wrapper { white-space: nowrap; overflow: hidden; line-height: 23px; @@ -88,40 +88,40 @@ tr.v-table-row-odd:hover { padding: 3px 0 0 0; } /* Fix textfield size to correspond label size inside table */ -.v-table-cell-content .v-textfield, -.v-table-cell-content .v-button { +.#{$primaryStyleName}-cell-content .v-textfield, +.#{$primaryStyleName}-cell-content .v-button { margin: -3px 0 0 0; } -.v-table-cell-content .v-textfield, -.v-table-cell-content .v-datefield { +.#{$primaryStyleName}-cell-content .v-textfield, +.#{$primaryStyleName}-cell-content .v-datefield { width: 97%; /* approximate */ } /* ...but not for datefield textarea */ -.v-table-cell-content .v-datefield .v-textfield { +.#{$primaryStyleName}-cell-content .v-datefield .v-textfield { width: auto; } /* datefield button is too high for table cell */ -.v-table-cell-content .v-datefield-button { +.#{$primaryStyleName}-cell-content .v-datefield-button { height: 25px; margin: -3px 0 0 0; } -.v-table-column-selector { +.#{$primaryStyleName}-column-selector { background: transparent url(img/colsel.png) no-repeat; margin: -36px 0 0 0; height: 36px; width: 15px; } -.v-table-focus-slot-left { +.#{$primaryStyleName}-focus-slot-left { border-color: #b6bbbc; margin-bottom: -36px; width: auto; border-right: none; } -.v-table-focus-slot-right { +.#{$primaryStyleName}-focus-slot-right { border-color: #b6bbbc; } -.v-table-header-drag { +.#{$primaryStyleName}-header-drag { background: #e7edf3 url(img/header-bg.png) repeat-x; border: 1px solid #b6bbbc; padding: 4px; @@ -130,13 +130,13 @@ tr.v-table-row-odd:hover { font-size: 15px; margin-top: 20px; } -.v-table-scrollposition { +.#{$primaryStyleName}-scrollposition { width: 160px; height: 39px; background: transparent url(img/scroll-position-bg.png); border: none; } -.v-table-scrollposition span { +.#{$primaryStyleName}-scrollposition span { display: block; margin-top: 8px; text-align: center; @@ -153,52 +153,52 @@ tr.v-table-row-odd:hover { .v-off div { text-indent: 6px; } -.v-table .v-link { +.#{$primaryStyleName} .v-link { display: inline; } /* Borderless style */ -.v-table-borderless .v-table-header-wrap, -.v-table-borderless .v-table-body { +.#{$primaryStyleName}-borderless .#{$primaryStyleName}-header-wrap, +.#{$primaryStyleName}-borderless .#{$primaryStyleName}-body { border: none; } -.v-table-borderless .v-table-header-wrap { +.#{$primaryStyleName}-borderless .#{$primaryStyleName}-header-wrap { border-bottom: 1px solid #b6bbbc; } -.v-table-borderless .v-table-body { +.#{$primaryStyleName}-borderless .#{$primaryStyleName}-body { background: transparent; } -.v-table-borderless .v-table-row, -.v-table-borderless .v-table-row-odd, -.v-table-borderless .v-table-body-noselection .v-table-row:hover, -.v-table-borderless .v-table-body-noselection .v-table-row-odd:hover { +.#{$primaryStyleName}-borderless .#{$primaryStyleName}-row, +.#{$primaryStyleName}-borderless .#{$primaryStyleName}-row-odd, +.#{$primaryStyleName}-borderless .#{$primaryStyleName}-body-noselection .#{$primaryStyleName}-row:hover, +.#{$primaryStyleName}-borderless .#{$primaryStyleName}-body-noselection .#{$primaryStyleName}-row-odd:hover { background-color: transparent; } /* Small style */ -.v-table-small .v-table-header-wrap, -.v-table-small .v-table-header { +.#{$primaryStyleName}-small .#{$primaryStyleName}-header-wrap, +.#{$primaryStyleName}-small .#{$primaryStyleName}-header { height: 22px; } -.v-table-small .v-table-sort-indicator, -.v-table-small .v-table-header-cell-asc .v-table-sort-indicator, -.v-table-small .v-table-header-cell-desc .v-table-sort-indicator { +.#{$primaryStyleName}-small .#{$primaryStyleName}-sort-indicator, +.#{$primaryStyleName}-small .#{$primaryStyleName}-header-cell-asc .#{$primaryStyleName}-sort-indicator, +.#{$primaryStyleName}-small .#{$primaryStyleName}-header-cell-desc .#{$primaryStyleName}-sort-indicator { height: 22px; } -.v-table-small .v-table-caption-container { +.#{$primaryStyleName}-small .#{$primaryStyleName}-caption-container { font-size: 13px; padding-top: 3px; padding-bottom: 3px; } -.v-table-small .v-table-column-selector { +.#{$primaryStyleName}-small .#{$primaryStyleName}-column-selector { margin-top: -21px; height: 21px; } -.v-table-small .v-table-body { +.#{$primaryStyleName}-small .#{$primaryStyleName}-body { font-size: 12px; } -.v-table-small .v-table-cell-wrapper { +.#{$primaryStyleName}-small .#{$primaryStyleName}-cell-wrapper { line-height: 18px; padding: 2px 0; } diff --git a/WebContent/VAADIN/themes/runo/tabsheet/tabsheet.scss b/WebContent/VAADIN/themes/runo/tabsheet/tabsheet.scss index 6ed8585547..cb32136086 100644 --- a/WebContent/VAADIN/themes/runo/tabsheet/tabsheet.scss +++ b/WebContent/VAADIN/themes/runo/tabsheet/tabsheet.scss @@ -1,23 +1,23 @@ -@mixin runo-tabsheet { +@mixin runo-tabsheet($primaryStyleName : v-tabsheet) { -.v-tabsheet-tabs { +.#{$primaryStyleName}-tabs { height: 48px; } -.v-tabsheet-spacertd div { +.#{$primaryStyleName}-spacertd div { height: 37px; border: 1px solid #b6bbbc; background: transparent url(img/tab-bg.png); padding: 0; } -.v-tabsheet-scroller { +.#{$primaryStyleName}-scroller { margin-top: -37px; float: right; } -.v-tabsheet-scrollerPrev, -.v-tabsheet-scrollerNext, -.v-tabsheet-scrollerPrev-disabled, -.v-tabsheet-scrollerNext-disabled { +.#{$primaryStyleName}-scrollerPrev, +.#{$primaryStyleName}-scrollerNext, +.#{$primaryStyleName}-scrollerPrev-disabled, +.#{$primaryStyleName}-scrollerNext-disabled { border: none; width: 12px; padding: 0; @@ -25,27 +25,27 @@ opacity: 0.9999; margin-top: -1px; } -.v-tabsheet-scrollerNext, -.v-tabsheet-scrollerNext-disabled { +.#{$primaryStyleName}-scrollerNext, +.#{$primaryStyleName}-scrollerNext-disabled { background: transparent url(img/next.png) no-repeat; } -.v-tabsheet-scrollerPrev, -.v-tabsheet-scrollerPrev-disabled { +.#{$primaryStyleName}-scrollerPrev, +.#{$primaryStyleName}-scrollerPrev-disabled { background: transparent url(img/prev.png) no-repeat; } -.v-tabsheet-scrollerPrev:hover, -.v-tabsheet-scrollerNext:hover { +.#{$primaryStyleName}-scrollerPrev:hover, +.#{$primaryStyleName}-scrollerNext:hover { background-position: -24px 0px; } -.v-tabsheet-scrollerPrev-disabled, -.v-tabsheet-scrollerNext-disabled { +.#{$primaryStyleName}-scrollerPrev-disabled, +.#{$primaryStyleName}-scrollerNext-disabled { background-position: -12px 0px; } -.v-tabsheet-scrollerPrev-disabled:hover, -.v-tabsheet-scrollerNext-disabled:hover { +.#{$primaryStyleName}-scrollerPrev-disabled:hover, +.#{$primaryStyleName}-scrollerNext-disabled:hover { background-position: -12px 0px; } -.v-tabsheet-tabitem { +.#{$primaryStyleName}-tabitem { border: 1px solid #b6bbbc; border-right: none; height: 37px; @@ -56,11 +56,11 @@ line-height: 18px; background: #f8f9f9 url(img/tab-bg.png); } -.v-tabsheet-tabitem .v-caption { +.#{$primaryStyleName}-tabitem .v-caption { height: 20px; padding: 9px 15px 8px 15px; } -.v-tabsheet-tabitem-selected { +.#{$primaryStyleName}-tabitem-selected { border: none; background: transparent url(../panel/img/top-left.png) no-repeat; margin: 0; @@ -68,20 +68,20 @@ height: 48px; color: #ee5311; } -.v-tabsheet-tabitem:hover { +.#{$primaryStyleName}-tabitem:hover { color: #4b5257; } -.v-tabsheet-tabitem-selected:hover { +.#{$primaryStyleName}-tabitem-selected:hover { color: #ee5311; } -.v-tabsheet-tabitem-selected .v-caption { +.#{$primaryStyleName}-tabitem-selected .v-caption { background: transparent url(../panel/img/top-right.png) repeat-x right top; margin: 0 -1px 0 9px; height: 18px; padding: 16px 16px 14px 7px; overflow: visible; } -.v-tabsheet-caption-close { +.#{$primaryStyleName}-caption-close { margin-left: 3px; margin-right: -3px; margin-top: 2px; @@ -93,29 +93,29 @@ color: #777f85; line-height: 13px; } -.v-tabsheet-caption-close:hover { +.#{$primaryStyleName}-caption-close:hover { background: #dce0e0; } -.v-tabsheet-caption-close:active { +.#{$primaryStyleName}-caption-close:active { background: #b6bbbc; color: #fff; } -.v-tabsheet-content { +.#{$primaryStyleName}-content { border: 1px solid #babfc0; background-color: #fff; border-bottom: 1px solid #dee2e3; border-top: none; } -.v-tabsheet-hidetabs .v-tabsheet-content { +.#{$primaryStyleName}-hidetabs .#{$primaryStyleName}-content { border-top: 1px solid #b5babb; } -.v-tabsheet-deco { +.#{$primaryStyleName}-deco { height: 10px; background: transparent url(../panel/img/bottom-right.png) repeat-x right top; margin-left: 9px; overflow: visible; } -.v-tabsheet-deco:before { +.#{$primaryStyleName}-deco:before { display: block; width: 9px; @@ -124,7 +124,7 @@ background: transparent url(../panel/img/bottom-left.png) no-repeat; } /* Progress indication * -.v-tabsheet-loading .v-tabsheet-tabitem-selected .v-captiontext { +.#{$primaryStyleName}-loading .#{$primaryStyleName}-tabitem-selected .v-captiontext { background: transparent url(../../base/common/img/ajax-loader.gif) no-repeat top right; margin-left: -10px; padding-left: 10px; @@ -134,36 +134,36 @@ padding-top: 12px; }*/ /* IE specific styles */ -.v-ie & .v-tabsheet-content { +.v-ie & .#{$primaryStyleName}-content { border-bottom: none; } -.v-ie & .v-tabsheet-deco { +.v-ie & .#{$primaryStyleName}-deco { height: 1px; background: #babfc0; overflow: hidden; margin: 0; } -.v-ie8 & .v-tabsheet-deco, -.v-ie9 & .v-tabsheet-deco { +.v-ie8 & .#{$primaryStyleName}-deco, +.v-ie9 & .#{$primaryStyleName}-deco { width: 100%; } /* Light-style */ -.v-tabsheet-tabcontainer-light { +.#{$primaryStyleName}-tabcontainer-light { height: 32px; } -.v-tabsheet-tabs-light { +.#{$primaryStyleName}-tabs-light { height: 32px; width: 100%; overflow:hidden; background: transparent; } -.v-tabsheet-tabs-light .v-tabsheet-spacertd div { +.#{$primaryStyleName}-tabs-light .#{$primaryStyleName}-spacertd div { height: 31px; border: none; border-bottom: 1px solid #b6bbbc; background: transparent url(img/inline-tab-bg.png) repeat-x; } -.v-tabsheet-tabs-light .v-tabsheet-tabitem { +.#{$primaryStyleName}-tabs-light .#{$primaryStyleName}-tabitem { border: none; border-bottom: 1px solid #b6bbbc; height: 30px; @@ -176,20 +176,20 @@ cursor: pointer; text-shadow: #fff 0 1px 0; } -.v-tabsheet-tabs-light .v-tabsheet-tabitem .v-caption { +.#{$primaryStyleName}-tabs-light .#{$primaryStyleName}-tabitem .v-caption { height: 24px; padding: 8px 10px 0 11px; background: transparent url(img/inline-tab-border.png) no-repeat; } -.v-tabsheet-tabs-light .v-tabsheet-tabitemcell-first .v-caption { +.#{$primaryStyleName}-tabs-light .#{$primaryStyleName}-tabitemcell-first .v-caption { margin-left: 5px; background: transparent; } -.v-tabsheet-tabs-light .v-tabsheet-tabitemcell-selected + .v-tabsheet-tabitemcell .v-caption, -.v-tabsheet-tabs-light .v-tabsheet-tabitemcell-selected-first + .v-tabsheet-tabitemcell .v-caption { +.#{$primaryStyleName}-tabs-light .#{$primaryStyleName}-tabitemcell-selected + .#{$primaryStyleName}-tabitemcell .v-caption, +.#{$primaryStyleName}-tabs-light .#{$primaryStyleName}-tabitemcell-selected-first + .#{$primaryStyleName}-tabitemcell .v-caption { background: transparent; } -.v-tabsheet-tabs-light .v-tabsheet-tabitem-selected { +.#{$primaryStyleName}-tabs-light .#{$primaryStyleName}-tabitem-selected { border: none; background: transparent url(img/inline-tab-right.png) no-repeat right top; margin: 0; @@ -199,58 +199,58 @@ color: #ee5311; text-shadow: none; } -.v-tabsheet-tabs-light .v-tabsheet-tabitem:hover { +.#{$primaryStyleName}-tabs-light .#{$primaryStyleName}-tabitem:hover { color: #4b5257; } -.v-tabsheet-tabs-light .v-tabsheet-tabitem-selected:hover { +.#{$primaryStyleName}-tabs-light .#{$primaryStyleName}-tabitem-selected:hover { color: #ee5311; } -.v-tabsheet-tabs-light .v-tabsheet-tabitem-selected .v-caption { +.#{$primaryStyleName}-tabs-light .#{$primaryStyleName}-tabitem-selected .v-caption { background: transparent url(img/inline-tab-left.png) no-repeat -7px 0; margin: 0; height: 23px; padding: 9px 10px 0 11px; overflow: visible; } -.v-tabsheet-tabs-light .v-tabsheet-tabitemcell-first .v-tabsheet-tabitem-selected .v-caption { +.#{$primaryStyleName}-tabs-light .#{$primaryStyleName}-tabitemcell-first .#{$primaryStyleName}-tabitem-selected .v-caption { background: transparent url(img/inline-tab-left.png) no-repeat -3px 0; padding-left: 16px; } -.v-tabsheet-tabs-light .v-tabsheet-caption-close { +.#{$primaryStyleName}-tabs-light .#{$primaryStyleName}-caption-close { margin-top: 0; text-shadow: none; } -.v-tabsheet-content-light { +.#{$primaryStyleName}-content-light { border: none; background: transparent; } -.v-tabsheet-light .v-tabsheet-hidetabs .v-tabsheet-content { +.#{$primaryStyleName}-light .#{$primaryStyleName}-hidetabs .#{$primaryStyleName}-content { border: none; } -.v-tabsheet-deco-light { +.#{$primaryStyleName}-deco-light { height: 0; overflow: hidden; } -.v-tabsheet-deco-light:before { +.#{$primaryStyleName}-deco-light:before { display: none; } /* Scroller */ -.v-tabsheet-tabcontainer-light .v-tabsheet-scrollerPrev, -.v-tabsheet-tabcontainer-light .v-tabsheet-scrollerNext { +.#{$primaryStyleName}-tabcontainer-light .#{$primaryStyleName}-scrollerPrev, +.#{$primaryStyleName}-tabcontainer-light .#{$primaryStyleName}-scrollerNext { margin-top: 2px; height: 34px; } -.v-tabsheet-tabcontainer-light .v-tabsheet-scrollerPrev-disabled, -.v-tabsheet-tabcontainer-light .v-tabsheet-scrollerNext-disabled { +.#{$primaryStyleName}-tabcontainer-light .#{$primaryStyleName}-scrollerPrev-disabled, +.#{$primaryStyleName}-tabcontainer-light .#{$primaryStyleName}-scrollerNext-disabled { margin-top: 2px; height: 34px; } /* Progress indication * -.v-tabsheet-loading .v-tabsheet-tabs-light .v-tabsheet-tabitem-selected .v-captiontext { +.#{$primaryStyleName}-loading .#{$primaryStyleName}-tabs-light .#{$primaryStyleName}-tabitem-selected .v-captiontext { margin-left: -3px; padding-left: 3px; }*/ -.v-ie & .v-tabsheet-deco-light { +.v-ie & .#{$primaryStyleName}-deco-light { height: 0; } diff --git a/WebContent/VAADIN/themes/runo/textfield/textfield.scss b/WebContent/VAADIN/themes/runo/textfield/textfield.scss index 3382fbee91..3516f529ce 100644 --- a/WebContent/VAADIN/themes/runo/textfield/textfield.scss +++ b/WebContent/VAADIN/themes/runo/textfield/textfield.scss @@ -1,6 +1,6 @@ -@mixin runo-textfield { +@mixin runo-textfield($primaryStyleName : v-textfield) { -.v-textfield, +.#{$primaryStyleName}, .v-textarea { background: #fff url(img/bg.png) repeat-x; border: 1px solid #b6b6b6; @@ -10,8 +10,8 @@ margin: 0; line-height: 14px; } -input.v-textfield, -input[type=text].v-textfield, +input.#{$primaryStyleName}, +input[type=text].#{$primaryStyleName}, textarea.v-textarea { font-size: 12px; height: 22px; @@ -20,11 +20,11 @@ textarea.v-textarea { textarea.v-textarea { height: auto; } -.v-textfield-focus, +.#{$primaryStyleName}-focus, .v-textarea-focus { border-color: #5daee8; } -input.v-textfield-prompt, +input.#{$primaryStyleName}-prompt, textarea.v-textarea-prompt { color: #999; font-style: normal; @@ -37,8 +37,8 @@ textarea.v-textarea-prompt { } /* Small style */ -input.v-textfield-small, -input[type=text].v-textfield-small, +input.#{$primaryStyleName}-small, +input[type=text].#{$primaryStyleName}-small, textarea.v-textarea-small { font-size: 11px; height: 18px; diff --git a/WebContent/VAADIN/themes/runo/tree/tree.scss b/WebContent/VAADIN/themes/runo/tree/tree.scss index cb3dff3156..677e0e8a93 100644 --- a/WebContent/VAADIN/themes/runo/tree/tree.scss +++ b/WebContent/VAADIN/themes/runo/tree/tree.scss @@ -1,24 +1,24 @@ -@mixin runo-tree { +@mixin runo-tree($primaryStyleName : v-tree) { -.v-tree-node { +.#{$primaryStyleName}-node { background: transparent url(img/collapsed.png) no-repeat 2px 1px; } -.v-tree-node-expanded { +.#{$primaryStyleName}-node-expanded { background: transparent url(img/expanded.png) no-repeat 2px 1px; } -.v-tree-node-caption { +.#{$primaryStyleName}-node-caption { margin-left: 18px; } -.v-tree-connectors .v-tree-node-caption { +.#{$primaryStyleName}-connectors .#{$primaryStyleName}-node-caption { padding-bottom: 1px; } -.v-tree-node-caption .v-icon { +.#{$primaryStyleName}-node-caption .v-icon { margin: 0 2px 0 -2px; } -.v-tree-node-caption span { +.#{$primaryStyleName}-node-caption span { padding: 0 1px; } -.v-tree-node-selected span { +.#{$primaryStyleName}-node-selected span { background: #57a7ed; color: #fff; padding: 1px 2px 0; @@ -29,32 +29,32 @@ -moz-border-radius: 2px; border-radius: 2px; } -.v-tree-node-children { +.#{$primaryStyleName}-node-children { padding-left: 16px; } -.v-tree{ +.#{$primaryStyleName}{ outline:none; } -.v-tree-node-caption.v-tree-node-focused span{ +.#{$primaryStyleName}-node-caption.#{$primaryStyleName}-node-focused span{ padding-left: 1px; padding-top: 0px; padding-bottom: 0px; } -.v-tree-node-focused span{ +.#{$primaryStyleName}-node-focused span{ border: 1px dotted black; } /*************************************** * Drag'n'drop styles ***************************************/ -.v-tree .v-tree-node-drag-top, -.v-tree .v-tree-node-drag-top.v-tree-node-expanded { +.#{$primaryStyleName} .#{$primaryStyleName}-node-drag-top, +.#{$primaryStyleName} .#{$primaryStyleName}-node-drag-top.#{$primaryStyleName}-node-expanded { background-position: 2px 0; } -.v-tree-connectors .v-tree-node-drag-top, -.v-tree-connectors .v-tree-node-expanded.v-tree-node-drag-top { +.#{$primaryStyleName}-connectors .#{$primaryStyleName}-node-drag-top, +.#{$primaryStyleName}-connectors .#{$primaryStyleName}-node-expanded.#{$primaryStyleName}-node-drag-top { background-position: 2px -53px; } -.v-tree-connectors .v-tree-node-drag-top.v-tree-node-leaf { +.#{$primaryStyleName}-connectors .#{$primaryStyleName}-node-drag-top.#{$primaryStyleName}-node-leaf { background-position: 2px 50%; } diff --git a/WebContent/VAADIN/themes/runo/window/window.scss b/WebContent/VAADIN/themes/runo/window/window.scss index b08f87b7fa..454b6914c9 100644 --- a/WebContent/VAADIN/themes/runo/window/window.scss +++ b/WebContent/VAADIN/themes/runo/window/window.scss @@ -1,22 +1,22 @@ -@mixin runo-window { +@mixin runo-window($primaryStyleName : v-window) { -.v-window { +.#{$primaryStyleName} { color: #464f52; font-family: "Trebuchet MS", geneva, helvetica, arial, tahoma, verdana, sans-serif; font-size: 13px; line-height: 18px; background: transparent url(img/bottom-left.png) no-repeat left bottom; } -.v-window-wrap { +.#{$primaryStyleName}-wrap { background: transparent url(img/top-left.png) no-repeat; } -.v-window-outerheader { +.#{$primaryStyleName}-outerheader { height: 49px; margin-left: 9px; padding: 15px 40px 11px 12px; background: transparent url(img/top-right.png) no-repeat right top; } -.v-window-header { +.#{$primaryStyleName}-header { font-size: 18px; line-height: 1.2; font-weight: normal; @@ -24,7 +24,7 @@ color: #f14c1a; text-shadow: 0 1px 0 #fff; } -.v-window-contents > div { +.#{$primaryStyleName}-contents > div { background: #fff; border: 2px solid #babfc0; border-top: none; @@ -33,13 +33,13 @@ -moz-box-sizing: border-box; box-sizing: border-box; } -.v-window div.v-window-footer { +.#{$primaryStyleName} div.#{$primaryStyleName}-footer { height: 8px; margin-left: 9px; background: transparent url(img/bottom-right.png) no-repeat right bottom; overflow: visible; } -.v-window-resizebox { +.#{$primaryStyleName}-resizebox { position: absolute; /* Needed to position the element over ScrollPanel, which is relatively positioned */ right: 5px; width: 10px; @@ -47,11 +47,11 @@ margin-top: -7px; background: transparent url(img/resize.png); } -.v-window-resizebox-disabled { +.#{$primaryStyleName}-resizebox-disabled { background: transparent; display: block; } -.v-window-closebox { +.#{$primaryStyleName}-closebox { position: absolute; top: 21px; right: 24px; @@ -59,35 +59,35 @@ height: 12px; background: transparent url(img/close.png); } -.v-window-closebox:hover { +.#{$primaryStyleName}-closebox:hover { background-position: 0 -12px; } -.v-window-modalitycurtain { +.#{$primaryStyleName}-modalitycurtain { background: #fff; } /* Dialog style */ -.v-window-dialog { +.#{$primaryStyleName}-dialog { background-image: url(img/dialog/bottom-left.png); } -.v-window-dialog .v-window-outerheader { +.#{$primaryStyleName}-dialog .#{$primaryStyleName}-outerheader { height: 14px; padding: 13px 30px 5px 8px; background: transparent url(img/top-right.png) no-repeat right top; } -.v-window-dialog .v-window-header { +.#{$primaryStyleName}-dialog .#{$primaryStyleName}-header { font-size: 12px; line-height: normal; font-weight: bold; letter-spacing: 0; text-shadow: 0 1px 0 #fff; } -.v-window-dialog .v-window-contents { +.#{$primaryStyleName}-dialog .#{$primaryStyleName}-contents { background: #f1f3f3; } -.v-window-dialog div.v-window-footer { +.#{$primaryStyleName}-dialog div.#{$primaryStyleName}-footer { background-image: url(img/dialog/bottom-right.png); } -.v-window-dialog .v-window-closebox { +.#{$primaryStyleName}-dialog .#{$primaryStyleName}-closebox { top: 14px; right: 16px; background-image: url(img/dialog/close.png); diff --git a/client/src/com/vaadin/client/extensions/AbstractExtensionConnector.java b/client/src/com/vaadin/client/extensions/AbstractExtensionConnector.java index ee5771e6e0..ebc2d59919 100644 --- a/client/src/com/vaadin/client/extensions/AbstractExtensionConnector.java +++ b/client/src/com/vaadin/client/extensions/AbstractExtensionConnector.java @@ -42,5 +42,12 @@ public abstract class AbstractExtensionConnector extends AbstractConnector { } } + /** + * Called when the extension is attached to its parent. This method is only + * called once as an extension cannot be moved from one parent to another. + * + * @param target + * The connector this extension extends + */ protected abstract void extend(ServerConnector target); } diff --git a/client/src/com/vaadin/client/ui/VOverlay.java b/client/src/com/vaadin/client/ui/VOverlay.java index dc6c7e4dff..ec09fbab69 100644 --- a/client/src/com/vaadin/client/ui/VOverlay.java +++ b/client/src/com/vaadin/client/ui/VOverlay.java @@ -34,6 +34,7 @@ import com.vaadin.client.ApplicationConnection; import com.vaadin.client.BrowserInfo; import com.vaadin.client.ComponentConnector; import com.vaadin.client.Util; +import com.vaadin.client.VConsole; /** * In Vaadin UI this Overlay should always be used for all elements that @@ -637,32 +638,48 @@ public class VOverlay extends PopupPanel implements CloseHandler<PopupPanel> { } /** - * Gets the 'overlay container' element pertaining to the given - * {@link ApplicationConnection}. Each overlay should be created in a - * overlay container element, so that the correct theme and styles can be - * applied. + * Gets the 'overlay container' element. Tries to find the current + * {@link ApplicationConnection} using {@link #getApplicationConnection()}. * - * @param ac - * @return + * @return the overlay container element for the current + * {@link ApplicationConnection} or another element if the current + * {@link ApplicationConnection} cannot be determined. */ public Element getOverlayContainer() { ApplicationConnection ac = getApplicationConnection(); if (ac == null) { - // could not figure out which one we belong to, styling might fail + // could not figure out which one we belong to, styling will + // probably fail + VConsole.error("Could not determin ApplicationConnection for Overlay. Overlay will be attached directly to the root panel"); return RootPanel.get().getElement(); } else { - String id = ac.getConfiguration().getRootPanelId(); - id = id += "-overlays"; - Element container = DOM.getElementById(id); - if (container == null) { - container = DOM.createDiv(); - container.setId(id); - String styles = ac.getUIConnector().getWidget().getParent() - .getStyleName(); - container.setClassName(styles); - RootPanel.get().getElement().appendChild(container); - } - return container; + return getOverlayContainer(ac); } } + + /** + * Gets the 'overlay container' element pertaining to the given + * {@link ApplicationConnection}. Each overlay should be created in a + * overlay container element, so that the correct theme and styles can be + * applied. + * + * @param ac + * A reference to {@link ApplicationConnection} + * @return The overlay container + */ + public static Element getOverlayContainer(ApplicationConnection ac) { + String id = ac.getConfiguration().getRootPanelId(); + id = id += "-overlays"; + Element container = DOM.getElementById(id); + if (container == null) { + container = DOM.createDiv(); + container.setId(id); + String styles = ac.getUIConnector().getWidget().getParent() + .getStyleName(); + container.setClassName(styles); + RootPanel.get().getElement().appendChild(container); + } + return container; + } + } diff --git a/client/src/com/vaadin/client/ui/dd/VDragAndDropManager.java b/client/src/com/vaadin/client/ui/dd/VDragAndDropManager.java index 6667dc7438..ae14218fff 100644 --- a/client/src/com/vaadin/client/ui/dd/VDragAndDropManager.java +++ b/client/src/com/vaadin/client/ui/dd/VDragAndDropManager.java @@ -39,7 +39,9 @@ import com.vaadin.client.ComponentConnector; import com.vaadin.client.MouseEventDetailsBuilder; import com.vaadin.client.UIDL; import com.vaadin.client.Util; +import com.vaadin.client.VConsole; import com.vaadin.client.ValueMap; +import com.vaadin.client.ui.VOverlay; import com.vaadin.shared.ApplicationConstants; import com.vaadin.shared.MouseEventDetails; import com.vaadin.shared.ui.dd.DragEventType; @@ -567,7 +569,7 @@ public class VDragAndDropManager { private void clearDragElement() { if (dragElement != null) { if (dragElement.getParentElement() != null) { - RootPanel.getBodyElement().removeChild(dragElement); + dragElement.removeFromParent(); } dragElement = null; } @@ -708,7 +710,15 @@ public class VDragAndDropManager { @Override public void run() { if (dragElement != null && dragElement.getParentElement() == null) { - RootPanel.getBodyElement().appendChild(dragElement); + ApplicationConnection connection = getCurrentDragApplicationConnection(); + Element dragImageParent; + if (connection == null) { + VConsole.error("Could not determine ApplicationConnection for current drag operation. The drag image will likely look broken"); + dragImageParent = RootPanel.getBodyElement(); + } else { + dragImageParent = VOverlay.getOverlayContainer(connection); + } + dragImageParent.appendChild(dragElement); } } @@ -720,6 +730,19 @@ public class VDragAndDropManager { return serverCallback != null; } + protected ApplicationConnection getCurrentDragApplicationConnection() { + if (currentDrag == null) { + return null; + } + + final ComponentConnector dragSource = currentDrag.getTransferable() + .getDragSource(); + if (dragSource == null) { + return null; + } + return dragSource.getConnection(); + } + /** * Method to que tasks until all dd related server visits are done * diff --git a/server/src/com/vaadin/server/AbstractCommunicationManager.java b/server/src/com/vaadin/server/AbstractCommunicationManager.java index 0a3dff8120..af9118547f 100644 --- a/server/src/com/vaadin/server/AbstractCommunicationManager.java +++ b/server/src/com/vaadin/server/AbstractCommunicationManager.java @@ -165,10 +165,6 @@ public abstract class AbstractCommunicationManager implements Serializable { private Map<String, Class<?>> publishedFileContexts = new HashMap<String, Class<?>>(); - private Map<String, Map<String, StreamVariable>> pidToNameToStreamVariable; - - private Map<StreamVariable, String> streamVariableToSeckey; - /** * TODO New constructor - document me! * @@ -644,23 +640,6 @@ public abstract class AbstractCommunicationManager implements Serializable { // Remove connectors that have been detached from the session during // handling of the request uI.getConnectorTracker().cleanConnectorMap(); - - if (pidToNameToStreamVariable != null) { - Iterator<String> iterator = pidToNameToStreamVariable.keySet() - .iterator(); - while (iterator.hasNext()) { - String connectorId = iterator.next(); - if (uI.getConnectorTracker().getConnector(connectorId) == null) { - // Owner is no longer attached to the session - Map<String, StreamVariable> removed = pidToNameToStreamVariable - .get(connectorId); - for (String key : removed.keySet()) { - streamVariableToSeckey.remove(removed.get(key)); - } - iterator.remove(); - } - } - } } protected void highlightConnector(ClientConnector highlightedConnector) { @@ -2269,28 +2248,13 @@ public abstract class AbstractCommunicationManager implements Serializable { * handling post */ String paintableId = owner.getConnectorId(); - int uiId = owner.getUI().getUIId(); + UI ui = owner.getUI(); + int uiId = ui.getUIId(); String key = uiId + "/" + paintableId + "/" + name; - if (pidToNameToStreamVariable == null) { - pidToNameToStreamVariable = new HashMap<String, Map<String, StreamVariable>>(); - } - Map<String, StreamVariable> nameToStreamVariable = pidToNameToStreamVariable - .get(paintableId); - if (nameToStreamVariable == null) { - nameToStreamVariable = new HashMap<String, StreamVariable>(); - pidToNameToStreamVariable.put(paintableId, nameToStreamVariable); - } - nameToStreamVariable.put(name, value); - - if (streamVariableToSeckey == null) { - streamVariableToSeckey = new HashMap<StreamVariable, String>(); - } - String seckey = streamVariableToSeckey.get(value); - if (seckey == null) { - seckey = UUID.randomUUID().toString(); - streamVariableToSeckey.put(value, seckey); - } + ConnectorTracker connectorTracker = ui.getConnectorTracker(); + connectorTracker.addStreamVariable(paintableId, name, value); + String seckey = connectorTracker.getSeckey(value); return ApplicationConstants.APP_PROTOCOL_PREFIX + ServletPortletHelper.UPLOAD_URL_PREFIX + key + "/" + seckey; @@ -2298,12 +2262,8 @@ public abstract class AbstractCommunicationManager implements Serializable { } public void cleanStreamVariable(ClientConnector owner, String name) { - Map<String, StreamVariable> nameToStreamVar = pidToNameToStreamVariable - .get(owner.getConnectorId()); - nameToStreamVar.remove(name); - if (nameToStreamVar.isEmpty()) { - pidToNameToStreamVariable.remove(owner.getConnectorId()); - } + owner.getUI().getConnectorTracker() + .cleanStreamVariable(owner.getConnectorId(), name); } /** @@ -2683,9 +2643,9 @@ public abstract class AbstractCommunicationManager implements Serializable { UI uI = session.getUIById(Integer.parseInt(uiId)); UI.setCurrent(uI); - StreamVariable streamVariable = getStreamVariable(connectorId, - variableName); - String secKey = streamVariableToSeckey.get(streamVariable); + StreamVariable streamVariable = uI.getConnectorTracker() + .getStreamVariable(connectorId, variableName); + String secKey = uI.getConnectorTracker().getSeckey(streamVariable); if (secKey.equals(parts[3])) { ClientConnector source = getConnector(uI, connectorId); @@ -2741,17 +2701,6 @@ public abstract class AbstractCommunicationManager implements Serializable { } } - public StreamVariable getStreamVariable(String connectorId, - String variableName) { - Map<String, StreamVariable> map = pidToNameToStreamVariable - .get(connectorId); - if (map == null) { - return null; - } - StreamVariable streamVariable = map.get(variableName); - return streamVariable; - } - /** * Stream that extracts content from another stream until the boundary * string is encountered. diff --git a/server/src/com/vaadin/ui/ConnectorTracker.java b/server/src/com/vaadin/ui/ConnectorTracker.java index 8b1a940c4b..91f9ac451c 100644 --- a/server/src/com/vaadin/ui/ConnectorTracker.java +++ b/server/src/com/vaadin/ui/ConnectorTracker.java @@ -23,6 +23,7 @@ import java.util.HashSet; import java.util.Iterator; import java.util.Map; import java.util.Set; +import java.util.UUID; import java.util.logging.Level; import java.util.logging.Logger; @@ -33,6 +34,7 @@ import com.vaadin.server.AbstractClientConnector; import com.vaadin.server.AbstractCommunicationManager; import com.vaadin.server.ClientConnector; import com.vaadin.server.GlobalResourceHandler; +import com.vaadin.server.StreamVariable; /** * A class which takes care of book keeping of {@link ClientConnector}s for a @@ -65,6 +67,11 @@ public class ConnectorTracker implements Serializable { private UI uI; private transient Map<ClientConnector, JSONObject> diffStates = new HashMap<ClientConnector, JSONObject>(); + /** Maps connectorIds to a map of named StreamVariables */ + private Map<String, Map<String, StreamVariable>> pidToNameToStreamVariable; + + private Map<StreamVariable, String> streamVariableToSeckey; + /** * Gets a logger for this class * @@ -259,6 +266,7 @@ public class ConnectorTracker implements Serializable { } } + cleanStreamVariables(); } /** @@ -497,4 +505,111 @@ public class ConnectorTracker implements Serializable { } } + + /** + * Checks if the indicated connector has a StreamVariable of the given name + * and returns the variable if one is found. + * + * @param connectorId + * @param variableName + * @return variable if a matching one exists, otherwise null + */ + public StreamVariable getStreamVariable(String connectorId, + String variableName) { + if (pidToNameToStreamVariable == null) { + return null; + } + Map<String, StreamVariable> map = pidToNameToStreamVariable + .get(connectorId); + if (map == null) { + return null; + } + StreamVariable streamVariable = map.get(variableName); + return streamVariable; + } + + /** + * Adds a StreamVariable of the given name to the indicated connector. + * + * @param connectorId + * @param variableName + * @param variable + */ + public void addStreamVariable(String connectorId, String variableName, + StreamVariable variable) { + if (pidToNameToStreamVariable == null) { + pidToNameToStreamVariable = new HashMap<String, Map<String, StreamVariable>>(); + } + Map<String, StreamVariable> nameToStreamVariable = pidToNameToStreamVariable + .get(connectorId); + if (nameToStreamVariable == null) { + nameToStreamVariable = new HashMap<String, StreamVariable>(); + pidToNameToStreamVariable.put(connectorId, nameToStreamVariable); + } + nameToStreamVariable.put(variableName, variable); + + if (streamVariableToSeckey == null) { + streamVariableToSeckey = new HashMap<StreamVariable, String>(); + } + String seckey = streamVariableToSeckey.get(variable); + if (seckey == null) { + seckey = UUID.randomUUID().toString(); + streamVariableToSeckey.put(variable, seckey); + } + } + + /** + * Removes StreamVariables that belong to connectors that are no longer + * attached to the session. + */ + private void cleanStreamVariables() { + if (pidToNameToStreamVariable != null) { + Iterator<String> iterator = pidToNameToStreamVariable.keySet() + .iterator(); + while (iterator.hasNext()) { + String connectorId = iterator.next(); + if (uI.getConnectorTracker().getConnector(connectorId) == null) { + // Owner is no longer attached to the session + Map<String, StreamVariable> removed = pidToNameToStreamVariable + .get(connectorId); + for (String key : removed.keySet()) { + streamVariableToSeckey.remove(removed.get(key)); + } + iterator.remove(); + } + } + } + } + + /** + * Removes any StreamVariable of the given name from the indicated + * connector. + * + * @param connectorId + * @param variableName + */ + public void cleanStreamVariable(String connectorId, String variableName) { + if (pidToNameToStreamVariable == null) { + return; + } + Map<String, StreamVariable> nameToStreamVar = pidToNameToStreamVariable + .get(connectorId); + nameToStreamVar.remove(variableName); + if (nameToStreamVar.isEmpty()) { + pidToNameToStreamVariable.remove(connectorId); + } + } + + /** + * Returns the security key associated with the given StreamVariable. + * + * @param variable + * @return matching security key if one exists, null otherwise + */ + public String getSeckey(StreamVariable variable) { + if (streamVariableToSeckey == null) { + return null; + } + return streamVariableToSeckey.get(variable); + } } diff --git a/server/tests/src/com/vaadin/tests/server/TestStreamVariableMapping.java b/server/tests/src/com/vaadin/tests/server/TestStreamVariableMapping.java index f8dceca363..f24638e6a7 100644 --- a/server/tests/src/com/vaadin/tests/server/TestStreamVariableMapping.java +++ b/server/tests/src/com/vaadin/tests/server/TestStreamVariableMapping.java @@ -8,6 +8,7 @@ import com.vaadin.server.CommunicationManager; import com.vaadin.server.StreamVariable; import com.vaadin.server.VaadinRequest; import com.vaadin.server.VaadinSession; +import com.vaadin.ui.ConnectorTracker; import com.vaadin.ui.UI; import com.vaadin.ui.Upload; @@ -51,18 +52,21 @@ public class TestStreamVariableMapping extends TestCase { streamVariable); assertTrue(targetUrl.startsWith("app://APP/UPLOAD/-1/1/myName/")); - StreamVariable streamVariable2 = cm.getStreamVariable( + ConnectorTracker tracker = UI.getCurrent().getConnectorTracker(); + StreamVariable streamVariable2 = tracker.getStreamVariable( owner.getConnectorId(), variableName); assertSame(streamVariable, streamVariable2); } public void testRemoverVariable() { + ConnectorTracker tracker = UI.getCurrent().getConnectorTracker(); cm.getStreamVariableTargetUrl(owner, variableName, streamVariable); - assertNotNull(cm - .getStreamVariable(owner.getConnectorId(), variableName)); + assertNotNull(tracker.getStreamVariable(owner.getConnectorId(), + variableName)); cm.cleanStreamVariable(owner, variableName); - assertNull(cm.getStreamVariable(owner.getConnectorId(), variableName)); + assertNull(tracker.getStreamVariable(owner.getConnectorId(), + variableName)); } private CommunicationManager createCommunicationManager() { diff --git a/shared/build.xml b/shared/build.xml index 9023cbdcc1..4cba76c85a 100644 --- a/shared/build.xml +++ b/shared/build.xml @@ -18,7 +18,7 @@ <target name="jar"> - <property name="shared.osgi.import" value="org.json;version="20080701", com.google.gwt.thirdparty.guava.common.annotations, com.google.gwt.thirdparty.guava.common.base, com.google.gwt.thirdparty.guava.common.base.internal, com.google.gwt.thirdparty.guava.common.cache, com.google.gwt.thirdparty.guava.common.collect, com.google.gwt.thirdparty.guava.common.eventbus, com.google.gwt.thirdparty.guava.common.io, com.google.gwt.thirdparty.guava.common.net, com.google.gwt.thirdparty.guava.common.primitives, com.google.gwt.thirdparty.guava.common.util.concurrent, com.google.gwt.thirdparty.streamhtmlparser, com.google.gwt.thirdparty.streamhtmlparser.impl, com.google.gwt.thirdparty.streamhtmlparser.util, org.w3c.flute.parser, org.w3c.flute.parser.selectors, org.w3c.flute.util" /> + <property name="shared.osgi.import" value="org.json;version="0.0.20080701", com.google.gwt.thirdparty.guava.common.annotations;version="10.0.1.rebased", com.google.gwt.thirdparty.guava.common.base;version="10.0.1.rebased", com.google.gwt.thirdparty.guava.common.base.internal;version="10.0.1.rebased", com.google.gwt.thirdparty.guava.common.cache;version="10.0.1.rebased", com.google.gwt.thirdparty.guava.common.collect;version="10.0.1.rebased", com.google.gwt.thirdparty.guava.common.eventbus;version="10.0.1.rebased", com.google.gwt.thirdparty.guava.common.io;version="10.0.1.rebased", com.google.gwt.thirdparty.guava.common.net;version="10.0.1.rebased", com.google.gwt.thirdparty.guava.common.primitives;version="10.0.1.rebased", com.google.gwt.thirdparty.guava.common.util.concurrent;version="10.0.1.rebased", com.google.gwt.thirdparty.streamhtmlparser;version="0.1.5.r10-rebased", com.google.gwt.thirdparty.streamhtmlparser.impl;version="0.1.5.r10-rebased", com.google.gwt.thirdparty.streamhtmlparser.util;version="0.1.5.r10-rebased", org.w3c.flute.parser;version="1.3.0.gg2", org.w3c.flute.parser.selectors;version="1.3.0.gg2", org.w3c.flute.util;version="1.3.0.gg2"" /> <delete dir="${src.filtered}" /> <!-- Update version in Version.java --> <copy todir="${src.filtered}"> diff --git a/shared/ivy.xml b/shared/ivy.xml index 1d268083d7..88020e8d09 100644 --- a/shared/ivy.xml +++ b/shared/ivy.xml @@ -21,7 +21,7 @@ </publications> <dependencies> <dependency org="com.vaadin" name="vaadin-shared-deps" - rev="1.0.1" conf="build,ide,tests->default" /> + rev="1.0.2" conf="build,ide,tests->default" /> </dependencies> </ivy-module> diff --git a/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.java b/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.java index 843f08ee5c..d2575e3764 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.java +++ b/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.java @@ -2311,44 +2311,9 @@ boolean isPseudoElement = false; } jj_consume_token(S); } - if (jj_2_5(2)) { - param = jj_consume_token(IDENT); - d = convertIdent(param.image); - } else { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case NUMBER: - param = jj_consume_token(NUMBER); - d = param.image; - break; - case LBRACKET: - case ANY: - case PARENT: - case DOT: - case COLON: - case INTERPOLATION: - case IDENT: - case HASH: - d = simple_selector(null, ' '); - break; - default: - jj_la1[93] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } - } - label_61: - while (true) { - switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case S: - ; - break; - default: - jj_la1[94] = jj_gen; - break label_61; - } - jj_consume_token(S); - } + d = skipStatementUntilRightParan(); jj_consume_token(RPARAN); + // accept anything between function and a right parenthesis String f = convertIdent(n.image); String colons = isPseudoElement ? "::" : ":"; String pseudofn = colons + f + d + ")"; @@ -2359,7 +2324,7 @@ boolean isPseudoElement = false; } break; default: - jj_la1[95] = jj_gen; + jj_la1[93] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2389,15 +2354,15 @@ boolean isPseudoElement = false; try { name = variableName(); jj_consume_token(COLON); - label_62: + label_61: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[96] = jj_gen; - break label_62; + jj_la1[94] = jj_gen; + break label_61; } jj_consume_token(S); } @@ -2407,21 +2372,21 @@ boolean isPseudoElement = false; guarded = guarded(); break; default: - jj_la1[97] = jj_gen; + jj_la1[95] = jj_gen; ; } - label_63: + label_62: while (true) { jj_consume_token(SEMICOLON); - label_64: + label_63: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[98] = jj_gen; - break label_64; + jj_la1[96] = jj_gen; + break label_63; } jj_consume_token(S); } @@ -2430,8 +2395,8 @@ boolean isPseudoElement = false; ; break; default: - jj_la1[99] = jj_gen; - break label_63; + jj_la1[97] = jj_gen; + break label_62; } } documentHandler.variable(name, exp, guarded); @@ -2466,7 +2431,7 @@ boolean isPseudoElement = false; Token n = null; String evaluator = ""; jj_consume_token(IF_SYM); - label_65: + label_64: while (true) { n = booleanExpressionToken(); evaluator += n.image; @@ -2491,26 +2456,26 @@ boolean isPseudoElement = false; ; break; default: - jj_la1[100] = jj_gen; - break label_65; + jj_la1[98] = jj_gen; + break label_64; } } jj_consume_token(LBRACE); - label_66: + label_65: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[101] = jj_gen; - break label_66; + jj_la1[99] = jj_gen; + break label_65; } jj_consume_token(S); } documentHandler.startIfElseDirective(); documentHandler.ifDirective(evaluator); - label_67: + label_66: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LBRACKET: @@ -2528,8 +2493,8 @@ boolean isPseudoElement = false; ; break; default: - jj_la1[102] = jj_gen; - break label_67; + jj_la1[100] = jj_gen; + break label_66; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case INCLUDE_SYM: @@ -2555,33 +2520,33 @@ boolean isPseudoElement = false; styleRuleOrDeclarationOrNestedProperties(); break; default: - jj_la1[103] = jj_gen; + jj_la1[101] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } jj_consume_token(RBRACE); - label_68: + label_67: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[104] = jj_gen; - break label_68; + jj_la1[102] = jj_gen; + break label_67; } jj_consume_token(S); } - label_69: + label_68: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case ELSE_SYM: ; break; default: - jj_la1[105] = jj_gen; - break label_69; + jj_la1[103] = jj_gen; + break label_68; } elseDirective(); } @@ -2592,22 +2557,22 @@ boolean isPseudoElement = false; String evaluator = ""; Token n = null; jj_consume_token(ELSE_SYM); - label_70: + label_69: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[106] = jj_gen; - break label_70; + jj_la1[104] = jj_gen; + break label_69; } jj_consume_token(S); } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IF: jj_consume_token(IF); - label_71: + label_70: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: @@ -2630,33 +2595,33 @@ boolean isPseudoElement = false; ; break; default: - jj_la1[107] = jj_gen; - break label_71; + jj_la1[105] = jj_gen; + break label_70; } n = booleanExpressionToken(); if(n != null) evaluator += n.image; } break; default: - jj_la1[108] = jj_gen; + jj_la1[106] = jj_gen; ; } jj_consume_token(LBRACE); - label_72: + label_71: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[109] = jj_gen; - break label_72; + jj_la1[107] = jj_gen; + break label_71; } jj_consume_token(S); } if(!evaluator.trim().equals("")){ documentHandler.ifDirective(evaluator); } else{ documentHandler.elseDirective(); } - label_73: + label_72: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LBRACKET: @@ -2674,8 +2639,8 @@ boolean isPseudoElement = false; ; break; default: - jj_la1[110] = jj_gen; - break label_73; + jj_la1[108] = jj_gen; + break label_72; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case INCLUDE_SYM: @@ -2701,21 +2666,21 @@ boolean isPseudoElement = false; styleRuleOrDeclarationOrNestedProperties(); break; default: - jj_la1[111] = jj_gen; + jj_la1[109] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } jj_consume_token(RBRACE); - label_74: + label_73: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[112] = jj_gen; - break label_74; + jj_la1[110] = jj_gen; + break label_73; } jj_consume_token(S); } @@ -2776,7 +2741,7 @@ boolean isPseudoElement = false; n = jj_consume_token(NOT_EQ); break; default: - jj_la1[113] = jj_gen; + jj_la1[111] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2789,41 +2754,41 @@ boolean isPseudoElement = false; ArrayList<String> list = null; String listVariable = null; jj_consume_token(EACH_SYM); - label_75: + label_74: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[114] = jj_gen; - break label_75; + jj_la1[112] = jj_gen; + break label_74; } jj_consume_token(S); } var = jj_consume_token(VARIABLE); - label_76: + label_75: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[115] = jj_gen; - break label_76; + jj_la1[113] = jj_gen; + break label_75; } jj_consume_token(S); } jj_consume_token(EACH_IN); - label_77: + label_76: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[116] = jj_gen; - break label_77; + jj_la1[114] = jj_gen; + break label_76; } jj_consume_token(S); } @@ -2837,24 +2802,24 @@ boolean isPseudoElement = false; documentHandler.startEachDirective(var.image, listVariable); break; default: - jj_la1[117] = jj_gen; + jj_la1[115] = jj_gen; jj_consume_token(-1); throw new ParseException(); } jj_consume_token(LBRACE); - label_78: + label_77: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[118] = jj_gen; - break label_78; + jj_la1[116] = jj_gen; + break label_77; } jj_consume_token(S); } - label_79: + label_78: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LBRACKET: @@ -2872,16 +2837,16 @@ boolean isPseudoElement = false; ; break; default: - jj_la1[119] = jj_gen; - break label_79; + jj_la1[117] = jj_gen; + break label_78; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case INCLUDE_SYM: includeDirective(); break; default: - jj_la1[120] = jj_gen; - if (jj_2_6(5)) { + jj_la1[118] = jj_gen; + if (jj_2_5(5)) { listModifyDirective(); } else { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2905,7 +2870,7 @@ boolean isPseudoElement = false; styleRuleOrDeclarationOrNestedProperties(); break; default: - jj_la1[121] = jj_gen; + jj_la1[119] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2913,15 +2878,15 @@ boolean isPseudoElement = false; } } jj_consume_token(RBRACE); - label_80: + label_79: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[122] = jj_gen; - break label_80; + jj_la1[120] = jj_gen; + break label_79; } jj_consume_token(S); } @@ -2932,53 +2897,53 @@ boolean isPseudoElement = false; ArrayList<String > strings = new ArrayList<String >(); Token input; input = jj_consume_token(IDENT); - label_81: + label_80: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[123] = jj_gen; - break label_81; + jj_la1[121] = jj_gen; + break label_80; } jj_consume_token(S); } strings.add(input.image); - label_82: + label_81: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[124] = jj_gen; - break label_82; + jj_la1[122] = jj_gen; + break label_81; } jj_consume_token(COMMA); - label_83: + label_82: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[125] = jj_gen; - break label_83; + jj_la1[123] = jj_gen; + break label_82; } jj_consume_token(S); } input = jj_consume_token(IDENT); strings.add(input.image); - label_84: + label_83: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[126] = jj_gen; - break label_84; + jj_la1[124] = jj_gen; + break label_83; } jj_consume_token(S); } @@ -2992,15 +2957,15 @@ boolean isPseudoElement = false; ArrayList<VariableNode> args = null; String body; jj_consume_token(MIXIN_SYM); - label_85: + label_84: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[127] = jj_gen; - break label_85; + jj_la1[125] = jj_gen; + break label_84; } jj_consume_token(S); } @@ -3012,39 +2977,39 @@ boolean isPseudoElement = false; name = functionName(); args = arglist(); jj_consume_token(RPARAN); - label_86: + label_85: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[128] = jj_gen; - break label_86; + jj_la1[126] = jj_gen; + break label_85; } jj_consume_token(S); } break; default: - jj_la1[129] = jj_gen; + jj_la1[127] = jj_gen; jj_consume_token(-1); throw new ParseException(); } jj_consume_token(LBRACE); - label_87: + label_86: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[130] = jj_gen; - break label_87; + jj_la1[128] = jj_gen; + break label_86; } jj_consume_token(S); } documentHandler.startMixinDirective(name, args); - label_88: + label_87: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LBRACKET: @@ -3066,8 +3031,8 @@ boolean isPseudoElement = false; ; break; default: - jj_la1[131] = jj_gen; - break label_88; + jj_la1[129] = jj_gen; + break label_87; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case INCLUDE_SYM: @@ -3077,8 +3042,8 @@ boolean isPseudoElement = false; media(); break; default: - jj_la1[132] = jj_gen; - if (jj_2_7(5)) { + jj_la1[130] = jj_gen; + if (jj_2_6(5)) { listModifyDirective(); } else { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -3111,7 +3076,7 @@ boolean isPseudoElement = false; page(); break; default: - jj_la1[133] = jj_gen; + jj_la1[131] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3119,15 +3084,15 @@ boolean isPseudoElement = false; } } jj_consume_token(RBRACE); - label_89: + label_88: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[134] = jj_gen; - break label_89; + jj_la1[132] = jj_gen; + break label_88; } jj_consume_token(S); } @@ -3139,26 +3104,26 @@ boolean isPseudoElement = false; VariableNode arg; boolean hasNonOptionalArgument = false; arg = mixinArg(); - label_90: + label_89: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[135] = jj_gen; - break label_90; + jj_la1[133] = jj_gen; + break label_89; } jj_consume_token(COMMA); - label_91: + label_90: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[136] = jj_gen; - break label_91; + jj_la1[134] = jj_gen; + break label_90; } jj_consume_token(S); } @@ -3199,45 +3164,45 @@ boolean isPseudoElement = false; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COLON: jj_consume_token(COLON); - label_92: + label_91: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[137] = jj_gen; - break label_92; + jj_la1[135] = jj_gen; + break label_91; } jj_consume_token(S); } first = nonVariableTerm(null); prev = first; - label_93: + label_92: while (true) { - if (jj_2_8(3)) { + if (jj_2_7(3)) { ; } else { - break label_93; + break label_92; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: jj_consume_token(COMMA); - label_94: + label_93: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[138] = jj_gen; - break label_94; + jj_la1[136] = jj_gen; + break label_93; } jj_consume_token(S); } break; default: - jj_la1[139] = jj_gen; + jj_la1[137] = jj_gen; ; } prev = nonVariableTerm(prev); @@ -3249,13 +3214,13 @@ boolean isPseudoElement = false; prev, variable.image); break; default: - jj_la1[140] = jj_gen; + jj_la1[138] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[141] = jj_gen; + jj_la1[139] = jj_gen; ; } VariableNode arg = new VariableNode(name, first, false); @@ -3270,7 +3235,7 @@ boolean isPseudoElement = false; LexicalUnitImpl prev = null; first = term(null); args.add(first); prev = first; - label_95: + label_94: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case PLUS: @@ -3305,58 +3270,58 @@ boolean isPseudoElement = false; ; break; default: - jj_la1[142] = jj_gen; - break label_95; + jj_la1[140] = jj_gen; + break label_94; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COLON: jj_consume_token(COLON); - label_96: + label_95: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[143] = jj_gen; - break label_96; + jj_la1[141] = jj_gen; + break label_95; } jj_consume_token(S); } break; default: - jj_la1[144] = jj_gen; + jj_la1[142] = jj_gen; ; } next = term(prev); prev.setNextLexicalUnit(next); prev = next; } - label_97: + label_96: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[145] = jj_gen; - break label_97; + jj_la1[143] = jj_gen; + break label_96; } jj_consume_token(COMMA); - label_98: + label_97: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[146] = jj_gen; - break label_98; + jj_la1[144] = jj_gen; + break label_97; } jj_consume_token(S); } first = term(null); args.add(first); prev = first; - label_99: + label_98: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case PLUS: @@ -3391,27 +3356,27 @@ boolean isPseudoElement = false; ; break; default: - jj_la1[147] = jj_gen; - break label_99; + jj_la1[145] = jj_gen; + break label_98; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COLON: jj_consume_token(COLON); - label_100: + label_99: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[148] = jj_gen; - break label_100; + jj_la1[146] = jj_gen; + break label_99; } jj_consume_token(S); } break; default: - jj_la1[149] = jj_gen; + jj_la1[147] = jj_gen; ; } next = term(prev); @@ -3426,15 +3391,15 @@ boolean isPseudoElement = false; String name; ArrayList<LexicalUnitImpl> args=null; jj_consume_token(INCLUDE_SYM); - label_101: + label_100: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[150] = jj_gen; - break label_101; + jj_la1[148] = jj_gen; + break label_100; } jj_consume_token(S); } @@ -3455,22 +3420,22 @@ boolean isPseudoElement = false; jj_consume_token(RPARAN); break; default: - jj_la1[151] = jj_gen; + jj_la1[149] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - label_102: + label_101: while (true) { jj_consume_token(SEMICOLON); - label_103: + label_102: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[152] = jj_gen; - break label_103; + jj_la1[150] = jj_gen; + break label_102; } jj_consume_token(S); } @@ -3479,8 +3444,8 @@ boolean isPseudoElement = false; ; break; default: - jj_la1[153] = jj_gen; - break label_102; + jj_la1[151] = jj_gen; + break label_101; } } documentHandler.includeDirective(name, args); @@ -3494,11 +3459,11 @@ boolean isPseudoElement = false; } final public void listModifyDirective() throws ParseException { - if (jj_2_9(5)) { + if (jj_2_8(5)) { removeDirective(); - } else if (jj_2_10(5)) { + } else if (jj_2_9(5)) { appendDirective(); - } else if (jj_2_11(5)) { + } else if (jj_2_10(5)) { containsDirective(); } else { jj_consume_token(-1); @@ -3517,41 +3482,41 @@ boolean isPseudoElement = false; Token n = null; n = jj_consume_token(VARIABLE); variable = n.image; - label_104: + label_103: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[154] = jj_gen; - break label_104; + jj_la1[152] = jj_gen; + break label_103; } jj_consume_token(S); } jj_consume_token(COLON); - label_105: + label_104: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[155] = jj_gen; - break label_105; + jj_la1[153] = jj_gen; + break label_104; } jj_consume_token(S); } jj_consume_token(APPEND); - label_106: + label_105: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[156] = jj_gen; - break label_106; + jj_la1[154] = jj_gen; + break label_105; } jj_consume_token(S); } @@ -3561,19 +3526,19 @@ boolean isPseudoElement = false; jj_consume_token(RPARAN); break; default: - jj_la1[157] = jj_gen; + jj_la1[155] = jj_gen; ; } jj_consume_token(COMMA); - label_107: + label_106: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[158] = jj_gen; - break label_107; + jj_la1[156] = jj_gen; + break label_106; } jj_consume_token(S); } @@ -3581,60 +3546,60 @@ boolean isPseudoElement = false; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: jj_consume_token(COMMA); - label_108: + label_107: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[159] = jj_gen; - break label_108; + jj_la1[157] = jj_gen; + break label_107; } jj_consume_token(S); } n = jj_consume_token(IDENT); separator = n.image; - label_109: + label_108: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[160] = jj_gen; - break label_109; + jj_la1[158] = jj_gen; + break label_108; } jj_consume_token(S); } break; default: - jj_la1[161] = jj_gen; + jj_la1[159] = jj_gen; ; } jj_consume_token(RPARAN); - label_110: + label_109: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[162] = jj_gen; - break label_110; + jj_la1[160] = jj_gen; + break label_109; } jj_consume_token(S); } jj_consume_token(SEMICOLON); - label_111: + label_110: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[163] = jj_gen; - break label_111; + jj_la1[161] = jj_gen; + break label_110; } jj_consume_token(S); } @@ -3652,41 +3617,41 @@ boolean isPseudoElement = false; Token n = null; n = jj_consume_token(VARIABLE); variable = n.image; - label_112: + label_111: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[164] = jj_gen; - break label_112; + jj_la1[162] = jj_gen; + break label_111; } jj_consume_token(S); } jj_consume_token(COLON); - label_113: + label_112: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[165] = jj_gen; - break label_113; + jj_la1[163] = jj_gen; + break label_112; } jj_consume_token(S); } jj_consume_token(REMOVE); - label_114: + label_113: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[166] = jj_gen; - break label_114; + jj_la1[164] = jj_gen; + break label_113; } jj_consume_token(S); } @@ -3696,19 +3661,19 @@ boolean isPseudoElement = false; jj_consume_token(RPARAN); break; default: - jj_la1[167] = jj_gen; + jj_la1[165] = jj_gen; ; } jj_consume_token(COMMA); - label_115: + label_114: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[168] = jj_gen; - break label_115; + jj_la1[166] = jj_gen; + break label_114; } jj_consume_token(S); } @@ -3716,60 +3681,60 @@ boolean isPseudoElement = false; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: jj_consume_token(COMMA); - label_116: + label_115: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[169] = jj_gen; - break label_116; + jj_la1[167] = jj_gen; + break label_115; } jj_consume_token(S); } n = jj_consume_token(IDENT); separator = n.image; - label_117: + label_116: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[170] = jj_gen; - break label_117; + jj_la1[168] = jj_gen; + break label_116; } jj_consume_token(S); } break; default: - jj_la1[171] = jj_gen; + jj_la1[169] = jj_gen; ; } jj_consume_token(RPARAN); - label_118: + label_117: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[172] = jj_gen; - break label_118; + jj_la1[170] = jj_gen; + break label_117; } jj_consume_token(S); } jj_consume_token(SEMICOLON); - label_119: + label_118: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[173] = jj_gen; - break label_119; + jj_la1[171] = jj_gen; + break label_118; } jj_consume_token(S); } @@ -3787,41 +3752,41 @@ boolean isPseudoElement = false; Token n = null; n = jj_consume_token(VARIABLE); variable = n.image; - label_120: + label_119: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[174] = jj_gen; - break label_120; + jj_la1[172] = jj_gen; + break label_119; } jj_consume_token(S); } jj_consume_token(COLON); - label_121: + label_120: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[175] = jj_gen; - break label_121; + jj_la1[173] = jj_gen; + break label_120; } jj_consume_token(S); } jj_consume_token(CONTAINS); - label_122: + label_121: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[176] = jj_gen; - break label_122; + jj_la1[174] = jj_gen; + break label_121; } jj_consume_token(S); } @@ -3831,19 +3796,19 @@ boolean isPseudoElement = false; jj_consume_token(RPARAN); break; default: - jj_la1[177] = jj_gen; + jj_la1[175] = jj_gen; ; } jj_consume_token(COMMA); - label_123: + label_122: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[178] = jj_gen; - break label_123; + jj_la1[176] = jj_gen; + break label_122; } jj_consume_token(S); } @@ -3851,60 +3816,60 @@ boolean isPseudoElement = false; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: jj_consume_token(COMMA); - label_124: + label_123: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[179] = jj_gen; - break label_124; + jj_la1[177] = jj_gen; + break label_123; } jj_consume_token(S); } n = jj_consume_token(IDENT); separator = n.image; - label_125: + label_124: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[180] = jj_gen; - break label_125; + jj_la1[178] = jj_gen; + break label_124; } jj_consume_token(S); } break; default: - jj_la1[181] = jj_gen; + jj_la1[179] = jj_gen; ; } jj_consume_token(RPARAN); - label_126: + label_125: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[182] = jj_gen; - break label_126; + jj_la1[180] = jj_gen; + break label_125; } jj_consume_token(S); } jj_consume_token(SEMICOLON); - label_127: + label_126: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[183] = jj_gen; - break label_127; + jj_la1[181] = jj_gen; + break label_126; } jj_consume_token(S); } @@ -4016,20 +3981,20 @@ boolean isPseudoElement = false; exclusive = false; break; default: - jj_la1[184] = jj_gen; + jj_la1[182] = jj_gen; jj_consume_token(-1); throw new ParseException(); } to = skipStatementUntilLeftBrace(); - label_128: + label_127: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[185] = jj_gen; - break label_128; + jj_la1[183] = jj_gen; + break label_127; } jj_consume_token(S); } @@ -4050,31 +4015,31 @@ boolean isPseudoElement = false; final public void extendDirective() throws ParseException { ArrayList<String> list; jj_consume_token(EXTEND_SYM); - label_129: + label_128: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[186] = jj_gen; - break label_129; + jj_la1[184] = jj_gen; + break label_128; } jj_consume_token(S); } list = selectorList(); - label_130: + label_129: while (true) { jj_consume_token(SEMICOLON); - label_131: + label_130: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[187] = jj_gen; - break label_131; + jj_la1[185] = jj_gen; + break label_130; } jj_consume_token(S); } @@ -4083,8 +4048,8 @@ boolean isPseudoElement = false; ; break; default: - jj_la1[188] = jj_gen; - break label_130; + jj_la1[186] = jj_gen; + break label_129; } } documentHandler.extendDirective(list); @@ -4111,28 +4076,28 @@ boolean isPseudoElement = false; LexicalUnit exp; name = property(); jj_consume_token(COLON); - label_132: + label_131: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[189] = jj_gen; - break label_132; + jj_la1[187] = jj_gen; + break label_131; } jj_consume_token(S); } jj_consume_token(LBRACE); - label_133: + label_132: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[190] = jj_gen; - break label_133; + jj_la1[188] = jj_gen; + break label_132; } jj_consume_token(S); } @@ -4142,29 +4107,29 @@ LexicalUnit exp; declaration(); break; default: - jj_la1[191] = jj_gen; + jj_la1[189] = jj_gen; ; } - label_134: + label_133: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SEMICOLON: ; break; default: - jj_la1[192] = jj_gen; - break label_134; + jj_la1[190] = jj_gen; + break label_133; } jj_consume_token(SEMICOLON); - label_135: + label_134: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[193] = jj_gen; - break label_135; + jj_la1[191] = jj_gen; + break label_134; } jj_consume_token(S); } @@ -4173,21 +4138,21 @@ LexicalUnit exp; declaration(); break; default: - jj_la1[194] = jj_gen; + jj_la1[192] = jj_gen; ; } } jj_consume_token(RBRACE); documentHandler.endNestedProperties(name); - label_136: + label_135: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[195] = jj_gen; - break label_136; + jj_la1[193] = jj_gen; + break label_135; } jj_consume_token(S); } @@ -4198,7 +4163,7 @@ LexicalUnit exp; */ final public void styleRuleOrDeclarationOrNestedProperties() throws ParseException { try { - if (jj_2_12(5)) { + if (jj_2_11(5)) { styleRule(); } else { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -4206,7 +4171,7 @@ LexicalUnit exp; declarationOrNestedProperties(); break; default: - jj_la1[196] = jj_gen; + jj_la1[194] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4250,15 +4215,15 @@ LexicalUnit exp; name = property(); save = token; jj_consume_token(COLON); - label_137: + label_136: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[197] = jj_gen; - break label_137; + jj_la1[195] = jj_gen; + break label_136; } jj_consume_token(S); } @@ -4297,7 +4262,7 @@ LexicalUnit exp; important = prio(); break; default: - jj_la1[198] = jj_gen; + jj_la1[196] = jj_gen; ; } Token next = getToken(1); @@ -4315,15 +4280,15 @@ LexicalUnit exp; break; case LBRACE: jj_consume_token(LBRACE); - label_138: + label_137: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[199] = jj_gen; - break label_138; + jj_la1[197] = jj_gen; + break label_137; } jj_consume_token(S); } @@ -4333,29 +4298,29 @@ LexicalUnit exp; declaration(); break; default: - jj_la1[200] = jj_gen; + jj_la1[198] = jj_gen; ; } - label_139: + label_138: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SEMICOLON: ; break; default: - jj_la1[201] = jj_gen; - break label_139; + jj_la1[199] = jj_gen; + break label_138; } jj_consume_token(SEMICOLON); - label_140: + label_139: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[202] = jj_gen; - break label_140; + jj_la1[200] = jj_gen; + break label_139; } jj_consume_token(S); } @@ -4364,27 +4329,27 @@ LexicalUnit exp; declaration(); break; default: - jj_la1[203] = jj_gen; + jj_la1[201] = jj_gen; ; } } jj_consume_token(RBRACE); - label_141: + label_140: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[204] = jj_gen; - break label_141; + jj_la1[202] = jj_gen; + break label_140; } jj_consume_token(S); } documentHandler.endNestedProperties(name); break; default: - jj_la1[205] = jj_gen; + jj_la1[203] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4434,15 +4399,15 @@ LexicalUnit exp; name = property(); save = token; jj_consume_token(COLON); - label_142: + label_141: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[206] = jj_gen; - break label_142; + jj_la1[204] = jj_gen; + break label_141; } jj_consume_token(S); } @@ -4452,7 +4417,7 @@ LexicalUnit exp; important = prio(); break; default: - jj_la1[207] = jj_gen; + jj_la1[205] = jj_gen; ; } documentHandler.property(name, exp, important); @@ -4495,15 +4460,15 @@ LexicalUnit exp; */ final public boolean prio() throws ParseException { jj_consume_token(IMPORTANT_SYM); - label_143: + label_142: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[208] = jj_gen; - break label_143; + jj_la1[206] = jj_gen; + break label_142; } jj_consume_token(S); } @@ -4513,15 +4478,15 @@ LexicalUnit exp; final public boolean guarded() throws ParseException { jj_consume_token(GUARDED_SYM); - label_144: + label_143: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[209] = jj_gen; - break label_144; + jj_la1[207] = jj_gen; + break label_143; } jj_consume_token(S); } @@ -4537,15 +4502,15 @@ LexicalUnit exp; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case DIV: n = jj_consume_token(DIV); - label_145: + label_144: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[210] = jj_gen; - break label_145; + jj_la1[208] = jj_gen; + break label_144; } jj_consume_token(S); } @@ -4555,15 +4520,15 @@ LexicalUnit exp; break; case COMMA: n = jj_consume_token(COMMA); - label_146: + label_145: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[211] = jj_gen; - break label_146; + jj_la1[209] = jj_gen; + break label_145; } jj_consume_token(S); } @@ -4572,7 +4537,7 @@ LexicalUnit exp; prev);} break; default: - jj_la1[212] = jj_gen; + jj_la1[210] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4587,12 +4552,12 @@ LexicalUnit exp; char op; first = term(null); res = first; - label_147: + label_146: while (true) { - if (jj_2_13(2)) { + if (jj_2_12(2)) { ; } else { - break label_147; + break label_146; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: @@ -4600,7 +4565,7 @@ LexicalUnit exp; res = operator(res); break; default: - jj_la1[213] = jj_gen; + jj_la1[211] = jj_gen; ; } res = term(res); @@ -4623,7 +4588,7 @@ LexicalUnit exp; {if (true) return '+';} break; default: - jj_la1[214] = jj_gen; + jj_la1[212] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4671,7 +4636,7 @@ LexicalUnit exp; result = variableTerm(prev); break; default: - jj_la1[215] = jj_gen; + jj_la1[213] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4722,7 +4687,7 @@ LexicalUnitImpl result = null; op = unaryOperator(); break; default: - jj_la1[216] = jj_gen; + jj_la1[214] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -4827,7 +4792,7 @@ LexicalUnitImpl result = null; result = function(op, prev); break; default: - jj_la1[217] = jj_gen; + jj_la1[215] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4854,7 +4819,7 @@ LexicalUnitImpl result = null; s+="."; break; default: - jj_la1[218] = jj_gen; + jj_la1[216] = jj_gen; ; } n = jj_consume_token(IDENT); @@ -4901,25 +4866,25 @@ LexicalUnitImpl result = null; result = unicode(prev); break; default: - jj_la1[219] = jj_gen; + jj_la1[217] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[220] = jj_gen; + jj_la1[218] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - label_148: + label_147: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[221] = jj_gen; - break label_148; + jj_la1[219] = jj_gen; + break label_147; } jj_consume_token(S); } @@ -4935,15 +4900,15 @@ LexicalUnitImpl result = null; Token n; LexicalUnit params = null; n = jj_consume_token(FUNCTION); - label_149: + label_148: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[222] = jj_gen; - break label_149; + jj_la1[220] = jj_gen; + break label_148; } jj_consume_token(S); } @@ -4985,7 +4950,7 @@ LexicalUnitImpl result = null; params = expr(); break; default: - jj_la1[223] = jj_gen; + jj_la1[221] = jj_gen; ; } jj_consume_token(RPARAN); @@ -5456,15 +5421,15 @@ LexicalUnitImpl result = null; */ final public void _parseRule() throws ParseException { String ret = null; - label_150: + label_149: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[224] = jj_gen; - break label_150; + jj_la1[222] = jj_gen; + break label_149; } jj_consume_token(S); } @@ -5492,7 +5457,7 @@ LexicalUnitImpl result = null; fontFace(); break; default: - jj_la1[225] = jj_gen; + jj_la1[223] = jj_gen; ret = skipStatement(); if ((ret == null) || (ret.length() == 0)) { {if (true) return;} @@ -5507,15 +5472,15 @@ LexicalUnitImpl result = null; } final public void _parseImportRule() throws ParseException { - label_151: + label_150: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[226] = jj_gen; - break label_151; + jj_la1[224] = jj_gen; + break label_150; } jj_consume_token(S); } @@ -5523,15 +5488,15 @@ LexicalUnitImpl result = null; } final public void _parseMediaRule() throws ParseException { - label_152: + label_151: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[227] = jj_gen; - break label_152; + jj_la1[225] = jj_gen; + break label_151; } jj_consume_token(S); } @@ -5539,15 +5504,15 @@ LexicalUnitImpl result = null; } final public void _parseDeclarationBlock() throws ParseException { - label_153: + label_152: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[228] = jj_gen; - break label_153; + jj_la1[226] = jj_gen; + break label_152; } jj_consume_token(S); } @@ -5556,29 +5521,29 @@ LexicalUnitImpl result = null; declaration(); break; default: - jj_la1[229] = jj_gen; + jj_la1[227] = jj_gen; ; } - label_154: + label_153: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SEMICOLON: ; break; default: - jj_la1[230] = jj_gen; - break label_154; + jj_la1[228] = jj_gen; + break label_153; } jj_consume_token(SEMICOLON); - label_155: + label_154: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[231] = jj_gen; - break label_155; + jj_la1[229] = jj_gen; + break label_154; } jj_consume_token(S); } @@ -5587,7 +5552,7 @@ LexicalUnitImpl result = null; declaration(); break; default: - jj_la1[232] = jj_gen; + jj_la1[230] = jj_gen; ; } } @@ -5596,15 +5561,15 @@ LexicalUnitImpl result = null; final public ArrayList<String> _parseSelectors() throws ParseException { ArrayList<String> p = null; try { - label_156: + label_155: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[233] = jj_gen; - break label_156; + jj_la1[231] = jj_gen; + break label_155; } jj_consume_token(S); } @@ -5700,20 +5665,18 @@ LexicalUnitImpl result = null; finally { jj_save(11, xla); } } - private boolean jj_2_13(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_13(); } - catch(LookaheadSuccess ls) { return true; } - finally { jj_save(12, xla); } + private boolean jj_3R_310() { + if (jj_3R_269()) return true; + return false; } - private boolean jj_3R_230() { - if (jj_3R_252()) return true; + private boolean jj_3R_229() { + if (jj_3R_251()) return true; return false; } - private boolean jj_3R_286() { - if (jj_3R_280()) return true; + private boolean jj_3R_285() { + if (jj_3R_279()) return true; if (jj_scan_token(COLON)) return true; Token xsp; while (true) { @@ -5721,57 +5684,52 @@ LexicalUnitImpl result = null; if (jj_scan_token(1)) { jj_scanpos = xsp; break; } } xsp = jj_scanpos; - if (jj_3R_311()) { + if (jj_3R_310()) { jj_scanpos = xsp; - if (jj_3R_312()) return true; + if (jj_3R_311()) return true; } return false; } private boolean jj_3_1() { - if (jj_3R_157()) return true; + if (jj_3R_156()) return true; return false; } - private boolean jj_3R_271() { - if (jj_3R_286()) return true; + private boolean jj_3R_270() { + if (jj_3R_285()) return true; return false; } - private boolean jj_3R_229() { - if (jj_3R_251()) return true; + private boolean jj_3R_228() { + if (jj_3R_250()) return true; return false; } private boolean jj_3_4() { + if (jj_3R_158()) return true; if (jj_3R_159()) return true; - if (jj_3R_160()) return true; - return false; - } - - private boolean jj_3_6() { - if (jj_3R_157()) return true; return false; } - private boolean jj_3R_227() { + private boolean jj_3R_226() { if (jj_scan_token(COMMA)) return true; Token xsp; while (true) { xsp = jj_scanpos; if (jj_scan_token(1)) { jj_scanpos = xsp; break; } } - if (jj_3R_226()) return true; + if (jj_3R_225()) return true; return false; } - private boolean jj_3_12() { - if (jj_3R_166()) return true; + private boolean jj_3_5() { + if (jj_3R_156()) return true; return false; } - private boolean jj_3R_226() { - if (jj_3R_160()) return true; + private boolean jj_3R_225() { + if (jj_3R_159()) return true; Token xsp; while (true) { xsp = jj_scanpos; @@ -5784,37 +5742,42 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3R_256() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_12()) { - jj_scanpos = xsp; - if (jj_3R_271()) return true; - } + private boolean jj_3_11() { + if (jj_3R_165()) return true; return false; } - private boolean jj_3R_261() { + private boolean jj_3R_255() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_11()) { + jj_scanpos = xsp; if (jj_3R_270()) return true; + } return false; } - private boolean jj_3R_181() { - if (jj_3R_226()) return true; + private boolean jj_3R_180() { + if (jj_3R_225()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_227()) { jj_scanpos = xsp; break; } + if (jj_3R_226()) { jj_scanpos = xsp; break; } } return false; } + private boolean jj_3R_260() { + if (jj_3R_269()) return true; + return false; + } + private boolean jj_3_2() { - if (jj_3R_157()) return true; + if (jj_3R_156()) return true; return false; } - private boolean jj_3R_245() { + private boolean jj_3R_244() { if (jj_scan_token(FUNCTION)) return true; Token xsp; while (true) { @@ -5822,12 +5785,12 @@ LexicalUnitImpl result = null; if (jj_scan_token(1)) { jj_scanpos = xsp; break; } } xsp = jj_scanpos; - if (jj_3R_261()) jj_scanpos = xsp; + if (jj_3R_260()) jj_scanpos = xsp; if (jj_scan_token(RPARAN)) return true; return false; } - private boolean jj_3R_254() { + private boolean jj_3R_253() { if (jj_scan_token(EACH_SYM)) return true; Token xsp; while (true) { @@ -5843,28 +5806,20 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3R_225() { - if (jj_3R_249()) return true; - return false; - } - private boolean jj_3R_224() { if (jj_3R_248()) return true; return false; } - private boolean jj_3R_223() { - if (jj_3R_247()) return true; - return false; - } - - private boolean jj_3R_182() { + private boolean jj_3R_181() { Token xsp; xsp = jj_scanpos; - if (jj_3R_228()) { + if (jj_3R_227()) { jj_scanpos = xsp; if (jj_3_2()) { jj_scanpos = xsp; + if (jj_3R_228()) { + jj_scanpos = xsp; if (jj_3R_229()) { jj_scanpos = xsp; if (jj_3R_230()) { @@ -5873,11 +5828,9 @@ LexicalUnitImpl result = null; jj_scanpos = xsp; if (jj_3R_232()) { jj_scanpos = xsp; - if (jj_3R_233()) { - jj_scanpos = xsp; if (jj_3_3()) { jj_scanpos = xsp; - if (jj_3R_234()) return true; + if (jj_3R_233()) return true; } } } @@ -5889,13 +5842,23 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3R_228() { - if (jj_3R_250()) return true; + private boolean jj_3R_227() { + if (jj_3R_249()) return true; return false; } - private boolean jj_3R_166() { - if (jj_3R_181()) return true; + private boolean jj_3R_223() { + if (jj_3R_247()) return true; + return false; + } + + private boolean jj_3R_222() { + if (jj_3R_246()) return true; + return false; + } + + private boolean jj_3R_165() { + if (jj_3R_180()) return true; if (jj_scan_token(LBRACE)) return true; Token xsp; while (true) { @@ -5904,7 +5867,7 @@ LexicalUnitImpl result = null; } while (true) { xsp = jj_scanpos; - if (jj_3R_182()) { jj_scanpos = xsp; break; } + if (jj_3R_181()) { jj_scanpos = xsp; break; } } if (jj_scan_token(RBRACE)) return true; while (true) { @@ -5914,28 +5877,28 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3R_269() { + private boolean jj_3R_268() { if (jj_scan_token(SEMICOLON)) return true; return false; } - private boolean jj_3R_253() { + private boolean jj_3R_252() { if (jj_scan_token(EXTEND_SYM)) return true; Token xsp; while (true) { xsp = jj_scanpos; if (jj_scan_token(1)) { jj_scanpos = xsp; break; } } - if (jj_3R_181()) return true; - if (jj_3R_269()) return true; + if (jj_3R_180()) return true; + if (jj_3R_268()) return true; while (true) { xsp = jj_scanpos; - if (jj_3R_269()) { jj_scanpos = xsp; break; } + if (jj_3R_268()) { jj_scanpos = xsp; break; } } return false; } - private boolean jj_3R_279() { + private boolean jj_3R_278() { Token xsp; xsp = jj_scanpos; if (jj_scan_token(75)) { @@ -5990,7 +5953,7 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3R_282() { + private boolean jj_3R_281() { if (jj_scan_token(FUNCTION)) return true; Token xsp; while (true) { @@ -6000,7 +5963,7 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3R_280() { + private boolean jj_3R_279() { if (jj_scan_token(IDENT)) return true; Token xsp; while (true) { @@ -6010,7 +5973,7 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3R_257() { + private boolean jj_3R_256() { if (jj_scan_token(VARIABLE)) return true; Token xsp; while (true) { @@ -6020,41 +5983,56 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3R_246() { + private boolean jj_3R_245() { if (jj_scan_token(DOT)) return true; return false; } - private boolean jj_3R_222() { + private boolean jj_3R_221() { Token xsp; xsp = jj_scanpos; - if (jj_3R_246()) jj_scanpos = xsp; + if (jj_3R_245()) jj_scanpos = xsp; if (jj_scan_token(IDENT)) return true; return false; } - private boolean jj_3R_221() { - if (jj_scan_token(STRING)) return true; + private boolean jj_3R_193() { + if (jj_scan_token(S)) return true; return false; } private boolean jj_3R_220() { - if (jj_3R_245()) return true; + if (jj_scan_token(STRING)) return true; return false; } - private boolean jj_3R_180() { + private boolean jj_3R_192() { + if (jj_scan_token(DOT)) return true; + return false; + } + + private boolean jj_3R_219() { + if (jj_3R_244()) return true; + return false; + } + + private boolean jj_3R_191() { + if (jj_scan_token(EQ)) return true; + return false; + } + + private boolean jj_3R_179() { Token xsp; xsp = jj_scanpos; + if (jj_3R_220()) { + jj_scanpos = xsp; if (jj_3R_221()) { jj_scanpos = xsp; if (jj_3R_222()) { jj_scanpos = xsp; if (jj_3R_223()) { jj_scanpos = xsp; - if (jj_3R_224()) { - jj_scanpos = xsp; - if (jj_3R_225()) return true; + if (jj_3R_224()) return true; } } } @@ -6062,71 +6040,46 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3R_194() { - if (jj_scan_token(S)) return true; - return false; - } - - private boolean jj_3R_193() { - if (jj_scan_token(DOT)) return true; - return false; - } - - private boolean jj_3R_192() { - if (jj_scan_token(EQ)) return true; - return false; - } - - private boolean jj_3R_191() { + private boolean jj_3R_190() { if (jj_scan_token(RPARAN)) return true; return false; } - private boolean jj_3R_190() { + private boolean jj_3R_189() { if (jj_scan_token(FUNCTION)) return true; return false; } - private boolean jj_3R_262() { - if (jj_3R_279()) return true; - return false; - } - - private boolean jj_3R_189() { + private boolean jj_3R_188() { if (jj_scan_token(COLON)) return true; return false; } - private boolean jj_3R_188() { + private boolean jj_3R_187() { if (jj_scan_token(INTERPOLATION)) return true; return false; } - private boolean jj_3R_187() { + private boolean jj_3R_186() { if (jj_scan_token(NUMBER)) return true; return false; } - private boolean jj_3R_250() { - if (jj_scan_token(IF_SYM)) return true; - Token xsp; - if (jj_3R_262()) return true; - while (true) { - xsp = jj_scanpos; - if (jj_3R_262()) { jj_scanpos = xsp; break; } - } - if (jj_scan_token(LBRACE)) return true; + private boolean jj_3R_261() { + if (jj_3R_278()) return true; return false; } - private boolean jj_3R_186() { + private boolean jj_3R_185() { if (jj_scan_token(IDENT)) return true; return false; } - private boolean jj_3R_169() { + private boolean jj_3R_168() { Token xsp; xsp = jj_scanpos; + if (jj_3R_185()) { + jj_scanpos = xsp; if (jj_3R_186()) { jj_scanpos = xsp; if (jj_3R_187()) { @@ -6141,9 +6094,7 @@ LexicalUnitImpl result = null; jj_scanpos = xsp; if (jj_3R_192()) { jj_scanpos = xsp; - if (jj_3R_193()) { - jj_scanpos = xsp; - if (jj_3R_194()) return true; + if (jj_3R_193()) return true; } } } @@ -6155,22 +6106,29 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3R_219() { - if (jj_scan_token(DIMEN)) return true; + private boolean jj_3R_249() { + if (jj_scan_token(IF_SYM)) return true; + Token xsp; + if (jj_3R_261()) return true; + while (true) { + xsp = jj_scanpos; + if (jj_3R_261()) { jj_scanpos = xsp; break; } + } + if (jj_scan_token(LBRACE)) return true; return false; } private boolean jj_3R_218() { - if (jj_scan_token(KHZ)) return true; + if (jj_scan_token(DIMEN)) return true; return false; } private boolean jj_3R_217() { - if (jj_scan_token(HZ)) return true; + if (jj_scan_token(KHZ)) return true; return false; } - private boolean jj_3R_158() { + private boolean jj_3R_157() { if (jj_scan_token(MICROSOFT_RULE)) return true; Token xsp; while (true) { @@ -6178,47 +6136,47 @@ LexicalUnitImpl result = null; if (jj_scan_token(1)) { jj_scanpos = xsp; break; } } if (jj_scan_token(COLON)) return true; - if (jj_3R_169()) return true; + if (jj_3R_168()) return true; while (true) { xsp = jj_scanpos; - if (jj_3R_169()) { jj_scanpos = xsp; break; } + if (jj_3R_168()) { jj_scanpos = xsp; break; } } return false; } - private boolean jj_3R_240() { + private boolean jj_3R_239() { if (jj_scan_token(SIBLING)) return true; return false; } private boolean jj_3R_216() { - if (jj_scan_token(MS)) return true; + if (jj_scan_token(HZ)) return true; return false; } - private boolean jj_3R_239() { + private boolean jj_3R_238() { if (jj_scan_token(PRECEDES)) return true; return false; } private boolean jj_3R_215() { - if (jj_scan_token(SECOND)) return true; + if (jj_scan_token(MS)) return true; return false; } - private boolean jj_3R_238() { + private boolean jj_3R_237() { if (jj_scan_token(PLUS)) return true; return false; } - private boolean jj_3R_195() { + private boolean jj_3R_194() { Token xsp; xsp = jj_scanpos; - if (jj_3R_238()) { + if (jj_3R_237()) { jj_scanpos = xsp; - if (jj_3R_239()) { + if (jj_3R_238()) { jj_scanpos = xsp; - if (jj_3R_240()) return true; + if (jj_3R_239()) return true; } } while (true) { @@ -6229,16 +6187,16 @@ LexicalUnitImpl result = null; } private boolean jj_3R_214() { - if (jj_scan_token(GRAD)) return true; + if (jj_scan_token(SECOND)) return true; return false; } private boolean jj_3R_213() { - if (jj_scan_token(RAD)) return true; + if (jj_scan_token(GRAD)) return true; return false; } - private boolean jj_3R_172() { + private boolean jj_3R_171() { if (jj_scan_token(SIBLING)) return true; Token xsp; while (true) { @@ -6248,7 +6206,7 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3R_171() { + private boolean jj_3R_170() { if (jj_scan_token(PRECEDES)) return true; Token xsp; while (true) { @@ -6259,35 +6217,35 @@ LexicalUnitImpl result = null; } private boolean jj_3R_212() { - if (jj_scan_token(DEG)) return true; + if (jj_scan_token(RAD)) return true; return false; } - private boolean jj_3R_173() { + private boolean jj_3R_172() { if (jj_scan_token(S)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_195()) jj_scanpos = xsp; + if (jj_3R_194()) jj_scanpos = xsp; return false; } - private boolean jj_3R_159() { + private boolean jj_3R_158() { Token xsp; xsp = jj_scanpos; + if (jj_3R_169()) { + jj_scanpos = xsp; if (jj_3R_170()) { jj_scanpos = xsp; if (jj_3R_171()) { jj_scanpos = xsp; - if (jj_3R_172()) { - jj_scanpos = xsp; - if (jj_3R_173()) return true; + if (jj_3R_172()) return true; } } } return false; } - private boolean jj_3R_170() { + private boolean jj_3R_169() { if (jj_scan_token(PLUS)) return true; Token xsp; while (true) { @@ -6298,87 +6256,94 @@ LexicalUnitImpl result = null; } private boolean jj_3R_211() { - if (jj_scan_token(EXS)) return true; + if (jj_scan_token(DEG)) return true; return false; } private boolean jj_3R_210() { - if (jj_scan_token(EMS)) return true; + if (jj_scan_token(EXS)) return true; return false; } private boolean jj_3R_209() { + if (jj_scan_token(EMS)) return true; + return false; + } + + private boolean jj_3R_208() { if (jj_scan_token(PX)) return true; return false; } - private boolean jj_3R_255() { - if (jj_3R_257()) return true; + private boolean jj_3R_254() { + if (jj_3R_256()) return true; if (jj_scan_token(COLON)) return true; Token xsp; while (true) { xsp = jj_scanpos; if (jj_scan_token(1)) { jj_scanpos = xsp; break; } } - if (jj_3R_270()) return true; + if (jj_3R_269()) return true; return false; } - private boolean jj_3R_208() { + private boolean jj_3R_207() { if (jj_scan_token(IN)) return true; return false; } - private boolean jj_3R_207() { + private boolean jj_3R_206() { if (jj_scan_token(PC)) return true; return false; } - private boolean jj_3R_206() { + private boolean jj_3R_205() { if (jj_scan_token(MM)) return true; return false; } - private boolean jj_3R_205() { + private boolean jj_3R_204() { if (jj_scan_token(CM)) return true; return false; } - private boolean jj_3R_204() { + private boolean jj_3R_203() { if (jj_scan_token(PT)) return true; return false; } - private boolean jj_3R_203() { + private boolean jj_3R_202() { if (jj_scan_token(PERCENTAGE)) return true; return false; } - private boolean jj_3R_185() { - if (jj_3R_237()) return true; + private boolean jj_3R_184() { + if (jj_3R_236()) return true; return false; } - private boolean jj_3R_202() { + private boolean jj_3R_201() { if (jj_scan_token(NUMBER)) return true; return false; } - private boolean jj_3R_201() { - if (jj_3R_244()) return true; + private boolean jj_3R_200() { + if (jj_3R_243()) return true; return false; } - private boolean jj_3R_197() { + private boolean jj_3R_196() { if (jj_scan_token(HASH)) return true; return false; } - private boolean jj_3R_179() { + private boolean jj_3R_178() { Token xsp; xsp = jj_scanpos; - if (jj_3R_201()) jj_scanpos = xsp; + if (jj_3R_200()) jj_scanpos = xsp; xsp = jj_scanpos; + if (jj_3R_201()) { + jj_scanpos = xsp; if (jj_3R_202()) { jj_scanpos = xsp; if (jj_3R_203()) { @@ -6413,9 +6378,7 @@ LexicalUnitImpl result = null; jj_scanpos = xsp; if (jj_3R_218()) { jj_scanpos = xsp; - if (jj_3R_219()) { - jj_scanpos = xsp; - if (jj_3R_220()) return true; + if (jj_3R_219()) return true; } } } @@ -6437,12 +6400,12 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3R_162() { + private boolean jj_3R_161() { Token xsp; xsp = jj_scanpos; - if (jj_3R_179()) { + if (jj_3R_178()) { jj_scanpos = xsp; - if (jj_3R_180()) return true; + if (jj_3R_179()) return true; } while (true) { xsp = jj_scanpos; @@ -6451,131 +6414,104 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3R_316() { - if (jj_3R_160()) return true; - return false; - } - - private boolean jj_3R_300() { - if (jj_scan_token(IDENT)) return true; - return false; - } - - private boolean jj_3R_315() { - if (jj_scan_token(NUMBER)) return true; - return false; - } - - private boolean jj_3_5() { + private boolean jj_3R_299() { if (jj_scan_token(IDENT)) return true; return false; } - private boolean jj_3R_247() { - if (jj_scan_token(HASH)) return true; - return false; - } - - private boolean jj_3R_301() { + private boolean jj_3R_300() { if (jj_scan_token(FUNCTION)) return true; Token xsp; while (true) { xsp = jj_scanpos; if (jj_scan_token(1)) { jj_scanpos = xsp; break; } } - xsp = jj_scanpos; - if (jj_3_5()) { - jj_scanpos = xsp; - if (jj_3R_315()) { - jj_scanpos = xsp; - if (jj_3R_316()) return true; - } - } - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { jj_scanpos = xsp; break; } - } - if (jj_scan_token(RPARAN)) return true; + if (true) { jj_la = 0; jj_scanpos = jj_lastpos; return false;} return false; } - private boolean jj_3R_237() { - if (jj_3R_257()) return true; + private boolean jj_3R_246() { + if (jj_scan_token(HASH)) return true; return false; } - private boolean jj_3R_184() { - if (jj_3R_162()) return true; + private boolean jj_3R_236() { + if (jj_3R_256()) return true; return false; } - private boolean jj_3R_168() { + private boolean jj_3R_183() { + if (jj_3R_161()) return true; + return false; + } + + private boolean jj_3R_167() { Token xsp; xsp = jj_scanpos; - if (jj_3R_184()) { + if (jj_3R_183()) { jj_scanpos = xsp; - if (jj_3R_185()) return true; + if (jj_3R_184()) return true; } return false; } - private boolean jj_3R_248() { + private boolean jj_3R_247() { if (jj_scan_token(URL)) return true; return false; } - private boolean jj_3R_167() { - if (jj_3R_183()) return true; + private boolean jj_3R_166() { + if (jj_3R_182()) return true; return false; } - private boolean jj_3R_299() { + private boolean jj_3R_298() { if (jj_scan_token(COLON)) return true; return false; } - private boolean jj_3R_260() { + private boolean jj_3R_259() { if (jj_scan_token(PLUS)) return true; return false; } - private boolean jj_3R_244() { + private boolean jj_3R_198() { + if (jj_scan_token(COLON)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_259()) { + if (jj_3R_298()) jj_scanpos = xsp; + xsp = jj_scanpos; + if (jj_3R_299()) { jj_scanpos = xsp; - if (jj_3R_260()) return true; + if (jj_3R_300()) return true; } return false; } - private boolean jj_3R_259() { - if (jj_scan_token(MINUS)) return true; - return false; - } - - private boolean jj_3R_199() { - if (jj_scan_token(COLON)) return true; + private boolean jj_3R_243() { Token xsp; xsp = jj_scanpos; - if (jj_3R_299()) jj_scanpos = xsp; - xsp = jj_scanpos; - if (jj_3R_300()) { + if (jj_3R_258()) { jj_scanpos = xsp; - if (jj_3R_301()) return true; + if (jj_3R_259()) return true; } return false; } - private boolean jj_3_13() { + private boolean jj_3R_258() { + if (jj_scan_token(MINUS)) return true; + return false; + } + + private boolean jj_3_12() { Token xsp; xsp = jj_scanpos; - if (jj_3R_167()) jj_scanpos = xsp; - if (jj_3R_168()) return true; + if (jj_3R_166()) jj_scanpos = xsp; + if (jj_3R_167()) return true; return false; } - private boolean jj_3R_165() { + private boolean jj_3R_164() { if (jj_scan_token(VARIABLE)) return true; Token xsp; while (true) { @@ -6596,27 +6532,27 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3R_270() { - if (jj_3R_168()) return true; + private boolean jj_3R_269() { + if (jj_3R_167()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3_13()) { jj_scanpos = xsp; break; } + if (jj_3_12()) { jj_scanpos = xsp; break; } } return false; } - private boolean jj_3_11() { - if (jj_3R_165()) return true; + private boolean jj_3_10() { + if (jj_3R_164()) return true; return false; } - private boolean jj_3R_249() { + private boolean jj_3R_248() { if (jj_scan_token(UNICODERANGE)) return true; return false; } - private boolean jj_3R_236() { + private boolean jj_3R_235() { if (jj_scan_token(COMMA)) return true; Token xsp; while (true) { @@ -6626,22 +6562,22 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3R_265() { - if (jj_3R_281()) return true; + private boolean jj_3R_264() { + if (jj_3R_280()) return true; return false; } - private boolean jj_3R_183() { + private boolean jj_3R_182() { Token xsp; xsp = jj_scanpos; - if (jj_3R_235()) { + if (jj_3R_234()) { jj_scanpos = xsp; - if (jj_3R_236()) return true; + if (jj_3R_235()) return true; } return false; } - private boolean jj_3R_235() { + private boolean jj_3R_234() { if (jj_scan_token(DIV)) return true; Token xsp; while (true) { @@ -6651,7 +6587,7 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3R_163() { + private boolean jj_3R_162() { if (jj_scan_token(VARIABLE)) return true; Token xsp; while (true) { @@ -6672,52 +6608,62 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3_10() { - if (jj_3R_164()) return true; + private boolean jj_3_9() { + if (jj_3R_163()) return true; return false; } - private boolean jj_3R_324() { + private boolean jj_3R_321() { if (jj_scan_token(STRING)) return true; return false; } - private boolean jj_3R_267() { - if (jj_scan_token(SEMICOLON)) return true; - return false; - } - - private boolean jj_3R_322() { + private boolean jj_3R_319() { if (jj_scan_token(STARMATCH)) return true; return false; } - private boolean jj_3R_323() { + private boolean jj_3R_320() { if (jj_scan_token(IDENT)) return true; return false; } - private boolean jj_3R_321() { + private boolean jj_3R_318() { if (jj_scan_token(DOLLARMATCH)) return true; return false; } - private boolean jj_3R_320() { + private boolean jj_3R_266() { + if (jj_scan_token(SEMICOLON)) return true; + return false; + } + + private boolean jj_3R_317() { if (jj_scan_token(CARETMATCH)) return true; return false; } - private boolean jj_3R_319() { + private boolean jj_3R_316() { if (jj_scan_token(DASHMATCH)) return true; return false; } - private boolean jj_3R_318() { + private boolean jj_3R_315() { if (jj_scan_token(INCLUDES)) return true; return false; } - private boolean jj_3R_164() { + private boolean jj_3R_272() { + if (jj_scan_token(INTERPOLATION)) return true; + return false; + } + + private boolean jj_3R_314() { + if (jj_scan_token(EQ)) return true; + return false; + } + + private boolean jj_3R_163() { if (jj_scan_token(VARIABLE)) return true; Token xsp; while (true) { @@ -6738,30 +6684,20 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3R_273() { - if (jj_scan_token(INTERPOLATION)) return true; - return false; - } - - private boolean jj_3R_317() { - if (jj_scan_token(EQ)) return true; - return false; - } - - private boolean jj_3R_306() { + private boolean jj_3R_305() { Token xsp; xsp = jj_scanpos; - if (jj_3R_317()) { + if (jj_3R_314()) { jj_scanpos = xsp; - if (jj_3R_318()) { + if (jj_3R_315()) { jj_scanpos = xsp; - if (jj_3R_319()) { + if (jj_3R_316()) { jj_scanpos = xsp; - if (jj_3R_320()) { + if (jj_3R_317()) { jj_scanpos = xsp; - if (jj_3R_321()) { + if (jj_3R_318()) { jj_scanpos = xsp; - if (jj_3R_322()) return true; + if (jj_3R_319()) return true; } } } @@ -6772,9 +6708,9 @@ LexicalUnitImpl result = null; if (jj_scan_token(1)) { jj_scanpos = xsp; break; } } xsp = jj_scanpos; - if (jj_3R_323()) { + if (jj_3R_320()) { jj_scanpos = xsp; - if (jj_3R_324()) return true; + if (jj_3R_321()) return true; } while (true) { xsp = jj_scanpos; @@ -6783,12 +6719,12 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3R_285() { + private boolean jj_3R_284() { if (jj_scan_token(COMMA)) return true; return false; } - private boolean jj_3R_200() { + private boolean jj_3R_199() { if (jj_scan_token(LBRACKET)) return true; Token xsp; while (true) { @@ -6801,17 +6737,17 @@ LexicalUnitImpl result = null; if (jj_scan_token(1)) { jj_scanpos = xsp; break; } } xsp = jj_scanpos; - if (jj_3R_306()) jj_scanpos = xsp; + if (jj_3R_305()) jj_scanpos = xsp; if (jj_scan_token(RBRACKET)) return true; return false; } - private boolean jj_3R_234() { - if (jj_3R_256()) return true; + private boolean jj_3R_233() { + if (jj_3R_255()) return true; return false; } - private boolean jj_3R_284() { + private boolean jj_3R_283() { if (jj_scan_token(IDENT)) return true; Token xsp; while (true) { @@ -6821,109 +6757,109 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3R_314() { + private boolean jj_3R_313() { if (jj_scan_token(INTERPOLATION)) return true; return false; } - private boolean jj_3R_264() { - if (jj_3R_257()) return true; + private boolean jj_3R_263() { + if (jj_3R_256()) return true; return false; } - private boolean jj_3R_157() { + private boolean jj_3R_242() { + if (jj_scan_token(PARENT)) return true; + return false; + } + + private boolean jj_3R_156() { Token xsp; xsp = jj_scanpos; - if (jj_3_9()) { + if (jj_3_8()) { jj_scanpos = xsp; - if (jj_3_10()) { + if (jj_3_9()) { jj_scanpos = xsp; - if (jj_3_11()) return true; + if (jj_3_10()) return true; } } return false; } - private boolean jj_3_9() { - if (jj_3R_163()) return true; - return false; - } - - private boolean jj_3R_243() { - if (jj_scan_token(PARENT)) return true; + private boolean jj_3_8() { + if (jj_3R_162()) return true; return false; } - private boolean jj_3R_242() { + private boolean jj_3R_241() { if (jj_scan_token(ANY)) return true; return false; } - private boolean jj_3R_268() { - if (jj_3R_284()) return true; + private boolean jj_3R_267() { + if (jj_3R_283()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_285()) { jj_scanpos = xsp; break; } + if (jj_3R_284()) { jj_scanpos = xsp; break; } } return false; } - private boolean jj_3R_281() { - if (jj_scan_token(INTERPOLATION)) return true; - return false; - } - - private boolean jj_3R_266() { - if (jj_3R_282()) return true; - if (jj_3R_283()) return true; - return false; - } - - private boolean jj_3R_258() { + private boolean jj_3R_257() { Token xsp; xsp = jj_scanpos; - if (jj_3R_272()) { + if (jj_3R_271()) { jj_scanpos = xsp; - if (jj_3R_273()) return true; + if (jj_3R_272()) return true; } return false; } - private boolean jj_3R_272() { + private boolean jj_3R_271() { if (jj_scan_token(IDENT)) return true; return false; } - private boolean jj_3R_196() { + private boolean jj_3R_280() { + if (jj_scan_token(INTERPOLATION)) return true; + return false; + } + + private boolean jj_3R_195() { Token xsp; xsp = jj_scanpos; - if (jj_3R_241()) { + if (jj_3R_240()) { jj_scanpos = xsp; - if (jj_3R_242()) { + if (jj_3R_241()) { jj_scanpos = xsp; - if (jj_3R_243()) return true; + if (jj_3R_242()) return true; } } return false; } - private boolean jj_3R_241() { + private boolean jj_3R_240() { Token xsp; - if (jj_3R_258()) return true; + if (jj_3R_257()) return true; while (true) { xsp = jj_scanpos; - if (jj_3R_258()) { jj_scanpos = xsp; break; } + if (jj_3R_257()) { jj_scanpos = xsp; break; } } return false; } - private boolean jj_3R_263() { - if (jj_3R_280()) return true; + private boolean jj_3R_265() { + if (jj_3R_281()) return true; + if (jj_3R_282()) return true; return false; } - private boolean jj_3R_251() { + private boolean jj_3R_262() { + if (jj_3R_279()) return true; + return false; + } + + private boolean jj_3R_250() { if (jj_scan_token(INCLUDE_SYM)) return true; Token xsp; while (true) { @@ -6931,108 +6867,108 @@ LexicalUnitImpl result = null; if (jj_scan_token(1)) { jj_scanpos = xsp; break; } } xsp = jj_scanpos; + if (jj_3R_262()) { + jj_scanpos = xsp; if (jj_3R_263()) { jj_scanpos = xsp; if (jj_3R_264()) { jj_scanpos = xsp; - if (jj_3R_265()) { - jj_scanpos = xsp; - if (jj_3R_266()) return true; + if (jj_3R_265()) return true; } } } - if (jj_3R_267()) return true; + if (jj_3R_266()) return true; while (true) { xsp = jj_scanpos; - if (jj_3R_267()) { jj_scanpos = xsp; break; } + if (jj_3R_266()) { jj_scanpos = xsp; break; } } return false; } - private boolean jj_3R_310() { - if (jj_3R_199()) return true; + private boolean jj_3R_309() { + if (jj_3R_198()) return true; return false; } - private boolean jj_3R_313() { + private boolean jj_3R_312() { if (jj_scan_token(IDENT)) return true; return false; } - private boolean jj_3R_294() { + private boolean jj_3R_293() { Token xsp; xsp = jj_scanpos; - if (jj_3R_313()) { + if (jj_3R_312()) { jj_scanpos = xsp; - if (jj_3R_314()) return true; + if (jj_3R_313()) return true; } return false; } - private boolean jj_3R_308() { - if (jj_3R_198()) return true; + private boolean jj_3R_307() { + if (jj_3R_197()) return true; return false; } - private boolean jj_3R_252() { + private boolean jj_3R_251() { if (jj_scan_token(MEDIA_SYM)) return true; Token xsp; while (true) { xsp = jj_scanpos; if (jj_scan_token(1)) { jj_scanpos = xsp; break; } } - if (jj_3R_268()) return true; + if (jj_3R_267()) return true; if (jj_scan_token(LBRACE)) return true; return false; } private boolean jj_3_3() { - if (jj_3R_158()) return true; + if (jj_3R_157()) return true; return false; } - private boolean jj_3R_305() { - if (jj_3R_199()) return true; + private boolean jj_3R_304() { + if (jj_3R_198()) return true; return false; } - private boolean jj_3R_303() { - if (jj_3R_198()) return true; + private boolean jj_3R_302() { + if (jj_3R_197()) return true; return false; } - private boolean jj_3R_293() { - if (jj_3R_199()) return true; + private boolean jj_3R_292() { + if (jj_3R_198()) return true; return false; } - private boolean jj_3R_198() { + private boolean jj_3R_197() { if (jj_scan_token(DOT)) return true; Token xsp; - if (jj_3R_294()) return true; + if (jj_3R_293()) return true; while (true) { xsp = jj_scanpos; - if (jj_3R_294()) { jj_scanpos = xsp; break; } + if (jj_3R_293()) { jj_scanpos = xsp; break; } } return false; } - private boolean jj_3R_298() { - if (jj_3R_199()) return true; + private boolean jj_3R_297() { + if (jj_3R_198()) return true; return false; } - private boolean jj_3R_296() { - if (jj_3R_198()) return true; + private boolean jj_3R_295() { + if (jj_3R_197()) return true; return false; } - private boolean jj_3R_283() { - if (jj_3R_168()) return true; + private boolean jj_3R_282() { + if (jj_3R_167()) return true; return false; } - private boolean jj_3R_161() { + private boolean jj_3R_160() { if (jj_scan_token(COMMA)) return true; Token xsp; while (true) { @@ -7042,233 +6978,233 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3R_233() { - if (jj_3R_255()) return true; + private boolean jj_3R_232() { + if (jj_3R_254()) return true; return false; } - private boolean jj_3R_309() { - if (jj_3R_200()) return true; + private boolean jj_3R_308() { + if (jj_3R_199()) return true; return false; } - private boolean jj_3R_307() { - if (jj_3R_197()) return true; + private boolean jj_3R_306() { + if (jj_3R_196()) return true; return false; } - private boolean jj_3R_278() { + private boolean jj_3R_277() { Token xsp; xsp = jj_scanpos; + if (jj_3R_306()) { + jj_scanpos = xsp; if (jj_3R_307()) { jj_scanpos = xsp; if (jj_3R_308()) { jj_scanpos = xsp; - if (jj_3R_309()) { - jj_scanpos = xsp; - if (jj_3R_310()) return true; + if (jj_3R_309()) return true; } } } return false; } - private boolean jj_3_8() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_161()) jj_scanpos = xsp; - if (jj_3R_162()) return true; - return false; - } - - private boolean jj_3R_302() { - if (jj_3R_197()) return true; + private boolean jj_3R_301() { + if (jj_3R_196()) return true; return false; } - private boolean jj_3R_277() { + private boolean jj_3R_276() { Token xsp; xsp = jj_scanpos; + if (jj_3R_301()) { + jj_scanpos = xsp; if (jj_3R_302()) { jj_scanpos = xsp; if (jj_3R_303()) { jj_scanpos = xsp; - if (jj_3R_304()) { - jj_scanpos = xsp; - if (jj_3R_305()) return true; + if (jj_3R_304()) return true; } } } return false; } - private boolean jj_3R_290() { - if (jj_3R_199()) return true; + private boolean jj_3R_289() { + if (jj_3R_198()) return true; return false; } - private boolean jj_3R_304() { - if (jj_3R_200()) return true; + private boolean jj_3_7() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_160()) jj_scanpos = xsp; + if (jj_3R_161()) return true; return false; } - private boolean jj_3R_295() { - if (jj_3R_197()) return true; + private boolean jj_3R_303() { + if (jj_3R_199()) return true; return false; } - private boolean jj_3R_276() { + private boolean jj_3R_294() { + if (jj_3R_196()) return true; + return false; + } + + private boolean jj_3R_275() { Token xsp; xsp = jj_scanpos; + if (jj_3R_294()) { + jj_scanpos = xsp; if (jj_3R_295()) { jj_scanpos = xsp; if (jj_3R_296()) { jj_scanpos = xsp; - if (jj_3R_297()) { - jj_scanpos = xsp; - if (jj_3R_298()) return true; + if (jj_3R_297()) return true; } } } return false; } - private boolean jj_3R_292() { - if (jj_3R_200()) return true; + private boolean jj_3R_291() { + if (jj_3R_199()) return true; return false; } - private boolean jj_3R_297() { - if (jj_3R_200()) return true; + private boolean jj_3R_296() { + if (jj_3R_199()) return true; return false; } - private boolean jj_3R_291() { - if (jj_3R_198()) return true; + private boolean jj_3R_290() { + if (jj_3R_197()) return true; return false; } - private boolean jj_3R_288() { - if (jj_3R_198()) return true; + private boolean jj_3R_287() { + if (jj_3R_197()) return true; return false; } - private boolean jj_3R_275() { + private boolean jj_3R_274() { Token xsp; xsp = jj_scanpos; - if (jj_3R_291()) { + if (jj_3R_290()) { jj_scanpos = xsp; - if (jj_3R_292()) { + if (jj_3R_291()) { jj_scanpos = xsp; - if (jj_3R_293()) return true; + if (jj_3R_292()) return true; } } return false; } - private boolean jj_3R_232() { - if (jj_3R_254()) return true; + private boolean jj_3R_231() { + if (jj_3R_253()) return true; return false; } - private boolean jj_3R_178() { - if (jj_3R_200()) return true; + private boolean jj_3R_177() { + if (jj_3R_199()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_278()) { jj_scanpos = xsp; break; } + if (jj_3R_277()) { jj_scanpos = xsp; break; } } return false; } - private boolean jj_3R_312() { - if (jj_scan_token(LBRACE)) return true; - return false; - } - - private boolean jj_3R_177() { - if (jj_3R_199()) return true; + private boolean jj_3R_176() { + if (jj_3R_198()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_277()) { jj_scanpos = xsp; break; } + if (jj_3R_276()) { jj_scanpos = xsp; break; } } return false; } - private boolean jj_3R_289() { - if (jj_3R_200()) return true; + private boolean jj_3R_288() { + if (jj_3R_199()) return true; return false; } - private boolean jj_3R_176() { - if (jj_3R_198()) return true; + private boolean jj_3R_311() { + if (jj_scan_token(LBRACE)) return true; + return false; + } + + private boolean jj_3R_175() { + if (jj_3R_197()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_276()) { jj_scanpos = xsp; break; } + if (jj_3R_275()) { jj_scanpos = xsp; break; } } return false; } - private boolean jj_3R_287() { - if (jj_3R_197()) return true; + private boolean jj_3R_286() { + if (jj_3R_196()) return true; return false; } - private boolean jj_3R_175() { - if (jj_3R_197()) return true; + private boolean jj_3R_174() { + if (jj_3R_196()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_275()) { jj_scanpos = xsp; break; } + if (jj_3R_274()) { jj_scanpos = xsp; break; } } return false; } - private boolean jj_3R_274() { + private boolean jj_3R_273() { Token xsp; xsp = jj_scanpos; + if (jj_3R_286()) { + jj_scanpos = xsp; if (jj_3R_287()) { jj_scanpos = xsp; if (jj_3R_288()) { jj_scanpos = xsp; - if (jj_3R_289()) { - jj_scanpos = xsp; - if (jj_3R_290()) return true; + if (jj_3R_289()) return true; } } } return false; } - private boolean jj_3_7() { - if (jj_3R_157()) return true; + private boolean jj_3_6() { + if (jj_3R_156()) return true; return false; } - private boolean jj_3R_174() { - if (jj_3R_196()) return true; + private boolean jj_3R_173() { + if (jj_3R_195()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_274()) { jj_scanpos = xsp; break; } + if (jj_3R_273()) { jj_scanpos = xsp; break; } } return false; } - private boolean jj_3R_160() { + private boolean jj_3R_159() { Token xsp; xsp = jj_scanpos; + if (jj_3R_173()) { + jj_scanpos = xsp; if (jj_3R_174()) { jj_scanpos = xsp; if (jj_3R_175()) { jj_scanpos = xsp; if (jj_3R_176()) { jj_scanpos = xsp; - if (jj_3R_177()) { - jj_scanpos = xsp; - if (jj_3R_178()) return true; + if (jj_3R_177()) return true; } } } @@ -7276,13 +7212,8 @@ LexicalUnitImpl result = null; return false; } - private boolean jj_3R_231() { - if (jj_3R_253()) return true; - return false; - } - - private boolean jj_3R_311() { - if (jj_3R_270()) return true; + private boolean jj_3R_230() { + if (jj_3R_252()) return true; return false; } @@ -7296,7 +7227,7 @@ LexicalUnitImpl result = null; private Token jj_scanpos, jj_lastpos; private int jj_la; private int jj_gen; - final private int[] jj_la1 = new int[234]; + final private int[] jj_la1 = new int[232]; static private int[] jj_la1_0; static private int[] jj_la1_1; static private int[] jj_la1_2; @@ -7308,18 +7239,18 @@ LexicalUnitImpl result = null; jj_la1_init_3(); } private static void jj_la1_init_0() { - jj_la1_0 = new int[] {0x0,0xc02,0xc02,0x0,0xc00,0x2,0x2,0x2,0x0,0xd0000000,0xc00,0x2,0xc00,0x2,0x0,0x2,0x0,0x2,0x2,0x2,0xd3f45400,0xd3f45400,0x2,0x400000,0x2,0x2,0x2,0x2,0x0,0x0,0x2,0x0,0x800000,0x2,0x0,0x2,0x2,0x2,0x2,0x0,0x800000,0x2,0x0,0x2,0x3f45400,0x2,0x2,0x2,0x3100000,0x2,0x3100000,0x3100002,0x2,0x80002,0x80002,0x2,0x2,0x2,0x2,0x2,0xd0000000,0x0,0x0,0xd0000000,0x2,0x400000,0x2,0x2,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0xd0000000,0x0,0x0,0x0,0x0,0xc0000000,0x2,0x2,0xfc000,0x2,0x0,0x2,0xfc000,0x0,0x2,0xd0000000,0x2,0x0,0x2,0x0,0x2,0x800000,0x4d380002,0x2,0xd0000000,0xd0000000,0x2,0x0,0x2,0x4d380002,0x0,0x2,0xd0000000,0xd0000000,0x2,0x4d380002,0x2,0x2,0x2,0x0,0x2,0xd0000000,0x0,0xd0000000,0x2,0x2,0x400000,0x2,0x2,0x2,0x2,0x0,0x2,0xd0000000,0x0,0xd0000000,0x2,0x400000,0x2,0x2,0x2,0x400000,0x0,0x0,0x300000,0x2,0x0,0x400000,0x2,0x300000,0x2,0x0,0x2,0x0,0x2,0x800000,0x2,0x2,0x2,0x0,0x2,0x2,0x2,0x400000,0x2,0x2,0x2,0x2,0x2,0x0,0x2,0x2,0x2,0x400000,0x2,0x2,0x2,0x2,0x2,0x0,0x2,0x2,0x2,0x400000,0x2,0x2,0x0,0x2,0x2,0x2,0x800000,0x2,0x2,0x0,0x800000,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x800000,0x2,0x0,0x2,0x301000,0x2,0x0,0x2,0x2,0x2,0x2,0x8400000,0x8400000,0x300000,0x300000,0x300000,0x0,0x0,0x0,0x300000,0x2,0x2,0x300000,0x2,0xd0000000,0x2,0x2,0x2,0x0,0x800000,0x2,0x0,0x2,}; + jj_la1_0 = new int[] {0x0,0xc02,0xc02,0x0,0xc00,0x2,0x2,0x2,0x0,0xd0000000,0xc00,0x2,0xc00,0x2,0x0,0x2,0x0,0x2,0x2,0x2,0xd3f45400,0xd3f45400,0x2,0x400000,0x2,0x2,0x2,0x2,0x0,0x0,0x2,0x0,0x800000,0x2,0x0,0x2,0x2,0x2,0x2,0x0,0x800000,0x2,0x0,0x2,0x3f45400,0x2,0x2,0x2,0x3100000,0x2,0x3100000,0x3100002,0x2,0x80002,0x80002,0x2,0x2,0x2,0x2,0x2,0xd0000000,0x0,0x0,0xd0000000,0x2,0x400000,0x2,0x2,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0xd0000000,0x0,0x0,0x0,0x0,0xc0000000,0x2,0x2,0xfc000,0x2,0x0,0x2,0xfc000,0x0,0x2,0x0,0x2,0x0,0x2,0x800000,0x4d380002,0x2,0xd0000000,0xd0000000,0x2,0x0,0x2,0x4d380002,0x0,0x2,0xd0000000,0xd0000000,0x2,0x4d380002,0x2,0x2,0x2,0x0,0x2,0xd0000000,0x0,0xd0000000,0x2,0x2,0x400000,0x2,0x2,0x2,0x2,0x0,0x2,0xd0000000,0x0,0xd0000000,0x2,0x400000,0x2,0x2,0x2,0x400000,0x0,0x0,0x300000,0x2,0x0,0x400000,0x2,0x300000,0x2,0x0,0x2,0x0,0x2,0x800000,0x2,0x2,0x2,0x0,0x2,0x2,0x2,0x400000,0x2,0x2,0x2,0x2,0x2,0x0,0x2,0x2,0x2,0x400000,0x2,0x2,0x2,0x2,0x2,0x0,0x2,0x2,0x2,0x400000,0x2,0x2,0x0,0x2,0x2,0x2,0x800000,0x2,0x2,0x0,0x800000,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x800000,0x2,0x0,0x2,0x301000,0x2,0x0,0x2,0x2,0x2,0x2,0x8400000,0x8400000,0x300000,0x300000,0x300000,0x0,0x0,0x0,0x300000,0x2,0x2,0x300000,0x2,0xd0000000,0x2,0x2,0x2,0x0,0x800000,0x2,0x0,0x2,}; } private static void jj_la1_init_1() { - jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x50600181,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x381,0x381,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x185,0x185,0x0,0x0,0x0,0x0,0x0,0x50400181,0x40000000,0x10400000,0x181,0x0,0x0,0x0,0x0,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x181,0x100,0x100,0x100,0x100,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x181,0x0,0x0,0x0,0x0,0x0,0x0,0x7e,0x0,0x400181,0x400181,0x0,0x80000000,0x0,0x7e,0x0,0x0,0x400181,0x400181,0x0,0x7e,0x0,0x0,0x0,0x0,0x0,0x400181,0x400000,0x181,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x50400181,0x400000,0x50000181,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x80,0x81,0x0,0x80,0x0,0x0,0x81,0x0,0x80,0x0,0x100,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0xc0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1,0x1,0x1,0x0,0x0,0x1,0x0,0x181,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x50600181,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x381,0x381,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x185,0x185,0x0,0x0,0x0,0x0,0x0,0x50400181,0x40000000,0x10400000,0x181,0x0,0x0,0x0,0x0,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x181,0x100,0x100,0x100,0x100,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x7e,0x0,0x400181,0x400181,0x0,0x80000000,0x0,0x7e,0x0,0x0,0x400181,0x400181,0x0,0x7e,0x0,0x0,0x0,0x0,0x0,0x400181,0x400000,0x181,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x50400181,0x400000,0x50000181,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x80,0x81,0x0,0x80,0x0,0x0,0x81,0x0,0x80,0x0,0x100,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0xc0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1,0x1,0x1,0x0,0x0,0x1,0x0,0x181,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } private static void jj_la1_init_2() { - jj_la1_2 = new int[] {0x0,0x0,0x0,0x40000000,0x0,0x0,0x0,0x0,0x800,0xa0000880,0x0,0x0,0x0,0x0,0x440,0x0,0x80,0x0,0x0,0x0,0xe00015c0,0xe00015c0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x80,0x0,0x0,0x80,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x80,0x0,0xc0001540,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x180,0x180,0x0,0x0,0x0,0x0,0x0,0xa0000889,0x0,0x80000801,0x20000080,0x0,0x0,0x0,0x0,0x20000000,0x20000000,0x0,0x0,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000080,0x80,0x80,0x80,0x80,0x80,0x0,0x0,0x0,0x0,0xc0,0x0,0x0,0x0,0x0,0x20000180,0x0,0x80,0x0,0x20,0x0,0x0,0x980,0x0,0xa0000881,0xa0000881,0x0,0x0,0x0,0x980,0x10,0x0,0xa0000881,0xa0000881,0x0,0x980,0x0,0x0,0x0,0x880,0x0,0xa0000881,0x0,0xa0000881,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0xa0000881,0x80000000,0x20000881,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x800,0x3ffffdc0,0x0,0x0,0x0,0x0,0x3ffffdc0,0x0,0x0,0x0,0x880,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x80,0x0,0x80,0x0,0x0,0x0,0x80,0x0,0x0,0x80,0x0,0x3ffffdc0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3ffffdc0,0x0,0x1ffff100,0x0,0x200004c0,0x3ffff5c0,0x0,0x0,0x3ffffdc0,0x0,0xe0000080,0x0,0x0,0x0,0x80,0x0,0x0,0x80,0x0,}; + jj_la1_2 = new int[] {0x0,0x0,0x0,0x40000000,0x0,0x0,0x0,0x0,0x800,0xa0000880,0x0,0x0,0x0,0x0,0x440,0x0,0x80,0x0,0x0,0x0,0xe00015c0,0xe00015c0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x80,0x0,0x0,0x80,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x80,0x0,0xc0001540,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x180,0x180,0x0,0x0,0x0,0x0,0x0,0xa0000889,0x0,0x80000801,0x20000080,0x0,0x0,0x0,0x0,0x20000000,0x20000000,0x0,0x0,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000000,0x20000080,0x80,0x80,0x80,0x80,0x80,0x0,0x0,0x0,0x0,0xc0,0x0,0x0,0x0,0x0,0x80,0x0,0x20,0x0,0x0,0x980,0x0,0xa0000881,0xa0000881,0x0,0x0,0x0,0x980,0x10,0x0,0xa0000881,0xa0000881,0x0,0x980,0x0,0x0,0x0,0x880,0x0,0xa0000881,0x0,0xa0000881,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0xa0000881,0x80000000,0x20000881,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x800,0x3ffffdc0,0x0,0x0,0x0,0x0,0x3ffffdc0,0x0,0x0,0x0,0x880,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x80,0x0,0x80,0x0,0x0,0x0,0x80,0x0,0x0,0x80,0x0,0x3ffffdc0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3ffffdc0,0x0,0x1ffff100,0x0,0x200004c0,0x3ffff5c0,0x0,0x0,0x3ffffdc0,0x0,0xe0000080,0x0,0x0,0x0,0x80,0x0,0x0,0x80,0x0,}; } private static void jj_la1_init_3() { - jj_la1_3 = new int[] {0x1,0x8,0x8,0x0,0x8,0x0,0x0,0x0,0x0,0x6,0x8,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc401f,0xc401f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc401f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x0,0x6,0x0,0x6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x44000,0x0,0x0,0x0,0x0,0x44000,0x0,0x0,0x0,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x44000,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x44000,0x0,0x40000,0x0,0x4000,0x44000,0x0,0x0,0x44000,0x0,0x6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_3 = new int[] {0x1,0x8,0x8,0x0,0x8,0x0,0x0,0x0,0x0,0x6,0x8,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc401f,0xc401f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc401f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x0,0x6,0x0,0x6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x44000,0x0,0x0,0x0,0x0,0x44000,0x0,0x0,0x0,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x44000,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x44000,0x0,0x40000,0x0,0x4000,0x44000,0x0,0x0,0x44000,0x0,0x6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } - final private JJCalls[] jj_2_rtns = new JJCalls[13]; + final private JJCalls[] jj_2_rtns = new JJCalls[12]; private boolean jj_rescan = false; private int jj_gc = 0; @@ -7329,7 +7260,7 @@ LexicalUnitImpl result = null; token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 234; i++) jj_la1[i] = -1; + for (int i = 0; i < 232; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -7339,7 +7270,7 @@ LexicalUnitImpl result = null; token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 234; i++) jj_la1[i] = -1; + for (int i = 0; i < 232; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -7349,7 +7280,7 @@ LexicalUnitImpl result = null; token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 234; i++) jj_la1[i] = -1; + for (int i = 0; i < 232; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -7359,7 +7290,7 @@ LexicalUnitImpl result = null; token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 234; i++) jj_la1[i] = -1; + for (int i = 0; i < 232; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -7476,7 +7407,7 @@ LexicalUnitImpl result = null; la1tokens[jj_kind] = true; jj_kind = -1; } - for (int i = 0; i < 234; i++) { + for (int i = 0; i < 232; i++) { if (jj_la1[i] == jj_gen) { for (int j = 0; j < 32; j++) { if ((jj_la1_0[i] & (1<<j)) != 0) { @@ -7521,7 +7452,7 @@ LexicalUnitImpl result = null; private void jj_rescan_token() { jj_rescan = true; - for (int i = 0; i < 13; i++) { + for (int i = 0; i < 12; i++) { try { JJCalls p = jj_2_rtns[i]; do { @@ -7540,7 +7471,6 @@ LexicalUnitImpl result = null; case 9: jj_3_10(); break; case 10: jj_3_11(); break; case 11: jj_3_12(); break; - case 12: jj_3_13(); break; } } p = p.next; diff --git a/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj b/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj index a816a276b9..dfb12de6d6 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj +++ b/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj @@ -1314,12 +1314,9 @@ boolean isPseudoElement = false; } } } - | ( n=<FUNCTION> ( <S> )* ( - LOOKAHEAD(2) param=<IDENT> { d = convertIdent(param.image); } - | param=<NUMBER> { d = param.image; } - | d=simple_selector(null, ' ') - ) ( <S> )* ")" + | ( n=<FUNCTION> ( <S> )* d=skipStatementUntilRightParan() <RPARAN> { + // accept anything between function and a right parenthesis String f = convertIdent(n.image); String colons = isPseudoElement ? "::" : ":"; String pseudofn = colons + f + d + ")"; diff --git a/theme-compiler/tests/resources/automatic/css/selector_types.css b/theme-compiler/tests/resources/automatic/css/selector_types.css index b0f98c9267..0125ef6770 100644 --- a/theme-compiler/tests/resources/automatic/css/selector_types.css +++ b/theme-compiler/tests/resources/automatic/css/selector_types.css @@ -22,6 +22,22 @@ attrib .attrib { type: pseudo-class; } +.pseudo:nth-child(10n-1) { + type: pseudo-class; +} + +.pseudo:nth-child(odd), .pseudo:nth-child(even) { + type: pseudo-class; +} + +.pseudo:nth-child(2n+1), .pseudo:nth-child(4n+3), .pseudo:nth-child(0n+5), .pseudo:nth-child(n) { + type: pseudo-class; +} + +.pseudo:nth-child(+3n - 2), .pseudo:nth-child(-n+ 6), .pseudo:nth-child(+6) { + type: pseudo-class; +} + .pseudo:lang(fr) { type: pseudo-class; } diff --git a/theme-compiler/tests/resources/automatic/scss/selector_types.scss b/theme-compiler/tests/resources/automatic/scss/selector_types.scss index b0f98c9267..331318d4d6 100644 --- a/theme-compiler/tests/resources/automatic/scss/selector_types.scss +++ b/theme-compiler/tests/resources/automatic/scss/selector_types.scss @@ -22,6 +22,23 @@ attrib .attrib { type: pseudo-class; } +.pseudo:nth-child(10n-1) { + type: pseudo-class; +} + +.pseudo:nth-child(odd), .pseudo:nth-child(even) { + type: pseudo-class; +} + +.pseudo:nth-child(2n+1), .pseudo:nth-child(4n+3), .pseudo:nth-child(0n+5), .pseudo:nth-child(n) { + type: pseudo-class; +} + +// whitespace +.pseudo:nth-child( +3n - 2 ), .pseudo:nth-child( -n+ 6), .pseudo:nth-child( +6 ) { + type: pseudo-class; +} + .pseudo:lang(fr) { type: pseudo-class; } diff --git a/uitest/src/com/vaadin/tests/components/ui/MultipleUIUploadTest.java b/uitest/src/com/vaadin/tests/components/ui/MultipleUIUploadTest.java new file mode 100644 index 0000000000..f92e22d06b --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/ui/MultipleUIUploadTest.java @@ -0,0 +1,118 @@ +package com.vaadin.tests.components.ui; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.io.OutputStream; + +import com.vaadin.server.StreamResource; +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.Button; +import com.vaadin.ui.Button.ClickEvent; +import com.vaadin.ui.Button.ClickListener; +import com.vaadin.ui.Notification; +import com.vaadin.ui.Upload; +import com.vaadin.ui.VerticalLayout; + +public class MultipleUIUploadTest extends AbstractTestUI { + + private MemoryBuffer buffer = new MemoryBuffer(); + private Upload upload; + + @Override + protected String getTestDescription() { + return "Using Upload with multiple UIs causes NPE." + + " Open test in first browser window and open the file selection window." + + " Then open test in second browser window (without ?restartApplication) and click the notification button." + + " Then go back to the first window, select a file, and click Upload." + + " Click notification button to ensure the upload was received successfully."; + } + + @Override + protected Integer getTicketNumber() { + return 10112; + } + + @Override + protected void setup(VaadinRequest request) { + final VerticalLayout layout = new VerticalLayout(); + layout.setMargin(true); + layout.setSpacing(true); + setContent(layout); + + upload = new Upload(null, buffer); + upload.setId("upload"); + layout.addComponent(upload); + + Button button = new Button("show notification"); + button.setId("notify"); + button.addClickListener(new ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + Notification.show("uploaded: " + buffer.getFileName()); + } + }); + layout.addComponent(button); + + } + + public class MemoryBuffer implements StreamResource.StreamSource, + Upload.Receiver { + ByteArrayOutputStream outputBuffer = null; + + String mimeType; + + String fileName; + + public MemoryBuffer() { + + } + + @Override + public InputStream getStream() { + if (outputBuffer == null) { + return null; + } + return new ByteArrayInputStream(outputBuffer.toByteArray()); + } + + /** + * @see com.vaadin.ui.Upload.Receiver#receiveUpload(String, String) + */ + @Override + public OutputStream receiveUpload(String filename, String MIMEType) { + fileName = filename; + mimeType = MIMEType; + outputBuffer = new ByteArrayOutputStream() { + @Override + public synchronized void write(byte[] b, int off, int len) { + super.write(b, off, len); + } + + }; + return outputBuffer; + } + + /** + * Returns the fileName. + * + * @return String + */ + public String getFileName() { + return fileName; + } + + /** + * Returns the mimeType. + * + * @return String + */ + public String getMimeType() { + return mimeType; + } + + } + +} |