package org.ovirt.engine.ui.webadmin.widget.action; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Widget; public abstract class AbstractActionStackPanelItem<M, T, W extends Widget> extends Composite { @UiField(provided = true) public SimpleActionPanel<T> actionPanel; @UiField(provided = true) public W dataDisplayWidget; public AbstractActionStackPanelItem(M modelProvider) { this.dataDisplayWidget = createDataDisplayWidget(modelProvider); this.actionPanel = createActionPanel(modelProvider); } @Override protected void initWidget(Widget widget) { super.initWidget(widget); // Add context menu handler for data display widget actionPanel.addContextMenuHandler(dataDisplayWidget); } public W getDataDisplayWidget() { return dataDisplayWidget; } protected abstract W createDataDisplayWidget(M modelProvider); protected abstract SimpleActionPanel<T> createActionPanel(M modelProvider); }