Hello,
Setting pixelsize on tabPanel did not resolve this issue.
I reduce my code to focus on this issue.
The behaviour is the following :
- I am adding two different instances of the same custom composite in a tabpanel
- The first tab is correctly rendered
- The second tab is not
Here is a screenshot :
screenshot.jpg
Here is sample code which allow to reproduce the behaviour
Java code of view integrating tabpanel
Code:
public class MainViewImpl extends Composite implements MainView {
interface ViewUiBinder extends UiBinder<Widget, MainViewImpl> {
}
private ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class);
@UiField
TabPanel mainPanel;
public MainViewImpl() {
initWidget(uiBinder.createAndBindUi(this));
mainPanel = new TabPanel();
mainPanel.add(new ActivityWidget(), "Tab1");
mainPanel.add(new ActivityWidget(), "Tab2");
}
}
xml file corresponding
Code:
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:d="urn:import:com.google.gwt.user.datepicker.client"
xmlns:gxt="urn:import:com.sencha.gxt.widget.core.client"
xmlns:container="urn:import:com.sencha.gxt.widget.core.client.container"
xmlns:toolbar="urn:import:com.sencha.gxt.widget.core.client.toolbar"
xmlns:button="urn:import:com.sencha.gxt.widget.core.client.button"
xmlns:grid="urn:import:com.sencha.gxt.widget.core.client.grid"
xmlns:form="urn:import:com.sencha.gxt.widget.core.client.form"
xmlns:l="urn:import:com.cacf.magellan.gwt.client.component.label"
xmlns:profile="urn:import:com.cacf.iaf.client.main.profile">
<!-- Feuille de style du framework BluePrint -->
<ui:with type="com.cacf.magellan.gwt.client.resource.BluePrint"
field="fwk"></ui:with>
<ui:style>
/* Style spécifique à l'écran */
.sep {
margin-top: 20px;
}
</ui:style>
<g:HTMLPanel styleName="{fwk.style.container}" height="500" width="950">
<container:VerticalLayoutContainer>
<gxt:TabPanel ui:field="mainPanel" addStyleNames="margin-10" pixelSize="900,450">
</gxt:TabPanel>
</container:VerticalLayoutContainer>
</g:HTMLPanel>
</ui:UiBinder>
This is java code for the widget in tabs
Code:
public class ActivityWidget extends Composite{
//Vue
private static ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class);
interface ViewUiBinder extends UiBinder<Widget, ActivityWidget> {
}
public ActivityWidget(){
initWidget(uiBinder.createAndBindUi(this));
}
}
and xml file for binding
Code:
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:gxt="urn:import:com.sencha.gxt.widget.core.client"
xmlns:container="urn:import:com.sencha.gxt.widget.core.client.container"
xmlns:button="urn:import:com.sencha.gxt.widget.core.client.button">
<container:HorizontalLayoutContainer>
<container:child>
<gxt:FramedPanel ui:field="activityPanel" width="45%"position="0,0">
<container:VerticalLayoutContainer>
<container:child>
<button:TextButton text="Ajouter" ui:field="activityAdd"/>
</container:child>
<container:child>
<button:TextButton text="Editer" ui:field="activityEdit" enabled="false"/>
</container:child>
<container:child>
<button:TextButton text="Supprimer" ui:field="activityDelete" enabled="false"/>
</container:child>
</container:VerticalLayoutContainer>
</gxt:FramedPanel>
</container:child>
<container:child>
<gxt:FramedPanel ui:field="activityDnisPanel" width="40%" position="350,0">
<container:VerticalLayoutContainer>
<container:child>
<button:TextButton text="Ajouter" ui:field="activityDnisAdd"/>
</container:child>
<container:child>
<button:TextButton text="Editer" ui:field="activityDnisEdit" enabled="false"/>
</container:child>
<container:child>
<button:TextButton text="Supprimer" ui:field="activityDnisDelete" enabled="false"/>
</container:child>
</container:VerticalLayoutContainer>
</gxt:FramedPanel>
</container:child>
</container:HorizontalLayoutContainer>
</ui:UiBinder>
Thanks for help
[/CODE]