package org.ovirt.engine.ui.uicommonweb.models.gluster;
import java.util.LinkedHashMap;
import java.util.List;
import org.ovirt.engine.core.common.action.gluster.GlusterVolumeGeoRepSessionConfigParameters;
import org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoRepSession;
import org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoRepSessionConfiguration;
import org.ovirt.engine.core.common.utils.Pair;
import org.ovirt.engine.ui.uicommonweb.UICommand;
import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
import org.ovirt.engine.ui.uicommonweb.models.ListModel;
import org.ovirt.engine.ui.uicommonweb.models.Model;
public class GlusterVolumeGeoReplicationSessionConfigModel extends Model {
private ListModel<EntityModel<Pair<Boolean, GlusterGeoRepSessionConfiguration>>> configsModel;
private LinkedHashMap<String, String> configsMap;
private GlusterGeoRepSession geoRepSession;
private UICommand updateConfigsCommand;
private UICommand cancelCommand;
public GlusterVolumeGeoReplicationSessionConfigModel(GlusterGeoRepSession selectedGeoRepSession) {
configsModel = new ListModel<>();
configsMap = new LinkedHashMap<>();
this.geoRepSession = selectedGeoRepSession;
}
public ListModel<EntityModel<Pair<Boolean, GlusterGeoRepSessionConfiguration>>> getConfigsModel() {
return configsModel;
}
public void setConfigsModel(ListModel<EntityModel<Pair<Boolean, GlusterGeoRepSessionConfiguration>>> configsModel) {
this.configsModel = configsModel;
}
public LinkedHashMap<String, String> getConfigs() {
return configsMap;
}
public UICommand getUpdateConfigsCommand() {
return updateConfigsCommand;
}
public void addUpdateConfigsCommand(UICommand setCommand) {
this.updateConfigsCommand = setCommand;
this.getCommands().add(setCommand);
}
@Override
public UICommand getCancelCommand() {
return cancelCommand;
}
public void addCancelCommand(UICommand cancelCommand) {
this.cancelCommand = cancelCommand;
this.getCommands().add(cancelCommand);
}
public void copyConfigsToMap(List<GlusterGeoRepSessionConfiguration> configsTocopy) {
for (GlusterGeoRepSessionConfiguration currentConfig : configsTocopy) {
configsMap.put(currentConfig.getKey(), currentConfig.getValue());
}
}
public GlusterGeoRepSession getGeoRepSession() {
return geoRepSession;
}
public void setGeoRepSession(GlusterGeoRepSession geoRepSession) {
this.geoRepSession = geoRepSession;
}
public GlusterVolumeGeoRepSessionConfigParameters formGeoRepConfigParameters(GlusterGeoRepSessionConfiguration sessionConfig) {
return new GlusterVolumeGeoRepSessionConfigParameters(getGeoRepSession().getMasterVolumeId(),
getGeoRepSession().getId(),
sessionConfig.getKey(),
sessionConfig.getValue());
}
public void updateCommandExecutabilities(boolean isExecutionAllowed) {
updateConfigsCommand.setIsExecutionAllowed(isExecutionAllowed);
}
}