CCM NG: Some bugfixing for the configuration tab.
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4077 8810af33-2d31-482b-a856-94f89814c4dfpull/2/head
parent
6c89d10a80
commit
c78122e677
|
|
@ -55,6 +55,7 @@ public class ConfigurationTab extends LayoutPanel {
|
||||||
private final Form confClassesFilterForm;
|
private final Form confClassesFilterForm;
|
||||||
private final ConfigurationsTable configurationsTable;
|
private final ConfigurationsTable configurationsTable;
|
||||||
|
|
||||||
|
private final ActionLink configurationBackLink;
|
||||||
private final ConfigurationTable configurationTable;
|
private final ConfigurationTable configurationTable;
|
||||||
|
|
||||||
private final SettingFormBoolean settingFormBoolean;
|
private final SettingFormBoolean settingFormBoolean;
|
||||||
|
|
@ -76,7 +77,7 @@ public class ConfigurationTab extends LayoutPanel {
|
||||||
|
|
||||||
selectedSettingParam = new StringParameter("selectedSetting");
|
selectedSettingParam = new StringParameter("selectedSetting");
|
||||||
selectedSetting = new ParameterSingleSelectionModel<>(
|
selectedSetting = new ParameterSingleSelectionModel<>(
|
||||||
selectedSettingParam);
|
selectedSettingParam);
|
||||||
|
|
||||||
selectedValueParam = new StringParameter("selectedValue");
|
selectedValueParam = new StringParameter("selectedValue");
|
||||||
selectedValue = new ParameterSingleSelectionModel<>(selectedValueParam);
|
selectedValue = new ParameterSingleSelectionModel<>(selectedValueParam);
|
||||||
|
|
@ -84,15 +85,15 @@ public class ConfigurationTab extends LayoutPanel {
|
||||||
final SegmentedPanel left = new SegmentedPanel();
|
final SegmentedPanel left = new SegmentedPanel();
|
||||||
|
|
||||||
confClassesFilterHeading = new Label(new GlobalizedMessage(
|
confClassesFilterHeading = new Label(new GlobalizedMessage(
|
||||||
"ui.admin.configuration.classes.filter.heading", ADMIN_BUNDLE));
|
"ui.admin.configuration.classes.filter.heading", ADMIN_BUNDLE));
|
||||||
|
|
||||||
confClassesFilterForm = new Form("confClassesForm");
|
confClassesFilterForm = new Form("confClassesForm");
|
||||||
final TextField confClassesFilter = new TextField(CONF_CLASSES_FILTER);
|
final TextField confClassesFilter = new TextField(CONF_CLASSES_FILTER);
|
||||||
confClassesFilterForm.add(confClassesFilter);
|
confClassesFilterForm.add(confClassesFilter);
|
||||||
confClassesFilterForm.add(new Submit(new GlobalizedMessage(
|
confClassesFilterForm.add(new Submit(new GlobalizedMessage(
|
||||||
"ui.admin.configuration.classes.filter.submit", ADMIN_BUNDLE)));
|
"ui.admin.configuration.classes.filter.submit", ADMIN_BUNDLE)));
|
||||||
final ActionLink clearLink = new ActionLink(new GlobalizedMessage(
|
final ActionLink clearLink = new ActionLink(new GlobalizedMessage(
|
||||||
"ui.admin.configuration.classes.filter.clear", ADMIN_BUNDLE));
|
"ui.admin.configuration.classes.filter.clear", ADMIN_BUNDLE));
|
||||||
clearLink.addActionListener(e -> {
|
clearLink.addActionListener(e -> {
|
||||||
final PageState state = e.getPageState();
|
final PageState state = e.getPageState();
|
||||||
confClassesFilter.setValue(state, null);
|
confClassesFilter.setValue(state, null);
|
||||||
|
|
@ -104,9 +105,17 @@ public class ConfigurationTab extends LayoutPanel {
|
||||||
|
|
||||||
final BoxPanel body = new BoxPanel(BoxPanel.VERTICAL);
|
final BoxPanel body = new BoxPanel(BoxPanel.VERTICAL);
|
||||||
configurationsTable = new ConfigurationsTable(
|
configurationsTable = new ConfigurationsTable(
|
||||||
this, selectedConf, confClassesFilter);
|
this, selectedConf, confClassesFilter);
|
||||||
body.add(configurationsTable);
|
body.add(configurationsTable);
|
||||||
|
|
||||||
|
configurationBackLink = new ActionLink(new GlobalizedMessage(
|
||||||
|
"ui.admin.configuration.back_to_configurations",
|
||||||
|
ADMIN_BUNDLE));
|
||||||
|
configurationBackLink.addActionListener(e -> {
|
||||||
|
final PageState state = e.getPageState();
|
||||||
|
hideConfiguration(state);
|
||||||
|
});
|
||||||
|
body.add(configurationBackLink);
|
||||||
configurationTable = new ConfigurationTable(this,
|
configurationTable = new ConfigurationTable(this,
|
||||||
selectedConf,
|
selectedConf,
|
||||||
selectedSetting);
|
selectedSetting);
|
||||||
|
|
@ -138,15 +147,15 @@ public class ConfigurationTab extends LayoutPanel {
|
||||||
body.add(settingFormString);
|
body.add(settingFormString);
|
||||||
|
|
||||||
settingEditorLocalizedString = new SettingEditorLocalizedString(
|
settingEditorLocalizedString = new SettingEditorLocalizedString(
|
||||||
this, selectedConf, selectedSetting, selectedValue);
|
this, selectedConf, selectedSetting, selectedValue);
|
||||||
body.add(settingEditorLocalizedString);
|
body.add(settingEditorLocalizedString);
|
||||||
|
|
||||||
settingEditorStringList = new SettingEditorStringList(
|
settingEditorStringList = new SettingEditorStringList(
|
||||||
this, selectedConf, selectedSetting, selectedValue);
|
this, selectedConf, selectedSetting, selectedValue);
|
||||||
body.add(settingEditorStringList);
|
body.add(settingEditorStringList);
|
||||||
|
|
||||||
settingEditorEnum = new SettingEditorEnum(
|
settingEditorEnum = new SettingEditorEnum(
|
||||||
this, selectedConf, selectedSetting, selectedValue);
|
this, selectedConf, selectedSetting, selectedValue);
|
||||||
body.add(settingEditorEnum);
|
body.add(settingEditorEnum);
|
||||||
|
|
||||||
setBody(body);
|
setBody(body);
|
||||||
|
|
@ -164,6 +173,7 @@ public class ConfigurationTab extends LayoutPanel {
|
||||||
page.setVisibleDefault(confClassesFilterForm, true);
|
page.setVisibleDefault(confClassesFilterForm, true);
|
||||||
page.setVisibleDefault(configurationsTable, true);
|
page.setVisibleDefault(configurationsTable, true);
|
||||||
|
|
||||||
|
page.setVisibleDefault(configurationBackLink, false);
|
||||||
page.setVisibleDefault(configurationTable, false);
|
page.setVisibleDefault(configurationTable, false);
|
||||||
|
|
||||||
page.setVisibleDefault(settingFormBoolean, false);
|
page.setVisibleDefault(settingFormBoolean, false);
|
||||||
|
|
@ -203,14 +213,16 @@ public class ConfigurationTab extends LayoutPanel {
|
||||||
hideConfigurationsTable(state);
|
hideConfigurationsTable(state);
|
||||||
hideSettingForms(state);
|
hideSettingForms(state);
|
||||||
|
|
||||||
|
configurationBackLink.setVisible(state, true);
|
||||||
configurationTable.setVisible(state, true);
|
configurationTable.setVisible(state, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void hideConfiguration(final PageState state) {
|
protected void hideConfiguration(final PageState state) {
|
||||||
|
configurationBackLink.setVisible(state, false);
|
||||||
configurationTable.setVisible(state, false);
|
configurationTable.setVisible(state, false);
|
||||||
|
|
||||||
selectedConf.clearSelection(state);
|
selectedConf.clearSelection(state);
|
||||||
|
|
||||||
showConfigurationsTable(state);
|
showConfigurationsTable(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -365,11 +377,9 @@ public class ConfigurationTab extends LayoutPanel {
|
||||||
settingEditorLocalizedString.setVisible(state, false);
|
settingEditorLocalizedString.setVisible(state, false);
|
||||||
settingEditorStringList.setVisible(state, false);
|
settingEditorStringList.setVisible(state, false);
|
||||||
settingEditorEnum.setVisible(state, false);
|
settingEditorEnum.setVisible(state, false);
|
||||||
|
|
||||||
selectedSetting.clearSelection(state);
|
selectedSetting.clearSelection(state);
|
||||||
selectedValue.clearSelection(state);
|
selectedValue.clearSelection(state);
|
||||||
|
|
||||||
showConfiguration(state);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ import com.arsdigita.bebop.table.TableModelBuilder;
|
||||||
import com.arsdigita.globalization.GlobalizedMessage;
|
import com.arsdigita.globalization.GlobalizedMessage;
|
||||||
import com.arsdigita.util.LockableImpl;
|
import com.arsdigita.util.LockableImpl;
|
||||||
import com.arsdigita.util.UncheckedWrapperException;
|
import com.arsdigita.util.UncheckedWrapperException;
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
@ -54,7 +55,7 @@ import static com.arsdigita.ui.admin.AdminUiConstants.*;
|
||||||
public class ConfigurationTable extends Table {
|
public class ConfigurationTable extends Table {
|
||||||
|
|
||||||
private static final Logger LOGGER = LogManager.getLogger(
|
private static final Logger LOGGER = LogManager.getLogger(
|
||||||
ConfigurationTable.class);
|
ConfigurationTable.class);
|
||||||
|
|
||||||
private static final int COL_SETTING_LABEL = 0;
|
private static final int COL_SETTING_LABEL = 0;
|
||||||
private static final int COL_SETTING_VALUE = 1;
|
private static final int COL_SETTING_VALUE = 1;
|
||||||
|
|
@ -64,9 +65,9 @@ public class ConfigurationTable extends Table {
|
||||||
private ParameterSingleSelectionModel<String> selectedConf;
|
private ParameterSingleSelectionModel<String> selectedConf;
|
||||||
|
|
||||||
public ConfigurationTable(
|
public ConfigurationTable(
|
||||||
final ConfigurationTab configurationTab,
|
final ConfigurationTab configurationTab,
|
||||||
final ParameterSingleSelectionModel<String> selectedConf,
|
final ParameterSingleSelectionModel<String> selectedConf,
|
||||||
final ParameterSingleSelectionModel<String> selectedSetting) {
|
final ParameterSingleSelectionModel<String> selectedSetting) {
|
||||||
|
|
||||||
super();
|
super();
|
||||||
|
|
||||||
|
|
@ -75,32 +76,32 @@ public class ConfigurationTable extends Table {
|
||||||
this.selectedConf = selectedConf;
|
this.selectedConf = selectedConf;
|
||||||
|
|
||||||
setEmptyView(new Label(new GlobalizedMessage(
|
setEmptyView(new Label(new GlobalizedMessage(
|
||||||
"ui.admin.configuration.settings.none", ADMIN_BUNDLE)));
|
"ui.admin.configuration.settings.none", ADMIN_BUNDLE)));
|
||||||
|
|
||||||
final TableColumnModel columnModel = getColumnModel();
|
final TableColumnModel columnModel = getColumnModel();
|
||||||
columnModel.add(new TableColumn(
|
columnModel.add(new TableColumn(
|
||||||
COL_SETTING_LABEL,
|
COL_SETTING_LABEL,
|
||||||
new Label(new GlobalizedMessage(
|
new Label(new GlobalizedMessage(
|
||||||
"ui.admin.configuration.settings.table.col_setting_label.header",
|
"ui.admin.configuration.settings.table.col_setting_label.header",
|
||||||
ADMIN_BUNDLE))));
|
ADMIN_BUNDLE))));
|
||||||
columnModel.add(new TableColumn(
|
columnModel.add(new TableColumn(
|
||||||
COL_SETTING_VALUE,
|
COL_SETTING_VALUE,
|
||||||
new Label(new GlobalizedMessage(
|
new Label(new GlobalizedMessage(
|
||||||
"ui.admin.configuration.settings.table.col_setting_value.header",
|
"ui.admin.configuration.settings.table.col_setting_value.header",
|
||||||
ADMIN_BUNDLE))));
|
ADMIN_BUNDLE))));
|
||||||
columnModel.add(new TableColumn(
|
columnModel.add(new TableColumn(
|
||||||
COL_SETTING_DESC,
|
COL_SETTING_DESC,
|
||||||
new Label(new GlobalizedMessage(
|
new Label(new GlobalizedMessage(
|
||||||
"ui.admin.configuration.settings.table.col_setting_desc.header",
|
"ui.admin.configuration.settings.table.col_setting_desc.header",
|
||||||
ADMIN_BUNDLE))));
|
ADMIN_BUNDLE))));
|
||||||
columnModel.add(new TableColumn(
|
columnModel.add(new TableColumn(
|
||||||
COL_EDIT_SETTING,
|
COL_EDIT_SETTING,
|
||||||
new Label(new GlobalizedMessage(
|
new Label(new GlobalizedMessage(
|
||||||
"ui.admin.configuration.settings.table.col_edit_setting.header",
|
"ui.admin.configuration.settings.table.col_edit_setting.header",
|
||||||
ADMIN_BUNDLE))));
|
ADMIN_BUNDLE))));
|
||||||
|
|
||||||
columnModel.get(COL_EDIT_SETTING).setCellRenderer(
|
columnModel.get(COL_EDIT_SETTING).setCellRenderer(
|
||||||
new TableCellRenderer() {
|
new TableCellRenderer() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Component getComponent(final Table table,
|
public Component getComponent(final Table table,
|
||||||
|
|
@ -110,7 +111,7 @@ public class ConfigurationTable extends Table {
|
||||||
final Object key,
|
final Object key,
|
||||||
final int row,
|
final int row,
|
||||||
final int column) {
|
final int column) {
|
||||||
return new ControlLink((String) value);
|
return new ControlLink((Component) value);
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
@ -124,6 +125,7 @@ public class ConfigurationTable extends Table {
|
||||||
if (event.getColumn() == COL_EDIT_SETTING) {
|
if (event.getColumn() == COL_EDIT_SETTING) {
|
||||||
final String settingName = (String) event.getRowKey();
|
final String settingName = (String) event.getRowKey();
|
||||||
selectedSetting.setSelectedKey(state, settingName);
|
selectedSetting.setSelectedKey(state, settingName);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -138,12 +140,12 @@ public class ConfigurationTable extends Table {
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ConfigurationTableModelBuilder
|
private class ConfigurationTableModelBuilder
|
||||||
extends LockableImpl implements TableModelBuilder {
|
extends LockableImpl implements TableModelBuilder {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TableModel makeModel(final Table table, final PageState state) {
|
public TableModel makeModel(final Table table, final PageState state) {
|
||||||
final ConfigurationManager confManager = CdiUtil.createCdiUtil()
|
final ConfigurationManager confManager = CdiUtil.createCdiUtil()
|
||||||
.findBean(ConfigurationManager.class);
|
.findBean(ConfigurationManager.class);
|
||||||
final Class<?> confClass;
|
final Class<?> confClass;
|
||||||
try {
|
try {
|
||||||
confClass = Class.forName(selectedConf.getSelectedKey(state));
|
confClass = Class.forName(selectedConf.getSelectedKey(state));
|
||||||
|
|
@ -151,12 +153,12 @@ public class ConfigurationTable extends Table {
|
||||||
LOGGER.error("Configuration class '{}' not found.",
|
LOGGER.error("Configuration class '{}' not found.",
|
||||||
selectedConf.getSelectedKey(state));
|
selectedConf.getSelectedKey(state));
|
||||||
throw new UncheckedWrapperException(String.format(
|
throw new UncheckedWrapperException(String.format(
|
||||||
"Configuration class '%s not found'",
|
"Configuration class '%s not found'",
|
||||||
selectedConf.getSelectedKey(state)), ex);
|
selectedConf.getSelectedKey(state)), ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
final Object configuration = confManager
|
final Object configuration = confManager
|
||||||
.findConfiguration(confClass);
|
.findConfiguration(confClass);
|
||||||
|
|
||||||
return new ConfigurationTableModel(configuration, state);
|
return new ConfigurationTableModel(configuration, state);
|
||||||
}
|
}
|
||||||
|
|
@ -201,30 +203,36 @@ public class ConfigurationTable extends Table {
|
||||||
public Object getElementAt(final int columnIndex) {
|
public Object getElementAt(final int columnIndex) {
|
||||||
final String setting = settings.get(index);
|
final String setting = settings.get(index);
|
||||||
final SettingInfo settingInfo = settingManager.getSettingInfo(
|
final SettingInfo settingInfo = settingManager.getSettingInfo(
|
||||||
configuration.getClass(), setting);
|
configuration.getClass(), setting);
|
||||||
|
|
||||||
switch (columnIndex) {
|
switch (columnIndex) {
|
||||||
case COL_SETTING_LABEL:
|
case COL_SETTING_LABEL:
|
||||||
return settingInfo.getLabel(globalizationHelper
|
return settingInfo.getLabel(globalizationHelper
|
||||||
.getNegotiatedLocale());
|
.getNegotiatedLocale());
|
||||||
case COL_SETTING_VALUE: {
|
case COL_SETTING_VALUE: {
|
||||||
try {
|
try {
|
||||||
return configuration.getClass().getField(setting).get(
|
final Field field = configuration.getClass().
|
||||||
configuration);
|
getDeclaredField(setting);
|
||||||
} catch (NoSuchFieldException | SecurityException | IllegalAccessException ex) {
|
field.setAccessible(true);
|
||||||
|
return field.get(configuration);
|
||||||
|
// return configuration.getClass().
|
||||||
|
// getDeclaredField(setting).get(configuration);
|
||||||
|
} catch (NoSuchFieldException |
|
||||||
|
SecurityException |
|
||||||
|
IllegalAccessException ex) {
|
||||||
LOGGER.error("Failed to read value from configuration.",
|
LOGGER.error("Failed to read value from configuration.",
|
||||||
ex);
|
ex);
|
||||||
return new Label(new GlobalizedMessage(
|
return new Label(new GlobalizedMessage(
|
||||||
"ui.admin.configuration.settings.read_error",
|
"ui.admin.configuration.settings.read_error",
|
||||||
ADMIN_BUNDLE));
|
ADMIN_BUNDLE));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case COL_SETTING_DESC:
|
case COL_SETTING_DESC:
|
||||||
return settingInfo.getDescription(globalizationHelper
|
return settingInfo.getDescription(globalizationHelper
|
||||||
.getNegotiatedLocale());
|
.getNegotiatedLocale());
|
||||||
case COL_EDIT_SETTING:
|
case COL_EDIT_SETTING:
|
||||||
return new Label(new GlobalizedMessage(
|
return new Label(new GlobalizedMessage(
|
||||||
"ui.admin.configuration.settings.edit", ADMIN_BUNDLE));
|
"ui.admin.configuration.settings.edit", ADMIN_BUNDLE));
|
||||||
default:
|
default:
|
||||||
throw new IllegalArgumentException("Illegal column index");
|
throw new IllegalArgumentException("Illegal column index");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -106,6 +106,8 @@ public class ConfigurationsTable extends Table {
|
||||||
if (event.getColumn() == COL_TITLE) {
|
if (event.getColumn() == COL_TITLE) {
|
||||||
final String confClassName = (String) event.getRowKey();
|
final String confClassName = (String) event.getRowKey();
|
||||||
selectedConf.setSelectedKey(state, confClassName);
|
selectedConf.setSelectedKey(state, confClassName);
|
||||||
|
|
||||||
|
configurationTab.showConfiguration(state);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -449,3 +449,4 @@ ui.admin.configuration.setting.enum.col_del=Delete
|
||||||
ui.admin.configuration.setting.enum.value.edit=Edit
|
ui.admin.configuration.setting.enum.value.edit=Edit
|
||||||
ui.admin.configuration.setting.enum.value.del=Delete
|
ui.admin.configuration.setting.enum.value.del=Delete
|
||||||
ui.admin.configuration.setting.enum.value.label=Value
|
ui.admin.configuration.setting.enum.value.label=Value
|
||||||
|
ui.admin.configuration.back_to_configurations=Back to list of configurations
|
||||||
|
|
|
||||||
|
|
@ -452,3 +452,4 @@ ui.admin.configuration.setting.enum.col_del=L\u00f6schen
|
||||||
ui.admin.configuration.setting.enum.value.edit=Bearbeiten
|
ui.admin.configuration.setting.enum.value.edit=Bearbeiten
|
||||||
ui.admin.configuration.setting.enum.value.del=L\u00f6schen
|
ui.admin.configuration.setting.enum.value.del=L\u00f6schen
|
||||||
ui.admin.configuration.setting.enum.value.label=Wert
|
ui.admin.configuration.setting.enum.value.label=Wert
|
||||||
|
ui.admin.configuration.back_to_configurations=Zur\u00fcck zur Liste der Konfigurationen
|
||||||
|
|
|
||||||
|
|
@ -425,3 +425,4 @@ ui.admin.configuration.setting.enum.col_del=Delete
|
||||||
ui.admin.configuration.setting.enum.value.edit=Edit
|
ui.admin.configuration.setting.enum.value.edit=Edit
|
||||||
ui.admin.configuration.setting.enum.value.del=Delete
|
ui.admin.configuration.setting.enum.value.del=Delete
|
||||||
ui.admin.configuration.setting.enum.value.label=Value
|
ui.admin.configuration.setting.enum.value.label=Value
|
||||||
|
ui.admin.configuration.back_to_configurations=Back to list of configurations
|
||||||
|
|
|
||||||
|
|
@ -416,3 +416,4 @@ ui.admin.configuration.setting.enum.col_del=Delete
|
||||||
ui.admin.configuration.setting.enum.value.edit=Edit
|
ui.admin.configuration.setting.enum.value.edit=Edit
|
||||||
ui.admin.configuration.setting.enum.value.del=Delete
|
ui.admin.configuration.setting.enum.value.del=Delete
|
||||||
ui.admin.configuration.setting.enum.value.label=Value
|
ui.admin.configuration.setting.enum.value.label=Value
|
||||||
|
ui.admin.configuration.back_to_configurations=Back to list of configurations
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue