package org.ovirt.engine.ui.uicommonweb.models.vms; import java.util.ArrayList; import java.util.List; import org.ovirt.engine.core.common.action.VdcActionParametersBase; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.VnicProfileParameters; import org.ovirt.engine.core.common.businessentities.network.VnicProfileView; 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 RemoveVnicProfileModel extends ConfirmationModel { private final List<VnicProfileView> profiles; private final boolean fullMsg; private final ListModel sourceListModel; public RemoveVnicProfileModel(ListModel sourceListModel, List<VnicProfileView> profiles, boolean isFullMsg) { setTitle(ConstantsManager.getInstance().getConstants().removeVnicProfileTitle()); setHelpTag(HelpTag.remove_vnic_prfoile); setHashName("remove_vnic_prfoile"); //$NON-NLS-1$ this.sourceListModel = sourceListModel; this.profiles = profiles; this.fullMsg = isFullMsg; ArrayList<String> items = new ArrayList<>(); for (VnicProfileView profile : profiles) { if (isFullMsg) { items.add(getRemoveVnicProfileFullMsg(profile)); } else { items.add(profile.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 (VnicProfileView profile : getProfiles()) { VdcActionParametersBase parameters = getRemoveVnicProfileParams(profile); list.add(parameters); } startProgress(); Frontend.getInstance().runMultipleAction(VdcActionType.RemoveVnicProfile, list, result -> { stopProgress(); cancel(); }, null); } protected String getRemoveVnicProfileFullMsg(VnicProfileView profile) { return ConstantsManager.getInstance() .getMessages() .vnicProfileFromNetwork(profile.getName(), profile.getNetworkName()); } protected VdcActionParametersBase getRemoveVnicProfileParams(VnicProfileView profile) { return new VnicProfileParameters(profile); } public List<VnicProfileView> getProfiles() { return profiles; } public boolean isFullMsg() { return fullMsg; } private void cancel() { sourceListModel.setWindow(null); sourceListModel.setConfirmWindow(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(); } } }