You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by gb...@apache.org on 2010/03/24 20:45:13 UTC

svn commit: r927164 - /pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java

Author: gbrown
Date: Wed Mar 24 19:45:13 2010
New Revision: 927164

URL: http://svn.apache.org/viewvc?rev=927164&view=rev
Log:
Invalidate TableView on data changes when at least one column has a default width.

Modified:
    pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java

Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java?rev=927164&r1=927163&r2=927164&view=diff
==============================================================================
--- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java (original)
+++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTableViewSkin.java Wed Mar 24 19:45:13 2010
@@ -79,6 +79,7 @@ public class TerraTableViewSkin extends 
     private ArrayList<Integer> columnWidths = null;
     private ArrayList<Integer> rowHeights = null;
     private int fixedRowHeight = -1;
+    private int defaultWidthColumnCount = 0;
 
     private int highlightedIndex = -1;
     private int editIndex = -1;
@@ -278,8 +279,8 @@ public class TerraTableViewSkin extends 
                 rowHeights.add(rowY);
                 rowY += rowHeight + 1;
             }
-            rowHeights.add(rowY);
 
+            rowHeights.add(rowY);
         } else {
             fixedRowHeight = calculateFixedRowHeight(tableView);
         }
@@ -1365,11 +1366,25 @@ public class TerraTableViewSkin extends 
     // Table view column events
     @Override
     public void columnInserted(TableView tableView, int index) {
+        TableView.Column column = tableView.getColumns().get(index);
+
+        if (column.getWidth() == -1) {
+            defaultWidthColumnCount++;
+        }
+
         invalidateComponent();
     }
 
     @Override
     public void columnsRemoved(TableView tableView, int index, Sequence<TableView.Column> columns) {
+        for (int i = 0, n = columns.getLength(); i < n; i++) {
+            TableView.Column column = columns.get(i);
+
+            if (column.getWidth() == -1) {
+                defaultWidthColumnCount--;
+            }
+        }
+
         invalidateComponent();
     }
 
@@ -1385,6 +1400,12 @@ public class TerraTableViewSkin extends 
 
     @Override
     public void columnWidthChanged(TableView.Column column, int previousWidth, boolean previousRelative)  {
+        if (column.getWidth() == -1) {
+            defaultWidthColumnCount++;
+        } else {
+            defaultWidthColumnCount--;
+        }
+
         invalidateComponent();
     }
 
@@ -1416,7 +1437,8 @@ public class TerraTableViewSkin extends 
 
     @Override
     public void rowUpdated(TableView tableView, int index) {
-        if (variableRowHeight) {
+        if (variableRowHeight
+            || defaultWidthColumnCount > 0) {
             invalidateComponent();
         } else {
             repaintComponent(getRowBounds(index));