package org.ovirt.engine.ui.userportal.widget.basic;
import org.ovirt.engine.core.common.businessentities.storage.DiskImage;
import org.ovirt.engine.ui.common.idhandler.HasElementId;
import org.ovirt.engine.ui.common.utils.ElementIdUtils;
import com.google.gwt.editor.client.IsEditor;
import com.google.gwt.editor.client.adapters.TakesValueEditor;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.TakesValue;
import com.google.gwt.user.client.ui.FlowPanel;
public class DisksImageWidget extends FlowPanel implements IsEditor<TakesValueEditor<Iterable<DiskImage>>>, TakesValue<Iterable<DiskImage>>, HasElementId {
private Iterable<DiskImage> images;
private String elementId = DOM.createUniqueId();
@Override
public void setValue(Iterable<DiskImage> images) {
this.images = images;
clear();
int i = 0;
for (DiskImage image : images) {
add(createDiskWidget(image, i++));
}
}
DiskImageWidget createDiskWidget(DiskImage image, int index) {
DiskImageWidget diskWidget = new DiskImageWidget(image);
diskWidget.setElementId(
ElementIdUtils.createElementId(elementId, "disk" + index)); //$NON-NLS-1$
return diskWidget;
}
@Override
public Iterable<DiskImage> getValue() {
return images;
}
@Override
public TakesValueEditor<Iterable<DiskImage>> asEditor() {
return TakesValueEditor.of(this);
}
@Override
public void setElementId(String elementId) {
this.elementId = elementId;
}
}