From 50237cc7d431acb03f75dc3cdba55a245922608b Mon Sep 17 00:00:00 2001 From: John Ahlroos Date: Thu, 6 Sep 2012 16:27:04 +0300 Subject: [PATCH] Renamed .v-boxlayout selector to .v-layout and applied the .v-layout selector to all layouts --- WebContent/VAADIN/themes/base/base.scss | 2 +- .../themes/base/boxlayout/boxlayout.css | 167 ------------------ .../boxlayout.scss => layout/layout.scss} | 33 +++- WebContent/VAADIN/themes/base/styles.scss | 2 +- .../themes/reindeer/layouts/layouts.scss | 8 +- .../runo/orderedlayout/orderedlayout.scss | 8 +- .../VAADIN/themes/tests-components/styles.css | 4 +- .../ui/absolutelayout/VAbsoluteLayout.java | 4 +- .../client/ui/csslayout/VCssLayout.java | 6 +- .../client/ui/customlayout/VCustomLayout.java | 8 +- .../client/ui/formlayout/VFormLayout.java | 4 +- .../client/ui/gridlayout/VGridLayout.java | 4 +- .../ui/orderedlayout/VHorizontalLayout.java | 3 + .../ui/orderedlayout/VOrderedLayout.java | 4 +- .../ui/orderedlayout/VVerticalLayout.java | 3 + .../ui/splitpanel/VAbstractSplitPanel.java | 6 +- .../src/com/vaadin/ui/themes/BaseTheme.java | 5 + 17 files changed, 71 insertions(+), 200 deletions(-) delete mode 100644 WebContent/VAADIN/themes/base/boxlayout/boxlayout.css rename WebContent/VAADIN/themes/base/{boxlayout/boxlayout.scss => layout/layout.scss} (83%) diff --git a/WebContent/VAADIN/themes/base/base.scss b/WebContent/VAADIN/themes/base/base.scss index efe6e0cd05..915da19226 100644 --- a/WebContent/VAADIN/themes/base/base.scss +++ b/WebContent/VAADIN/themes/base/base.scss @@ -1,7 +1,7 @@ @import "absolutelayout/absolutelayout.scss"; @import "accordion/accordion.scss"; @import "button/button.scss"; -@import "boxlayout/boxlayout.scss"; +@import "layout/layout.scss"; @import "caption/caption.scss"; @import "common/common.scss"; @import "csslayout/csslayout.scss"; diff --git a/WebContent/VAADIN/themes/base/boxlayout/boxlayout.css b/WebContent/VAADIN/themes/base/boxlayout/boxlayout.css deleted file mode 100644 index f899e8f4ac..0000000000 --- a/WebContent/VAADIN/themes/base/boxlayout/boxlayout.css +++ /dev/null @@ -1,167 +0,0 @@ -/* -TODO -- separate styles to proper places -- decide a good class name structure for core layouts (e.g. 'v-layout', 'v-vertical', 'v-grid' etc.) -- use !important in carefully selected places to prevent accidental layout breakage by custom theming (e.g. alignments should be forced) - -*/ - -.v-boxlayout.v-margin-top {padding-top: 12px;} -.v-boxlayout.v-margin-right {padding-right: 12px;} -.v-boxlayout.v-margin-bottom {padding-bottom: 12px;} -.v-boxlayout.v-margin-left {padding-left: 12px;} - -.v-spacing { - width: 6px; - height: 6px; -} - -.v-boxlayout { - display: inline-block; -} - -div.v-boxlayout.v-horizontal.v { - white-space: nowrap; -} - -.v-boxlayout > .v-expand { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - width: 100%; - height: 100%; -} - -.v-slot, -.v-spacing { - display: inline-block; - white-space: normal; - vertical-align: top; -} - -/* Clear any floats inside the slot, to prevent unwanted collapsing */ -.v-vertical > .v-slot:after { - content: ""; - display: inline-block; - clear: both; - width: 0; - height: 0; - overflow: hidden; -} - -.v-vertical > .v-slot, -.v-vertical > .v-expand > .v-slot { - display: block; - clear: both; -} - -.v-horizontal > .v-slot, -.v-horizontal > .v-expand > .v-slot { - height: 100%; -} - -.v-vertical > .v-spacing, -.v-vertical > .v-expand > .v-spacing { - width: 0; - display: block; - clear: both; -} - -.v-horizontal > .v-spacing, -.v-horizontal > .v-expand > .v-spacing { - height: 0; -} - -.v-align-middle:before, -.v-align-bottom:before, -.v-expand > .v-align-middle:before, -.v-expand > .v-align-bottom:before { - content: ""; - display: inline-block; - height: 100%; - vertical-align: middle; - width: 0; -} - -.v-align-middle, -.v-align-bottom { - white-space: nowrap; -} - -.v-align-middle > .v, -.v-align-bottom > .v { - display: inline-block; -} - -.v-align-middle, -.v-align-middle > .v { - vertical-align: middle; -} - -.v-align-bottom, -.v-align-bottom > .v { - vertical-align: bottom; -} - -.v-align-center { - text-align: center; -} - -.v-align-center > .v { - margin-left: auto; - margin-right: auto; -} - -.v-align-right { - text-align: right; -} - -.v-align-right > .v { - margin-left: auto; -} - -.v-has-caption, -.v-has-caption > .v-caption { - display: inline-block; /* Force natural width to zero */ -} - -.v-caption { - overflow: visible; - vertical-align: middle; -} - -.v-caption-on-left, -.v-caption-on-right { - white-space: nowrap; -} - -.v-caption-on-top > .v-caption, -.v-caption-on-bottom > .v-caption { - display: block; -} - -.v-caption-on-left > .v-caption { - padding-right: .5em; -} - -.v-caption-on-right > .v-caption { - padding-left: .5em; -} - -.v-caption-on-left > .v, -.v-caption-on-right > .v { - display: inline-block; - vertical-align: middle; -} - -.v-has-caption.v-has-width > .v { - width: 100% !important; -} - -.v-has-caption.v-has-height > .v { - height: 100% !important; -} - -.v-errorindicator { - vertical-align: middle; -} \ No newline at end of file diff --git a/WebContent/VAADIN/themes/base/boxlayout/boxlayout.scss b/WebContent/VAADIN/themes/base/layout/layout.scss similarity index 83% rename from WebContent/VAADIN/themes/base/boxlayout/boxlayout.scss rename to WebContent/VAADIN/themes/base/layout/layout.scss index 92e0eb415d..af49dd4463 100644 --- a/WebContent/VAADIN/themes/base/boxlayout/boxlayout.scss +++ b/WebContent/VAADIN/themes/base/layout/layout.scss @@ -6,27 +6,44 @@ TODO */ -@mixin base-boxlayout { +@mixin base-layout { -.v-boxlayout.v-margin-top {padding-top: 12px;} -.v-boxlayout.v-margin-right {padding-right: 12px;} -.v-boxlayout.v-margin-bottom {padding-bottom: 12px;} -.v-boxlayout.v-margin-left {padding-left: 12px;} +.v-vertical.v-margin-top, +.v-horizontal.v-margin-top { + padding-top: 12px; +} + +.v-vertical.v-margin-right, +.v-horizontal.v-margin-right { + padding-right: 12px; +} + +.v-vertical.v-margin-bottom, +.v-horizontal.v-margin-bottom { + padding-bottom: 12px; +} + +.v-layout.v-vertical.v-margin-left, +.v-layout.v-horizontal.v-margin-left { + padding-left: 12px; +} .v-spacing { width: 6px; height: 6px; } -.v-boxlayout { +.v-vertical, +.v-horizontal { display: inline-block; } -div.v-boxlayout.v-horizontal.v-widget { +div.v-layout.v-horizontal.v-widget { white-space: nowrap; } -.v-boxlayout > .v-expand { +.v-layout.v-vertical > .v-expand, +.v-layout.v-horizontal > .v-expand { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; diff --git a/WebContent/VAADIN/themes/base/styles.scss b/WebContent/VAADIN/themes/base/styles.scss index 7a650d0818..ed37d3cc80 100644 --- a/WebContent/VAADIN/themes/base/styles.scss +++ b/WebContent/VAADIN/themes/base/styles.scss @@ -15,7 +15,7 @@ // here for now to preserve old semantics @include base-common; -@include base-boxlayout; +@include base-layout; @include base-csslayout; @include base-customcomponent; @include base-customlayout; diff --git a/WebContent/VAADIN/themes/reindeer/layouts/layouts.scss b/WebContent/VAADIN/themes/reindeer/layouts/layouts.scss index e1bef65f1e..c0204ec041 100644 --- a/WebContent/VAADIN/themes/reindeer/layouts/layouts.scss +++ b/WebContent/VAADIN/themes/reindeer/layouts/layouts.scss @@ -3,25 +3,25 @@ .v-orderedlayout-margin-top, .v-horizontallayout-margin-top, .v-verticallayout-margin-top, -.v-boxlayout.v-margin-top { +.v-layout.v-margin-top { padding-top: 18px; } .v-orderedlayout-margin-right, .v-horizontallayout-margin-right, .v-verticallayout-margin-right, -.v-boxlayout.v-margin-right { +.v-layout.v-margin-right { padding-right: 18px; } .v-orderedlayout-margin-bottom, .v-horizontallayout-margin-bottom, .v-verticallayout-margin-bottom, -.v-boxlayout.v-margin-bottom { +.v-layout.v-margin-bottom { padding-bottom: 18px; } .v-orderedlayout-margin-left, .v-horizontallayout-margin-left, .v-verticallayout-margin-left, -.v-boxlayout.v-margin-left { +.v-layout.v-margin-left { padding-left: 18px; } .v-orderedlayout-spacing-on, diff --git a/WebContent/VAADIN/themes/runo/orderedlayout/orderedlayout.scss b/WebContent/VAADIN/themes/runo/orderedlayout/orderedlayout.scss index 37ae0279b6..8799c7d8a6 100644 --- a/WebContent/VAADIN/themes/runo/orderedlayout/orderedlayout.scss +++ b/WebContent/VAADIN/themes/runo/orderedlayout/orderedlayout.scss @@ -4,28 +4,28 @@ .v-horizontallayout-margin-top, .v-verticallayout-margin-top, .v-csslayout-margin-top, -.v-boxlayout.v-margin-top { +.v-layout.v-margin-top { padding-top: 15px; } .v-orderedlayout-margin-right, .v-horizontallayout-margin-right, .v-verticallayout-margin-right, .v-csslayout-margin-right, -.v-boxlayout.v-margin-right { +.v-layout.v-margin-right { padding-right: 18px; } .v-orderedlayout-margin-bottom, .v-horizontallayout-margin-bottom, .v-verticallayout-margin-bottom, .v-csslayout-margin-bottom, -.v-boxlayout.v-margin-bottom { +.v-layout.v-margin-bottom { padding-bottom: 15px; } .v-orderedlayout-margin-left, .v-horizontallayout-margin-left, .v-verticallayout-margin-left, .v-csslayout-margin-left, -.v-boxlayout.v-margin-left { +.v-layout.v-margin-left { padding-left: 18px; } .v-orderedlayout-spacing-on, diff --git a/WebContent/VAADIN/themes/tests-components/styles.css b/WebContent/VAADIN/themes/tests-components/styles.css index 45a96b6d16..2d54a48124 100644 --- a/WebContent/VAADIN/themes/tests-components/styles.css +++ b/WebContent/VAADIN/themes/tests-components/styles.css @@ -38,11 +38,11 @@ background: #f00; } -.v-boxlayout.test { +.v-layout.test { border: 1px solid #ddd; } -.v-boxlayout.test .target { +.v-layout.test .target { outline: 2px dashed blue; } diff --git a/client/src/com/vaadin/client/ui/absolutelayout/VAbsoluteLayout.java b/client/src/com/vaadin/client/ui/absolutelayout/VAbsoluteLayout.java index cea75a3bfd..30426e1399 100644 --- a/client/src/com/vaadin/client/ui/absolutelayout/VAbsoluteLayout.java +++ b/client/src/com/vaadin/client/ui/absolutelayout/VAbsoluteLayout.java @@ -25,6 +25,7 @@ import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.Widget; import com.vaadin.client.ApplicationConnection; import com.vaadin.client.VCaption; +import com.vaadin.ui.themes.BaseTheme; public class VAbsoluteLayout extends ComplexPanel { @@ -44,7 +45,8 @@ public class VAbsoluteLayout extends ComplexPanel { public VAbsoluteLayout() { setElement(Document.get().createDivElement()); - setStyleName(CLASSNAME); + setStyleName(BaseTheme.UI_LAYOUT); + addStyleName(CLASSNAME); marginElement = Document.get().createDivElement(); canvas.getStyle().setProperty("position", "relative"); canvas.getStyle().setProperty("overflow", "hidden"); diff --git a/client/src/com/vaadin/client/ui/csslayout/VCssLayout.java b/client/src/com/vaadin/client/ui/csslayout/VCssLayout.java index e7c78fadb2..2aeec53e27 100644 --- a/client/src/com/vaadin/client/ui/csslayout/VCssLayout.java +++ b/client/src/com/vaadin/client/ui/csslayout/VCssLayout.java @@ -1,4 +1,4 @@ -/* +/* * Copyright 2011 Vaadin Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not @@ -21,6 +21,7 @@ import com.google.gwt.user.client.Element; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.Widget; +import com.vaadin.ui.themes.BaseTheme; public class VCssLayout extends SimplePanel { public static final String TAGNAME = "csslayout"; @@ -33,7 +34,8 @@ public class VCssLayout extends SimplePanel { public VCssLayout() { super(); getElement().appendChild(margin); - setStyleName(CLASSNAME); + setStyleName(BaseTheme.UI_LAYOUT); + addStyleName(CLASSNAME); margin.setClassName(CLASSNAME + "-margin"); setWidget(panel); } diff --git a/client/src/com/vaadin/client/ui/customlayout/VCustomLayout.java b/client/src/com/vaadin/client/ui/customlayout/VCustomLayout.java index aecbb73cb8..963ad5becf 100644 --- a/client/src/com/vaadin/client/ui/customlayout/VCustomLayout.java +++ b/client/src/com/vaadin/client/ui/customlayout/VCustomLayout.java @@ -1,4 +1,4 @@ -/* +/* * Copyright 2011 Vaadin Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not @@ -32,6 +32,7 @@ import com.vaadin.client.ComponentConnector; import com.vaadin.client.Util; import com.vaadin.client.VCaption; import com.vaadin.client.VCaptionWrapper; +import com.vaadin.ui.themes.BaseTheme; /** * Custom Layout implements complex layout defined with HTML template. @@ -82,7 +83,8 @@ public class VCustomLayout extends ComplexPanel { DOM.setStyleAttribute(getElement(), "position", "relative"); } - setStyleName(CLASSNAME); + setStyleName(BaseTheme.UI_LAYOUT); + addStyleName(CLASSNAME); } /** @@ -207,7 +209,7 @@ public class VCustomLayout extends ComplexPanel { static native void eval(String script) /*-{ try { - if (script != null) + if (script != null) eval("{ var document = $doc; var window = $wnd; "+ script + "}"); } catch (e) { } diff --git a/client/src/com/vaadin/client/ui/formlayout/VFormLayout.java b/client/src/com/vaadin/client/ui/formlayout/VFormLayout.java index f2f6e0bc72..49df49374d 100644 --- a/client/src/com/vaadin/client/ui/formlayout/VFormLayout.java +++ b/client/src/com/vaadin/client/ui/formlayout/VFormLayout.java @@ -40,6 +40,7 @@ import com.vaadin.shared.ComponentConstants; import com.vaadin.shared.ComponentState; import com.vaadin.shared.ui.ComponentStateUtil; import com.vaadin.shared.ui.MarginInfo; +import com.vaadin.ui.themes.BaseTheme; /** * Two col Layout that places caption on left col and field on right col @@ -52,7 +53,8 @@ public class VFormLayout extends SimplePanel { public VFormLayout() { super(); - setStyleName(CLASSNAME); + setStyleName(BaseTheme.UI_LAYOUT); + addStyleName(CLASSNAME); table = new VFormLayoutTable(); setWidget(table); } diff --git a/client/src/com/vaadin/client/ui/gridlayout/VGridLayout.java b/client/src/com/vaadin/client/ui/gridlayout/VGridLayout.java index d3b2f0467e..894b21c925 100644 --- a/client/src/com/vaadin/client/ui/gridlayout/VGridLayout.java +++ b/client/src/com/vaadin/client/ui/gridlayout/VGridLayout.java @@ -39,6 +39,7 @@ import com.vaadin.client.ui.layout.ComponentConnectorLayoutSlot; import com.vaadin.client.ui.layout.VLayoutSlot; import com.vaadin.shared.ui.AlignmentInfo; import com.vaadin.shared.ui.MarginInfo; +import com.vaadin.ui.themes.BaseTheme; public class VGridLayout extends ComplexPanel { @@ -70,7 +71,8 @@ public class VGridLayout extends ComplexPanel { spacingStyle.setPosition(Position.ABSOLUTE); getElement().appendChild(spacingMeasureElement); - setStyleName(CLASSNAME); + setStyleName(BaseTheme.UI_LAYOUT); + addStyleName(CLASSNAME); } private GridLayoutConnector getConnector() { diff --git a/client/src/com/vaadin/client/ui/orderedlayout/VHorizontalLayout.java b/client/src/com/vaadin/client/ui/orderedlayout/VHorizontalLayout.java index 543eeafe88..f80db5113f 100644 --- a/client/src/com/vaadin/client/ui/orderedlayout/VHorizontalLayout.java +++ b/client/src/com/vaadin/client/ui/orderedlayout/VHorizontalLayout.java @@ -20,10 +20,13 @@ package com.vaadin.client.ui.orderedlayout; */ public class VHorizontalLayout extends VOrderedLayout { + private static final String CLASSNAME = "v-horizontallayout"; + /** * Default constructor */ public VHorizontalLayout() { setVertical(false); + addStyleName(CLASSNAME); } } diff --git a/client/src/com/vaadin/client/ui/orderedlayout/VOrderedLayout.java b/client/src/com/vaadin/client/ui/orderedlayout/VOrderedLayout.java index 7dc816f287..b97ffdc394 100644 --- a/client/src/com/vaadin/client/ui/orderedlayout/VOrderedLayout.java +++ b/client/src/com/vaadin/client/ui/orderedlayout/VOrderedLayout.java @@ -42,8 +42,6 @@ import com.vaadin.ui.themes.BaseTheme; */ public class VOrderedLayout extends FlowPanel { - public static final String CLASSNAME = "v-boxlayout"; - private static final String ALIGN_CLASS_PREFIX = "v-align-"; protected boolean spacing = false; @@ -62,7 +60,7 @@ public class VOrderedLayout extends FlowPanel { * Constructor */ public VOrderedLayout() { - setStyleName(CLASSNAME); + setStyleName(BaseTheme.UI_LAYOUT); setVertical(true); } diff --git a/client/src/com/vaadin/client/ui/orderedlayout/VVerticalLayout.java b/client/src/com/vaadin/client/ui/orderedlayout/VVerticalLayout.java index 3e597afec1..17de447b9a 100644 --- a/client/src/com/vaadin/client/ui/orderedlayout/VVerticalLayout.java +++ b/client/src/com/vaadin/client/ui/orderedlayout/VVerticalLayout.java @@ -20,10 +20,13 @@ package com.vaadin.client.ui.orderedlayout; */ public class VVerticalLayout extends VOrderedLayout { + private static final String CLASSNAME = "v-verticallayout"; + /** * Default constructor */ public VVerticalLayout() { setVertical(true); + addStyleName(CLASSNAME); } } diff --git a/client/src/com/vaadin/client/ui/splitpanel/VAbstractSplitPanel.java b/client/src/com/vaadin/client/ui/splitpanel/VAbstractSplitPanel.java index 61e2748257..ef19b83c20 100644 --- a/client/src/com/vaadin/client/ui/splitpanel/VAbstractSplitPanel.java +++ b/client/src/com/vaadin/client/ui/splitpanel/VAbstractSplitPanel.java @@ -47,6 +47,7 @@ import com.vaadin.client.ui.TouchScrollDelegate; import com.vaadin.client.ui.TouchScrollDelegate.TouchScrollHandler; import com.vaadin.client.ui.VOverlay; import com.vaadin.client.ui.splitpanel.VAbstractSplitPanel.SplitterMoveHandler.SplitterMoveEvent; +import com.vaadin.ui.themes.BaseTheme; public class VAbstractSplitPanel extends ComplexPanel { @@ -117,13 +118,14 @@ public class VAbstractSplitPanel extends ComplexPanel { public VAbstractSplitPanel(int orientation) { setElement(DOM.createDiv()); + setStyleName(BaseTheme.UI_LAYOUT); switch (orientation) { case ORIENTATION_HORIZONTAL: - setStyleName(CLASSNAME + "-horizontal"); + addStyleName(CLASSNAME + "-horizontal"); break; case ORIENTATION_VERTICAL: default: - setStyleName(CLASSNAME + "-vertical"); + addStyleName(CLASSNAME + "-vertical"); break; } // size below will be overridden in update from uidl, initial size diff --git a/server/src/com/vaadin/ui/themes/BaseTheme.java b/server/src/com/vaadin/ui/themes/BaseTheme.java index ea5ba54f53..9148dd063c 100644 --- a/server/src/com/vaadin/ui/themes/BaseTheme.java +++ b/server/src/com/vaadin/ui/themes/BaseTheme.java @@ -61,4 +61,9 @@ public class BaseTheme { */ public static final String UI_WIDGET = "v-widget"; + /** + * Added to all layouts to denote they are layouts + */ + public static final String UI_LAYOUT = "v-layout"; + } \ No newline at end of file -- 2.39.5