@@ -20,8 +20,10 @@ import com.google.gwt.user.client.ui.Label; | |||
import com.google.gwt.user.client.ui.Widget; | |||
import com.vaadin.client.ComponentConnector; | |||
import com.vaadin.client.ConnectorHierarchyChangeEvent; | |||
import com.vaadin.client.DirectionalManagedLayout; | |||
import com.vaadin.client.HasComponentsConnector; | |||
import com.vaadin.client.ui.AbstractHasComponentsConnector; | |||
import com.vaadin.client.ui.SimpleManagedLayout; | |||
import com.vaadin.shared.AbstractComponentState; | |||
import com.vaadin.shared.MouseEventDetails; | |||
import com.vaadin.shared.ui.Connect; | |||
@@ -35,7 +37,8 @@ import com.vaadin.ui.Composite; | |||
* @since 8.1 | |||
*/ | |||
@Connect(value = Composite.class, loadStyle = LoadStyle.EAGER) | |||
public class CompositeConnector extends AbstractHasComponentsConnector { | |||
public class CompositeConnector extends AbstractHasComponentsConnector | |||
implements SimpleManagedLayout { | |||
private ComponentConnector childConnector; | |||
@@ -97,8 +100,20 @@ public class CompositeConnector extends AbstractHasComponentsConnector { | |||
} | |||
@Override | |||
protected void sendContextClickEvent(MouseEventDetails details, EventTarget eventTarget) { | |||
//Do nothing, because Composite is not an actual component, and the event | |||
//must be handled in inner components. | |||
protected void sendContextClickEvent(MouseEventDetails details, | |||
EventTarget eventTarget) { | |||
// Do nothing, because Composite is not an actual component, and the | |||
// event must be handled in inner components. | |||
} | |||
@Override | |||
public void layout() { | |||
// Pass on the layout to the appropriate method in child connector | |||
if (childConnector instanceof SimpleManagedLayout) { | |||
((SimpleManagedLayout) childConnector).layout(); | |||
} else if (childConnector instanceof DirectionalManagedLayout) { | |||
((DirectionalManagedLayout) childConnector).layoutHorizontally(); | |||
((DirectionalManagedLayout) childConnector).layoutVertically(); | |||
} | |||
} | |||
} |
@@ -0,0 +1,24 @@ | |||
package com.vaadin.tests.components.tree; | |||
import com.vaadin.annotations.Widgetset; | |||
import com.vaadin.server.VaadinRequest; | |||
import com.vaadin.tests.components.AbstractTestUI; | |||
import com.vaadin.ui.Tree; | |||
@Widgetset("com.vaadin.DefaultWidgetSet") | |||
public class TreeOnBrowserResize extends AbstractTestUI { | |||
@Override | |||
protected void setup(VaadinRequest request) { | |||
Tree<String> tree = new Tree<>(); | |||
tree.setItems( | |||
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. " | |||
+ "Ut a ante congue, dictum elit vitae, mollis justo. " | |||
+ "Nunc porttitor, eros et eleifend accumsan, quam dolor venenatis tortor, " | |||
+ "in euismod lorem massa quis nisi. In pretium viverra tincidunt. "); | |||
tree.setSizeFull(); | |||
addComponent(tree); | |||
} | |||
} |
@@ -0,0 +1,41 @@ | |||
package com.vaadin.tests.components.tree; | |||
import org.junit.Assert; | |||
import org.junit.Test; | |||
import org.openqa.selenium.Dimension; | |||
import com.vaadin.testbench.elements.TreeGridElement; | |||
import com.vaadin.tests.tb3.MultiBrowserTest; | |||
public class TreeOnBrowserResizeTest extends MultiBrowserTest { | |||
@Test | |||
public void testTreeSizeOnBrowserShrink() { | |||
openTestURL(); | |||
int originalWidth = $(TreeGridElement.class).first().getTableWrapper() | |||
.getSize().getWidth(); | |||
getDriver().manage().window().setSize(new Dimension(600, 800)); | |||
Assert.assertTrue("Tree size should decrease.", | |||
originalWidth > $(TreeGridElement.class).first() | |||
.getTableWrapper().getSize().getWidth()); | |||
} | |||
@Test | |||
public void testTreeSizeOnBrowserEnlarge() { | |||
getDriver().manage().window().setSize(new Dimension(600, 800)); | |||
openTestURL(); | |||
int originalWidth = $(TreeGridElement.class).first().getTableWrapper() | |||
.getSize().getWidth(); | |||
getDriver().manage().window().setSize(new Dimension(800, 800)); | |||
Assert.assertTrue("Tree size should increase.", | |||
originalWidth < $(TreeGridElement.class).first() | |||
.getTableWrapper().getSize().getWidth()); | |||
} | |||
} |