package org.ovirt.engine.ui.uicommonweb.models.hosts;
import java.util.Comparator;
import org.ovirt.engine.core.common.businessentities.VDS;
import org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity;
import org.ovirt.engine.core.common.mode.ApplicationMode;
import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
import org.ovirt.engine.ui.uicommonweb.help.HelpTag;
import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel;
import org.ovirt.engine.ui.uicompat.ConstantsManager;
import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs;
@SuppressWarnings("unused")
public class HostBricksListModel extends SearchableListModel<VDS, GlusterBrickEntity> {
public HostBricksListModel() {
setTitle(ConstantsManager.getInstance().getConstants().hostBricksTitle());
setHelpTag(HelpTag.gluster_bricks);
setHashName("gluster_bricks"); // $//$NON-NLS-1$
setAvailableInModes(ApplicationMode.GlusterOnly);
}
@Override
protected void onEntityChanged() {
super.onEntityChanged();
getSearchCommand().execute();
}
@Override
protected void entityPropertyChanged(Object sender, PropertyChangedEventArgs e) {
super.entityPropertyChanged(sender, e);
getSearchCommand().execute();
}
@Override
public void search() {
if (getEntity() != null) {
super.search();
}
}
@Override
protected void syncSearch() {
if (getEntity() == null) {
return;
}
AsyncDataProvider.getInstance().getGlusterBricksForServer(
new SetSortedRawItemsAsyncQuery(Comparator.comparing(GlusterBrickEntity::getVolumeName)),
getEntity().getId());
}
@Override
protected String getListName() {
return "HostBricksListModel"; //$NON-NLS-1$
}
}