diff --git a/src/main/java/org/olat/modules/ceditor/ui/PageEditorV2Controller.java b/src/main/java/org/olat/modules/ceditor/ui/PageEditorV2Controller.java index 0f644a53f705b4c8472a2d3637f893fe92feb251..cd0cb07a3a87e7a6c8524544d5c3274ed80c4c95 100644 --- a/src/main/java/org/olat/modules/ceditor/ui/PageEditorV2Controller.java +++ b/src/main/java/org/olat/modules/ceditor/ui/PageEditorV2Controller.java @@ -63,6 +63,7 @@ import org.olat.modules.ceditor.ui.event.MoveDownElementEvent; import org.olat.modules.ceditor.ui.event.MoveUpElementEvent; import org.olat.modules.ceditor.ui.event.OpenAddElementEvent; import org.olat.modules.ceditor.ui.event.PositionEnum; +import org.olat.modules.ceditor.ui.event.SaveElementEvent; /** * @@ -215,6 +216,8 @@ public class PageEditorV2Controller extends BasicController { doDrop(ureq, (DropToEditorEvent)event); } else if(event instanceof DropToPageElementEvent) { doDrop(ureq, (DropToPageElementEvent)event); + } else if(event instanceof SaveElementEvent) { + fireEvent(ureq, Event.CHANGED_EVENT); } } @@ -228,6 +231,8 @@ public class PageEditorV2Controller extends BasicController { } return true; }, editorCmp, false).visitAll(ureq); + + fireEvent(ureq, Event.CHANGED_EVENT); } private void doCloseEditionEvent(UserRequest ureq, String elementId) { diff --git a/src/main/java/org/olat/modules/ceditor/ui/component/ContentEditorFragmentComponent.java b/src/main/java/org/olat/modules/ceditor/ui/component/ContentEditorFragmentComponent.java index de2c1e07473ac8bd45525c76a1daf776f7f4574b..337d99de699f35b79578949d560c336c55b26f26 100644 --- a/src/main/java/org/olat/modules/ceditor/ui/component/ContentEditorFragmentComponent.java +++ b/src/main/java/org/olat/modules/ceditor/ui/component/ContentEditorFragmentComponent.java @@ -46,6 +46,7 @@ import org.olat.modules.ceditor.ui.event.MoveDownElementEvent; import org.olat.modules.ceditor.ui.event.MoveUpElementEvent; import org.olat.modules.ceditor.ui.event.OpenAddElementEvent; import org.olat.modules.ceditor.ui.event.PositionEnum; +import org.olat.modules.ceditor.ui.event.SaveElementEvent; /** * @@ -147,6 +148,7 @@ public class ContentEditorFragmentComponent extends FormBaseComponentImpl implem break; case "save_element": doCloseEditFragment(); + fireEvent(ureq, new SaveElementEvent(this)); break; case "delete_element": fireEvent(ureq, new DeleteElementEvent(this)); @@ -209,6 +211,7 @@ public class ContentEditorFragmentComponent extends FormBaseComponentImpl implem ((PageElementEditorController)editorPart).setEditMode(false); } setDirty(true); + } @Override diff --git a/src/main/java/org/olat/modules/ceditor/ui/event/SaveElementEvent.java b/src/main/java/org/olat/modules/ceditor/ui/event/SaveElementEvent.java new file mode 100644 index 0000000000000000000000000000000000000000..a0bae30834a09a828f5887c52352e56a6324e881 --- /dev/null +++ b/src/main/java/org/olat/modules/ceditor/ui/event/SaveElementEvent.java @@ -0,0 +1,48 @@ +/** + * <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.modules.ceditor.ui.event; + +import org.olat.core.gui.control.Event; +import org.olat.modules.ceditor.ui.component.ContentEditorFragment; + +/** + * + * Initial date: 24 juin 2020<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class SaveElementEvent extends Event { + + private static final long serialVersionUID = 3300706246686745496L; + + public static final String SAVE_ELEMENT = "ce-save-element"; + + private final ContentEditorFragment component; + + public SaveElementEvent(ContentEditorFragment component) { + super(SAVE_ELEMENT); + this.component = component; + } + + public ContentEditorFragment getComponent() { + return component; + } + +}