]> source.dussan.org Git - vaadin-framework.git/commitdiff
even/row classnames now stable + bit cleaner implementation
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Fri, 27 Aug 2010 12:31:51 +0000 (12:31 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Fri, 27 Aug 2010 12:31:51 +0000 (12:31 +0000)
svn changeset:14641/svn branch:6.4

src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java

index 4e7590b7b004ff38e4544e443633165806c63f7c..58700642480726ee6e97699e35bfa00fea530788 100644 (file)
@@ -175,7 +175,7 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler,
     /**
      * Represents a select range of rows
      */
-    private class SelectionRange {
+    private static class SelectionRange {
         /**
          * The starting key of the range
          */
@@ -3279,15 +3279,7 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler,
         }
 
         private void addRowBeforeFirstRendered(VScrollTableRow row) {
-            VScrollTableRow first = null;
-            if (renderedRows.size() > 0) {
-                first = (VScrollTableRow) renderedRows.get(0);
-            }
-            if (first != null && first.getStyleName().indexOf("-odd") == -1) {
-                row.addStyleName(CLASSNAME + "-row-odd");
-            } else {
-                row.addStyleName(CLASSNAME + "-row");
-            }
+            row.setIndex(firstRendered - 1);
             if (row.isSelected()) {
                 row.addStyleName("v-selected");
             }
@@ -3295,19 +3287,11 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler,
                     tBodyElement.getFirstChild());
             adopt(row);
             renderedRows.add(0, row);
+            int i = firstRendered;
         }
 
         private void addRow(VScrollTableRow row) {
-            VScrollTableRow last = null;
-            if (renderedRows.size() > 0) {
-                last = (VScrollTableRow) renderedRows
-                        .get(renderedRows.size() - 1);
-            }
-            if (last != null && last.getStyleName().indexOf("-odd") == -1) {
-                row.addStyleName(CLASSNAME + "-row-odd");
-            } else {
-                row.addStyleName(CLASSNAME + "-row");
-            }
+            row.setIndex(firstRendered + renderedRows.size());
             if (row.isSelected()) {
                 row.addStyleName("v-selected");
             }
@@ -3562,6 +3546,9 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler,
             private String[] actionKeys = null;
             private final TableRowElement rowElement;
             private boolean mDown;
+            private static final String ROW_CLASSNAME_EVEN = CLASSNAME + "-row";
+            private static final String ROW_CLASSNAME_ODD = CLASSNAME
+                    + "-row-odd";
 
             private VScrollTableRow(int rowKey) {
                 this.rowKey = rowKey;
@@ -3572,6 +3559,22 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler,
                         | Event.ONKEYDOWN);
             }
 
+            /**
+             * Sets the index of the row in the whole table. Currently used just
+             * to set even/odd classname
+             * 
+             * @param indexInWholeTable
+             */
+            private void setIndex(int indexInWholeTable) {
+                boolean isOdd = indexInWholeTable % 2 == 0;
+                if (isOdd) {
+                    addStyleName(ROW_CLASSNAME_ODD);
+                } else {
+                    addStyleName(ROW_CLASSNAME_EVEN);
+                }
+
+            }
+
             private void paintComponent(Paintable p, UIDL uidl) {
                 if (isAttached()) {
                     p.updateFromUIDL(uidl, client);