package org.ovirt.engine.ui.webadmin.section.main.view.popup.host.panels;
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.resources.client.ImageResource;
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.Widget;
public class NicPanel<T extends NetworkInterfaceModel> extends NetworkItemPanel<T> {
private static final ApplicationResources resources = AssetProvider.getResources();
public NicPanel(T item, NetworkPanelsStyle style) {
this(item, style, true);
}
public NicPanel(T item, NetworkPanelsStyle style, boolean draggable) {
super(item, style, draggable);
getElement().addClassName(style.nicPanel());
this.actionButton.setStyleName(style.actionButtonNetwork());
this.actionButton.addStyleName("nicp_actionButton_pfly_fix"); //$NON-NLS-1$
}
@Override
protected Widget getContents() {
Grid rowPanel = new Grid(1, 5);
rowPanel.addStyleName("ts3"); //$NON-NLS-1$
rowPanel.setWidth("100%"); //$NON-NLS-1$
rowPanel.setHeight("100%"); //$NON-NLS-1$
ColumnFormatter columnFormatter = rowPanel.getColumnFormatter();
columnFormatter.setWidth(0, "5px"); //$NON-NLS-1$
columnFormatter.setWidth(1, "10px"); //$NON-NLS-1$
columnFormatter.setWidth(2, "30px"); //$NON-NLS-1$
columnFormatter.setWidth(3, "100%"); //$NON-NLS-1$
columnFormatter.setWidth(4, "30px"); //$NON-NLS-1$
Label titleLabel = new Label(item.getName());
titleLabel.setHeight("100%"); //$NON-NLS-1$
Image nicImage = new Image(getNicIcon());
rowPanel.setWidget(0, 0, dragImage);
ImageResource statusImage = getStatusImage();
if (statusImage != null) {
rowPanel.setWidget(0, 1, new Image(statusImage));
}
rowPanel.setWidget(0, 2, nicImage);
rowPanel.setWidget(0, 3, titleLabel);
rowPanel.setWidget(0, 4, actionButton);
actionButton.setVisible(item.isSriovEnabled());
return rowPanel;
}
private ImageResource getNicIcon() {
if (item.isSriovEnabled()) {
return resources.nicSriov();
} else if (item.isVf()) {
return resources.nicVF();
} else {
return resources.nicIcon();
}
}
private ImageResource getStatusImage() {
switch (item.getStatus()) {
case UP:
return resources.nicUp();
case DOWN:
return resources.nicDown();
case NONE:
return resources.questionMarkImage();
default:
return resources.questionMarkImage();
}
}
@Override
protected void onAction() {
item.edit();
}
}