The theme was designed for Liferay 6.0 and was following its look. Liferay 6.0 is no longer officially supported by Vaadin 8. Change-Id: I79e8ecd6674b1dce2424121d4c298b69d3f932d4tags/8.0.0.alpha1
vaadinVersion:: Vaadin release version for the Maven dependency. | vaadinVersion:: Vaadin release version for the Maven dependency. | ||||
uiClassName:: Class name of the UI class stub to be created. | uiClassName:: Class name of the UI class stub to be created. | ||||
theme:: Theme to use. You can use either a project theme, which must be compiled before deployment, or use the [literal]#++liferay++# theme. | |||||
theme:: Theme to use. You can use either a project theme, which must be compiled before deployment, or use one of the default themes. | |||||
portletTitle:: Title shown in the portlet title bar. | portletTitle:: Title shown in the portlet title bar. | ||||
portletShortTitle:: Title shown in contexts where a shorter title is preferred. | portletShortTitle:: Title shown in contexts where a shorter title is preferred. | ||||
portletKeywords:: Keywords for finding the portlet in Liferay. | portletKeywords:: Keywords for finding the portlet in Liferay. | ||||
older version of Vaadin, you first need to remove the resources as described in | older version of Vaadin, you first need to remove the resources as described in | ||||
<<portal.liferay.remove>>. | <<portal.liferay.remove>>. | ||||
In the following, we assume that you use only the built-in "liferay" theme in | |||||
In the following, we assume that you use only the built-in "reindeer" theme in | |||||
Vaadin and the default widget set. | Vaadin and the default widget set. | ||||
. Get the Vaadin installation package from the Vaadin download page | . Get the Vaadin installation package from the Vaadin download page | ||||
vaadin.widgetset=com.vaadin.server.DefaultWidgetSet | vaadin.widgetset=com.vaadin.server.DefaultWidgetSet | ||||
# Theme to use | # Theme to use | ||||
vaadin.theme=liferay | |||||
# This is the default theme if nothing is specified | |||||
vaadin.theme=reindeer | |||||
---- | ---- | ||||
The allowed parameters are: | The allowed parameters are: | ||||
notation. If the parameter is not given, the default widget set is used. | notation. If the parameter is not given, the default widget set is used. | ||||
[parameter]#vaadin.theme#:: Name of the theme to use. If the parameter is not given, the default theme is | [parameter]#vaadin.theme#:: Name of the theme to use. If the parameter is not given, the default theme is | ||||
used, which is [literal]#++reindeer++# in Vaadin 6. | |||||
used, which is [literal]#++reindeer++#. | |||||
The portlet theme is defined with the [classname]#@Theme# annotation as usual. | The portlet theme is defined with the [classname]#@Theme# annotation as usual. | ||||
The theme for the UI must match a theme installed in the portal. You can use any | The theme for the UI must match a theme installed in the portal. You can use any | ||||
of the built-in themes in Vaadin. For Liferay theme compatibility, there is a | |||||
special [literal]#++liferay++# theme. If you use a custom theme, you need to | |||||
of the built-in themes in Vaadin. If you use a custom theme, you need to | |||||
compile it to CSS with the theme compiler and install it in the portal under the | compile it to CSS with the theme compiler and install it in the portal under the | ||||
[filename]#VAADIN/themes# context to be served statically. | [filename]#VAADIN/themes# context to be served statically. | ||||
* [literal]#++reindeer++#, the primary theme in Vaadin 6 and 7 | * [literal]#++reindeer++#, the primary theme in Vaadin 6 and 7 | ||||
* [literal]#++chameleon++#, an easily customizable theme | * [literal]#++chameleon++#, an easily customizable theme | ||||
* [literal]#++runo++#, the default theme in IT Mill Toolkit 5 | * [literal]#++runo++#, the default theme in IT Mill Toolkit 5 | ||||
* [literal]#++liferay++#, for Liferay portlets | |||||
In addition, there is the [literal]#++base++# theme, which should not be used | In addition, there is the [literal]#++base++# theme, which should not be used | ||||
directly, but is extended by the other built-in themes, except valo. | directly, but is extended by the other built-in themes, except valo. |
<includes> | <includes> | ||||
VAADIN/themes/base/**, | VAADIN/themes/base/**, | ||||
VAADIN/themes/chameleon/**, | VAADIN/themes/chameleon/**, | ||||
VAADIN/themes/liferay/**, | |||||
VAADIN/themes/runo/**, | VAADIN/themes/runo/**, | ||||
VAADIN/themes/reindeer/** | VAADIN/themes/reindeer/** | ||||
</includes> | </includes> |
/* | |||||
* Copyright 2000-2014 Vaadin Ltd. | |||||
* | |||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not | |||||
* use this file except in compliance with the License. You may obtain a copy of | |||||
* the License at | |||||
* | |||||
* http://www.apache.org/licenses/LICENSE-2.0 | |||||
* | |||||
* Unless required by applicable law or agreed to in writing, software | |||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | |||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | |||||
* License for the specific language governing permissions and limitations under | |||||
* the License. | |||||
*/ | |||||
package com.vaadin.ui.themes; | |||||
public class LiferayTheme extends BaseTheme { | |||||
public static final String THEME_NAME = "liferay"; | |||||
/*************************************************************************** | |||||
* | |||||
* Panel styles | |||||
* | |||||
**************************************************************************/ | |||||
/** | |||||
* Removes borders and background from the panel | |||||
*/ | |||||
public static final String PANEL_LIGHT = "light"; | |||||
/*************************************************************************** | |||||
* | |||||
* SplitPanel styles | |||||
* | |||||
**************************************************************************/ | |||||
/** | |||||
* Reduces the split handle to a minimal size (1 pixel) | |||||
*/ | |||||
public static final String SPLITPANEL_SMALL = "small"; | |||||
} |
</arguments> | </arguments> | ||||
</configuration> | </configuration> | ||||
</execution> | </execution> | ||||
<execution> | |||||
<id>compile-legacy-liferay</id> | |||||
<phase>process-resources</phase> | |||||
<goals> | |||||
<goal>exec</goal> | |||||
</goals> | |||||
<configuration> | |||||
<classpathScope>compile</classpathScope> | |||||
<executable>${java.home}/bin/java</executable> | |||||
<arguments> | |||||
<argument>-classpath</argument> | |||||
<classpath /> | |||||
<argument>com.vaadin.sass.SassCompiler</argument> | |||||
<argument> ${project.build.outputDirectory}/VAADIN/themes/liferay/legacy-styles.scss</argument> | |||||
<argument> ${project.build.outputDirectory}/VAADIN/themes/liferay/legacy-styles.css</argument> | |||||
</arguments> | |||||
</configuration> | |||||
</execution> | |||||
<execution> | <execution> | ||||
<id>compile-legacy-reindeer</id> | <id>compile-legacy-reindeer</id> | ||||
<phase>process-resources</phase> | <phase>process-resources</phase> |
@mixin liferay-accordion { | |||||
.v-accordion { | |||||
border: 1px solid #999; | |||||
-webkit-border-radius: 4px; | |||||
-moz-border-radius: 4px; | |||||
border-radius: 4px; | |||||
} | |||||
.v-accordion-item-caption { | |||||
color: #222; | |||||
text-shadow: 1px 1px #FFFFFF; | |||||
font-weight: bold; | |||||
background: #c0c2c5 url(/html/themes/classic/images/application/panel_header_bg.png) repeat-x scroll 0 0; | |||||
border-top: 1px solid #999; | |||||
border-bottom: none; | |||||
padding: 4px 5px 5px 5px; | |||||
} | |||||
.v-accordion-item-caption .v-caption { | |||||
font-size: 12px; | |||||
} | |||||
.v-accordion-item-first .v-accordion-item-caption { | |||||
border-top: none; | |||||
-webkit-border-radius: 4px 4px 0 0; | |||||
-moz-border-radius: 4px 4px 0 0; | |||||
border-radius: 4px 4px 0 0; | |||||
} | |||||
.v-accordion-item-open .v-accordion-item-caption { | |||||
border-bottom: 1px solid #999; | |||||
} | |||||
} |
@mixin liferay-button { | |||||
.v-button:focus { | |||||
outline: none; | |||||
} | |||||
.v-button:hover .v-button-wrap { | |||||
background: #b9ced9 url(/html/themes/classic/images/application/state_hover_bg.png) repeat-x 0 0; | |||||
border-color: #627782; | |||||
color: #369; | |||||
} | |||||
.v-button:active .v-button-wrap, | |||||
.v-button.v-pressed .v-button-wrap, | |||||
.v-button:focus .v-button-wrap { | |||||
background: #ebebeb url(/html/themes/classic/images/application/state_active_bg.png) repeat-x 0 0; | |||||
border-color: #555; | |||||
} | |||||
.v-button { | |||||
padding: 0; | |||||
border: none; | |||||
height: 26px; | |||||
overflow: hidden; | |||||
} | |||||
.v-nativebutton { | |||||
font-size: $font-size; | |||||
} | |||||
.v-button .v-button-wrap, | |||||
.v-disabled.v-button .v-button-wrap { | |||||
display: block; | |||||
font-size: $font-size; | |||||
font-weight: bold; | |||||
border: 1px solid #c8c9ca; | |||||
border-right-color: #9e9e9e; | |||||
border-bottom-color: #9e9e9e; | |||||
background: #d4d4d4 url(/html/themes/classic/images/portlet/header_bg.png) repeat-x 0 0; | |||||
-webkit-background-origin: padding; | |||||
-moz-background-origin: padding; | |||||
padding: 4px 4px 0px 4px; | |||||
-webkit-border-radius: 4px; | |||||
-moz-border-radius: 4px; | |||||
border-radius: 4px; | |||||
line-height: 16px; | |||||
min-height: 16px; | |||||
text-shadow: 1px 1px #fff; | |||||
color: #34404f; | |||||
text-overflow: ellipsis; | |||||
height: 20px; | |||||
} | |||||
.v-button-caption { | |||||
line-height: 16px; | |||||
} | |||||
/* Link style button */ | |||||
.v-button-link, | |||||
.v-disabled.v-button-link, | |||||
.v-button-link:focus, | |||||
.v-button-link:active, | |||||
.v-button-link:hover, | |||||
.v-button-link-pressed, | |||||
button.v-nativebutton-link, | |||||
.v-disabled.v-nativebutton-link, | |||||
button.v-nativebutton-link:focus, | |||||
button.v-nativebutton-link:active, | |||||
button.v-nativebutton-link:hover, | |||||
button.v-nativebutton-link-pressed, | |||||
.v-button.v-button-link .v-button-wrap, | |||||
.v-button.v-button-link:focus .v-button-wrap, | |||||
.v-button.v-button-link:active .v-button-wrap, | |||||
.v-disabled.v-button.v-button-link .v-button-wrap { | |||||
color: #5B677D; | |||||
font-weight: normal; | |||||
border: none; | |||||
border-style: none; | |||||
background: transparent; | |||||
padding: 0; | |||||
font-size: $font-size; | |||||
-webkit-box-shadow: none; | |||||
-mox-box-shadow: none; | |||||
-webkit-border-radius: 0; | |||||
-moz-border-radius: 0; | |||||
border-radius: 0; | |||||
text-shadow: none; | |||||
height: auto; | |||||
} | |||||
.v-button-link:hover { | |||||
color: #0066cc; | |||||
text-decoration: none; | |||||
} | |||||
.v-button-link:focus, | |||||
.v-sa & .v-button-link:focus { | |||||
outline: 1px dotted #1b699f; | |||||
outline-offset: -1px; | |||||
} | |||||
.v-sa & .v-button-link:focus { | |||||
outline-offset: -1px; | |||||
} | |||||
/* CheckBox */ | |||||
.v-checkbox input { | |||||
margin-right: 3px; | |||||
} | |||||
} |
@mixin liferay-colorpicker($name : v-colorpicker) { | |||||
.#{$name}-button-color { | |||||
border: 1px solid #999999; | |||||
} | |||||
.#{$name}-popup { | |||||
width: 252px; | |||||
} | |||||
.#{$name}-popup .v-tabsheet .#{$name}-grid { | |||||
height: 312px; | |||||
} | |||||
.#{$name}-popup .v-filterselect { | |||||
padding-right: 24px; | |||||
} | |||||
} |
@mixin liferay-common { | |||||
body &.v-app { | |||||
background-color: transparent; | |||||
} | |||||
.v-caption { | |||||
font-weight: bold; | |||||
} | |||||
.v-tooltip { | |||||
background-color: #fffcdd; | |||||
border: 1px solid #b8b295; | |||||
font-size: 11px; | |||||
color: #222; | |||||
} | |||||
.v-tooltip-text { | |||||
padding: 2px 4px; | |||||
} | |||||
.v-tooltip .v-errormessage { | |||||
padding: 3px 4px; | |||||
background: #ffecc6; | |||||
color: #b74100; | |||||
border: none; | |||||
border-top: 1px solid #fff3dc; | |||||
} | |||||
.v-tooltip .v-errormessage h2 { | |||||
font-size: 16px; | |||||
font-weight: normal; | |||||
color: #ab3101; | |||||
margin: 2px 0 8px 0; | |||||
} | |||||
.v-tooltip .v-errormessage h3 { | |||||
font-size: 13px; | |||||
font-weight: bold; | |||||
margin: 1px 0 4px 0; | |||||
} | |||||
} |
@mixin liferay-contextmenu { | |||||
.v-contextmenu { | |||||
background: #ccc9c9 url(/html/themes/classic/images/application/menu_bg.png) repeat-x 0 0; | |||||
border: 1px solid; | |||||
border-color: #aeafb1 #777879 #777879 #aeafb1; | |||||
-webkit-border-radius: 4px; | |||||
-moz-border-radius: 4px; | |||||
border-radius: 4px; | |||||
} | |||||
.v-contextmenu table { | |||||
border-collapse: separate; | |||||
} | |||||
.v-contextmenu .gwt-MenuItem { | |||||
padding: 3px 8px 2px 8px; | |||||
height: 16px; | |||||
color: #2c2f34; | |||||
text-shadow: -1px -1px #fff; | |||||
font-weight: bold; | |||||
border-bottom: 1px solid #bcbbbb; | |||||
border-top: 1px solid #eee; | |||||
} | |||||
.v-contextmenu tr:last-child .gwt-MenuItem { | |||||
border-bottom-width: 0; | |||||
} | |||||
.v-contextmenu .gwt-MenuItem img { | |||||
margin-right: 4px; | |||||
} | |||||
.v-contextmenu .gwt-MenuItem-selected { | |||||
background-color: #5b677d; | |||||
color: #FFF; | |||||
text-shadow: -1px -1px #2c2f34; | |||||
} | |||||
.v-contextmenu .gwt-MenuItem-selected div { | |||||
background: transparent; | |||||
} | |||||
} |
@mixin liferay-datefield($primaryStyleName : v-datefield) { | |||||
.#{$primaryStyleName}-popup { | |||||
padding: 3px; | |||||
-webkit-border-radius: 4px; | |||||
-moz-border-radius: 4px; | |||||
border-radius: 4px; | |||||
} | |||||
.#{$primaryStyleName}-calendarpanel-header { | |||||
height: 28px; | |||||
} | |||||
.#{$primaryStyleName}-calendarpanel:focus { | |||||
outline: none; | |||||
} | |||||
.#{$primaryStyleName}-calendarpanel-body { | |||||
text-align: right; | |||||
vertical-align: top; | |||||
} | |||||
.#{$primaryStyleName}-popupcalendar .#{$primaryStyleName}-button { | |||||
background: transparent url(../common/buttons_sprites.png) no-repeat 0 -48px; | |||||
width: 24px; | |||||
height: 24px; | |||||
border: none; | |||||
} | |||||
.#{$primaryStyleName}-popupcalendar .#{$primaryStyleName}-button:hover { | |||||
background-position: 0px -72px; | |||||
} | |||||
.#{$primaryStyleName}-popupcalendar .#{$primaryStyleName}-button:focus { | |||||
background-position: 0px -96px; | |||||
} | |||||
.#{$primaryStyleName}-month .#{$primaryStyleName}-calendarpanel-month, | |||||
.#{$primaryStyleName}-day .#{$primaryStyleName}-calendarpanel-month, | |||||
.#{$primaryStyleName}-full .#{$primaryStyleName}-calendarpanel-month { | |||||
width: 124px; | |||||
} | |||||
.#{$primaryStyleName}-year .#{$primaryStyleName}-calendarpanel-month { | |||||
width: 35px; | |||||
} | |||||
.#{$primaryStyleName}-calendarpanel-month { | |||||
background: transparent url(datefield_sprites.png) repeat-x 0 -112px; | |||||
font-weight: bold; | |||||
} | |||||
span.#{$primaryStyleName}-calendarpanel-month { | |||||
display: block; | |||||
text-align: center; | |||||
background: transparent; | |||||
overflow: hidden; | |||||
padding: 1px 3px 0; | |||||
} | |||||
.#{$primaryStyleName}-calendarpanel-prevyear, | |||||
.#{$primaryStyleName}-calendarpanel-nextyear { | |||||
width: 22px; | |||||
} | |||||
.#{$primaryStyleName}-calendarpanel-prevyear button, | |||||
.#{$primaryStyleName}-calendarpanel-prevmonth button, | |||||
.#{$primaryStyleName}-calendarpanel-nextmonth button, | |||||
.#{$primaryStyleName}-calendarpanel-nextyear button { | |||||
width: 22px; | |||||
height: 28px; | |||||
border: none; | |||||
background: transparent; | |||||
background-repeat: no-repeat; | |||||
background-image: url(datefield_sprites.png); | |||||
background-position: 0 0; | |||||
overflow: hidden; | |||||
padding: 0; | |||||
text-indent: -9999px; | |||||
outline: none; | |||||
-webkit-border-radius: 0; | |||||
-moz-border-radius: 0; | |||||
border-radius: 0; | |||||
} | |||||
.v-ie & .#{$primaryStyleName}-calendarpanel-prevyear button, | |||||
.v-ie & .#{$primaryStyleName}-calendarpanel-nextyear button, | |||||
.v-ie & .#{$primaryStyleName}-calendarpanel-prevmonth button, | |||||
.v-ie & .#{$primaryStyleName}-calendarpanel-nextmonth button { | |||||
text-indent: 0; | |||||
font-size: 1px; | |||||
} | |||||
.#{$primaryStyleName}-calendarpanel-prevmonth button { | |||||
background-position: 0 -56px; | |||||
} | |||||
.#{$primaryStyleName}-calendarpanel-prevmonth { | |||||
background: transparent url(datefield_sprites.png) repeat-x 0 -112px; | |||||
} | |||||
.#{$primaryStyleName}-calendarpanel-nextyear button { | |||||
background-position: 0 -28px; | |||||
width: 100%; | |||||
min-width: 22px; | |||||
} | |||||
.#{$primaryStyleName}-calendarpanel-nextmonth button { | |||||
background-position: 0 -84px; | |||||
} | |||||
.#{$primaryStyleName}-calendarpanel-nextmonth { | |||||
background: transparent url(datefield_sprites.png) repeat-x 0 -112px; | |||||
} | |||||
.#{$primaryStyleName}-calendarpanel-prevyear button { | |||||
width: 100%; | |||||
min-width: 22px; | |||||
} | |||||
.#{$primaryStyleName}-calendarpanel-day { | |||||
display: block; | |||||
width: 22px; | |||||
margin: 0 0 3px 3px; | |||||
text-align: center; | |||||
background: #d4d4d4 url(/html/themes/classic/images/application/state_default_bg.png) repeat-x 0 0; | |||||
border-color: #c8c9ca #9e9e9e #9e9e9e #c8c9ca; | |||||
border-style: solid; | |||||
border-width: 1px; | |||||
-webkit-border-radius: 4px; | |||||
-moz-border-radius: 4px; | |||||
border-radius: 4px; | |||||
} | |||||
.#{$primaryStyleName}-calendarpanel-day-today { | |||||
font-weight: bold; | |||||
} | |||||
.#{$primaryStyleName}-calendarpanel-day-selected { | |||||
background: #b5b5b5 url(/html/themes/classic/images/application/state_active_bg.png) repeat-x 0 0; | |||||
color: #000; | |||||
border-color: #555; | |||||
} | |||||
.#{$primaryStyleName}-calendarpanel-day-focused { | |||||
outline: 1px dotted #555; | |||||
} | |||||
.#{$primaryStyleName}-calendarpanel-weekdays { | |||||
text-align: center; | |||||
} | |||||
.#{$primaryStyleName}-calendarpanel-weekdays strong { | |||||
font-weight: normal; | |||||
} | |||||
.#{$primaryStyleName}-calendarpanel-weeknumber { | |||||
display: block; | |||||
border: none; | |||||
padding: 2px 0 2px 0; | |||||
margin: 0; | |||||
font-size: 9.9px; | |||||
} | |||||
.#{$primaryStyleName}-calendarpanel-body table { | |||||
margin: 0 auto; | |||||
width: 200px; | |||||
} | |||||
} |
@mixin liferay-formlayout { | |||||
.v-formlayout .v-caption { | |||||
font-weight: normal; | |||||
} | |||||
} |
@mixin liferay-inlinedatefield ($primaryStyleName : v-inline-datefield) { | |||||
@include liferay-datefield(v-inline-datefield); | |||||
.#{$primaryStyleName} { | |||||
line-height:19px; /* Override popup datefields line-height:0 to get correct line heights */ | |||||
} | |||||
} |
@import "liferay.scss"; | |||||
// For legacy themes; does not wrap styles in .themename | |||||
// Creates legacy-styles.css that can be imported into non-sass themes. | |||||
// NOTE: can not be used in scenarios where multiple themes are used on the | |||||
// same page (e.g portals). | |||||
@include liferay; |
@import "../base/base.scss"; | |||||
@import "accordion/accordion.scss"; | |||||
@import "button/button.scss"; | |||||
@import "colorpicker/colorpicker.scss"; | |||||
@import "common/common.scss"; | |||||
@import "contextmenu/contextmenu.scss"; | |||||
@import "datefield/datefield.scss"; | |||||
@import "inlinedatefield/inlinedatefield.scss"; | |||||
@import "formlayout/formlayout.scss"; | |||||
@import "menubar/menubar.scss"; | |||||
@import "notification/notification.scss"; | |||||
@import "panel/panel.scss"; | |||||
@import "popupview/popupview.scss"; | |||||
@import "progressindicator/progressindicator.scss"; | |||||
@import "select/select.scss"; | |||||
@import "slider/slider.scss"; | |||||
@import "splitpanel/splitpanel.scss"; | |||||
@import "table/table.scss"; | |||||
@import "tabsheet/tabsheet.scss"; | |||||
@import "textfield/textfield.scss"; | |||||
@import "tree/tree.scss"; | |||||
@import "window/window.scss"; | |||||
@mixin liferay { | |||||
// TODO move? | |||||
$font-size: 11px; | |||||
@include base; | |||||
// TODO @each | |||||
@include liferay-accordion; | |||||
@include liferay-button; | |||||
@include liferay-colorpicker; | |||||
@include liferay-common; | |||||
@include liferay-contextmenu; | |||||
@include liferay-datefield; | |||||
@include liferay-inlinedatefield; | |||||
@include liferay-formlayout; | |||||
@include liferay-menubar; | |||||
@include liferay-notification; | |||||
@include liferay-panel; | |||||
@include liferay-popupview; | |||||
@include liferay-progressindicator(v-progressbar); | |||||
/* For legacy ProgressIndicator component */ | |||||
@include liferay-progressindicator(v-progressindicator); | |||||
@include liferay-select; | |||||
@include liferay-slider; | |||||
@include liferay-splitpanel; | |||||
@include liferay-table; | |||||
@include liferay-tabsheet; | |||||
@include liferay-textfield; | |||||
@include liferay-tree; | |||||
@include liferay-window; | |||||
} |
@mixin liferay-menubar { | |||||
.v-menubar { | |||||
background: #97A1AE url(/html/themes/classic/images/dockbar/dockbar_bg.png) repeat-x 0 0; | |||||
border-bottom: 1px solid #636364; | |||||
} | |||||
.v-menubar-separator span { | |||||
display: none; | |||||
} | |||||
.v-menubar-menuitem { | |||||
padding: 3px 8px; | |||||
line-height: 16px; | |||||
font-weight: bold; | |||||
color: #2c2f34; | |||||
text-shadow: -1px -1px #FFF; | |||||
} | |||||
.v-menubar-menuitem-selected { | |||||
color: #FFF; | |||||
text-shadow: -1px -1px #2c2f34; | |||||
} | |||||
.v-menubar-submenu { | |||||
background: #CCC9C9 url(/html/themes/classic/images/application/menu_bg.png) repeat-x 0 0; | |||||
border: 1px solid; | |||||
border-color: #aeafb1 #777879 #777879 #aeafb1; | |||||
-webkit-border-radius: 0 0 4px 4px; | |||||
-moz-border-radius: 0 0 4px 4px; | |||||
border-radius: 0 0 4px 4px; | |||||
padding: 2px 0; | |||||
} | |||||
.v-menubar-submenu .v-menubar-submenu-indicator { | |||||
font-size: 9.9px; | |||||
} | |||||
.v-menubar-submenu .v-menubar-menuitem { | |||||
color: #2c2f34; | |||||
font-weight: bold; | |||||
text-shadow: 1px 1px #fff; | |||||
padding: 1px 26px 1px 10px; | |||||
line-height: 16px; | |||||
border-bottom: 1px solid #bcbbbb; | |||||
border-top: 1px solid #eee; | |||||
} | |||||
.v-menubar-submenu .v-menubar-menuitem:last-child { | |||||
border-bottom-width: 0; | |||||
} | |||||
.v-menubar-submenu .v-menubar-menuitem-caption * { | |||||
vertical-align: middle; | |||||
} | |||||
.v-menubar .v-menubar-menuitem-selected, | |||||
.v-menubar-submenu .v-menubar-menuitem-selected { | |||||
color: #fff; | |||||
text-shadow: 1px 1px #000; | |||||
background-color: #5b677d; | |||||
} | |||||
.v-menubar-popup { | |||||
border-radius: 5px; | |||||
} | |||||
.v-menubar-menuitem-disabled, | |||||
.v-menubar-submenu .v-menubar-menuitem-disabled, | |||||
.v-menubar span.v-menubar-menuitem-disabled:hover, | |||||
.v-menubar span.v-menubar-menuitem-disabled:focus, | |||||
.v-menubar span.v-menubar-menuitem-disabled:active { | |||||
color: #999; | |||||
} | |||||
} |
@mixin liferay-notification { | |||||
.v-Notification { | |||||
background: #dff4ff; | |||||
color: #34404F; | |||||
font-weight: bold; | |||||
cursor: pointer; | |||||
overflow: hidden; | |||||
padding: 1em; | |||||
max-width: 85%; | |||||
border: 1px solid #a7cedf; | |||||
} | |||||
.v-Notification-caption, | |||||
.v-Notification-description { | |||||
display: inline; | |||||
margin: 0 0.5em 0 0; | |||||
} | |||||
.v-Notification-warning { | |||||
background: #ffc; | |||||
border-color: #fc0; | |||||
} | |||||
.v-Notification-error { | |||||
background-color: #ffdddd; | |||||
border-color: #ff0000; | |||||
} | |||||
.v-Notification-tray { | |||||
color: #111111; | |||||
background-color: #e5e5e5; | |||||
border-color: #b5b5b5; | |||||
} | |||||
.v-Notification-tray .v-Notification-caption { | |||||
display: block; | |||||
} | |||||
.v-Notification-tray .v-Notification-description { | |||||
display: block; | |||||
} | |||||
.v-Notification-system { | |||||
background-color: #ffdddd; | |||||
border-color: #ff0000; | |||||
} | |||||
.v-Notification-system .v-Notification-caption { | |||||
display: block; | |||||
margin: 0; | |||||
} | |||||
} |
@mixin liferay-panel { | |||||
.v-panel { | |||||
background: transparent url(top-left.png) no-repeat; | |||||
} | |||||
.v-panel-caption, | |||||
.v-panel-nocaption { | |||||
text-shadow: 1px 1px #fff; | |||||
font-size: 12px; | |||||
color: #222; | |||||
margin-left: 4px; | |||||
background: transparent url(top-right.png) no-repeat right top; | |||||
padding: 5px 5px 10px 2px; | |||||
height: 12px; | |||||
} | |||||
.v-panel-caption .v-icon { | |||||
padding-right: 2px; | |||||
} | |||||
.v-panel-content { | |||||
border: 1px solid #999; | |||||
-webkit-border-radius: 0 0 4px 4px; | |||||
-moz-border-radius: 0 0 4px 4px; | |||||
border-radius: 0 0 4px 4px; | |||||
} | |||||
/* Light style Panel */ | |||||
.v-panel-light { | |||||
background: transparent; | |||||
} | |||||
.v-panel-caption-light, | |||||
.v-panel-nocaption-light { | |||||
margin: 0; | |||||
border: none; | |||||
background: none; | |||||
} | |||||
.v-panel-caption-light { | |||||
border-bottom: 1px solid #999; | |||||
} | |||||
.v-panel-nocaption-light { | |||||
padding: 0; | |||||
height: 0; | |||||
} | |||||
.v-panel-content-light { | |||||
border: none; | |||||
} | |||||
.v-panel-content-light > div { | |||||
background: transparent; | |||||
} | |||||
.v-panel-deco { | |||||
height: 0; | |||||
overflow: hidden; | |||||
} | |||||
/* IE specific rules */ | |||||
.v-ie & .v-panel { | |||||
background: transparent; | |||||
} | |||||
.v-ie & .v-panel-caption, | |||||
.v-ie & .v-panel-nocaption { | |||||
border: 1px solid #999; | |||||
border-bottom: none; | |||||
background: #c0c2c5 url(/html/themes/classic/images/application/panel_header_bg.png) repeat-x 0 0; | |||||
margin: 0; | |||||
padding-left: 5px; | |||||
} | |||||
.v-ie & .v-panel-caption-light, | |||||
.v-ie & .v-panel-nocaption-light { | |||||
border: none; | |||||
background: transparent; | |||||
} | |||||
.v-ie & .v-panel-caption-light { | |||||
border-bottom: 1px solid #999; | |||||
} | |||||
} |
@mixin liferay-popupview { | |||||
.v-popupview-popup { | |||||
background: #d4d4d4 url(/html/themes/classic/images/application/state_default_bg.png) repeat-x 0 0; | |||||
padding: 8px; | |||||
-webkit-border-radius: 4px; | |||||
-moz-border-radius: 4px; | |||||
border-radius: 4px; | |||||
border: 1px solid #c8c9ca; | |||||
border-color :#c8c9ca #9e9e9e #9e9e9e #c8c9ca; | |||||
} | |||||
} |
@mixin liferay-progressindicator { | |||||
.v-progressindicator-wrapper { | |||||
background: #dfe2e4 url(../../reindeer/progressindicator/img/base.gif) repeat-x; | |||||
border: 1px solid #bfbfbf; | |||||
} | |||||
.v-disabled .v-progressindicator-wrapper { | |||||
background-image: url(../../reindeer/progressindicator/img/disabled.gif); | |||||
} | |||||
.v-progressindicator-indicator { | |||||
background: #f7f9f9 url(../../reindeer/progressindicator/img/progress.png); | |||||
} | |||||
} |
@mixin liferay-select { | |||||
$select-button-width : 24px; | |||||
$select-button-negative-width : -24px; | |||||
&.v-app select, | |||||
.v-window select { | |||||
padding: 1px; | |||||
} | |||||
select { | |||||
background-color: #fff; | |||||
} | |||||
.v-filterselect { | |||||
padding-right: $select-button-width; /* Space for the button */ | |||||
} | |||||
.v-filterselect-button { | |||||
width: $select-button-width; | |||||
margin-right: $select-button-negative-width; | |||||
height: 24px; | |||||
background: transparent url(../common/buttons_sprites.png) no-repeat 0 0; | |||||
} | |||||
.v-filterselect-button:hover { | |||||
background-position: 0px -24px; | |||||
} | |||||
.v-filterselect-suggestpopup { | |||||
border: 1px solid #98C0F4; | |||||
} | |||||
.v-filterselect-suggestmenu { | |||||
min-height: 2px; | |||||
} | |||||
.v-filterselect-prevpage, | |||||
.v-filterselect-prevpage-off, | |||||
.v-filterselect-nextpage, | |||||
.v-filterselect-nextpage-off { | |||||
background-color: #fff; | |||||
} | |||||
.v-filterselect-prevpage span, | |||||
.v-filterselect-prevpage-off span, | |||||
.v-filterselect-nextpage span, | |||||
.v-filterselect-nextpage-off span { | |||||
display: block; | |||||
height: 8px; | |||||
width: 16px; | |||||
margin-left: auto; | |||||
margin-right: auto; | |||||
text-indent: -99999px; | |||||
} | |||||
.v-filterselect-prevpage span, .v-filterselect-nextpage span { | |||||
background: transparent no-repeat 0 -4px; | |||||
background-image: url(/html/themes/classic/images/aui/icon_sprite.png); | |||||
} | |||||
.v-filterselect-nextpage span { | |||||
background-position: -65px -4px; | |||||
} | |||||
.v-filterselect-suggestmenu .gwt-MenuItem span { | |||||
height: 18px; | |||||
} | |||||
.v-filterselect-suggestmenu .gwt-MenuItem { | |||||
border: 1px solid transparent; | |||||
&.gwt-MenuItem-selected { | |||||
background-color: #dfe8f6; | |||||
border: 1px solid #333; | |||||
color: #000; | |||||
} | |||||
} | |||||
.v-filterselect-suggestmenu .gwt-MenuItem .v-icon { | |||||
float: left; | |||||
} | |||||
.v-select-twincol-buttons .v-button-wrap { | |||||
padding-left: 11px; | |||||
padding-right: 11px; | |||||
} | |||||
} |
@mixin liferay-slider { | |||||
.v-slider { | |||||
border: 1px solid #9e9e9e; | |||||
border-right: 1px solid #c8c9ca; | |||||
border-bottom: 1px solid #c8c9ca; | |||||
margin: 4px 0; | |||||
} | |||||
.v-slider-base { | |||||
height: 1px; | |||||
} | |||||
.v-slider-vertical { | |||||
margin: 0 5px; | |||||
width: 2px; | |||||
} | |||||
.v-slider-vertical .v-slider-base { | |||||
width: 1px; | |||||
} | |||||
.v-slider-handle { | |||||
background: transparent url(/html/themes/classic/images/aui/icon_sprite.png) no-repeat -115px -147px; | |||||
width: 10px; | |||||
height: 10px; | |||||
} | |||||
/* Invalid rule (not used at least by some browsers */ | |||||
/* | |||||
.v-slider-feedback { | |||||
background: #33; | |||||
} | |||||
*/ | |||||
} |
@mixin liferay-splitpanel { | |||||
.v-splitpanel-hsplitter, | |||||
.v-splitpanel-hsplitter-locked { | |||||
font-size: 1px; | |||||
width: 3px; | |||||
background-color: #c8c9ca; | |||||
} | |||||
.v-splitpanel-hsplitter div { | |||||
font-size: 1px; | |||||
width: 3px; | |||||
background: transparent; | |||||
background-repeat: no-repeat; | |||||
background-image: url(hsplit.png); | |||||
background-position: center; | |||||
} | |||||
.v-splitpanel-hsplitter-locked div { | |||||
font-size: 1px; | |||||
width: 3px; | |||||
} | |||||
.v-splitpanel-vsplitter, | |||||
.v-splitpanel-vsplitter-locked { | |||||
font-size: 1px; | |||||
height: 3px; | |||||
} | |||||
.v-splitpanel-vsplitter div { | |||||
font-size: 1px; | |||||
height: 3px; | |||||
background: transparent; | |||||
background-color: #c8c9ca; | |||||
background-repeat: no-repeat; | |||||
background-image: url(vsplit.png); | |||||
background-position: center; | |||||
} | |||||
.v-splitpanel-vsplitter-locked, | |||||
.v-splitpanel-vsplitter-locked div { | |||||
font-size: 1px; | |||||
height: 3px; | |||||
background-color: #c8c9ca; | |||||
} | |||||
/* Small SplitPanel */ | |||||
.v-splitpanel-hsplitter-small, | |||||
.v-splitpanel-hsplitter-small div, | |||||
.v-splitpanel-hsplitter-small-locked, | |||||
.v-splitpanel-hsplitter-small-locked div { | |||||
font-size: 1px; | |||||
width: 1px; | |||||
background: #c8c9ca; | |||||
} | |||||
.v-splitpanel-vsplitter-small, | |||||
.v-splitpanel-vsplitter-small div, | |||||
.v-splitpanel-vsplitter-small-locked, | |||||
.v-splitpanel-vsplitter-small-locked div { | |||||
font-size: 1px; | |||||
height: 1px; | |||||
background: #c8c9ca; | |||||
} | |||||
} |
@import "liferay.scss"; | |||||
.liferay { | |||||
@include liferay; | |||||
} |
@mixin liferay-table { | |||||
.v-table-body { | |||||
border: 1px solid #999; | |||||
} | |||||
.v-table-body:focus, | |||||
.v-table-body-wrapper:focus { | |||||
outline: none; | |||||
} | |||||
.v-table-body.focused { | |||||
border-color: #555; | |||||
} | |||||
.v-table-focus .v-table-cell-content { | |||||
border-top: 1px dotted #555; | |||||
border-bottom: 1px dotted #555; | |||||
} | |||||
.v-table-header-wrap, | |||||
.v-table-footer-wrap { | |||||
border-color: #999; | |||||
background: #c0c2c5 url(/html/themes/classic/images/application/panel_header_bg.png) repeat-x 0 0; | |||||
height: 26px; | |||||
} | |||||
.v-table-footer-wrap { | |||||
border: 1px solid #999; | |||||
border-top: none; | |||||
} | |||||
.v-table-footer td { | |||||
height: 100%; | |||||
border-right: 1px solid #999; | |||||
padding-bottom: 5px; | |||||
padding-top: 5px; | |||||
} | |||||
.v-table-footer-container { | |||||
height: 16px; | |||||
float: right; | |||||
padding-right: 7px; | |||||
overflow: hidden; | |||||
white-space: nowrap; | |||||
} | |||||
.v-table-caption-container { | |||||
color: #336699; | |||||
font-weight: bold; | |||||
font-size: 11px; | |||||
padding-left: 0px; | |||||
padding-top: 6px; | |||||
} | |||||
.v-table-caption-container-align-right { | |||||
margin-left: 0; | |||||
margin-right: 6px; | |||||
padding-left: 0; | |||||
} | |||||
.v-table-caption-container .v-icon { | |||||
height: 16px; | |||||
margin: -4px 3px 0 0; | |||||
} | |||||
.v-ie & .v-table-caption-container .v-icon { | |||||
margin-top: -2px; | |||||
} | |||||
.v-table-header-cell-asc .v-table-sort-indicator { | |||||
background: transparent url(/html/themes/control_panel/images/arrows/05_up.png) no-repeat right 8px; | |||||
height: 26px; | |||||
} | |||||
.v-table-header-cell-desc .v-table-sort-indicator { | |||||
background: transparent url(/html/themes/control_panel/images/arrows/05_down.png) no-repeat right 10px; | |||||
height: 26px; | |||||
} | |||||
.v-table-resizer { | |||||
height: 26px; | |||||
background: #999; | |||||
} | |||||
.v-table-focus-slot-left { | |||||
margin-bottom: -26px; | |||||
background: transparent; | |||||
} | |||||
.v-table-column-selector { | |||||
background: transparent url(columnselect.png); | |||||
width: 16px; | |||||
height: 26px; | |||||
margin: -26px 0 0; | |||||
} | |||||
.v-table-row-odd { | |||||
background: #dde1e6; | |||||
} | |||||
.v-table-row { | |||||
background: #eef0f2; | |||||
} | |||||
.v-table-generated-row { | |||||
color: #336699; | |||||
font-weight: bold; | |||||
font-size: 11px; | |||||
padding-left: 0px; | |||||
padding-top: 6px; | |||||
background: #c0c2c5; | |||||
} | |||||
.v-table .v-selected { | |||||
background-color: #5B677D; | |||||
color: #FFF; | |||||
text-shadow: -1px -1px #2C2F34; | |||||
} | |||||
.v-table-cell-wrapper { | |||||
padding-top: 3px; | |||||
padding-bottom: 3px; | |||||
} | |||||
.v-table-cell-content { | |||||
border-right: 1px solid #999; | |||||
padding: 0 6px; | |||||
} | |||||
.v-table-cell-content:last-child { | |||||
border-right-color: transparent; | |||||
} | |||||
.v-off { | |||||
color: #999; | |||||
} | |||||
} |
@mixin liferay-tabsheet { | |||||
.v-tabsheet-content { | |||||
border: none; | |||||
} | |||||
.v-tabsheet-deco { | |||||
background: transparent; | |||||
} | |||||
.v-tabsheet-tabitem { | |||||
border: none; | |||||
} | |||||
.v-tabsheet-tabitem .v-caption { | |||||
height: 14px; | |||||
padding: 3px 10px; | |||||
} | |||||
.v-tabsheet-tabitem .v-captiontext { | |||||
color: #336699; | |||||
font-size: 11px; | |||||
font-weight: bold; | |||||
text-decoration: underline; | |||||
} | |||||
.v-tabsheet-tabitem-selected .v-caption { | |||||
background: none repeat scroll 0 0 #333; | |||||
-webkit-border-radius: 4px; | |||||
-moz-border-radius: 4px; | |||||
border-radius: 4px; | |||||
} | |||||
.v-tabsheet-tabitem-selected .v-captiontext { | |||||
color: #fff; | |||||
text-decoration: none; | |||||
text-shadow: -1px -1px #000; | |||||
} | |||||
.v-tabsheet-tabitem-selected { | |||||
position: relative; | |||||
} | |||||
.v-tabsheet-tabitem-selected:after { | |||||
border: 10px solid; | |||||
border-bottom-width: 0; | |||||
border-color: #333 transparent transparent; | |||||
bottom: -6px; | |||||
content: '-'; | |||||
display: block; | |||||
height: 0; | |||||
left: 50%; | |||||
margin-left: -10px; | |||||
position: absolute; | |||||
text-indent: -9999px; | |||||
width: 0; | |||||
} | |||||
.v-tabsheet-tabs { | |||||
height: 35px; | |||||
} | |||||
.v-tabsheet-tabcontainer, | |||||
.v-tabsheet-tabs { | |||||
overflow: visible !important; | |||||
} | |||||
.v-tabsheet-tabitemcell-first .v-tabsheet-tabitem { | |||||
border-left: 1px solid #c8c9ca; | |||||
-webkit-border-radius: 4px 0 0 4px; | |||||
-moz-border-radius: 4px 0 0 4px; | |||||
border-radius: 4px 0 0 4px; | |||||
} | |||||
.v-tabsheet-tabitemcell, .v-tabsheet-spacertd { | |||||
vertical-align: top; | |||||
} | |||||
.v-tabsheet-spacertd div { | |||||
height: 28px; | |||||
border: 1px solid #c8c9ca; | |||||
border-left: none; | |||||
-webkit-border-radius: 0 4px 4px 0; | |||||
-moz-border-radius: 0 4px 4px 0; | |||||
border-radius: 0 4px 4px 0; | |||||
padding: 0; | |||||
} | |||||
.v-tabsheet-tabitem { | |||||
height: 20px; | |||||
border-top: 1px solid #c8c9ca; | |||||
border-bottom: 1px solid #c8c9ca; | |||||
padding: 4px; | |||||
} | |||||
.v-tabsheet-scroller { | |||||
float: right; | |||||
width: 33px; | |||||
height: 28px; | |||||
margin-top: -35px; | |||||
background-color: #eef0f2; | |||||
border: 1px solid #c8c9ca; | |||||
border-left: none; | |||||
-webkit-border-radius: 0 4px 4px 0; | |||||
-moz-border-radius: 0 4px 4px 0; | |||||
border-radius: 0 4px 4px 0; | |||||
position: relative; | |||||
} | |||||
.v-tabsheet-scroller button { | |||||
padding: 0; | |||||
margin-top: 6px; | |||||
width: 16px; | |||||
height: 16px; | |||||
border: none; | |||||
background: transparent; | |||||
} | |||||
.v-tabsheet-scroller .v-tabsheet-scrollerPrev, | |||||
.v-tabsheet-scroller .v-tabsheet-scrollerPrev-disabled { | |||||
background: transparent url(/html/themes/classic/images/aui/icon_sprite.png) no-repeat -80px -192px; | |||||
} | |||||
.v-tabsheet-scroller .v-tabsheet-scrollerNext, | |||||
.v-tabsheet-scroller .v-tabsheet-scrollerNext-disabled { | |||||
background: transparent url(/html/themes/classic/images/aui/icon_sprite.png) no-repeat -48px -192px; | |||||
} | |||||
.v-tabsheet-scrollerPrev-disabled, | |||||
.v-tabsheet-scrollerNext-disabled { | |||||
opacity: 0.5; | |||||
filter: alpha(opacity=50); | |||||
} | |||||
.v-tabsheet-caption-close { | |||||
background: transparent url(close.png) no-repeat right top; | |||||
cursor: default; | |||||
float: right; | |||||
margin: 3px -1px 0; | |||||
overflow: hidden; | |||||
text-indent: -999px; | |||||
width: 13px; | |||||
height: 9px; | |||||
} | |||||
.v-ff & .v-tabsheet-caption-close{ | |||||
margin-top: -10px; | |||||
} | |||||
.v-ff & .v-tabsheet-caption-close:only-child { | |||||
margin-top: -1px; | |||||
} | |||||
} |
@mixin liferay-textfield { | |||||
&.v-app input[type="text"], | |||||
&.v-app input[type="password"], | |||||
&.v-app input[type="reset"], | |||||
&.v-app textarea , | |||||
.v-window input[type="text"], | |||||
.v-window input[type="password"], | |||||
.v-window input[type="reset"], | |||||
.v-window textarea { | |||||
padding: 5px 1px; | |||||
} | |||||
input.v-textfield-prompt, | |||||
textarea.v-textarea-prompt { | |||||
font-style: normal; | |||||
} | |||||
} |
@mixin liferay-tree { | |||||
.v-tree-node { | |||||
background: transparent url(arrows_sprites.png) no-repeat -42px 1px; | |||||
} | |||||
.v-tree-node span { | |||||
color: #336699; | |||||
padding: 1px 2px; | |||||
display: inline-block; | |||||
} | |||||
.v-tree-node:hover { | |||||
background-position: -14px -30px; | |||||
} | |||||
.v-tree-node-expanded { | |||||
background-position: -28px -14px; | |||||
} | |||||
.v-tree-node-expanded:hover { | |||||
background-position: 0 -47px; | |||||
} | |||||
.v-tree .v-tree-node-drag-top { | |||||
background-position: -42px 0px; | |||||
} | |||||
.v-tree .v-tree-node-drag-top.v-tree-node-expanded { | |||||
background-position: -28px -15px; | |||||
} | |||||
.v-tree-node-selected { | |||||
background: #333; | |||||
-webkit-border-radius: 4px; | |||||
-moz-border-radius: 4px; | |||||
border-radius: 4px; | |||||
} | |||||
.v-tree-node-selected span { | |||||
display: inline-block; | |||||
background: transparent; | |||||
color: #fff; | |||||
text-shadow: -1px -1px #000; | |||||
padding: 1px 2px; | |||||
} | |||||
.v-tree-node-caption { | |||||
margin-left: 14px; | |||||
padding: 1px; | |||||
} | |||||
.v-tree-node-focused { | |||||
border: 1px dotted #555; | |||||
padding: 0; | |||||
} | |||||
.v-tree-node-children { | |||||
padding-left: 14px; | |||||
} | |||||
} |
@mixin liferay-window { | |||||
.v-window { | |||||
background: transparent; | |||||
} | |||||
.v-window-wrap { | |||||
-webkit-border-radius: 4px; | |||||
-moz-border-radius: 4px; | |||||
border-radius: 4px; | |||||
background: #fff url(top-left.png) no-repeat; | |||||
} | |||||
.v-window-outerheader { | |||||
height: 38px; | |||||
margin-left: 9px; | |||||
padding: 10px 40px 12px 2px; | |||||
background: transparent url(top-right.png) no-repeat right top; | |||||
-webkit-border-radius: 4px; | |||||
-moz-border-radius: 4px; | |||||
border-radius: 4px; | |||||
} | |||||
.v-window-header { | |||||
color: #000; | |||||
font-size: 12px; | |||||
text-shadow: 1px 1px #fff; | |||||
} | |||||
.v-window-contents { | |||||
padding: 0 5px 0 5px; | |||||
} | |||||
.v-window-footer { | |||||
height: 5px; | |||||
overflow: visible; | |||||
} | |||||
.v-window div.v-window-footer-noresize { | |||||
height: 5px; | |||||
} | |||||
.v-window-restorebox, | |||||
.v-window-maximizebox, | |||||
.v-window-closebox { | |||||
position: absolute; | |||||
width: 24px; | |||||
height: 24px; | |||||
top: 8px; | |||||
&:hover { | |||||
background-position: 0 -24px; | |||||
} | |||||
&:active { | |||||
background-position: 0 -48px; | |||||
} | |||||
} | |||||
.v-window-closebox { | |||||
right: 9px; | |||||
background: url(closebutton_sprites.png) no-repeat scroll 0 0 transparent; | |||||
} | |||||
.v-window-restorebox, | |||||
.v-window-maximizebox { | |||||
right: 36px; | |||||
} | |||||
.v-window-restorebox { | |||||
background: url(restore_sprites.png) no-repeat scroll 0 0 transparent; | |||||
} | |||||
.v-window-maximizebox { | |||||
background: url(maximize_sprites.png) no-repeat scroll 0 0 transparent; | |||||
} | |||||
.v-window-resizebox { | |||||
background: transparent url(/html/themes/classic/images/aui/icon_sprite.png) no-repeat scroll -69px -229px; | |||||
width: 10px; | |||||
height: 10px; | |||||
bottom: 0; | |||||
} | |||||
} |
<?xml version="1.0" encoding="UTF-8"?> | |||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | |||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |||||
<head profile="http://selenium-ide.openqa.org/profiles/test-case"> | |||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | |||||
<link rel="selenium.base" href="" /> | |||||
<title>integration-test-liferay-6.0.5</title> | |||||
</head> | |||||
<body> | |||||
<table cellpadding="1" cellspacing="1" border="1"> | |||||
<thead> | |||||
<tr><td rowspan="1" colspan="3">integration-test-liferay-6.0.5</td></tr> | |||||
</thead><tbody> | |||||
<tr> | |||||
<td>open</td> | |||||
<td>/web/guest/</td> | |||||
<td></td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClickAndWait</td> | |||||
<td>sign-in</td> | |||||
<td>49,17</td> | |||||
</tr> | |||||
<tr> | |||||
<td>enterCharacter</td> | |||||
<td>_58_login</td> | |||||
<td>test@liferay.com</td> | |||||
</tr> | |||||
<tr> | |||||
<td>enterCharacter</td> | |||||
<td>_58_password</td> | |||||
<td>test</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClickAndWait</td> | |||||
<td>//input[@value='Sign In']</td> | |||||
<td>43,18</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClickAndWait</td> | |||||
<td>//input[@type='submit']</td> | |||||
<td>16,-1321</td> | |||||
</tr> | |||||
<tr> | |||||
<td>type</td> | |||||
<td>reminderQueryAnswer</td> | |||||
<td>-</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClickAndWait</td> | |||||
<td>//input[@value='Save']</td> | |||||
<td>86,13</td> | |||||
</tr> | |||||
<tr> | |||||
<td>drag</td> | |||||
<td>link=Add</td> | |||||
<td></td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseOver</td> | |||||
<td>link=Add</td> | |||||
<td>60,15</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>addPage</td> | |||||
<td>45,11</td> | |||||
</tr> | |||||
<tr> | |||||
<td>enterCharacter</td> | |||||
<td>//div/span[1]/span/input</td> | |||||
<td>Vaadin Liferay Theme</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>save</td> | |||||
<td>10,12</td> | |||||
</tr> | |||||
<tr> | |||||
<td>waitForElementPresent</td> | |||||
<td>//nav/ul/li[2]/a/span</td> | |||||
<td></td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClickAndWait</td> | |||||
<td>//nav/ul/li[2]/a/span</td> | |||||
<td>26,7</td> | |||||
</tr> | |||||
<tr> | |||||
<td>drag</td> | |||||
<td>link=Add</td> | |||||
<td></td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseOver</td> | |||||
<td>link=Manage</td> | |||||
<td>32,4</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>link=Page Layout</td> | |||||
<td>78,17</td> | |||||
</tr> | |||||
<tr> | |||||
<td>waitForElementPresent</td> | |||||
<td>//form/div/div</td> | |||||
<td></td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>//div[2]/img</td> | |||||
<td>47,73</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClickAndWait</td> | |||||
<td>//div[5]/span/span/input</td> | |||||
<td>32,14</td> | |||||
</tr> | |||||
<tr> | |||||
<td>drag</td> | |||||
<td>link=Add</td> | |||||
<td></td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseOver</td> | |||||
<td>link=Add</td> | |||||
<td>56,23</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>link=More…</td> | |||||
<td>50,13</td> | |||||
</tr> | |||||
<tr> | |||||
<td>waitForElementPresent</td> | |||||
<td>//div[@title='Vaadin Liferay Theme']/p/a</td> | |||||
<td></td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>//div[@title='Vaadin Liferay Theme']/p/a</td> | |||||
<td>10,10</td> | |||||
</tr> | |||||
</tbody></table> | |||||
</body> | |||||
</html> |
<?xml version="1.0" encoding="UTF-8"?> | |||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | |||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |||||
<head profile="http://selenium-ide.openqa.org/profiles/test-case"> | |||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | |||||
<link rel="selenium.base" href="" /> | |||||
<title>integration-test-liferay-6.0.5</title> | |||||
</head> | |||||
<body> | |||||
<table cellpadding="1" cellspacing="1" border="1"> | |||||
<thead> | |||||
<tr><td rowspan="1" colspan="3">integration-test-liferay-6.0.5</td></tr> | |||||
</thead><tbody> | |||||
<tr> | |||||
<td>open</td> | |||||
<td>/web/guest/vaadin-liferay-theme</td> | |||||
<td></td> | |||||
</tr> | |||||
<!--Start actual test--> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>labels</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]/domChild[0]/domChild[0]</td> | |||||
<td>33,-133</td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>buttons</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[2]/domChild[0]/domChild[0]/domChild[0]</td> | |||||
<td>19,-131</td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>textfields</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[3]/domChild[0]/domChild[0]/domChild[0]</td> | |||||
<td>34,-130</td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>selects</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[0]/VFilterSelect[0]/domChild[1]</td> | |||||
<td>6,-128</td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>selects-openedcombobox</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[4]/domChild[0]/domChild[0]/domChild[0]</td> | |||||
<td>38,-129</td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>datefields</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[1]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[0]/VPopupCalendar[0]/domChild[1]</td> | |||||
<td>5,-131</td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>datefields-popup</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[5]/domChild[0]/domChild[0]/domChild[0]</td> | |||||
<td>23,-127</td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>sliders</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[6]/domChild[0]/domChild[0]</td> | |||||
<td>9,-146</td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>tabs</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[2]/ChildComponentContainer[1]/VTabsheet[0]/domChild[0]/domChild[1]/domChild[1]</td> | |||||
<td>8,-145</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[2]/ChildComponentContainer[1]/VTabsheet[0]/domChild[0]/domChild[1]/domChild[1]</td> | |||||
<td>8,-145</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[2]/ChildComponentContainer[1]/VTabsheet[0]/domChild[0]/domChild[1]/domChild[1]</td> | |||||
<td>8,-145</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[2]/ChildComponentContainer[1]/VTabsheet[0]/domChild[0]/domChild[1]/domChild[1]</td> | |||||
<td>8,-145</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[2]/ChildComponentContainer[1]/VTabsheet[0]/domChild[0]/domChild[1]/domChild[1]</td> | |||||
<td>8,-145</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[2]/ChildComponentContainer[1]/VTabsheet[0]/domChild[0]/domChild[1]/domChild[1]</td> | |||||
<td>8,-145</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[2]/ChildComponentContainer[1]/VTabsheet[0]/domChild[0]/domChild[1]/domChild[1]</td> | |||||
<td>8,-145</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[2]/ChildComponentContainer[1]/VTabsheet[0]/domChild[0]/domChild[1]/domChild[1]</td> | |||||
<td>8,-145</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[2]/ChildComponentContainer[1]/VTabsheet[0]/domChild[0]/domChild[1]/domChild[1]</td> | |||||
<td>8,-145</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[2]/ChildComponentContainer[1]/VTabsheet[0]/domChild[0]/domChild[1]/domChild[1]</td> | |||||
<td>8,-145</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[2]/ChildComponentContainer[1]/VTabsheet[0]/domChild[0]/domChild[1]/domChild[1]</td> | |||||
<td>8,-145</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[2]/ChildComponentContainer[1]/VTabsheet[0]/domChild[0]/domChild[1]/domChild[1]</td> | |||||
<td>8,-145</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[2]/ChildComponentContainer[0]/VCheckBox[0]/domChild[0]</td> | |||||
<td>5,-147</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[2]/ChildComponentContainer[1]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[7]/domChild[0]/domChild[0]/domChild[1]</td> | |||||
<td>3,-147</td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>tabs-scrolled-closabletabs-selectedtab</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[7]/domChild[0]/domChild[0]/domChild[0]</td> | |||||
<td>24,-144</td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>accordions</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[4]/AbsolutePanel[0]/ChildComponentContainer[0]/VAccordion[0]/domChild[3]/domChild[0]/domChild[0]</td> | |||||
<td>148,-142</td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>accordions-opensheet4</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[8]/domChild[0]/domChild[0]/domChild[0]</td> | |||||
<td>10,-147</td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>panels</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[9]/domChild[0]/domChild[0]/domChild[0]</td> | |||||
<td>14,-148</td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>tables</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[6]/AbsolutePanel[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[0]/domChild[1]</td> | |||||
<td>10,-139</td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>tables-columnselection</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[10]/domChild[0]/domChild[0]/domChild[0]</td> | |||||
<td>6,-147</td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>trees</td> | |||||
</tr> | |||||
<!-- | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[7]/AbsolutePanel[0]/ChildComponentContainer[0]/VTree[0]/domChild[0]/domChild[0]</td> | |||||
<td>5,-143</td> | |||||
</tr> | |||||
<tr> | |||||
<td>contextmenu</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[7]/AbsolutePanel[0]/ChildComponentContainer[0]/VTree[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]/domChild[0]/domChild[0]/domChild[1]</td> | |||||
<td></td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>trees-openednode-contextmenu</td> | |||||
</tr> | |||||
--> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[11]/domChild[0]/domChild[0]/domChild[0]</td> | |||||
<td>14,-146</td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>windows</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/domChild[0]/domChild[1]/domChild[1]</td> | |||||
<td>6,-146</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/domChild[0]/domChild[1]/domChild[1]</td> | |||||
<td>6,-146</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/domChild[0]/domChild[1]/domChild[1]</td> | |||||
<td>6,-146</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[12]/domChild[0]/domChild[0]/domChild[0]</td> | |||||
<td>20,-141</td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>splitpanels</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[8]/AbsolutePanel[0]/ChildComponentContainer[0]/VCheckBox[0]/domChild[0]</td> | |||||
<td>11,-145</td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>splitpanels-locked</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[1]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[13]/domChild[0]/domChild[0]/domChild[0]</td> | |||||
<td>17,-147</td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>notifications</td> | |||||
</tr> | |||||
<tr> | |||||
<td>click</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[0]/VButton[0]/domChild[0]/domChild[0]</td> | |||||
<td></td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>notifications-humanized</td> | |||||
</tr> | |||||
<tr> | |||||
<td>closeNotification</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::Root/VNotification[0]</td> | |||||
<td>0,0</td> | |||||
</tr> | |||||
<tr> | |||||
<td>click</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[0]/VButton[1]/domChild[0]/domChild[0]</td> | |||||
<td></td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>notifications-warning</td> | |||||
</tr> | |||||
<tr> | |||||
<td>closeNotification</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::Root/VNotification[0]</td> | |||||
<td>0,0</td> | |||||
</tr> | |||||
<tr> | |||||
<td>click</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[0]/VButton[2]/domChild[0]/domChild[0]</td> | |||||
<td></td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>notifications-error</td> | |||||
</tr> | |||||
<tr> | |||||
<td>closeNotification</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::Root/VNotification[0]</td> | |||||
<td>0,0</td> | |||||
</tr> | |||||
<tr> | |||||
<td>click</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTabsheet[0]/VTabsheetPanel[0]/VGridLayout[0]/VButton[3]/domChild[0]/domChild[0]</td> | |||||
<td></td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>notifications-tray</td> | |||||
</tr> | |||||
<tr> | |||||
<td>closeNotification</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::Root/VNotification[0]</td> | |||||
<td>0,0</td> | |||||
</tr> | |||||
<tr> | |||||
<td>mouseClick</td> | |||||
<td>vaadin=v-VaadinLiferayThemePortlet_WAR_demo_LAYOUT_11352::/VVerticalLayout[0]/ChildComponentContainer[0]/VMenuBar[0]#item0</td> | |||||
<td>3,-146</td> | |||||
</tr> | |||||
<tr> | |||||
<td>screenCapture</td> | |||||
<td></td> | |||||
<td>openedmenu</td> | |||||
</tr> | |||||
</tbody></table> | |||||
</body> | |||||
</html> |
</antcall> | </antcall> | ||||
</target> | </target> | ||||
<target name="integration-test-liferay6-theme"> | |||||
<fileset dir="integration-testscripts" id="html-test-files" includes="Liferay-6/Liferay6-and-6EE-theme-deploy.html" /> | |||||
<pathconvert pathsep=" " property="testfiles" refid="html-test-files" /> | |||||
<fileset dir="integration-testscripts" id="html-theme-files" includes="Liferay-6/Liferay6-theme.html" /> | |||||
<pathconvert pathsep=" " property="testfiles-theme" refid="html-theme-files" /> | |||||
<antcall target="run-generic-integration-test"> | |||||
<param name="startDelay" value="300" /> | |||||
<param name="test_browsers" value="winxp-firefox17-esr" /> | |||||
<param name="target-server" value="liferay6" /> | |||||
</antcall> | |||||
</target> | |||||
<target name="integration-test-weblogic12"> | <target name="integration-test-weblogic12"> | ||||
<antcall target="run-generic-integration-test"> | <antcall target="run-generic-integration-test"> | ||||
<param name="startDelay" value="360" /> | <param name="startDelay" value="360" /> | ||||
<parallel> | <parallel> | ||||
<antcall target="integration-test-liferay6" /> | <antcall target="integration-test-liferay6" /> | ||||
<antcall target="integration-test-liferay6-theme" /> | |||||
<antcall target="integration-test-weblogic12" /> | <antcall target="integration-test-weblogic12" /> | ||||
<antcall target="integration-test-glassfish4" /> | <antcall target="integration-test-glassfish4" /> | ||||
<antcall target="integration-test-payara" /> | <antcall target="integration-test-payara" /> |
theme.addItem("reindeer"); | theme.addItem("reindeer"); | ||||
theme.addItem("runo"); | theme.addItem("runo"); | ||||
theme.addItem("base"); | theme.addItem("base"); | ||||
theme.addItem("liferay"); | |||||
theme.setValue("reindeer"); | theme.setValue("reindeer"); | ||||
theme.setNullSelectionAllowed(false); | theme.setNullSelectionAllowed(false); | ||||
theme.setImmediate(true); | theme.setImmediate(true); |
package com.vaadin.tests.integration; | |||||
import java.util.Date; | |||||
import java.util.Iterator; | |||||
import java.util.Locale; | |||||
import com.vaadin.data.Property; | |||||
import com.vaadin.data.Property.ValueChangeEvent; | |||||
import com.vaadin.event.Action; | |||||
import com.vaadin.server.ExternalResource; | |||||
import com.vaadin.server.LegacyApplication; | |||||
import com.vaadin.server.Page; | |||||
import com.vaadin.server.Resource; | |||||
import com.vaadin.server.ThemeResource; | |||||
import com.vaadin.shared.ui.MarginInfo; | |||||
import com.vaadin.shared.ui.label.ContentMode; | |||||
import com.vaadin.shared.ui.slider.SliderOrientation; | |||||
import com.vaadin.ui.AbstractComponent; | |||||
import com.vaadin.ui.AbstractSelect; | |||||
import com.vaadin.ui.Accordion; | |||||
import com.vaadin.ui.Button; | |||||
import com.vaadin.ui.Button.ClickEvent; | |||||
import com.vaadin.ui.CheckBox; | |||||
import com.vaadin.ui.ComboBox; | |||||
import com.vaadin.ui.Component; | |||||
import com.vaadin.ui.CssLayout; | |||||
import com.vaadin.ui.DateField; | |||||
import com.vaadin.ui.GridLayout; | |||||
import com.vaadin.ui.HorizontalLayout; | |||||
import com.vaadin.ui.HorizontalSplitPanel; | |||||
import com.vaadin.ui.InlineDateField; | |||||
import com.vaadin.ui.Label; | |||||
import com.vaadin.ui.Layout; | |||||
import com.vaadin.ui.LegacyWindow; | |||||
import com.vaadin.ui.ListSelect; | |||||
import com.vaadin.ui.MenuBar; | |||||
import com.vaadin.ui.MenuBar.Command; | |||||
import com.vaadin.ui.MenuBar.MenuItem; | |||||
import com.vaadin.ui.NativeButton; | |||||
import com.vaadin.ui.NativeSelect; | |||||
import com.vaadin.ui.Notification; | |||||
import com.vaadin.ui.Panel; | |||||
import com.vaadin.ui.PopupView; | |||||
import com.vaadin.ui.Slider; | |||||
import com.vaadin.ui.Slider.ValueOutOfBoundsException; | |||||
import com.vaadin.ui.TabSheet; | |||||
import com.vaadin.ui.TabSheet.SelectedTabChangeEvent; | |||||
import com.vaadin.ui.TabSheet.Tab; | |||||
import com.vaadin.ui.Table; | |||||
import com.vaadin.ui.TextArea; | |||||
import com.vaadin.ui.TextField; | |||||
import com.vaadin.ui.Tree; | |||||
import com.vaadin.ui.TwinColSelect; | |||||
import com.vaadin.ui.VerticalLayout; | |||||
import com.vaadin.ui.VerticalSplitPanel; | |||||
import com.vaadin.ui.Window; | |||||
import com.vaadin.ui.themes.LiferayTheme; | |||||
@SuppressWarnings("serial") | |||||
public class LiferayThemeDemo extends LegacyApplication { | |||||
@SuppressWarnings("deprecation") | |||||
private static final Date DATE = new Date(2009 - 1900, 6 - 1, 2); | |||||
private static final Resource ICON_GLOBE = new ThemeResource( | |||||
"../runo/icons/16/globe.png"); | |||||
private static final Resource ICON_OK = new ThemeResource( | |||||
"../runo/icons/16/ok.png"); | |||||
private LegacyWindow main; | |||||
private VerticalLayout mainLayout; | |||||
private TabSheet tabs; | |||||
private Action.Handler handler = new Action.Handler() { | |||||
@Override | |||||
public void handleAction(Action action, Object sender, Object target) { | |||||
// NOP | |||||
} | |||||
@Override | |||||
public Action[] getActions(Object target, Object sender) { | |||||
return new Action[] { | |||||
new Action("Open"), | |||||
new Action("Delete", new ThemeResource( | |||||
"../runo/icons/16/trash.png")) }; | |||||
} | |||||
}; | |||||
@Override | |||||
public void init() { | |||||
main = new LegacyWindow("Vaadin Liferay Theme"); | |||||
mainLayout = (VerticalLayout) main.getContent(); | |||||
mainLayout.setMargin(false); | |||||
setMainWindow(main); | |||||
// setTheme("liferay"); | |||||
buildMainView(); | |||||
} | |||||
void buildMainView() { | |||||
mainLayout.setWidth("100%"); | |||||
mainLayout.setHeight("400px"); | |||||
mainLayout.addComponent(getTopMenu()); | |||||
CssLayout margin = new CssLayout(); | |||||
margin.setSizeFull(); | |||||
tabs = new TabSheet(); | |||||
tabs.setSizeFull(); | |||||
margin.addComponent(tabs); | |||||
mainLayout.addComponent(margin); | |||||
mainLayout.setExpandRatio(margin, 1); | |||||
tabs.addComponent(buildLabels()); | |||||
tabs.addComponent(buildButtons()); | |||||
tabs.addComponent(buildTextFields()); | |||||
tabs.addComponent(buildSelects()); | |||||
tabs.addComponent(buildDateFields()); | |||||
tabs.addComponent(buildSliders()); | |||||
tabs.addComponent(buildTabSheets()); | |||||
tabs.addComponent(buildAccordions()); | |||||
tabs.addComponent(buildPanels()); | |||||
tabs.addComponent(buildTables()); | |||||
tabs.addComponent(buildTrees()); | |||||
tabs.addComponent(buildWindows()); | |||||
tabs.addComponent(buildSplitPanels()); | |||||
tabs.addComponent(buildNotifications()); | |||||
tabs.addComponent(buildPopupViews()); | |||||
} | |||||
Layout buildLabels() { | |||||
final GridLayout l = new GridLayout(2, 1); | |||||
l.setWidth("560px"); | |||||
l.setSpacing(true); | |||||
l.setMargin(true); | |||||
l.setCaption("Labels"); | |||||
l.addComponent(new Label("Normal Label", ContentMode.HTML)); | |||||
l.addComponent(new Label( | |||||
"Lorem ipsum dolor sit amet, consectetur adipiscing elit.")); | |||||
return l; | |||||
} | |||||
Layout buildButtons() { | |||||
GridLayout l = new GridLayout(3, 1); | |||||
l.setCaption("Buttons"); | |||||
l.setMargin(true); | |||||
l.setSpacing(true); | |||||
AbstractComponent b = new Button("Normal Button"); | |||||
b.setDescription("This is a tooltip!"); | |||||
l.addComponent(b); | |||||
b = new NativeButton("Native Button"); | |||||
b.setDescription("<h2><img src=\"/html/VAADIN/themes/runo/icons/16/globe.png\"/>A richtext tooltip</h2>" | |||||
+ "<ul>" | |||||
+ "<li>HTML formatting</li><li>Images<br/>" | |||||
+ "</li><li>etc...</li></ul>"); | |||||
l.addComponent(b); | |||||
b = new CheckBox("Checkbox"); | |||||
l.addComponent(b); | |||||
b = new Button("Disabled"); | |||||
b.setEnabled(false); | |||||
l.addComponent(b); | |||||
b = new NativeButton("Disabled"); | |||||
b.setEnabled(false); | |||||
l.addComponent(b); | |||||
b = new CheckBox("Disabled"); | |||||
b.setEnabled(false); | |||||
l.addComponent(b); | |||||
b = new Button("OK"); | |||||
b.setIcon(ICON_OK); | |||||
l.addComponent(b); | |||||
b = new NativeButton("OK"); | |||||
b.setIcon(ICON_OK); | |||||
l.addComponent(b); | |||||
b = new CheckBox("OK"); | |||||
b.setIcon(ICON_OK); | |||||
l.addComponent(b); | |||||
b = new Button("Link Button"); | |||||
b.setStyleName(LiferayTheme.BUTTON_LINK); | |||||
l.addComponent(b); | |||||
b = new NativeButton("Link Button"); | |||||
b.setStyleName(LiferayTheme.BUTTON_LINK); | |||||
l.addComponent(b); | |||||
l.newLine(); | |||||
b = new Button("Link Button"); | |||||
b.setIcon(ICON_OK); | |||||
b.setStyleName(LiferayTheme.BUTTON_LINK); | |||||
l.addComponent(b); | |||||
b = new NativeButton("Link Button"); | |||||
b.setIcon(ICON_OK); | |||||
b.setStyleName(LiferayTheme.BUTTON_LINK); | |||||
l.addComponent(b); | |||||
return l; | |||||
} | |||||
Layout buildTextFields() { | |||||
GridLayout l = new GridLayout(2, 1); | |||||
l.setCaption("Text fields"); | |||||
l.setMargin(true); | |||||
l.setSpacing(true); | |||||
l.setWidth("400px"); | |||||
l.setColumnExpandRatio(0, 1); | |||||
l.addComponent(new Label("Normal TextField", ContentMode.HTML)); | |||||
TextField tf = new TextField(); | |||||
tf.setInputPrompt("Enter text"); | |||||
l.addComponent(tf); | |||||
l.addComponent(new Label("Normal TextArea", ContentMode.HTML)); | |||||
TextArea ta = new TextArea(); | |||||
ta.setHeight("5em"); | |||||
ta.setInputPrompt("Enter text"); | |||||
l.addComponent(ta); | |||||
return l; | |||||
} | |||||
Layout buildSelects() { | |||||
VerticalLayout l = new VerticalLayout(); | |||||
l.setCaption("Selects"); | |||||
l.setMargin(true); | |||||
l.setSpacing(true); | |||||
HorizontalLayout hl = new HorizontalLayout(); | |||||
hl.setSpacing(true); | |||||
hl.setMargin(new MarginInfo(true, false, false, false)); | |||||
l.addComponent(hl); | |||||
AbstractSelect cb = new ComboBox(); | |||||
AbstractSelect nat = new NativeSelect(); | |||||
AbstractSelect list = new ListSelect(); | |||||
AbstractSelect twincol = new TwinColSelect(); | |||||
for (int i = 0; i < 50; i++) { | |||||
cb.addItem("Item " + i); | |||||
nat.addItem("Item " + i); | |||||
list.addItem("Item " + i); | |||||
twincol.addItem("Item " + i); | |||||
} | |||||
hl.addComponent(cb); | |||||
hl.addComponent(nat); | |||||
hl.addComponent(list); | |||||
hl.addComponent(twincol); | |||||
return l; | |||||
} | |||||
Layout buildDateFields() { | |||||
VerticalLayout l = new VerticalLayout(); | |||||
l.setCaption("Date fields"); | |||||
l.setMargin(true); | |||||
l.setSpacing(true); | |||||
HorizontalLayout hl = new HorizontalLayout(); | |||||
hl.setSpacing(true); | |||||
hl.setMargin(new MarginInfo(true, false, false, false)); | |||||
l.addComponent(hl); | |||||
DateField df = new DateField(); | |||||
df.setValue(DATE); | |||||
df.setResolution(DateField.RESOLUTION_MIN); | |||||
hl.addComponent(df); | |||||
df = new InlineDateField(); | |||||
df.setLocale(new Locale("fi", "FI")); | |||||
df.setShowISOWeekNumbers(true); | |||||
df.setValue(DATE); | |||||
df.setResolution(DateField.RESOLUTION_DAY); | |||||
hl.addComponent(df); | |||||
df = new InlineDateField(); | |||||
df.setValue(DATE); | |||||
df.setResolution(DateField.RESOLUTION_YEAR); | |||||
hl.addComponent(df); | |||||
return l; | |||||
} | |||||
Layout buildTabSheets() { | |||||
VerticalLayout l = new VerticalLayout(); | |||||
l.setCaption("Tabs"); | |||||
l.setMargin(true); | |||||
l.setSpacing(true); | |||||
l.setWidth("400px"); | |||||
CheckBox closable = new CheckBox("Closable tabs"); | |||||
closable.setImmediate(true); | |||||
l.addComponent(closable); | |||||
final TabSheet ts = new TabSheet(); | |||||
ts.setHeight("100px"); | |||||
l.addComponent(ts); | |||||
for (int i = 1; i < 10; i++) { | |||||
Tab t = ts.addTab(new Label(), "Tab " + i); | |||||
if (i % 2 == 0) { | |||||
t.setIcon(ICON_GLOBE); | |||||
} | |||||
if (i == 2) { | |||||
t.setEnabled(false); | |||||
} | |||||
} | |||||
closable.addListener(new Property.ValueChangeListener() { | |||||
@Override | |||||
public void valueChange(ValueChangeEvent event) { | |||||
Iterator<Component> it = ts.getComponentIterator(); | |||||
for (; it.hasNext();) { | |||||
Component c = it.next(); | |||||
ts.getTab(c).setClosable( | |||||
(Boolean) event.getProperty().getValue()); | |||||
} | |||||
} | |||||
}); | |||||
return l; | |||||
} | |||||
Layout buildPanels() { | |||||
GridLayout l = new GridLayout(2, 1); | |||||
l.setCaption("Panels"); | |||||
l.setMargin(true); | |||||
l.setSpacing(true); | |||||
l.setWidth("700px"); | |||||
l.setColumnExpandRatio(0, 2); | |||||
l.setColumnExpandRatio(1, 5); | |||||
l.addComponent(new Label("Normal Panel", ContentMode.HTML)); | |||||
VerticalLayout pl = new VerticalLayout(); | |||||
pl.setMargin(true); | |||||
Panel p = new Panel("Normal Panel", pl); | |||||
p.setHeight("100px"); | |||||
pl.addComponent(new Label("Panel content")); | |||||
l.addComponent(p); | |||||
l.addComponent(new Label( | |||||
"Light Style (<code>LiferayTheme.PANEL_LIGHT</code>)", | |||||
ContentMode.HTML)); | |||||
VerticalLayout p2l = new VerticalLayout(); | |||||
p2l.setMargin(true); | |||||
Panel p2 = new Panel("Light Style Panel", p2l); | |||||
p2.setStyleName(LiferayTheme.PANEL_LIGHT); | |||||
p2l.addComponent(new Label("Panel content")); | |||||
l.addComponent(p2); | |||||
return l; | |||||
} | |||||
Layout buildTables() { | |||||
GridLayout l = new GridLayout(1, 1); | |||||
l.setCaption("Tables"); | |||||
l.setMargin(true); | |||||
l.setSpacing(true); | |||||
Table t = new Table(); | |||||
t.setWidth("700px"); | |||||
t.setPageLength(4); | |||||
t.setSelectable(true); | |||||
t.setColumnCollapsingAllowed(true); | |||||
t.setColumnReorderingAllowed(true); | |||||
t.addActionHandler(handler); | |||||
t.addContainerProperty("First", String.class, null, "First", | |||||
ICON_GLOBE, Table.ALIGN_RIGHT); | |||||
t.addContainerProperty("Second", String.class, null); | |||||
t.addContainerProperty("Third", String.class, null); | |||||
t.addContainerProperty("Fourth", TextField.class, null); | |||||
t.setColumnCollapsed("Fourth", true); | |||||
int sum = 0; | |||||
for (int j = 0; j < 100; j++) { | |||||
t.addItem(new Object[] { "" + j, "Bar value " + j, | |||||
"Last column value " + j, new TextField() }, j); | |||||
sum += j; | |||||
} | |||||
t.setFooterVisible(true); | |||||
t.setColumnFooter("First", "" + sum); | |||||
l.addComponent(t); | |||||
return l; | |||||
} | |||||
Layout buildWindows() { | |||||
final CssLayout l = new CssLayout(); | |||||
l.setCaption("Windows"); | |||||
VerticalLayout layout = new VerticalLayout(); | |||||
layout.setMargin(true); | |||||
final Window w = new Window("Normal window", layout); | |||||
w.setWidth("280px"); | |||||
w.setHeight("180px"); | |||||
w.setPositionX(40); | |||||
w.setPositionY(160); | |||||
VerticalLayout layout2 = new VerticalLayout(); | |||||
layout2.setMargin(true); | |||||
final Window w2 = new Window("Window, no resize", layout2); | |||||
w2.setResizable(false); | |||||
w2.setWidth("280px"); | |||||
w2.setHeight("180px"); | |||||
w2.setPositionX(350); | |||||
w2.setPositionY(160); | |||||
layout2.addComponent(new Label( | |||||
"<code>Window.setResizable(false)</code>", ContentMode.HTML)); | |||||
tabs.addListener(new TabSheet.SelectedTabChangeListener() { | |||||
@Override | |||||
public void selectedTabChange(SelectedTabChangeEvent event) { | |||||
if (event.getTabSheet().getSelectedTab() == l) { | |||||
getMainWindow().addWindow(w); | |||||
getMainWindow().addWindow(w2); | |||||
} else { | |||||
getMainWindow().removeWindow(w); | |||||
getMainWindow().removeWindow(w2); | |||||
} | |||||
} | |||||
}); | |||||
return l; | |||||
} | |||||
Layout buildSplitPanels() { | |||||
final GridLayout l = new GridLayout(2, 1); | |||||
l.setCaption("Split panels"); | |||||
l.setMargin(true); | |||||
l.setSpacing(true); | |||||
l.setWidth("700px"); | |||||
l.setHeight("100%"); | |||||
l.setColumnExpandRatio(1, 1); | |||||
CheckBox lockCheckBox = new CheckBox("Lock SplitPanels"); | |||||
lockCheckBox.setImmediate(true); | |||||
l.addComponent(lockCheckBox, 1, 0); | |||||
l.newLine(); | |||||
Label label = new Label("Normal SplitPanel", ContentMode.HTML); | |||||
label.setWidth(null); | |||||
l.addComponent(label); | |||||
final HorizontalSplitPanel sp = new HorizontalSplitPanel(); | |||||
sp.setWidth("100%"); | |||||
sp.setHeight("100px"); | |||||
final VerticalSplitPanel sp2 = new VerticalSplitPanel(); | |||||
sp2.setSizeFull(); | |||||
sp.setSecondComponent(sp2); | |||||
l.addComponent(sp); | |||||
label = new Label( | |||||
"Small Style<br />(<code>LiferayTheme.SPLITPANEL_SMALL</code>)", | |||||
ContentMode.HTML); | |||||
label.setWidth(null); | |||||
l.addComponent(label); | |||||
final HorizontalSplitPanel sp3 = new HorizontalSplitPanel(); | |||||
sp3.setStyleName(LiferayTheme.SPLITPANEL_SMALL); | |||||
sp3.setWidth("100%"); | |||||
sp3.setHeight("100px"); | |||||
final VerticalSplitPanel sp4 = new VerticalSplitPanel(); | |||||
sp4.setStyleName(LiferayTheme.SPLITPANEL_SMALL); | |||||
sp4.setSizeFull(); | |||||
sp3.setSecondComponent(sp4); | |||||
l.addComponent(sp3); | |||||
lockCheckBox.addListener(new Property.ValueChangeListener() { | |||||
@Override | |||||
public void valueChange(ValueChangeEvent event) { | |||||
sp.setLocked((Boolean) event.getProperty().getValue()); | |||||
sp2.setLocked((Boolean) event.getProperty().getValue()); | |||||
sp3.setLocked((Boolean) event.getProperty().getValue()); | |||||
sp4.setLocked((Boolean) event.getProperty().getValue()); | |||||
} | |||||
}); | |||||
return l; | |||||
} | |||||
Layout buildAccordions() { | |||||
final GridLayout l = new GridLayout(2, 1); | |||||
l.setCaption("Accordions"); | |||||
l.setMargin(true); | |||||
l.setSpacing(true); | |||||
l.setWidth("700px"); | |||||
Accordion a = new Accordion(); | |||||
a.setWidth("100%"); | |||||
a.setHeight("170px"); | |||||
l.addComponent(a); | |||||
for (int i = 1; i < 5; i++) { | |||||
Tab t = a.addTab(new Label(), "Sheet " + i); | |||||
if (i % 2 == 0) { | |||||
t.setIcon(ICON_GLOBE); | |||||
} | |||||
if (i == 2) { | |||||
t.setEnabled(false); | |||||
} | |||||
} | |||||
return l; | |||||
} | |||||
Layout buildSliders() { | |||||
final GridLayout l = new GridLayout(2, 1); | |||||
l.setCaption("Sliders"); | |||||
l.setMargin(true); | |||||
l.setSpacing(true); | |||||
l.setWidth("400px"); | |||||
l.setColumnExpandRatio(0, 1); | |||||
l.addComponent(new Label("Horizontal Slider", ContentMode.HTML)); | |||||
Slider s = new Slider(); | |||||
s.setWidth("200px"); | |||||
try { | |||||
s.setValue(50.0); | |||||
} catch (ValueOutOfBoundsException e) { | |||||
// TODO Auto-generated catch block | |||||
e.printStackTrace(); | |||||
} | |||||
l.addComponent(s); | |||||
l.addComponent(new Label("Vertical Slider", ContentMode.HTML)); | |||||
s = new Slider(); | |||||
s.setOrientation(SliderOrientation.VERTICAL); | |||||
s.setHeight("200px"); | |||||
try { | |||||
s.setValue(50.0); | |||||
} catch (ValueOutOfBoundsException e) { | |||||
// TODO Auto-generated catch block | |||||
e.printStackTrace(); | |||||
} | |||||
l.addComponent(s); | |||||
return l; | |||||
} | |||||
Layout buildTrees() { | |||||
final GridLayout l = new GridLayout(1, 1); | |||||
l.setMargin(true); | |||||
l.setCaption("Trees"); | |||||
Tree tree = new Tree(); | |||||
l.addComponent(tree); | |||||
tree.addItem("Item 1"); | |||||
tree.setItemIcon("Item 1", ICON_GLOBE); | |||||
tree.addItem("Child 1"); | |||||
tree.setItemIcon("Child 1", ICON_GLOBE); | |||||
tree.setParent("Child 1", "Item 1"); | |||||
tree.addItem("Child 2"); | |||||
tree.setParent("Child 2", "Item 1"); | |||||
tree.addItem("Child 3"); | |||||
tree.setChildrenAllowed("Child 3", false); | |||||
tree.setItemIcon("Child 3", ICON_GLOBE); | |||||
tree.setParent("Child 3", "Item 1"); | |||||
tree.addItem("Child 4"); | |||||
tree.setChildrenAllowed("Child 4", false); | |||||
tree.setParent("Child 4", "Item 1"); | |||||
tree.addItem("Item 2"); | |||||
tree.addItem("Item 3"); | |||||
tree.setItemIcon("Item 3", ICON_GLOBE); | |||||
tree.setChildrenAllowed("Item 3", false); | |||||
tree.addItem("Item 4"); | |||||
tree.setChildrenAllowed("Item 4", false); | |||||
tree.addActionHandler(handler); | |||||
return l; | |||||
} | |||||
Layout buildNotifications() { | |||||
final GridLayout l = new GridLayout(2, 1); | |||||
l.setCaption("Notifications"); | |||||
l.setMargin(true); | |||||
l.setSpacing(true); | |||||
l.setWidth("400px"); | |||||
l.setColumnExpandRatio(0, 1); | |||||
final TextField title = new TextField("Notification caption"); | |||||
title.setValue("Brown Fox!"); | |||||
final TextField message = new TextField("Notification description"); | |||||
message.setValue("Jumped over the lazy dog."); | |||||
message.setWidth("15em"); | |||||
l.addComponent(new Label("<h3>Type</h3>", ContentMode.HTML)); | |||||
l.addComponent(new Label("<h3>Preview</h3>", ContentMode.HTML)); | |||||
l.addComponent(new Label("Humanized", ContentMode.HTML)); | |||||
Button show = new Button("Humanized Notification", | |||||
new Button.ClickListener() { | |||||
@Override | |||||
public void buttonClick(ClickEvent event) { | |||||
Notification notification = new Notification( | |||||
title.getValue(), message.getValue()); | |||||
notification.setHtmlContentAllowed(true); | |||||
notification.show(Page.getCurrent()); | |||||
} | |||||
}); | |||||
l.addComponent(show); | |||||
l.addComponent(new Label("Warning", ContentMode.HTML)); | |||||
show = new Button("Warning Notification", new Button.ClickListener() { | |||||
@Override | |||||
public void buttonClick(ClickEvent event) { | |||||
new Notification(title.getValue(), message.getValue(), | |||||
Notification.TYPE_WARNING_MESSAGE, true).show(Page | |||||
.getCurrent()); | |||||
} | |||||
}); | |||||
l.addComponent(show); | |||||
l.addComponent(new Label("Error", ContentMode.HTML)); | |||||
show = new Button("Error Notification", new Button.ClickListener() { | |||||
@Override | |||||
public void buttonClick(ClickEvent event) { | |||||
new Notification(title.getValue(), message.getValue(), | |||||
Notification.TYPE_ERROR_MESSAGE, true).show(Page | |||||
.getCurrent()); | |||||
} | |||||
}); | |||||
l.addComponent(show); | |||||
l.addComponent(new Label("Tray", ContentMode.HTML)); | |||||
show = new Button("Tray Notification", new Button.ClickListener() { | |||||
@Override | |||||
public void buttonClick(ClickEvent event) { | |||||
new Notification(title.getValue(), message.getValue(), | |||||
Notification.TYPE_TRAY_NOTIFICATION, true).show(Page | |||||
.getCurrent()); | |||||
} | |||||
}); | |||||
l.addComponent(show); | |||||
l.addComponent(title); | |||||
l.addComponent(message); | |||||
return l; | |||||
} | |||||
Layout buildPopupViews() { | |||||
final GridLayout l = new GridLayout(1, 1); | |||||
l.setCaption("PopupViews"); | |||||
l.setMargin(true); | |||||
l.setSpacing(true); | |||||
l.setWidth("400px"); | |||||
Label content = new Label( | |||||
"Lorem ipsum dolor sit amet, consectetur adipiscing elit."); | |||||
content.setWidth("200px"); | |||||
PopupView pw = new PopupView("Click me!", content); | |||||
l.addComponent(pw); | |||||
return l; | |||||
} | |||||
MenuBar getTopMenu() { | |||||
MenuBar menubar = new MenuBar(); | |||||
menubar.setWidth("100%"); | |||||
final MenuBar.MenuItem file = menubar.addItem("File", null); | |||||
final MenuBar.MenuItem newItem = file.addItem("New", null); | |||||
file.addItem("Open file...", new ThemeResource( | |||||
"../runo/icons/16/folder.png"), null); | |||||
file.addSeparator(); | |||||
newItem.addItem("File", null); | |||||
newItem.addItem("Folder", null); | |||||
newItem.addItem("Project...", null); | |||||
file.addItem("Close", null); | |||||
file.addItem("Close All", null); | |||||
file.addSeparator(); | |||||
file.addItem("Save", null); | |||||
file.addItem("Save As...", null); | |||||
file.addItem("Save All", null); | |||||
final MenuBar.MenuItem edit = menubar.addItem("Edit", null); | |||||
edit.addItem("Undo", null); | |||||
edit.addItem("Redo", null).setEnabled(false); | |||||
edit.addSeparator(); | |||||
edit.addItem("Cut", null); | |||||
edit.addItem("Copy", null); | |||||
edit.addItem("Paste", null); | |||||
edit.addSeparator(); | |||||
final MenuBar.MenuItem find = edit.addItem("Find/Replace", null); | |||||
find.addItem("Google Search", new Command() { | |||||
@Override | |||||
public void menuSelected(MenuItem selectedItem) { | |||||
getMainWindow().open( | |||||
new ExternalResource("http://www.google.com")); | |||||
} | |||||
}); | |||||
find.addSeparator(); | |||||
find.addItem("Find/Replace...", null); | |||||
find.addItem("Find Next", null); | |||||
find.addItem("Find Previous", null); | |||||
final MenuBar.MenuItem view = menubar.addItem("View", | |||||
new ThemeResource("../runo/icons/16/user.png"), null); | |||||
MenuItem statusBarItem = view.addItem("Show/Hide Status Bar", null); | |||||
statusBarItem.setCheckable(true); | |||||
statusBarItem.setChecked(true); | |||||
view.addItem("Customize Toolbar...", null); | |||||
view.addSeparator(); | |||||
view.addItem("Actual Size", null); | |||||
view.addItem("Zoom In", null); | |||||
view.addItem("Zoom Out", null); | |||||
menubar.addItem("Help", null).setEnabled(false); | |||||
return menubar; | |||||
} | |||||
} |
package com.vaadin.tests.themes; | |||||
import com.vaadin.annotations.Theme; | |||||
import com.vaadin.server.VaadinRequest; | |||||
import com.vaadin.tests.components.AbstractTestUI; | |||||
import com.vaadin.ui.Label; | |||||
import com.vaadin.ui.Panel; | |||||
import com.vaadin.ui.VerticalLayout; | |||||
import com.vaadin.ui.themes.LiferayTheme; | |||||
@Theme("liferay") | |||||
public class LiferayThemeTest extends AbstractTestUI { | |||||
@Override | |||||
protected void setup(VaadinRequest request) { | |||||
VerticalLayout pl = new VerticalLayout(); | |||||
pl.setMargin(true); | |||||
Panel p = new Panel("Panel", pl); | |||||
addComponent(p); | |||||
pl.addComponent(new Label("Panel content")); | |||||
pl = new VerticalLayout(); | |||||
pl.setMargin(true); | |||||
p = new Panel("Light Panel", pl); | |||||
p.addStyleName(LiferayTheme.PANEL_LIGHT); | |||||
addComponent(p); | |||||
pl.addComponent(new Label("Panel content")); | |||||
} | |||||
@Override | |||||
protected String getTestDescription() { | |||||
// TODO Auto-generated method stub | |||||
return null; | |||||
} | |||||
@Override | |||||
protected Integer getTicketNumber() { | |||||
// TODO Auto-generated method stub | |||||
return null; | |||||
} | |||||
} |
<display> | <display> | ||||
<category name="Vaadin"> | <category name="Vaadin"> | ||||
<portlet id="JSR286TestPortlet" /> | <portlet id="JSR286TestPortlet" /> | ||||
<portlet id="Vaadin Liferay Theme Portlet" /> | |||||
</category> | </category> | ||||
</display> | </display> |
<instanceable>false</instanceable> | <instanceable>false</instanceable> | ||||
<ajaxable>false</ajaxable> | <ajaxable>false</ajaxable> | ||||
</portlet> | </portlet> | ||||
<portlet> | |||||
<portlet-name>Vaadin Liferay Theme Portlet</portlet-name> | |||||
<instanceable>false</instanceable> | |||||
<ajaxable>false</ajaxable> | |||||
</portlet> | |||||
<role-mapper> | <role-mapper> | ||||
<role-name>administrator</role-name> | <role-name>administrator</role-name> |
</security-role-ref> | </security-role-ref> | ||||
</portlet> | </portlet> | ||||
<portlet> | |||||
<portlet-name>Vaadin Liferay Theme Portlet</portlet-name> | |||||
<display-name>Vaadin Liferay Theme</display-name> | |||||
<portlet-class>com.vaadin.server.LegacyVaadinPortlet</portlet-class> | |||||
<init-param> | |||||
<name>application</name> | |||||
<value>com.vaadin.tests.integration.LiferayThemeDemo</value> | |||||
</init-param> | |||||
<supports> | |||||
<mime-type>text/html</mime-type> | |||||
<portlet-mode>view</portlet-mode> | |||||
</supports> | |||||
<portlet-info> | |||||
<title>Vaadin Liferay Theme</title> | |||||
<short-title>Vaadin Liferay Theme</short-title> | |||||
</portlet-info> | |||||
<security-role-ref> | |||||
<role-name>administrator</role-name> | |||||
</security-role-ref> | |||||
<security-role-ref> | |||||
<role-name>guest</role-name> | |||||
</security-role-ref> | |||||
<security-role-ref> | |||||
<role-name>power-user</role-name> | |||||
</security-role-ref> | |||||
<security-role-ref> | |||||
<role-name>user</role-name> | |||||
</security-role-ref> | |||||
</portlet> | |||||
<!-- This can be used to work around an issue in liferay 5.0-5.1.1 <container-runtime-option> | <!-- This can be used to work around an issue in liferay 5.0-5.1.1 <container-runtime-option> | ||||
<name>javax.portlet.escapeXml</name> <value>false</value> </container-runtime-option> --> | <name>javax.portlet.escapeXml</name> <value>false</value> </container-runtime-option> --> | ||||
</portlet-app> | </portlet-app> |
/* | |||||
* Copyright 2000-2014 Vaadin Ltd. | |||||
* | |||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not | |||||
* use this file except in compliance with the License. You may obtain a copy of | |||||
* the License at | |||||
* | |||||
* http://www.apache.org/licenses/LICENSE-2.0 | |||||
* | |||||
* Unless required by applicable law or agreed to in writing, software | |||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | |||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | |||||
* License for the specific language governing permissions and limitations under | |||||
* the License. | |||||
*/ | |||||
package com.vaadin.tests.components.uitest; | |||||
public class LiferayThemeTest extends ThemeTest { | |||||
@Override | |||||
protected String getTheme() { | |||||
return "liferay"; | |||||
} | |||||
} |
assertThatThemeHasFavicon("chameleon"); | assertThatThemeHasFavicon("chameleon"); | ||||
} | } | ||||
@Test | |||||
public void liferayHasFavicon() { | |||||
assertThatThemeHasFavicon("liferay"); | |||||
} | |||||
@Test | @Test | ||||
public void runoHasFavicon() { | public void runoHasFavicon() { | ||||
assertThatThemeHasFavicon("runo"); | assertThatThemeHasFavicon("runo"); |