package org.ovirt.engine.ui.webadmin.widget.host; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostInterfaceLineModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostVLan; import org.ovirt.engine.ui.webadmin.gin.ClientGinjectorProvider; import org.ovirt.engine.ui.webadmin.widget.TogglePanel; import org.ovirt.engine.ui.webadmin.widget.renderer.HostVLanNameRenderer; import com.google.gwt.dom.client.Style; import com.google.gwt.dom.client.Style.BorderStyle; import com.google.gwt.dom.client.Style.FontWeight; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.user.client.ui.Grid; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.VerticalPanel; public class VLanPanel extends VerticalPanel { public static final String CHECK_BOX_COLUMN_WIDTH = "50%"; public static final String NETWORK_NAME_COLUMN_WIDTH = "50%"; public void addVLans(HostInterfaceLineModel lineModel) { for (HostVLan hostVLan : lineModel.getVLans()) { add(new VLanElementPanel(hostVLan)); } if (lineModel.getVLans().isEmpty()) { add(new VLanElementPanel(lineModel)); } } } class VLanElementPanel extends TogglePanel { public VLanElementPanel(HostVLan hostVLan) { super(hostVLan); add(createRow(hostVLan)); } public VLanElementPanel(HostInterfaceLineModel lineModel) { super(lineModel); add(createBlankRow(lineModel)); } Grid createRow(final HostVLan hostVLan) { Grid row = new Grid(1, 2); row.getColumnFormatter().setWidth(0, VLanPanel.CHECK_BOX_COLUMN_WIDTH); row.getColumnFormatter().setWidth(1, VLanPanel.NETWORK_NAME_COLUMN_WIDTH); row.getCellFormatter().setHeight(0, 0, "100%"); row.getCellFormatter().setHeight(0, 1, "100%"); row.setWidth("100%"); row.setHeight("100%"); Style gridStyle = row.getElement().getStyle(); gridStyle.setBorderColor("white"); gridStyle.setBorderWidth(1, Unit.PX); gridStyle.setBorderStyle(BorderStyle.SOLID); // Check box, icon and name HorizontalPanel chekboxPanel = new HorizontalPanel(); chekboxPanel.setWidth("100%"); chekboxPanel.add(getCheckBox()); chekboxPanel.add(new Image(ClientGinjectorProvider.instance().getApplicationResources().splitRotateImage())); chekboxPanel.add(new Label(new HostVLanNameRenderer().render(hostVLan))); row.setWidget(0, 0, chekboxPanel); // Network name row.setWidget(0, 1, new Label(hostVLan.getNetworkName())); return row; } Grid createBlankRow(final HostInterfaceLineModel lineModel) { Grid row = new Grid(1, 2); row.getColumnFormatter().setWidth(0, VLanPanel.CHECK_BOX_COLUMN_WIDTH); row.getColumnFormatter().setWidth(1, VLanPanel.NETWORK_NAME_COLUMN_WIDTH); row.getCellFormatter().setHeight(0, 0, "100%"); row.getCellFormatter().setHeight(0, 1, "100%"); row.setWidth("100%"); row.setHeight("100%"); // Empty name row.setWidget(0, 0, new Label()); // Network name Label networkName = new Label(lineModel.getNetworkName()); if (lineModel.getIsManagement()) { networkName.getElement().getStyle().setFontWeight(FontWeight.BOLD); networkName.setText("* " + lineModel.getNetworkName()); } row.setWidget(0, 1, networkName); return row; } }