package org.ovirt.engine.ui.webadmin.section.main.view.popup.host.panels;
import java.util.Collections;
import java.util.List;
import org.ovirt.engine.ui.uicommonweb.models.hosts.network.BondNetworkInterfaceModel;
import org.ovirt.engine.ui.uicommonweb.models.hosts.network.NetworkInterfaceModel;
import org.ovirt.engine.ui.webadmin.ApplicationResources;
import org.ovirt.engine.ui.webadmin.gin.AssetProvider;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HTMLTable.ColumnFormatter;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
public class BondPanel extends NicPanel {
private static final ApplicationResources resources = AssetProvider.getResources();
public BondPanel(BondNetworkInterfaceModel item, NetworkPanelsStyle style) {
super(item, style, true);
actionButton.setStyleName(style.actionButtonBond());
actionButton.setStyleName("bp_actionButton_pfly_fix"); //$NON-NLS-1$
}
@Override
protected Widget getContents() {
VerticalPanel vPanel = new VerticalPanel();
vPanel.addStyleName("ts5"); //$NON-NLS-1$
vPanel.setWidth("100%"); //$NON-NLS-1$
Grid titleRow = new Grid(1, 3);
titleRow.addStyleName("ts3"); //$NON-NLS-1$
ColumnFormatter columnFormatter = titleRow.getColumnFormatter();
columnFormatter.setWidth(0, "30px"); //$NON-NLS-1$
columnFormatter.setWidth(1, "100%"); //$NON-NLS-1$
titleRow.setWidth("100%"); //$NON-NLS-1$
titleRow.setHeight("27px"); //$NON-NLS-1$
Label titleLabel = new Label(item.getName());
titleLabel.setHeight("100%"); //$NON-NLS-1$
Image bondImage = new Image(resources.bond());
titleRow.setWidget(0, 0, bondImage);
titleRow.setWidget(0, 1, titleLabel);
titleRow.setWidget(0, 2, actionButton);
titleRow.addStyleName("ts3"); //$NON-NLS-1$
titleRow.setCellPadding(3);
vPanel.add(titleRow);
getElement().addClassName(style.bondPanel());
List<NetworkInterfaceModel> bonded = ((BondNetworkInterfaceModel) item).getSlaves();
Collections.sort(bonded);
for (NetworkInterfaceModel networkInterfaceModel : bonded) {
NicPanel nicPanel = new NicPanel(networkInterfaceModel, style);
nicPanel.parentPanel = this;
if (!networkInterfaceModel.isSriovEnabled()) {
nicPanel.actionButton.setVisible(false);
}
vPanel.add(nicPanel);
}
return vPanel;
}
@Override
protected void onAction() {
item.edit();
}
}