From 7691b19584d06dd78fc094bb23cfe10df8ad2cde Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Tue, 10 Apr 2012 12:46:38 +0000 Subject: Allow splitter position to be float to avoid rounding errors (#4296) svn changeset:23419/svn branch:6.8 --- .../vaadin/terminal/gwt/client/ui/VSplitPanel.java | 5 ++-- src/com/vaadin/ui/AbstractSplitPanel.java | 35 ++++++++++++++-------- 2 files changed, 24 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java b/src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java index 8715cfffca..e013ba4263 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java @@ -804,10 +804,9 @@ public class VSplitPanel extends ComplexPanel implements Container, * Updates the new split position back to server. */ private void updateSplitPositionToServer() { - int pos = 0; + float pos = 0; if (position.indexOf("%") > 0) { - pos = Math.round(Float.valueOf(position.substring(0, - position.length() - 1))); + pos = Float.valueOf(position.substring(0, position.length() - 1)); } else { pos = Integer .parseInt(position.substring(0, position.length() - 2)); diff --git a/src/com/vaadin/ui/AbstractSplitPanel.java b/src/com/vaadin/ui/AbstractSplitPanel.java index adb84f9d9d..b507b88478 100644 --- a/src/com/vaadin/ui/AbstractSplitPanel.java +++ b/src/com/vaadin/ui/AbstractSplitPanel.java @@ -35,7 +35,7 @@ public abstract class AbstractSplitPanel extends AbstractLayout { private Component secondComponent; - private int pos = 50; + private float pos = 50; private int posUnit = UNITS_PERCENTAGE; @@ -250,9 +250,10 @@ public abstract class AbstractSplitPanel extends AbstractLayout { * * @param pos * the new size of the first region in the unit that was last - * used (default is percentage) + * used (default is percentage). Fractions are only allowed when + * unit is percentage. */ - public void setSplitPosition(int pos) { + public void setSplitPosition(float pos) { setSplitPosition(pos, posUnit, true, false); } @@ -261,12 +262,14 @@ public abstract class AbstractSplitPanel extends AbstractLayout { * * @param pos * the new size of the region in the unit that was last used - * (default is percentage) + * (default is percentage). Fractions are only allowed when unit + * is percentage. + * * @param reverse * if set to true the split splitter position is measured by the * second region else it is measured by the first region */ - public void setSplitPosition(int pos, boolean reverse) { + public void setSplitPosition(float pos, boolean reverse) { setSplitPosition(pos, posUnit, true, reverse); } @@ -274,11 +277,12 @@ public abstract class AbstractSplitPanel extends AbstractLayout { * Moves the position of the splitter with given position and unit. * * @param pos - * size of the first region + * the new size of the first region. Fractions are only allowed + * when unit is percentage. * @param unit * the unit (from {@link Sizeable}) in which the size is given. */ - public void setSplitPosition(int pos, int unit) { + public void setSplitPosition(float pos, int unit) { setSplitPosition(pos, unit, true, false); } @@ -286,7 +290,8 @@ public abstract class AbstractSplitPanel extends AbstractLayout { * Moves the position of the splitter with given position and unit. * * @param pos - * size of the first region + * the new size of the first region. Fractions are only allowed + * when unit is percentage. * @param unit * the unit (from {@link Sizeable}) in which the size is given. * @param reverse @@ -294,7 +299,7 @@ public abstract class AbstractSplitPanel extends AbstractLayout { * second region else it is measured by the first region * */ - public void setSplitPosition(int pos, int unit, boolean reverse) { + public void setSplitPosition(float pos, int unit, boolean reverse) { setSplitPosition(pos, unit, true, reverse); } @@ -304,7 +309,7 @@ public abstract class AbstractSplitPanel extends AbstractLayout { * * @return position of the splitter */ - public int getSplitPosition() { + public float getSplitPosition() { return pos; } @@ -321,7 +326,8 @@ public abstract class AbstractSplitPanel extends AbstractLayout { * Moves the position of the splitter. * * @param pos - * the new size of the first region + * the new size of the first region. Fractions are only allowed + * when unit is percentage. * @param unit * the unit (from {@link Sizeable}) in which the size is given. * @param repaintNotNeeded @@ -329,12 +335,15 @@ public abstract class AbstractSplitPanel extends AbstractLayout { * position info has come from the client side, thus it already * knows the position. */ - private void setSplitPosition(int pos, int unit, boolean repaintNeeded, + private void setSplitPosition(float pos, int unit, boolean repaintNeeded, boolean reverse) { if (unit != UNITS_PERCENTAGE && unit != UNITS_PIXELS) { throw new IllegalArgumentException( "Only percentage and pixel units are allowed"); } + if (unit != UNITS_PERCENTAGE) { + pos = Math.round(pos); + } this.pos = pos; posUnit = unit; posReversed = reverse; @@ -377,7 +386,7 @@ public abstract class AbstractSplitPanel extends AbstractLayout { super.changeVariables(source, variables); if (variables.containsKey("position") && !isLocked()) { - Integer newPos = (Integer) variables.get("position"); + Float newPos = (Float) variables.get("position"); setSplitPosition(newPos, posUnit, posReversed); } -- cgit v1.2.3 From 64f452f0aa3c3f104e363ac4d39cf62a8a832445 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Tue, 10 Apr 2012 21:27:32 +0300 Subject: Internally remove component before detach listener is called --- src/com/vaadin/ui/AbsoluteLayout.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src') diff --git a/src/com/vaadin/ui/AbsoluteLayout.java b/src/com/vaadin/ui/AbsoluteLayout.java index d347b74829..a65b20a54e 100644 --- a/src/com/vaadin/ui/AbsoluteLayout.java +++ b/src/com/vaadin/ui/AbsoluteLayout.java @@ -15,7 +15,6 @@ import com.vaadin.event.LayoutEvents.LayoutClickNotifier; import com.vaadin.terminal.Sizeable; import com.vaadin.terminal.gwt.client.Connector; import com.vaadin.terminal.gwt.client.MouseEventDetails; -import com.vaadin.terminal.gwt.client.ui.AbsoluteLayoutConnector; import com.vaadin.terminal.gwt.client.ui.AbsoluteLayoutConnector.AbsoluteLayoutServerRPC; import com.vaadin.terminal.gwt.client.ui.AbsoluteLayoutConnector.AbsoluteLayoutState; import com.vaadin.terminal.gwt.client.ui.LayoutClickEventHandler; @@ -179,8 +178,8 @@ public class AbsoluteLayout extends AbstractLayout implements */ @Override public void removeComponent(Component c) { - super.removeComponent(c); internalRemoveComponent(c); + super.removeComponent(c); requestRepaint(); } -- cgit v1.2.3 From 38cd0fd147868f3bec247a53b655104c9dd24120 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Tue, 10 Apr 2012 20:38:21 +0000 Subject: Fixed bug in calculating % size when using reverse position (#4296) svn changeset:23426/svn branch:6.8 --- src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java b/src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java index e013ba4263..51e378cc0c 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java @@ -584,7 +584,7 @@ public class VSplitPanel extends ComplexPanel implements Container, } // Reversed position if (positionReversed) { - pos = getOffsetWidth() - pos; + pos = getOffsetWidth() - pos - getSplitterSize(); } position = (pos / getOffsetWidth() * 100) + "%"; } else { -- cgit v1.2.3 From 11ca9d3f0a97474f117546d9310f0d4a5cbf8ec6 Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Tue, 10 Apr 2012 14:54:21 +0300 Subject: Remove unused field and unused import --- src/com/vaadin/terminal/gwt/client/ui/VPanel.java | 3 --- 1 file changed, 3 deletions(-) (limited to 'src') diff --git a/src/com/vaadin/terminal/gwt/client/ui/VPanel.java b/src/com/vaadin/terminal/gwt/client/ui/VPanel.java index f46e694604..26eb5cb798 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VPanel.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VPanel.java @@ -14,7 +14,6 @@ import com.google.gwt.user.client.Event; import com.google.gwt.user.client.ui.SimplePanel; import com.vaadin.terminal.gwt.client.ApplicationConnection; import com.vaadin.terminal.gwt.client.Focusable; -import com.vaadin.terminal.gwt.client.UIDL; import com.vaadin.terminal.gwt.client.ui.ShortcutActionHandler.ShortcutActionHandlerOwner; public class VPanel extends SimplePanel implements ShortcutActionHandlerOwner, @@ -40,8 +39,6 @@ public class VPanel extends SimplePanel implements ShortcutActionHandlerOwner, ShortcutActionHandler shortcutHandler; - private String width = ""; - int scrollTop; int scrollLeft; -- cgit v1.2.3 From 7a6ddaa5ce4cd97fd2278287cf2b6b8c7c9bcdd9 Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Tue, 10 Apr 2012 15:52:40 +0300 Subject: Disable excessive debug logging --- .../vaadin/terminal/gwt/client/ApplicationConnection.java | 12 ++++++++---- .../gwt/client/ui/AbstractComponentContainerConnector.java | 2 +- src/com/vaadin/terminal/gwt/client/ui/AbstractConnector.java | 5 ++++- 3 files changed, 13 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java b/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java index 349fef7194..ca771cab39 100644 --- a/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java +++ b/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java @@ -122,6 +122,8 @@ public class ApplicationConnection { */ public static final String UIDL_REFRESH_TOKEN = "Vaadin-Refresh"; + private final boolean debugLogging = false; + // will hold the UIDL security key (for XSS protection) once received private String uidlSecurityKey = "init"; @@ -1002,11 +1004,13 @@ public class ApplicationConnection { public void execute() { MultiStepDuration updateDuration = new MultiStepDuration(); - VConsole.log(" * Dumping UIDL to the console"); - VConsole.dirUIDL(json, configuration); + if (debugLogging) { + VConsole.log(" * Dumping UIDL to the console"); + VConsole.dirUIDL(json, configuration); - updateDuration.logDuration( - " * Dumping UIDL to the console completed", 10); + updateDuration.logDuration( + " * Dumping UIDL to the console completed", 10); + } if (json.containsKey("locales")) { VConsole.log(" * Handling locales"); diff --git a/src/com/vaadin/terminal/gwt/client/ui/AbstractComponentContainerConnector.java b/src/com/vaadin/terminal/gwt/client/ui/AbstractComponentContainerConnector.java index 7d70729147..acf525bffb 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/AbstractComponentContainerConnector.java +++ b/src/com/vaadin/terminal/gwt/client/ui/AbstractComponentContainerConnector.java @@ -37,7 +37,7 @@ public abstract class AbstractComponentContainerConnector extends List children; - private boolean debugLogging = false; + private final boolean debugLogging = false; /** * Default constructor diff --git a/src/com/vaadin/terminal/gwt/client/ui/AbstractConnector.java b/src/com/vaadin/terminal/gwt/client/ui/AbstractConnector.java index 9b32399271..12e19b2a70 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/AbstractConnector.java +++ b/src/com/vaadin/terminal/gwt/client/ui/AbstractConnector.java @@ -177,7 +177,10 @@ public abstract class AbstractConnector implements ServerConnector, * @see com.vaadin.terminal.gwt.client.ServerConnector#onUnregister() */ public void onUnregister() { - VConsole.log("Unregistered connector " + Util.getConnectorString(this)); + if (debugLogging) { + VConsole.log("Unregistered connector " + + Util.getConnectorString(this)); + } } } -- cgit v1.2.3 From 6e67c8ff6378a033e4a9767b12a3b27b1fb3b578 Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Wed, 11 Apr 2012 09:31:19 +0300 Subject: Don't use deferred widget loading as it is currently broken (#8636) --- src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml b/src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml index 854464f1ee..f65b4c51e7 100644 --- a/src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml +++ b/src/com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml @@ -37,7 +37,7 @@ + class="com.vaadin.terminal.gwt.widgetsetutils.EagerWidgetMapGenerator"> -- cgit v1.2.3 From bd927f09ed2b73215527bd2e2b5d96eb5d1140f0 Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Wed, 11 Apr 2012 09:32:11 +0300 Subject: Log deferred widget loading time if it is slow --- src/com/vaadin/terminal/gwt/client/ApplicationConnection.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java b/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java index ca771cab39..6148988b7d 100644 --- a/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java +++ b/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java @@ -961,7 +961,7 @@ public class ApplicationConnection { return; } - MultiStepDuration handleUIDLDuration = new MultiStepDuration(); + final MultiStepDuration handleUIDLDuration = new MultiStepDuration(); // Get security key if (json.containsKey(UIDL_SECURITY_TOKEN_ID)) { @@ -1002,6 +1002,9 @@ public class ApplicationConnection { Command c = new Command() { public void execute() { + handleUIDLDuration.logDuration(" * Loading widgets completed", + 10); + MultiStepDuration updateDuration = new MultiStepDuration(); if (debugLogging) { -- cgit v1.2.3