package org.ovirt.engine.ui.common.widget.uicommon.template; import org.ovirt.engine.core.common.businessentities.network.VmInterfaceType; import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; import org.ovirt.engine.ui.common.CommonApplicationConstants; import org.ovirt.engine.ui.common.gin.AssetProvider; import org.ovirt.engine.ui.common.system.ClientStorage; import org.ovirt.engine.ui.common.uicommon.model.SearchableTableModelProvider; import org.ovirt.engine.ui.common.widget.action.UiCommandButtonDefinition; import org.ovirt.engine.ui.common.widget.table.column.AbstractBooleanColumn; import org.ovirt.engine.ui.common.widget.table.column.AbstractCheckboxColumn; import org.ovirt.engine.ui.common.widget.table.column.AbstractEnumColumn; import org.ovirt.engine.ui.common.widget.table.column.AbstractTextColumn; import org.ovirt.engine.ui.common.widget.table.column.NicActivateStatusColumn; import org.ovirt.engine.ui.common.widget.uicommon.AbstractModelBoundTableWidget; import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.uicommonweb.models.templates.TemplateInterfaceListModel; import com.google.gwt.event.shared.EventBus; public class TemplateInterfaceListModelTable extends AbstractModelBoundTableWidget<VmNetworkInterface, TemplateInterfaceListModel> { private static final CommonApplicationConstants constants = AssetProvider.getConstants(); public TemplateInterfaceListModelTable( SearchableTableModelProvider<VmNetworkInterface, TemplateInterfaceListModel> modelProvider, EventBus eventBus, ClientStorage clientStorage) { super(modelProvider, eventBus, clientStorage, false); } @Override public void initTable() { NicActivateStatusColumn<VmNetworkInterface> statusColumn = new NicActivateStatusColumn<>(); statusColumn.setContextMenuTitle(constants.vnicStatusNetworkVM()); getTable().addColumn(statusColumn, constants.empty(), "30px"); //$NON-NLS-1$ AbstractTextColumn<VmNetworkInterface> nameColumn = new AbstractTextColumn<VmNetworkInterface>() { @Override public String getValue(VmNetworkInterface object) { return object.getName(); } }; getTable().addColumn(nameColumn, constants.nameInterface(), "200px"); //$NON-NLS-1$ AbstractCheckboxColumn<VmNetworkInterface> pluggedColumn = new AbstractCheckboxColumn<VmNetworkInterface>() { @Override public Boolean getValue(VmNetworkInterface object) { return object.isPlugged(); } @Override protected boolean canEdit(VmNetworkInterface object) { return false; } }; getTable().addColumn(pluggedColumn, constants.plugged(), "90px"); //$NON-NLS-1$ AbstractTextColumn<VmNetworkInterface> networkNameColumn = new AbstractTextColumn<VmNetworkInterface>() { @Override public String getValue(VmNetworkInterface object) { return object.getNetworkName(); } }; getTable().addColumn(networkNameColumn, constants.networkNameInterface(), "200px"); //$NON-NLS-1$ AbstractTextColumn<VmNetworkInterface> profileNameColumn = new AbstractTextColumn<VmNetworkInterface>() { @Override public String getValue(VmNetworkInterface object) { return object.getVnicProfileName(); } }; getTable().addColumn(profileNameColumn, constants.profileNameInterface(), "150px"); //$NON-NLS-1$ AbstractBooleanColumn<VmNetworkInterface> linkStateColumn = new AbstractBooleanColumn<VmNetworkInterface>(constants.linkedNetworkInterface(), constants.unlinkedNetworkInterface()) { @Override protected Boolean getRawValue(VmNetworkInterface object) { return object.isLinked(); } }; getTable().addColumn(linkStateColumn, constants.linkStateNetworkInterface(), "90px"); //$NON-NLS-1$ AbstractTextColumn<VmNetworkInterface> typeColumn = new AbstractEnumColumn<VmNetworkInterface, VmInterfaceType>() { @Override protected VmInterfaceType getRawValue(VmNetworkInterface object) { return VmInterfaceType.forValue(object.getType()); } }; getTable().addColumn(typeColumn, constants.typeInterface(), "100px"); //$NON-NLS-1$ getTable().addActionButton(new UiCommandButtonDefinition<VmNetworkInterface>(getEventBus(), constants.newInterface()) { @Override protected UICommand resolveCommand() { return getModel().getNewCommand(); } }); getTable().addActionButton(new UiCommandButtonDefinition<VmNetworkInterface>(getEventBus(), constants.editInterface()) { @Override protected UICommand resolveCommand() { return getModel().getEditCommand(); } }); getTable().addActionButton(new UiCommandButtonDefinition<VmNetworkInterface>(getEventBus(), constants.removeInterface()) { @Override protected UICommand resolveCommand() { return getModel().getRemoveCommand(); } }); } }