Correctly render components that handle their own captions inside a Composite. Fixes #9848tags/8.2.0.alpha1
((DirectionalManagedLayout) childConnector).layoutVertically(); | ((DirectionalManagedLayout) childConnector).layoutVertically(); | ||||
} | } | ||||
} | } | ||||
@Override | |||||
public boolean delegateCaptionHandling() { | |||||
if (!hasChildConnector()) { | |||||
return true; | |||||
} else { | |||||
return getChildConnector().delegateCaptionHandling(); | |||||
} | |||||
} | |||||
} | } |
package com.vaadin.tests.components.composite; | |||||
import com.vaadin.annotations.Widgetset; | |||||
import com.vaadin.server.VaadinRequest; | |||||
import com.vaadin.tests.components.AbstractTestUI; | |||||
import com.vaadin.ui.Composite; | |||||
import com.vaadin.ui.CustomComponent; | |||||
import com.vaadin.ui.Label; | |||||
import com.vaadin.ui.Panel; | |||||
import com.vaadin.ui.VerticalLayout; | |||||
import com.vaadin.ui.themes.ValoTheme; | |||||
@Widgetset("com.vaadin.DefaultWidgetSet") | |||||
public class CompositePanelCaptionUI extends AbstractTestUI { | |||||
@Override | |||||
public void setup(VaadinRequest request) { | |||||
Panel regularPanel = new Panel("Regular ol' panel", | |||||
createPanelContent()); | |||||
CustomComponentPanel customComponentPanel = new CustomComponentPanel(); | |||||
CompositePanel compositePanel = new CompositePanel(); | |||||
addComponents(regularPanel, customComponentPanel, compositePanel); | |||||
} | |||||
private VerticalLayout createPanelContent() { | |||||
Label helloWorld = new Label("Hello world!"); | |||||
helloWorld.addStyleName(ValoTheme.LABEL_HUGE); | |||||
return new VerticalLayout(helloWorld); | |||||
} | |||||
private class CustomComponentPanel extends CustomComponent { | |||||
public CustomComponentPanel() { | |||||
Panel panel = new Panel("CustomComponentPanel", | |||||
createPanelContent()); | |||||
setCompositionRoot(panel); | |||||
} | |||||
} | |||||
private class CompositePanel extends Composite { | |||||
public CompositePanel() { | |||||
Panel panel = new Panel("CompositePanel", createPanelContent()); | |||||
setCompositionRoot(panel); | |||||
} | |||||
} | |||||
} |
/* | |||||
* Copyright 2000-2016 Vaadin Ltd. | |||||
* | |||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not | |||||
* use this file except in compliance with the License. You may obtain a copy of | |||||
* the License at | |||||
* | |||||
* http://www.apache.org/licenses/LICENSE-2.0 | |||||
* | |||||
* Unless required by applicable law or agreed to in writing, software | |||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | |||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | |||||
* License for the specific language governing permissions and limitations under | |||||
* the License. | |||||
*/ | |||||
package com.vaadin.tests.components.composite; | |||||
import org.junit.Test; | |||||
import com.vaadin.testbench.By; | |||||
import com.vaadin.tests.tb3.SingleBrowserTest; | |||||
public class CompositePanelCaptionUITest extends SingleBrowserTest { | |||||
@Test | |||||
public void compositeDoesNotDuplicateCaption() { | |||||
openTestURL(); | |||||
assertElementNotPresent(By.className("v-caption")); | |||||
} | |||||
} |