Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDirk Fauth2017-11-20 18:32:22 +0000
committerDirk Fauth2017-11-20 18:32:22 +0000
commitbfd90eacf838561a98de651d3ab208657a7c7e9f (patch)
treea15a93d83ed3102b078584a0ae102f9c772bfebe
parent3be9f4125ffcc06a4f4081b675874439b021ed58 (diff)
downloadorg.eclipse.nebula.widgets.nattable-bfd90eacf838561a98de651d3ab208657a7c7e9f.tar.gz
org.eclipse.nebula.widgets.nattable-bfd90eacf838561a98de651d3ab208657a7c7e9f.tar.xz
org.eclipse.nebula.widgets.nattable-bfd90eacf838561a98de651d3ab208657a7c7e9f.zip
Bug 525551 - SizeConfig does not invalidate cache when DPI converter is
set Change-Id: Ic141ba048bcf592585fc04958dfc5cc50c7725b9 Signed-off-by: Dirk Fauth <dirk.fauth@googlemail.com>
-rw-r--r--org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/layer/SizeConfigTest.java29
-rw-r--r--org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/layer/SizeConfig.java1
2 files changed, 30 insertions, 0 deletions
diff --git a/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/layer/SizeConfigTest.java b/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/layer/SizeConfigTest.java
index 6c287675..b8434af7 100644
--- a/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/layer/SizeConfigTest.java
+++ b/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/layer/SizeConfigTest.java
@@ -140,4 +140,33 @@ public class SizeConfigTest {
assertEquals(50, sc.getSize(3));
assertTrue(sc.isPositionResizable(2));
}
+
+ @Test
+ public void testAggregateSizeWithScaling() {
+ SizeConfig sc = new SizeConfig(100);
+
+ // set some specific sizes to avoid that sc.isAllPositionsSameSize
+ // does not return true and aggregate values are not determined
+ sc.setSize(0, 50);
+ sc.setSize(1, 50);
+
+ int nCols = 20;
+
+ // cache the initial aggregate sizes of last and second last column.
+ // this is done when the DataLayer is initialized
+ int cachedAggregateSize = sc.getAggregateSize(nCols - 1);
+
+ // this is done when the NatTable itself is initialized
+ sc.setDpiConverter(new AbstractDpiConverter() {
+ @Override
+ protected void readDpiFromDisplay() {
+ // programatically set a dpi > 96
+ this.dpi = (int) (96 * 1.25);
+ }
+ });
+
+ int aggregateSize = sc.getAggregateSize(nCols - 1);
+
+ assertTrue("aggregate size of last column is same as cached aggregate size", aggregateSize != cachedAggregateSize);
+ }
}
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/layer/SizeConfig.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/layer/SizeConfig.java
index 81fb0cc1..11dee53b 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/layer/SizeConfig.java
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/layer/SizeConfig.java
@@ -1118,6 +1118,7 @@ public class SizeConfig implements IPersistable {
*/
public void setDpiConverter(IDpiConverter dpiConverter) {
this.dpiConverter = dpiConverter;
+ this.isAggregatedSizeCacheValid = false;
}
/**

Back to the top