CCM NG: Some minor work for the setting editor(s)
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4078 8810af33-2d31-482b-a856-94f89814c4dfpull/2/head
parent
c78122e677
commit
670e009365
|
|
@ -63,6 +63,7 @@ public class ConfigurationTable extends Table {
|
||||||
private static final int COL_EDIT_SETTING = 3;
|
private static final int COL_EDIT_SETTING = 3;
|
||||||
|
|
||||||
private ParameterSingleSelectionModel<String> selectedConf;
|
private ParameterSingleSelectionModel<String> selectedConf;
|
||||||
|
private ParameterSingleSelectionModel<String> selectedSetting;
|
||||||
|
|
||||||
public ConfigurationTable(
|
public ConfigurationTable(
|
||||||
final ConfigurationTab configurationTab,
|
final ConfigurationTab configurationTab,
|
||||||
|
|
@ -74,6 +75,7 @@ public class ConfigurationTable extends Table {
|
||||||
setIdAttr("configurationTable");
|
setIdAttr("configurationTable");
|
||||||
|
|
||||||
this.selectedConf = selectedConf;
|
this.selectedConf = selectedConf;
|
||||||
|
this.selectedSetting = selectedSetting;
|
||||||
|
|
||||||
setEmptyView(new Label(new GlobalizedMessage(
|
setEmptyView(new Label(new GlobalizedMessage(
|
||||||
"ui.admin.configuration.settings.none", ADMIN_BUNDLE)));
|
"ui.admin.configuration.settings.none", ADMIN_BUNDLE)));
|
||||||
|
|
@ -126,6 +128,37 @@ public class ConfigurationTable extends Table {
|
||||||
final String settingName = (String) event.getRowKey();
|
final String settingName = (String) event.getRowKey();
|
||||||
selectedSetting.setSelectedKey(state, settingName);
|
selectedSetting.setSelectedKey(state, settingName);
|
||||||
|
|
||||||
|
switch (getTypeOfSelectedSetting(state)) {
|
||||||
|
case "boolean":
|
||||||
|
LOGGER.debug("Setting is of type boolean");
|
||||||
|
break;
|
||||||
|
case "long":
|
||||||
|
LOGGER.debug("Setting is of type long");
|
||||||
|
break;
|
||||||
|
case "double":
|
||||||
|
LOGGER.debug("Setting is of type double");
|
||||||
|
break;
|
||||||
|
case "java.math.BigDecimal":
|
||||||
|
LOGGER.debug("Setting is of type BigDecimal");
|
||||||
|
break;
|
||||||
|
case "org.libreccm.l10n.LocalizedString":
|
||||||
|
LOGGER.debug("Setting is of type LocalizedString");
|
||||||
|
break;
|
||||||
|
case "java.lang.String":
|
||||||
|
LOGGER.debug("Setting is of type String");
|
||||||
|
break;
|
||||||
|
case "java.util.Set":
|
||||||
|
LOGGER.debug("Setting is of type Enum");
|
||||||
|
break;
|
||||||
|
case "java.util.List":
|
||||||
|
LOGGER.debug("Setting is of type List");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new IllegalArgumentException(String.format(
|
||||||
|
"Unknown setting type \"%s\".",
|
||||||
|
getTypeOfSelectedSetting(state)));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -139,6 +172,29 @@ public class ConfigurationTable extends Table {
|
||||||
setModelBuilder(new ConfigurationTableModelBuilder());
|
setModelBuilder(new ConfigurationTableModelBuilder());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getTypeOfSelectedSetting(final PageState state) {
|
||||||
|
final Class<?> confClass;
|
||||||
|
try {
|
||||||
|
confClass = Class.forName(selectedConf.getSelectedKey(state));
|
||||||
|
} catch (ClassNotFoundException ex) {
|
||||||
|
LOGGER.error("Configuration class '{}' not found.",
|
||||||
|
selectedConf.getSelectedKey(state));
|
||||||
|
throw new UncheckedWrapperException(String.format(
|
||||||
|
"Configuration class '%s not found'",
|
||||||
|
selectedConf.getSelectedKey(state)), ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
final SettingManager settingManager = CdiUtil.createCdiUtil().findBean(
|
||||||
|
SettingManager.class);
|
||||||
|
final SettingInfo info = settingManager.getSettingInfo(confClass,
|
||||||
|
selectedSetting.
|
||||||
|
getSelectedKey(
|
||||||
|
state));
|
||||||
|
|
||||||
|
return info.getValueType();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
private class ConfigurationTableModelBuilder
|
private class ConfigurationTableModelBuilder
|
||||||
extends LockableImpl implements TableModelBuilder {
|
extends LockableImpl implements TableModelBuilder {
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue