From ea6c4667712237aa6683fe9eeeaf1ec09b64aa4f Mon Sep 17 00:00:00 2001 From: uhensler <urs.hensler@frentix.com> Date: Mon, 27 Aug 2018 14:07:24 +0200 Subject: [PATCH] OO-3304: GUI enhancements --- .../ui/GeneratorConfigController.java | 2 ++ .../generator/ui/GeneratorController.java | 7 +++--- .../generator/ui/GeneratorDataModel.java | 10 ++++++++ .../generator/ui/GeneratorEditController.java | 9 +++++++ ...GeneratorEnableConfirmationController.java | 1 + .../quality/generator/ui/GeneratorEvent.java | 3 ++- .../generator/ui/GeneratorListController.java | 24 ++++++++++++++++++- .../AbstractDataCollectionEditController.java | 9 +++++++ .../ui/ParticipationListController.java | 2 +- 9 files changed, 60 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorConfigController.java b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorConfigController.java index ef8a314875e..3131cd464f3 100644 --- a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorConfigController.java +++ b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorConfigController.java @@ -253,6 +253,8 @@ public class GeneratorConfigController extends FormBasicController { currentOrganisations = QualityUIFactory.getSelectedOrganisations(organisationsEl, currentOrganisations); generatorService.updateGeneratorOrganisations(generator, currentOrganisations); } + + fireEvent(ureq, new GeneratorEvent(generator, GeneratorEvent.Action.CHANGED)); } @Override diff --git a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorController.java b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorController.java index a93a36fddd2..981b8f656a1 100644 --- a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorController.java +++ b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorController.java @@ -126,10 +126,9 @@ public class GeneratorController extends BasicController implements TooledContro GeneratorEvent gEvent = (GeneratorEvent) event; GeneratorEvent.Action action = gEvent.getAction(); generator = gEvent.getGenerator(); - //TODO uh auch für geenratro -// if (Action.CHANGED.equals(action)) { -// stackPanel.changeDisplayname(dataCollection.getTitle(), null, this); - if (GeneratorEvent.Action.ENABLE.equals(action)) { + if (GeneratorEvent.Action.CHANGED.equals(action)) { + stackPanel.changeDisplayname(generator.getTitle(), null, this); + } else if (GeneratorEvent.Action.ENABLE.equals(action)) { doConfirmEnableGenerator(ureq); } else if (GeneratorEvent.Action.DISABLE.equals(action)) { doConfirmDisableGenerator(ureq); diff --git a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorDataModel.java b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorDataModel.java index 9f518a3948b..3e2ff3fd52f 100644 --- a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorDataModel.java +++ b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorDataModel.java @@ -45,6 +45,16 @@ class GeneratorDataModel extends DefaultFlexiTableDataModel<GeneratorRow> super(columnsModel); this.translator = translator; } + + public GeneratorRow getObjectByKey(Long key) { + List<GeneratorRow> rows = getObjects(); + for (GeneratorRow row: rows) { + if (row != null && row.getGeneratorRef().getKey().equals(key)) { + return row; + } + } + return null; + } @Override public void sort(SortKey orderBy) { diff --git a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEditController.java b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEditController.java index 6d0af9cfbeb..1e183d7c2ea 100644 --- a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEditController.java +++ b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEditController.java @@ -24,6 +24,7 @@ import org.olat.core.gui.components.form.flexible.FormItemContainer; import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; +import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; import org.olat.modules.quality.QualitySecurityCallback; import org.olat.modules.quality.generator.QualityGenerator; @@ -77,6 +78,14 @@ public class GeneratorEditController extends AbstractGeneratorEditController { providerConfigCtrl.setReadOnly(generator.isEnabled()); } + @Override + protected void event(UserRequest ureq, Controller source, Event event) { + if (event instanceof GeneratorEvent) { + fireEvent(ureq, event); + } + super.event(ureq, source, event); + } + boolean validateBeforeActivation(UserRequest ureq) { boolean allOk = true; allOk &= configCtrl.validateBeforeActivation(ureq); diff --git a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEnableConfirmationController.java b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEnableConfirmationController.java index bd1f0b97b6f..e7fbc9a509d 100644 --- a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEnableConfirmationController.java +++ b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEnableConfirmationController.java @@ -68,6 +68,7 @@ public class GeneratorEnableConfirmationController extends FormBasicController { protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { Date fromDate = generator.getLastRun() != null? generator.getLastRun(): new Date(); fromEl = uifactory.addDateChooser("generator.from.date", fromDate, formLayout); + fromEl.setDateChooserTimeEnabled(true); fromEl.setMandatory(true); fromEl.addActionListener(FormEvent.ONCHANGE); diff --git a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEvent.java b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEvent.java index 5b179150e86..d6f70f7ef70 100644 --- a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEvent.java +++ b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorEvent.java @@ -35,7 +35,8 @@ public class GeneratorEvent extends Event { public enum Action { ENABLE, DISABLE, - DELETE + DELETE, + CHANGED } private final QualityGenerator generator; diff --git a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorListController.java b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorListController.java index abb65a17411..cef1a3f505d 100644 --- a/src/main/java/org/olat/modules/quality/generator/ui/GeneratorListController.java +++ b/src/main/java/org/olat/modules/quality/generator/ui/GeneratorListController.java @@ -158,8 +158,30 @@ public class GeneratorListController extends FormBasicController implements Tool @Override public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) { - // TODO uh Auto-generated method stub + if(entries == null || entries.isEmpty()) return; + ContextEntry entry = entries.get(0); + String type = entry.getOLATResourceable().getResourceableTypeName(); + if (QualityGenerator.RESOURCEABLE_TYPE_NAME.equals(type)) { + Long key = entry.getOLATResourceable().getResourceableId(); + GeneratorRow row = dataModel.getObjectByKey(key); + if (row == null) { + loadModel(); + row = dataModel.getObjectByKey(key); + if (row != null) { + doEditGenerator(ureq, row.getGeneratorRef()); + int index = dataModel.getObjects().indexOf(row); + if (index >= 1 && tableEl.getPageSize() > 1) { + int page = index / tableEl.getPageSize(); + tableEl.setPage(page); + } + } else { + tableEl.reset(); + } + } else { + doEditGenerator(ureq, row.getGeneratorRef()); + } + } } @Override diff --git a/src/main/java/org/olat/modules/quality/ui/AbstractDataCollectionEditController.java b/src/main/java/org/olat/modules/quality/ui/AbstractDataCollectionEditController.java index 062429752a3..9ef79f647d7 100644 --- a/src/main/java/org/olat/modules/quality/ui/AbstractDataCollectionEditController.java +++ b/src/main/java/org/olat/modules/quality/ui/AbstractDataCollectionEditController.java @@ -73,6 +73,15 @@ abstract class AbstractDataCollectionEditController extends FormBasicController this.dataCollection = dataCollection; } + AbstractDataCollectionEditController(UserRequest ureq, WindowControl wControl, + QualitySecurityCallback secCallback, TooledStackedPanel stackPanel, + QualityDataCollection dataCollection, int layout) { + super(ureq, wControl, layout); + this.secCallback = secCallback; + this.stackPanel = stackPanel; + this.dataCollection = dataCollection; + } + protected void setDataCollection(UserRequest ureq, QualityDataCollection dataCollection) { this.dataCollection = dataCollection; updateUI(ureq); diff --git a/src/main/java/org/olat/modules/quality/ui/ParticipationListController.java b/src/main/java/org/olat/modules/quality/ui/ParticipationListController.java index 3c4eb07f28f..14a96760974 100644 --- a/src/main/java/org/olat/modules/quality/ui/ParticipationListController.java +++ b/src/main/java/org/olat/modules/quality/ui/ParticipationListController.java @@ -99,7 +99,7 @@ public class ParticipationListController extends AbstractDataCollectionEditContr public ParticipationListController(UserRequest ureq, WindowControl windowControl, QualitySecurityCallback secCallback, TooledStackedPanel stackPanel, QualityDataCollection dataCollection) { - super(ureq, windowControl, secCallback, stackPanel, dataCollection); + super(ureq, windowControl, secCallback, stackPanel, dataCollection, LAYOUT_BAREBONE); initForm(ureq); } -- GitLab