package org.ovirt.engine.ui.uicommonweb.models.datacenters;
import java.util.Arrays;
import org.ovirt.engine.core.common.businessentities.StoragePool;
import org.ovirt.engine.core.common.queries.IdQueryParameters;
import org.ovirt.engine.core.common.queries.VdcQueryType;
import org.ovirt.engine.ui.frontend.Frontend;
import org.ovirt.engine.ui.uicommonweb.help.HelpTag;
import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaClusterListModel;
import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaEventListModel;
import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaListModel;
import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaModel;
import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaPermissionListModel;
import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaStorageListModel;
import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaTemplateListModel;
import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaUserListModel;
import org.ovirt.engine.ui.uicommonweb.models.quota.QuotaVmListModel;
import org.ovirt.engine.ui.uicompat.ConstantsManager;
import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs;
import com.google.inject.Inject;
public class DataCenterQuotaListModel extends QuotaListModel<StoragePool> {
@Inject
public DataCenterQuotaListModel(final QuotaClusterListModel quotaClusterListModel,
final QuotaStorageListModel quotaStorageListModel, final QuotaVmListModel quotaVmListModel,
final QuotaTemplateListModel quotaTemplateListModel, final QuotaUserListModel quotaUserListModel,
final QuotaPermissionListModel quotaPermissionListModel, final QuotaEventListModel quotaEventListModel) {
super(quotaClusterListModel, quotaStorageListModel, quotaVmListModel, quotaTemplateListModel,
quotaUserListModel, quotaPermissionListModel, quotaEventListModel);
setTitle(ConstantsManager.getInstance().getConstants().quotaTitle());
setHelpTag(HelpTag.quota);
setHashName("quota"); //$NON-NLS-1$
}
@Override
protected void onEntityChanged() {
super.onEntityChanged();
getSearchCommand().execute();
}
@Override
protected void syncSearch() {
if (getEntity() == null) {
return;
}
IdQueryParameters parameters = new IdQueryParameters(getEntity().getId());
parameters.setRefresh(getIsQueryFirstTime());
Frontend.getInstance().runQuery(VdcQueryType.GetQuotaByStoragePoolId,
parameters,
new SetItemsAsyncQuery());
}
@Override
protected void entityPropertyChanged(Object sender, PropertyChangedEventArgs e) {
super.entityPropertyChanged(sender, e);
if (e.propertyName.equals("name")) { //$NON-NLS-1$
getSearchCommand().execute();
}
}
@Override
protected String getListName() {
return "DataCenterQuotaListModel"; //$NON-NLS-1$
}
@Override
protected void createQuota() {
super.createQuota(false);
QuotaModel quotaModel = (QuotaModel) getWindow();
quotaModel.getDataCenter().setItems(Arrays.asList(getEntity()));
quotaModel.getDataCenter().setSelectedItem(getEntity());
quotaModel.getDataCenter().setIsChangeable(false);
}
}