package org.ovirt.engine.ui.uicommonweb.models.providers;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import org.ovirt.engine.core.common.action.ProviderParameters;
import org.ovirt.engine.core.common.action.VdcActionParametersBase;
import org.ovirt.engine.core.common.action.VdcActionType;
import org.ovirt.engine.core.common.businessentities.Provider;
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.SearchableListModel;
import org.ovirt.engine.ui.uicompat.ConstantsManager;
@SuppressWarnings("deprecation")
public class RemoveProvidersModel extends ConfirmationModel {
private static final String CMD_REMOVE = "OnRemove"; //$NON-NLS-1$
private static final String CMD_CANCEL = "Cancel"; //$NON-NLS-1$
private final SearchableListModel sourceListModel;
private final List<Provider> providers;
@SuppressWarnings("unchecked")
public RemoveProvidersModel(SearchableListModel sourceListModel) {
this.sourceListModel = sourceListModel;
providers = (List<Provider>) sourceListModel.getSelectedItems();
setTitle(ConstantsManager.getInstance().getConstants().removeProviderTitle());
setHelpTag(HelpTag.remove_provider);
setHashName("remove_provider"); //$NON-NLS-1$
List<String> providerNames = new ArrayList<>();
for (Provider provider : providers) {
providerNames.add(provider.getName());
}
setItems(providerNames);
UICommand tempVar = UICommand.createDefaultOkUiCommand(CMD_REMOVE, this);
getCommands().add(tempVar);
UICommand tempVar2 = UICommand.createCancelUiCommand(CMD_CANCEL, this); //$NON-NLS-1$
getCommands().add(tempVar2);
}
private void cancel() {
sourceListModel.setConfirmWindow(null);
}
private void onRemove() {
List<VdcActionParametersBase> parameterList = new LinkedList<>();
for (Provider provider : providers) {
parameterList.add(new ProviderParameters(provider));
}
Frontend.getInstance().runMultipleActions(VdcActionType.RemoveProvider, parameterList,
result -> sourceListModel.getSearchCommand().execute());
cancel();
}
@Override
public void executeCommand(UICommand command) {
super.executeCommand(command);
if (CMD_REMOVE.equals(command.getName())) {
onRemove();
} else if (CMD_CANCEL.equals(command.getName())) {
cancel();
}
}
}