package org.ovirt.engine.ui.userportal.widget.resources;
import java.util.List;
import org.ovirt.engine.core.common.businessentities.VM;
import org.ovirt.engine.core.compat.Guid;
import com.google.gwt.user.client.ui.TreeItem;
import com.google.gwt.user.client.ui.Widget;
/**
* A tree item which is bound to VM and can set up it's state according to the provided list of selected VMs
*/
public class VmTreeItem extends TreeItem {
private Guid id;
private VM vm;
public VmTreeItem(Widget widget, VM vm) {
super(widget);
this.id = vm.getId();
this.vm = vm;
}
public void setState(List<VM> selected) {
setState(isIn(selected));
}
public VM getVm() {
return vm;
}
private boolean isIn(List<VM> selected) {
for (VM other : selected) {
if (isSame(other)) {
return true;
}
}
return false;
}
private boolean isSame(VM other) {
if (other == null) {
return false;
}
if (other.getId() == null) {
return false;
}
return id.equals(other.getId());
}
public void reset() {
this.vm = null;
this.id = null;
}
}