package org.ovirt.engine.ui.uicommonweb.models.configure.scheduling; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.scheduling.PolicyUnit; import org.ovirt.engine.core.common.scheduling.parameters.RemoveExternalPolicyUnitParameters; import org.ovirt.engine.ui.frontend.Frontend; import org.ovirt.engine.ui.uicommonweb.models.ListModel; import org.ovirt.engine.ui.uicommonweb.models.Model; import org.ovirt.engine.ui.uicompat.Event; import org.ovirt.engine.ui.uicompat.EventArgs; import org.ovirt.engine.ui.uicompat.FrontendActionAsyncResult; import org.ovirt.engine.ui.uicompat.IFrontendActionAsyncCallback; public class ManagePolicyUnitModel extends Model { private final Event<EventArgs> refreshPolicyUnitsEvent = new Event<>("RefreshPolicyUnitsEvent", ManagePolicyUnitModel.class); //$NON-NLS-1$ private ListModel PolicyUnits; public ListModel getPolicyUnits() { return PolicyUnits; } public void setPolicyUnits(ListModel policyUnits) { PolicyUnits = policyUnits; } public Event<EventArgs> getRefreshPolicyUnitsEvent() { return refreshPolicyUnitsEvent; } public void remove(final PolicyUnit policyUnit) { Frontend.getInstance().runAction(VdcActionType.RemoveExternalPolicyUnit, new RemoveExternalPolicyUnitParameters(policyUnit.getId()), new IFrontendActionAsyncCallback() { @Override public void executed(FrontendActionAsyncResult result) { getRefreshPolicyUnitsEvent().raise(this, null); } }); } @Override public void cleanup() { cleanupEvents(getRefreshPolicyUnitsEvent()); super.cleanup(); } }