@Override
protected Widget createWidget(final String param, final String prefix, final int width) {
final Widget paramWi;
if (FS_RES_PARAM_DEV.equals(param)) {
Value selectedValue = getPreviouslySelected(param, prefix);
if (selectedValue == null) {
selectedValue = getParamSaved(param);
}
final VolumeInfo selectedInfo = getBrowser().getDrbdVolumeFromDev(selectedValue.getValueForConfig());
if (selectedInfo != null) {
selectedValue = selectedInfo;
}
Value defaultValue = null;
if (selectedValue.isNothingSelected()) {
defaultValue = new StringValue() {
@Override
public String getNothingSelected() {
return Tools.getString("ClusterBrowser.SelectBlockDevice");
}
};
}
final Value[] commonBlockDevInfos = getCommonBlockDevInfos(defaultValue, getName());
blockDeviceParamWidget = widgetFactory.createInstance(
Widget.GUESS_TYPE,
selectedValue,
commonBlockDevInfos,
Widget.NO_REGEXP,
width,
Widget.NO_ABBRV,
new AccessMode(getAccessType(param), isEnabledOnlyInAdvancedMode(param)),
Widget.NO_BUTTON);
blockDeviceParamWidget.setAlwaysEditable(true);
paramWi = blockDeviceParamWidget;
addParamComboListeners(paramWi);
widgetAdd(param, prefix, paramWi);
} else if ("fstype".equals(param)) {
final Value defaultValue =
new StringValue() {
@Override
public String getNothingSelected() {
return Tools.getString("ClusterBrowser.SelectFilesystem");
}
};
Value selectedValue = getPreviouslySelected(param, prefix);
if (selectedValue == null) {
selectedValue = getParamSaved(param);
}
if (selectedValue == null || selectedValue.isNothingSelected()) {
selectedValue = defaultValue;
}
paramWi = widgetFactory.createInstance(
Widget.GUESS_TYPE,
selectedValue,
getBrowser().getCommonFileSystems(defaultValue),
Widget.NO_REGEXP,
width,
Widget.NO_ABBRV,
new AccessMode(getAccessType(param), isEnabledOnlyInAdvancedMode(param)),
Widget.NO_BUTTON);
fstypeParamWidget = paramWi;
widgetAdd(param, prefix, paramWi);
paramWi.setEditable(false);
} else if ("directory".equals(param)) {
final String[] cmp = getBrowser().getCommonMountPoints();
final Value[] items = new Value[cmp.length + 1];
final Value defaultValue = new StringValue() {
@Override
public String getNothingSelected() {
return Tools.getString("ClusterBrowser.SelectMountPoint");
}
};
items[0] = defaultValue;
int i = 1;
for (final String c : cmp) {
items[i] = new StringValue(c);
i++;
}
getResource().setPossibleChoices(param, items);
Value selectedValue = getPreviouslySelected(param, prefix);
if (selectedValue == null) {
selectedValue = getParamSaved(param);
}
if (selectedValue == null || selectedValue.isNothingSelected()) {
selectedValue = defaultValue;
}
final String regexp = "^.+$";
paramWi = widgetFactory.createInstance(
Widget.GUESS_TYPE,