ソースを参照

Implement SimpleManagedLayout for CompositeConnector (#9791)

Fixes #9788
tags/8.1.2
Teemu Suo-Anttila 6年前
コミット
69fb1c9895

+ 19
- 4
client/src/main/java/com/vaadin/client/ui/composite/CompositeConnector.java ファイルの表示

@@ -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();
}
}
}

+ 24
- 0
uitest/src/main/java/com/vaadin/tests/components/tree/TreeOnBrowserResize.java ファイルの表示

@@ -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);
}

}

+ 41
- 0
uitest/src/test/java/com/vaadin/tests/components/tree/TreeOnBrowserResizeTest.java ファイルの表示

@@ -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());
}

}

読み込み中…
キャンセル
保存