package org.ovirt.engine.ui.webadmin.widget.host; import java.util.List; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostInterface; import org.ovirt.engine.ui.webadmin.gin.ClientGinjectorProvider; import org.ovirt.engine.ui.webadmin.widget.TogglePanel; import org.ovirt.engine.ui.webadmin.widget.renderer.RxTxRateRenderer; import org.ovirt.engine.ui.webadmin.widget.renderer.SumUpRenderer; import com.google.gwt.dom.client.Style; import com.google.gwt.dom.client.Style.BorderStyle; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.Grid; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.VerticalPanel; public class InterfacePanel extends VerticalPanel { public void addInterfaces(List<HostInterface> interfaces) { for (HostInterface hostInterface : interfaces) { add(new InterfaceElementPanel(hostInterface)); } } } class InterfaceElementPanel extends TogglePanel { public InterfaceElementPanel(HostInterface hostInterface) { super(hostInterface); add(createRow(hostInterface)); } Grid createRow(final HostInterface hostInterface) { Grid row = new Grid(1, 8); row.setHeight("100%"); row.setWidth("100%"); Style gridStyle = row.getElement().getStyle(); gridStyle.setBorderColor("white"); gridStyle.setBorderWidth(1, Unit.PX); gridStyle.setBorderStyle(BorderStyle.SOLID); row.getColumnFormatter().setWidth(0, "10%"); row.getColumnFormatter().setWidth(1, "18%"); row.getColumnFormatter().setWidth(2, "18%"); row.getColumnFormatter().setWidth(3, "18%"); row.getColumnFormatter().setWidth(4, "10%"); row.getColumnFormatter().setWidth(5, "9%"); row.getColumnFormatter().setWidth(6, "9%"); row.getColumnFormatter().setWidth(7, "10%"); // Check box and interface status icon row.setWidget(0, 0, new FlowPanel() { { add(getCheckBox()); add(new InterfaceStatusImage(hostInterface.getStatus(), ClientGinjectorProvider.instance().getApplicationResources())); } }); // Name row.setWidget(0, 1, new Label(hostInterface.getName())); // Address row.setWidget(0, 2, new Label(hostInterface.getAddress())); // MAC row.setWidget(0, 3, new Label(hostInterface.getMAC())); // Speed row.setWidget(0, 4, new Label() { { if (hostInterface.getSpeed() != null) { setText(String.valueOf(hostInterface.getSpeed())); } else { setText(ClientGinjectorProvider.instance().getApplicationConstants().unAvailablePropertyLabel()); } } }); // Rx rate row.setWidget(0, 5, new Label() { { setText(new RxTxRateRenderer().render(new Double[] { hostInterface.getRxRate(), hostInterface.getSpeed() != null ? hostInterface.getSpeed().doubleValue() : null })); } }); // Tx rate row.setWidget(0, 6, new Label() { { setText(new RxTxRateRenderer().render(new Double[] { hostInterface.getTxRate(), hostInterface.getSpeed() != null ? hostInterface.getSpeed().doubleValue() : null })); } }); // Drops row.setWidget(0, 7, new Label() { { setText(new SumUpRenderer().render(new Double[] { hostInterface.getRxDrop(), hostInterface.getTxDrop() })); } }); return row; } }