package org.ovirt.engine.ui.uicommonweb.models.pools;
import java.util.Collections;
import org.ovirt.engine.core.compat.*;
import org.ovirt.engine.ui.uicompat.*;
import org.ovirt.engine.core.common.businessentities.*;
import org.ovirt.engine.core.common.vdscommands.*;
import org.ovirt.engine.core.common.queries.*;
import org.ovirt.engine.core.common.action.*;
import org.ovirt.engine.ui.frontend.*;
import org.ovirt.engine.ui.uicommonweb.*;
import org.ovirt.engine.ui.uicommonweb.models.*;
import org.ovirt.engine.core.common.*;
import org.ovirt.engine.ui.uicommonweb.models.vms.*;
import org.ovirt.engine.core.common.*;
import org.ovirt.engine.core.common.interfaces.*;
import org.ovirt.engine.core.common.businessentities.*;
import org.ovirt.engine.ui.uicommonweb.*;
import org.ovirt.engine.ui.uicommonweb.models.*;
@SuppressWarnings("unused")
public class PoolVmListModel extends VmListModel
{
private UICommand privateDetachCommand;
public UICommand getDetachCommand()
{
return privateDetachCommand;
}
private void setDetachCommand(UICommand value)
{
privateDetachCommand = value;
}
public vm_pools getEntity()
{
return (vm_pools)super.getEntity();
}
public void setEntity(vm_pools value)
{
super.setEntity(value);
}
public PoolVmListModel()
{
setTitle("Virtual Machines");
setDetachCommand(new UICommand("Detach", this));
UpdateActionAvailability();
}
@Override
protected void OnEntityChanged()
{
super.OnEntityChanged();
getSearchCommand().Execute();
}
@Override
public void Search()
{
if (getEntity() != null)
{
setSearchString(StringFormat.format("Vms: pool=%1$s", getEntity().getvm_pool_name()));
super.Search();
}
}
@Override
protected void EntityPropertyChanged(Object sender, PropertyChangedEventArgs e)
{
super.EntityPropertyChanged(sender, e);
if (e.PropertyName.equals("vm_pool_name"))
{
getSearchCommand().Execute();
}
}
public void Detach()
{
if (getWindow() != null)
{
return;
}
ConfirmationModel model = new ConfirmationModel();
setWindow(model);
model.setTitle("Detach Virtual Machine(s)");
model.setHashName("detach_virtual_machine");
java.util.ArrayList<String> list = new java.util.ArrayList<String>();
for (Object item : getSelectedItems())
{
VM a = (VM)item;
list.add(a.getvm_name());
}
Collections.sort(list);
model.setItems(list);
model.setMessage("Are you sure you want to detach selected Virtual Machine(s)?");
UICommand tempVar = new UICommand("OnDetach", this);
tempVar.setTitle("OK");
tempVar.setIsDefault(true);
model.getCommands().add(tempVar);
UICommand tempVar2 = new UICommand("Cancel", this);
tempVar2.setTitle("Cancel");
tempVar2.setIsCancel(true);
model.getCommands().add(tempVar2);
}
public void OnDetach()
{
ConfirmationModel model = (ConfirmationModel)getWindow();
if (model.getProgress() != null)
{
return;
}
java.util.ArrayList<VdcActionParametersBase> list = new java.util.ArrayList<VdcActionParametersBase>();
for (Object item : getSelectedItems())
{
VM vm = (VM)item;
list.add(new RemoveVmFromPoolParameters(vm.getvm_guid()));
}
model.StartProgress(null);
Frontend.RunMultipleAction(VdcActionType.RemoveVmFromPool, list,
new IFrontendMultipleActionAsyncCallback() {
@Override
public void Executed(FrontendMultipleActionAsyncResult result) {
ConfirmationModel localModel = (ConfirmationModel)result.getState();
localModel.StopProgress();
Cancel();
}
}, model);
}
@Override
protected void OnSelectedItemChanged()
{
super.OnSelectedItemChanged();
UpdateActionAvailability();
}
@Override
protected void SelectedItemsChanged()
{
super.SelectedItemsChanged();
UpdateActionAvailability();
}
@Override
protected void SelectedItemPropertyChanged(Object sender, PropertyChangedEventArgs e)
{
super.SelectedItemPropertyChanged(sender, e);
//C# TO JAVA CONVERTER NOTE: The following 'switch' operated on a string member and was converted to Java 'if-else' logic:
// switch (e.PropertyName)
//ORIGINAL LINE: case "status":
if (e.PropertyName.equals("status"))
{
UpdateActionAvailability();
}
}
private void UpdateActionAvailability()
{
// var items = SelectedItems != null ? SelectedItems.Cast<VM>().ToList() : new List<VM>();
java.util.ArrayList<VM> items = getSelectedItems() != null ? Linq.<VM>Cast(getSelectedItems()) : new java.util.ArrayList<VM>();
// DetachCommand.IsExecutionAllowed = items.Count > 0 && items.All(a => a.status == VMStatus.Down);
boolean value = true;
for (VM a : items)
{
if (a.getstatus() != VMStatus.Down)
{
value = false;
break;
}
}
getDetachCommand().setIsExecutionAllowed(items.size() > 0 && value);
}
@Override
public void ExecuteCommand(UICommand command)
{
super.ExecuteCommand(command);
if (command == getDetachCommand())
{
Detach();
}
if (StringHelper.stringsEqual(command.getName(), "OnDetach"))
{
OnDetach();
}
if (StringHelper.stringsEqual(command.getName(), "Cancel"))
{
Cancel();
}
}
}