From 26a569aacf50c3e5ef7014b65b10587f4cd8abdf Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Wed, 12 Aug 2020 09:24:39 +0200
Subject: [PATCH] no-jira: auto completer form item need to send form event too

---
 .../impl/elements/AutoCompleteFormEvent.java  | 44 +++++++++++++++++++
 .../impl/elements/AutoCompleterComponent.java |  1 +
 .../impl/elements/AutoCompleterImpl.java      | 13 ++++++
 .../ui/EditLectureBlockController.java        |  5 +--
 4 files changed, 59 insertions(+), 4 deletions(-)
 create mode 100644 src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/AutoCompleteFormEvent.java

diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/AutoCompleteFormEvent.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/AutoCompleteFormEvent.java
new file mode 100644
index 00000000000..aacf143beef
--- /dev/null
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/AutoCompleteFormEvent.java
@@ -0,0 +1,44 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.core.gui.components.form.flexible.impl.elements;
+
+import org.olat.core.gui.components.form.flexible.FormItem;
+import org.olat.core.gui.components.form.flexible.impl.FormEvent;
+
+/**
+ * 
+ * Initial date: 12 août 2020<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class AutoCompleteFormEvent extends FormEvent {
+
+	private static final long serialVersionUID = -2589906437153168517L;
+	private final String key;
+	
+	public AutoCompleteFormEvent(String command, FormItem source, String key) {
+		super(command, source);
+		this.key = key;
+	}
+	
+	public String getKey() {
+		return key;
+	}
+}
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/AutoCompleterComponent.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/AutoCompleterComponent.java
index 9965b5bdd06..74e4294c1ce 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/AutoCompleterComponent.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/AutoCompleterComponent.java
@@ -63,6 +63,7 @@ public class AutoCompleterComponent extends FormBaseComponentImpl {
 			autoCompleter.setKey(key);
 			autoCompleter.setValue(value);
 			fireEvent(ureq, new AutoCompleteEvent(AutoCompleteEvent.SELECT_EVENT, key));
+			autoCompleter.dispatchFormRequest(ureq);
 		}
 	}
 
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/AutoCompleterImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/AutoCompleterImpl.java
index 78c72f3835d..b9af4a44c00 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/AutoCompleterImpl.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/AutoCompleterImpl.java
@@ -96,14 +96,27 @@ public class AutoCompleterImpl extends AbstractTextElement implements AutoComple
 		}
 	}
 
+	@Override
 	public int getMinLength() {
 		return minLength;
 	}
 
+	@Override
 	public void setMinLength(int minLength) {
 		this.minLength = minLength;
 	}
 
+	@Override
+	public void dispatchFormRequest(UserRequest ureq) {
+		String cmd = ureq.getParameter("cid");
+		if("select".equals(cmd)) {
+			String uKey = ureq.getParameter("key");
+			setKey(uKey);
+			setValue(ureq.getParameter("value"));
+			getRootForm().fireFormEvent(ureq, new AutoCompleteFormEvent(AutoCompleteEvent.SELECT_EVENT, this, uKey));
+		}
+	}
+
 	@Override
 	public void evalFormRequest(UserRequest ureq) {
 		String paramId = component.getFormDispatchId();
diff --git a/src/main/java/org/olat/modules/lecture/ui/EditLectureBlockController.java b/src/main/java/org/olat/modules/lecture/ui/EditLectureBlockController.java
index aefbe7d9df7..e6ff57bcbcc 100644
--- a/src/main/java/org/olat/modules/lecture/ui/EditLectureBlockController.java
+++ b/src/main/java/org/olat/modules/lecture/ui/EditLectureBlockController.java
@@ -104,7 +104,6 @@ public class EditLectureBlockController extends FormBasicController {
 	private List<Identity> teachers;
 	private List<GroupBox> groupBox;
 	private String[] teacherKeys;
-	private String[] teacherValues;
 	private final boolean lectureManagementManaged;
 	private final List<LocationHistory> locations;
 	
@@ -205,7 +204,7 @@ public class EditLectureBlockController extends FormBasicController {
 		}
 		allPossibleTeachers = new ArrayList<>(new HashSet<>(allPossibleTeachers));
 		teacherKeys = new String[allPossibleTeachers.size() + 1];
-		teacherValues = new String[allPossibleTeachers.size() + 1];
+		String[] teacherValues = new String[allPossibleTeachers.size() + 1];
 		for(int i=allPossibleTeachers.size() + 1; i-->1; ) {
 			Identity coach = allPossibleTeachers.get(i - 1);
 			teacherKeys[i] = coach.getKey().toString();
@@ -396,8 +395,6 @@ public class EditLectureBlockController extends FormBasicController {
 		}
 		lectureBlock.setStartDate(dateEl.getDate());
 		lectureBlock.setEndDate(dateEl.getSecondDate());
-		System.out.println(dateEl.getDate());
-		System.out.println(dateEl.getSecondDate());
 		
 		int plannedLectures = Integer.parseInt(plannedLecturesEl.getSelectedKey());
 		lectureBlock.setPlannedLecturesNumber(plannedLectures);
-- 
GitLab