From 75b045efd11c82af56bc29d98ac25f287f896c4d Mon Sep 17 00:00:00 2001 From: John Ahlroos Date: Wed, 17 Oct 2012 15:58:06 +0300 Subject: [PATCH] Fixed multiple stylename handling #9983 Change-Id: Iae0acde0c8cba4b7c1fc4166bb19f7f619c3afd5 --- .../client/ui/AbstractComponentConnector.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/client/src/com/vaadin/client/ui/AbstractComponentConnector.java b/client/src/com/vaadin/client/ui/AbstractComponentConnector.java index 6ff51b3766..8b6c4fb8aa 100644 --- a/client/src/com/vaadin/client/ui/AbstractComponentConnector.java +++ b/client/src/com/vaadin/client/ui/AbstractComponentConnector.java @@ -273,7 +273,7 @@ public abstract class AbstractComponentConnector extends AbstractConnector if (state.primaryStyleName != null) { /* * We overwrite the widgets primary stylename if state defines a - * primary stylename. Clears all previous stylenames. + * primary stylename. */ getWidget().setStylePrimaryName(state.primaryStyleName); } @@ -293,24 +293,24 @@ public abstract class AbstractComponentConnector extends AbstractConnector // add additional user defined style names as class names, prefixed with // component default class name. remove nonexistent style names. if (ComponentStateUtil.hasStyles(state)) { - // add new style names - List newStyles = new ArrayList(); - newStyles.addAll(state.styles); - newStyles.removeAll(styleNames); - for (String newStyle : newStyles) { - setWidgetStyleName(newStyle, true); - setWidgetStyleNameWithPrefix(primaryStyleName + "-", newStyle, - true); - } - // remove nonexistent style names - styleNames.removeAll(state.styles); + + // Remove all old stylenames for (String oldStyle : styleNames) { setWidgetStyleName(oldStyle, false); setWidgetStyleNameWithPrefix(primaryStyleName + "-", oldStyle, false); } + + // add new style names + for (String newStyle : state.styles) { + setWidgetStyleName(newStyle, true); + setWidgetStyleNameWithPrefix(primaryStyleName + "-", newStyle, + true); + } + styleNames.clear(); styleNames.addAll(state.styles); + } else { // remove all old style names for (String oldStyle : styleNames) { -- 2.39.5