summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
Diffstat (limited to 'client')
-rw-r--r--client/src/com/vaadin/client/ui/grid/Escalator.java97
-rw-r--r--client/src/com/vaadin/client/ui/grid/Grid.java9
-rw-r--r--client/src/com/vaadin/client/ui/grid/ScrollbarBundle.java26
3 files changed, 115 insertions, 17 deletions
diff --git a/client/src/com/vaadin/client/ui/grid/Escalator.java b/client/src/com/vaadin/client/ui/grid/Escalator.java
index 6ecb07ca06..5686342f86 100644
--- a/client/src/com/vaadin/client/ui/grid/Escalator.java
+++ b/client/src/com/vaadin/client/ui/grid/Escalator.java
@@ -39,6 +39,7 @@ import com.google.gwt.event.logical.shared.AttachEvent;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.ui.UIObject;
import com.google.gwt.user.client.ui.Widget;
import com.google.web.bindery.event.shared.HandlerRegistration;
import com.vaadin.client.Profiler;
@@ -50,6 +51,7 @@ import com.vaadin.client.ui.grid.PositionFunction.TranslatePosition;
import com.vaadin.client.ui.grid.PositionFunction.WebkitTranslate3DPosition;
import com.vaadin.client.ui.grid.ScrollbarBundle.HorizontalScrollbarBundle;
import com.vaadin.client.ui.grid.ScrollbarBundle.VerticalScrollbarBundle;
+import com.vaadin.shared.util.SharedUtil;
/*-
@@ -895,8 +897,6 @@ public class Escalator extends Widget {
}
}
- static final String CLASS_NAME = "v-escalator";
-
private abstract class AbstractRowContainer implements RowContainer {
private EscalatorUpdater updater = EscalatorUpdater.NULL;
@@ -911,6 +911,12 @@ public class Escalator extends Widget {
/** The height of the combined rows in the DOM. */
protected double height = -1;
+ /**
+ * The primary style name of the escalator. Most commonly provided by
+ * Escalator as "v-escalator".
+ */
+ private String primaryStyleName = null;
+
public AbstractRowContainer(final Element rowContainerElement) {
root = rowContainerElement;
}
@@ -1087,7 +1093,7 @@ public class Escalator extends Widget {
final int rowHeight = ROW_HEIGHT_PX;
final Element tr = DOM.createTR();
addedRows.add(tr);
- tr.addClassName(CLASS_NAME + "-row");
+ tr.addClassName(getStylePrimaryName() + "-row");
referenceRow = insertAfterReferenceAndUpdateIt(root, tr,
referenceRow);
@@ -1209,7 +1215,7 @@ public class Escalator extends Widget {
final Element cellElem = DOM.createElement(getCellElementTagName());
cellElem.getStyle().setHeight(height, Unit.PX);
cellElem.getStyle().setWidth(width, Unit.PX);
- cellElem.addClassName(CLASS_NAME + "-cell");
+ cellElem.addClassName(getStylePrimaryName() + "-cell");
return cellElem;
}
@@ -1461,6 +1467,47 @@ public class Escalator extends Widget {
row = row.getNextSiblingElement();
}
}
+
+ /**
+ * The primary style name for the container.
+ *
+ * @param primaryStyleName
+ * the style name to use as prefix for all row and cell style
+ * names.
+ */
+ protected void setStylePrimaryName(String primaryStyleName) {
+ String oldStyle = getStylePrimaryName();
+ if (SharedUtil.equals(oldStyle, primaryStyleName)) {
+ return;
+ }
+
+ this.primaryStyleName = primaryStyleName;
+
+ // Update already rendered rows and cells
+ Node row = root.getFirstChild();
+ while (row != null) {
+ Element rowElement = row.cast();
+ UIObject.setStylePrimaryName(rowElement, primaryStyleName
+ + "-row");
+ Node cell = row.getFirstChild();
+ while (cell != null) {
+ Element cellElement = cell.cast();
+ UIObject.setStylePrimaryName(cellElement, primaryStyleName
+ + "-cell");
+ cell = cell.getNextSibling();
+ }
+ row = row.getNextSibling();
+ }
+ }
+
+ /**
+ * Returns the primary style name of the container.
+ *
+ * @return The primary style name or <code>null</code> if not set.
+ */
+ protected String getStylePrimaryName() {
+ return primaryStyleName;
+ }
}
private abstract class AbstractStaticRowContainer extends
@@ -1525,6 +1572,12 @@ public class Escalator extends Widget {
protected String getCellElementTagName() {
return "th";
}
+
+ @Override
+ public void setStylePrimaryName(String primaryStyleName) {
+ super.setStylePrimaryName(primaryStyleName);
+ UIObject.setStylePrimaryName(root, primaryStyleName + "-header");
+ }
}
private class FooterRowContainer extends AbstractStaticRowContainer {
@@ -1533,6 +1586,12 @@ public class Escalator extends Widget {
}
@Override
+ public void setStylePrimaryName(String primaryStyleName) {
+ super.setStylePrimaryName(primaryStyleName);
+ UIObject.setStylePrimaryName(root, primaryStyleName + "-footer");
+ }
+
+ @Override
protected String getCellElementTagName() {
return "td";
}
@@ -1564,6 +1623,12 @@ public class Escalator extends Widget {
super(bodyElement);
}
+ @Override
+ public void setStylePrimaryName(String primaryStyleName) {
+ super.setStylePrimaryName(primaryStyleName);
+ UIObject.setStylePrimaryName(root, primaryStyleName + "-body");
+ }
+
public void updateEscalatorRowsOnScroll() {
if (visualRowOrder.isEmpty()) {
return;
@@ -2952,7 +3017,6 @@ public class Escalator extends Widget {
final Element root = DOM.createDiv();
setElement(root);
- setStyleName(CLASS_NAME);
root.appendChild(verticalScrollbar.getElement());
root.appendChild(horizontalScrollbar.getElement());
@@ -2961,21 +3025,18 @@ public class Escalator extends Widget {
.setScrollbarThickness(Util.getNativeScrollbarSize());
tableWrapper = DOM.createDiv();
- tableWrapper.setClassName(CLASS_NAME + "-tablewrapper");
+
root.appendChild(tableWrapper);
final Element table = DOM.createTable();
tableWrapper.appendChild(table);
- headElem.setClassName(CLASS_NAME + "-header");
table.appendChild(headElem);
-
- bodyElem.setClassName(CLASS_NAME + "-body");
table.appendChild(bodyElem);
-
- footElem.setClassName(CLASS_NAME + "-footer");
table.appendChild(footElem);
+ setStylePrimaryName("v-escalator");
+
/*
* Size calculations work only after the Escalator has been attached to
* the DOM. It doesn't matter if the table is populated or not by this
@@ -3479,4 +3540,18 @@ public class Escalator extends Widget {
recalculateElementSizes();
}
}
+
+ @Override
+ public void setStylePrimaryName(String style) {
+ super.setStylePrimaryName(style);
+
+ verticalScrollbar.setStylePrimaryName(style);
+ horizontalScrollbar.setStylePrimaryName(style);
+
+ UIObject.setStylePrimaryName(tableWrapper, style + "-tablewrapper");
+
+ header.setStylePrimaryName(style);
+ body.setStylePrimaryName(style);
+ footer.setStylePrimaryName(style);
+ }
}
diff --git a/client/src/com/vaadin/client/ui/grid/Grid.java b/client/src/com/vaadin/client/ui/grid/Grid.java
index 8f0a2e06bf..a78601181a 100644
--- a/client/src/com/vaadin/client/ui/grid/Grid.java
+++ b/client/src/com/vaadin/client/ui/grid/Grid.java
@@ -476,6 +476,8 @@ public class Grid<T> extends Composite {
public Grid() {
initWidget(escalator);
+ setStylePrimaryName("v-grid");
+
escalator.getHeader().setEscalatorUpdater(createHeaderUpdater());
escalator.getBody().setEscalatorUpdater(createBodyUpdater());
escalator.getFooter().setEscalatorUpdater(createFooterUpdater());
@@ -498,6 +500,13 @@ public class Grid<T> extends Composite {
}
+ @Override
+ public void setStylePrimaryName(String style) {
+ super.setStylePrimaryName(style);
+ escalator.setStylePrimaryName(style);
+
+ }
+
/**
* Creates the header updater that updates the escalator header rows from
* the column and column group rows.
diff --git a/client/src/com/vaadin/client/ui/grid/ScrollbarBundle.java b/client/src/com/vaadin/client/ui/grid/ScrollbarBundle.java
index 82c2c56117..f0e966176c 100644
--- a/client/src/com/vaadin/client/ui/grid/ScrollbarBundle.java
+++ b/client/src/com/vaadin/client/ui/grid/ScrollbarBundle.java
@@ -31,7 +31,6 @@ import com.google.gwt.user.client.Element;
* @see HorizontalScrollbarBundle
*/
abstract class ScrollbarBundle {
- private static final String CLASS_NAME = Escalator.CLASS_NAME + "-scroller";
/**
* The pixel size for OSX's invisible scrollbars.
@@ -50,8 +49,11 @@ abstract class ScrollbarBundle {
* @see VerticalScrollbarBundle#getElement()
*/
final static class VerticalScrollbarBundle extends ScrollbarBundle {
- public VerticalScrollbarBundle() {
- root.addClassName(CLASS_NAME + "-vertical");
+
+ @Override
+ public void setStylePrimaryName(String primaryStyleName) {
+ super.setStylePrimaryName(primaryStyleName);
+ root.addClassName(primaryStyleName + "-scroller-vertical");
}
@Override
@@ -111,8 +113,11 @@ abstract class ScrollbarBundle {
* @see HorizontalScrollbarBundle#getElement()
*/
final static class HorizontalScrollbarBundle extends ScrollbarBundle {
- protected HorizontalScrollbarBundle() {
- root.addClassName(CLASS_NAME + "-horizontal");
+
+ @Override
+ public void setStylePrimaryName(String primaryStyleName) {
+ super.setStylePrimaryName(primaryStyleName);
+ root.addClassName(primaryStyleName + "-scroller-horizontal");
}
@Override
@@ -172,7 +177,16 @@ abstract class ScrollbarBundle {
private ScrollbarBundle() {
root.appendChild(scrollSizeElement);
- root.setClassName(CLASS_NAME);
+ }
+
+ /**
+ * Sets the primary style name
+ *
+ * @param primaryStyleName
+ * The primary style name to use
+ */
+ public void setStylePrimaryName(String primaryStyleName) {
+ root.setClassName(primaryStyleName + "-scroller");
}
/**