package org.ovirt.engine.ui.uicommonweb.models.vms; import java.util.ArrayList; import java.util.List; import org.ovirt.engine.core.common.action.RemoveVmInterfaceParameters; import org.ovirt.engine.core.common.action.VdcActionParametersBase; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; import org.ovirt.engine.ui.frontend.Frontend; import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.uicommonweb.help.HelpTag; import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel; import org.ovirt.engine.ui.uicommonweb.models.ListModel; import org.ovirt.engine.ui.uicompat.ConstantsManager; public class RemoveVmInterfaceModel extends ConfirmationModel { private final List<VmNetworkInterface> vnics; private final boolean fullMsg; private final ListModel sourceListModel; public RemoveVmInterfaceModel(ListModel sourceListModel, List<VmNetworkInterface> vnics, boolean isFullMsg) { setTitle(ConstantsManager.getInstance().getConstants().removeNetworkInterfacesTitle()); setHelpTag(HelpTag.remove_network_interface_vms); setHashName("remove_network_interface_vms"); //$NON-NLS-1$ this.sourceListModel = sourceListModel; this.vnics = vnics; this.fullMsg = isFullMsg; ArrayList<String> items = new ArrayList<>(); for (VmNetworkInterface vnic : vnics) { if (isFullMsg) { items.add(getRemoveVnicFullMsg(vnic)); } else { items.add(vnic.getName()); } } setItems(items); UICommand tempVar = UICommand.createDefaultOkUiCommand("OnRemove", this); //$NON-NLS-1$ getCommands().add(tempVar); UICommand tempVar2 = UICommand.createCancelUiCommand("Cancel", this); //$NON-NLS-1$ getCommands().add(tempVar2); } private void onRemove() { if (getProgress() != null) { return; } ArrayList<VdcActionParametersBase> list = new ArrayList<>(); for (VmNetworkInterface vnic : getVnics()) { VdcActionParametersBase parameters = getRemoveVmInterfaceParams(vnic); list.add(parameters); } startProgress(); Frontend.getInstance().runMultipleAction(getActionType(), list, result -> { stopProgress(); cancel(); }, null); } protected String getRemoveVnicFullMsg(VmNetworkInterface vnic) { return ConstantsManager.getInstance().getMessages().vnicFromVm(vnic.getName(), vnic.getVmName()); } protected VdcActionParametersBase getRemoveVmInterfaceParams(VmNetworkInterface vnic) { return new RemoveVmInterfaceParameters(vnic.getVmId(), vnic.getId()); } protected VdcActionType getActionType() { return VdcActionType.RemoveVmInterface; } public List<VmNetworkInterface> getVnics() { return vnics; } public boolean isFullMsg() { return fullMsg; } private void cancel() { sourceListModel.setWindow(null); } @Override public void executeCommand(UICommand command) { super.executeCommand(command); if ("Cancel".equals(command.getName())) { //$NON-NLS-1$ cancel(); } else if ("OnRemove".equals(command.getName())) { //$NON-NLS-1$ onRemove(); } } }