package org.ovirt.engine.ui.common.widget.tab; import com.google.gwt.dom.client.AnchorElement; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.Composite; import com.gwtplatform.mvp.client.TabData; /** * Base class used to implement composite tab widgets. */ public abstract class AbstractTab extends Composite implements TabDefinition { // Tab widgets are accessible by default public static final boolean DEFAULT_ACCESSIBLE = true; protected final float priority; protected final AbstractTabPanel tabPanel; protected boolean accessible = DEFAULT_ACCESSIBLE; @UiField public AnchorElement hyperlink; public AbstractTab(TabData tabData, AbstractTabPanel tabPanel) { this.priority = tabData.getPriority(); this.tabPanel = tabPanel; } @Override public float getPriority() { return priority; } @Override public void setTargetHistoryToken(String historyToken) { hyperlink.setHref("#" + historyToken); //$NON-NLS-1$ } @Override public boolean isAccessible() { return accessible; } @Override public void setAccessible(boolean accessible) { this.accessible = accessible; tabPanel.updateTab(this); } }