});
checkOneParam(DiskData.SOURCE_FILE);
checkOneParam(DiskData.SOURCE_DEVICE);
} else if (DiskData.TARGET_BUS_TYPE.equals(param)) {
final Set<Value> devices = new LinkedHashSet<Value>();
devices.add(new StringValue());
if (newValue != null) {
final Value[] targetDevices = TARGET_DEVICES_MAP.get(newValue);
if (targetDevices != null) {
for (final Value dev : targetDevices) {
if (!getVMSVirtualDomainInfo().isDevice(dev.getValueForConfig())) {
devices.add(dev);
}
}
}
}
final Value saved = getParamSaved(DiskData.TARGET_DEVICE);
devices.add(saved);
Value selected = null;
if (saved == null || getResource().isNew()) {
if (devices.size() > 1) {
selected = devices.toArray(new Value[devices.size()])[1];
}
} else {
selected = saved;
}
if (prevTargetBusType == null
|| !prevTargetBusType.equals(newValue)) {
for (final Map.Entry<String, Widget> entry : targetDeviceWi.entrySet()) {
entry.getValue().reloadComboBox(
selected,
devices.toArray(new Value[devices.size()]));
}
prevTargetBusType = newValue;
}
final Value tbs = getComboBoxValue(DiskData.TARGET_BUS_TYPE);
if (getParamSaved(DiskData.DRIVER_NAME) == null
&& !tbs.equals(previousTargetBusType)) {
if (BUS_TYPE_CDROM.equals(newValue)) {
for (final Map.Entry<String, Widget> entry : readonlyWi.entrySet()) {
entry.getValue().setValue(new StringValue("True"));
}
for (final Map.Entry<String, Widget> entry : driverTypeWi.entrySet()) {
if (getResource().isNew()) {
entry.getValue().setValue(new StringValue("raw"));
} else {
if (entry.getValue().getValue() != null) {
entry.getValue().setValue(null);
}
}
}
} else if (BUS_TYPE_VIRTIO.equals(newValue)) {
for (final Map.Entry<String, Widget> entry : driverTypeWi.entrySet()) {
entry.getValue().setValue(new StringValue("raw"));
}
for (final Map.Entry<String, Widget> entry : driverCacheWi.entrySet()) {
entry.getValue().setValue(new StringValue("none"));
}
} else {
for (final Map.Entry<String, Widget> entry : readonlyWi.entrySet()) {
entry.getValue().setValue(new StringValue("False"));
driverTypeWi.get(entry.getKey()).setValue(new StringValue("raw"));
}
}
}
previousTargetBusType = tbs;
checkOneParam(DiskData.SOURCE_FILE);