package org.ovirt.engine.ui.webadmin.section.main.view; import org.ovirt.engine.ui.common.system.ClientStorage; import org.ovirt.engine.ui.common.view.AbstractView; import org.ovirt.engine.ui.common.view.SubTabHelper; import org.ovirt.engine.ui.webadmin.section.main.presenter.MainContentPresenter; import com.google.gwt.user.client.ui.IsWidget; import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.SplitLayoutPanel; import com.google.inject.Inject; public class MainContentView extends AbstractView implements MainContentPresenter.ViewDef { private static final int SPLITTER_THICKNESS = 4; private final SplitLayoutPanel splitPanel; private final SimplePanel mainTabPanelContainer = new SimplePanel(); private final SimplePanel subTabPanelContainer = new SimplePanel(); private final ClientStorage clientStorage; private boolean subTabPanelVisible; @Inject public MainContentView(final ClientStorage clientStorage) { splitPanel = new SplitLayoutPanel(SPLITTER_THICKNESS) { @Override public void onResize() { super.onResize(); if (subTabPanelVisible) { SubTabHelper.storeSubTabHeight(clientStorage, subTabPanelContainer); } } }; this.clientStorage = clientStorage; initWidget(splitPanel); initSplitPanel(); } void initSplitPanel() { splitPanel.add(mainTabPanelContainer); subTabPanelVisible = false; } @Override public void setInSlot(Object slot, IsWidget content) { if (slot == MainContentPresenter.TYPE_SetMainTabPanelContent) { setPanelContent(mainTabPanelContainer, content); } else if (slot == MainContentPresenter.TYPE_SetSubTabPanelContent) { setPanelContent(subTabPanelContainer, content); } else { super.setInSlot(slot, content); } } @Override public void setSubTabPanelVisible(boolean subTabPanelVisible) { if (this.subTabPanelVisible != subTabPanelVisible) { splitPanel.clear(); if (subTabPanelVisible) { splitPanel.addSouth(subTabPanelContainer, SubTabHelper.getSubTabHeight(clientStorage, splitPanel)); splitPanel.add(mainTabPanelContainer); } else { splitPanel.add(mainTabPanelContainer); } this.subTabPanelVisible = subTabPanelVisible; } } }