diff --git a/src/main/java/org/olat/core/commons/modules/bc/commands/CmdCreateFile.java b/src/main/java/org/olat/core/commons/modules/bc/commands/CmdCreateFile.java index 18c1699e7bdb035f8814f16ca1fafdd9650c4fbc..61203abff4ffea4148938ef1dafcb61b2aaab216 100644 --- a/src/main/java/org/olat/core/commons/modules/bc/commands/CmdCreateFile.java +++ b/src/main/java/org/olat/core/commons/modules/bc/commands/CmdCreateFile.java @@ -45,13 +45,11 @@ import org.olat.core.commons.services.vfs.VFSLeafEditorSecurityCallback; import org.olat.core.commons.services.vfs.VFSLeafEditorSecurityCallbackBuilder; import org.olat.core.commons.services.vfs.VFSMetadata; import org.olat.core.commons.services.vfs.VFSRepositoryService; -import org.olat.core.commons.services.vfs.ui.editor.VFSLeafEditorController; +import org.olat.core.commons.services.vfs.ui.editor.VFSLeafEditorFullscreenController; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; -import org.olat.core.gui.control.ChiefController; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; -import org.olat.core.gui.control.ScreenMode.Mode; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.controller.BasicController; import org.olat.core.gui.control.generic.closablewrapper.CloseableModalController; @@ -149,7 +147,6 @@ public class CmdCreateFile extends BasicController implements FolderCommand { fireEvent(ureq, new FolderEvent(FolderEvent.NEW_FILE_EVENT, fileName)); fireEvent(ureq, FOLDERCOMMAND_FINISHED); notifyFinished(ureq); - doCloseEditor(); cleanUp(); } } @@ -180,7 +177,6 @@ public class CmdCreateFile extends BasicController implements FolderCommand { } } - @SuppressWarnings("deprecation") private void doEdit(UserRequest ureq) { List<VFSLeafEditor> editors = vfsRepositoryService.getEditors(vfsLeaf, VFSLeafEditor.Mode.EDIT); // Not able to decide which editor to use -> show the folder list @@ -198,20 +194,8 @@ public class CmdCreateFile extends BasicController implements FolderCommand { VFSLeafEditorConfigs configs = VFSLeafEditorConfigs.builder() .addConfig(htmlEditorConfig) .build(); - editorCtr = new VFSLeafEditorController(ureq, getWindowControl(), vfsLeaf, secCallback, configs); + editorCtr = new VFSLeafEditorFullscreenController(ureq, getWindowControl(), vfsLeaf, secCallback, configs); listenTo(editorCtr); - - ChiefController cc = getWindowControl().getWindowBackOffice().getChiefController(); - String businessPath = editorCtr.getWindowControlForDebug().getBusinessControl().getAsString(); - cc.getScreenMode().setMode(Mode.full, businessPath); - getWindowControl().pushToMainArea(editorCtr.getInitialComponent()); - } - - private void doCloseEditor() { - getWindowControl().pop(); - String businessPath = getWindowControl().getBusinessControl().getAsString(); - getWindowControl().getWindowBackOffice().getChiefController().getScreenMode().setMode(Mode.standard, businessPath); - cleanUp(); } private void cleanUp() { diff --git a/src/main/java/org/olat/core/commons/modules/bc/commands/CmdOpenContent.java b/src/main/java/org/olat/core/commons/modules/bc/commands/CmdOpenContent.java index 188ba81ec417ca8b14a63d8abc37bdab2891462a..6794542d9111f9b98b55102620695cf454926063 100644 --- a/src/main/java/org/olat/core/commons/modules/bc/commands/CmdOpenContent.java +++ b/src/main/java/org/olat/core/commons/modules/bc/commands/CmdOpenContent.java @@ -29,13 +29,11 @@ import org.olat.core.commons.services.vfs.VFSLeafEditorConfigs; import org.olat.core.commons.services.vfs.VFSLeafEditorSecurityCallback; import org.olat.core.commons.services.vfs.VFSLeafEditorSecurityCallbackBuilder; import org.olat.core.commons.services.vfs.VFSRepositoryService; -import org.olat.core.commons.services.vfs.ui.editor.VFSLeafEditorController; +import org.olat.core.commons.services.vfs.ui.editor.VFSLeafEditorFullscreenController; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; -import org.olat.core.gui.control.ChiefController; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; -import org.olat.core.gui.control.ScreenMode.Mode; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.controller.BasicController; import org.olat.core.gui.translator.Translator; @@ -114,13 +112,9 @@ public class CmdOpenContent extends BasicController implements FolderCommand { VFSLeafEditorConfigs configs = VFSLeafEditorConfigs.builder() .addConfig(htmlEditorConfig) .build(); - editCtrl = new VFSLeafEditorController(ureq, getWindowControl(), vfsLeaf, secCallback, configs); + editCtrl = new VFSLeafEditorFullscreenController(ureq, getWindowControl(), vfsLeaf, secCallback, configs); listenTo(editCtrl); - ChiefController cc = getWindowControl().getWindowBackOffice().getChiefController(); - String businessPath = editCtrl.getWindowControlForDebug().getBusinessControl().getAsString(); - cc.getScreenMode().setMode(Mode.full, businessPath); - getWindowControl().pushToMainArea(editCtrl.getInitialComponent()); return this; } @@ -157,7 +151,7 @@ public class CmdOpenContent extends BasicController implements FolderCommand { if (event == Event.DONE_EVENT) { notifyFinished(ureq); } - doCloseEditor(); + cleanUp(); fireEvent(ureq, FOLDERCOMMAND_FINISHED); } super.event(ureq, source, event); @@ -174,13 +168,6 @@ public class CmdOpenContent extends BasicController implements FolderCommand { } } - private void doCloseEditor() { - getWindowControl().pop(); - String businessPath = getWindowControl().getBusinessControl().getAsString(); - getWindowControl().getWindowBackOffice().getChiefController().getScreenMode().setMode(Mode.standard, businessPath); - cleanUp(); - } - private void cleanUp() { removeAsListenerAndDispose(editCtrl); editCtrl = null; diff --git a/src/main/java/org/olat/core/commons/services/vfs/ui/editor/VFSLeafEditorFullscreenController.java b/src/main/java/org/olat/core/commons/services/vfs/ui/editor/VFSLeafEditorFullscreenController.java new file mode 100644 index 0000000000000000000000000000000000000000..1dac849bf6c197320fe1d292990651b69168cbd7 --- /dev/null +++ b/src/main/java/org/olat/core/commons/services/vfs/ui/editor/VFSLeafEditorFullscreenController.java @@ -0,0 +1,107 @@ +/** + * <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.commons.services.vfs.ui.editor; + +import org.olat.core.commons.services.vfs.VFSLeafEditorConfigs; +import org.olat.core.commons.services.vfs.VFSLeafEditorSecurityCallback; +import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.Component; +import org.olat.core.gui.control.ChiefController; +import org.olat.core.gui.control.Controller; +import org.olat.core.gui.control.Event; +import org.olat.core.gui.control.ScreenMode.Mode; +import org.olat.core.gui.control.WindowControl; +import org.olat.core.gui.control.controller.BasicController; +import org.olat.core.util.vfs.VFSLeaf; + +/** + * + * Initial date: 1 Apr 2019<br> + * @author uhensler, urs.hensler@frentix.com, http://www.frentix.com + * + */ +public class VFSLeafEditorFullscreenController extends BasicController { + + private VFSLeafEditorController editorCtrl; + + private final VFSLeaf vfsLeaf; + + public VFSLeafEditorFullscreenController(UserRequest ureq, WindowControl wControl, VFSLeaf vfsLeaf, + VFSLeafEditorSecurityCallback secCallback, VFSLeafEditorConfigs configs) { + super(ureq, wControl); + this.vfsLeaf = vfsLeaf; + + editorCtrl = new VFSLeafEditorController(ureq, wControl, vfsLeaf, secCallback, configs); + listenTo(editorCtrl); + doOpenEditor(); + } + + public VFSLeafEditorFullscreenController(UserRequest ureq, WindowControl wControl, VFSLeaf vfsLeaf, + VFSLeafEditorSecurityCallback secCallback, VFSLeafEditorConfigs configs, String cssClass) { + super(ureq, wControl); + this.vfsLeaf = vfsLeaf; + + editorCtrl = new VFSLeafEditorController(ureq, wControl, vfsLeaf, secCallback, configs, cssClass); + listenTo(editorCtrl); + doOpenEditor(); + } + + public VFSLeaf getVfsLeaf() { + return vfsLeaf; + } + + @Override + protected void event(UserRequest ureq, Controller source, Event event) { + if (source == editorCtrl) { + doCloseEditor(); + fireEvent(ureq, event); + } + super.event(ureq, source, event); + } + + @Override + protected void event(UserRequest ureq, Component source, Event event) { + // + } + + @SuppressWarnings("deprecation") + private void doOpenEditor() { + ChiefController cc = getWindowControl().getWindowBackOffice().getChiefController(); + String businessPath = editorCtrl.getWindowControlForDebug().getBusinessControl().getAsString(); + cc.getScreenMode().setMode(Mode.full, businessPath); + getWindowControl().pushToMainArea(editorCtrl.getInitialComponent()); + } + + private void doCloseEditor() { + getWindowControl().pop(); + String businessPath = getWindowControl().getBusinessControl().getAsString(); + getWindowControl().getWindowBackOffice().getChiefController().getScreenMode().setMode(Mode.standard, businessPath); + + removeAsListenerAndDispose(editorCtrl); + editorCtrl = null; + } + + + @Override + protected void doDispose() { + // + } + +} diff --git a/src/main/java/org/olat/course/nodes/gta/ui/AbstractAssignmentEditController.java b/src/main/java/org/olat/course/nodes/gta/ui/AbstractAssignmentEditController.java index dd0c096baa0bed011cb6159295eafb5ba456d6d3..8d7a167dce0d9d7c89ac9c873878addb912057e0 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/AbstractAssignmentEditController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/AbstractAssignmentEditController.java @@ -33,7 +33,7 @@ import org.olat.core.commons.services.vfs.VFSLeafEditorConfigs; import org.olat.core.commons.services.vfs.VFSLeafEditorSecurityCallback; import org.olat.core.commons.services.vfs.VFSLeafEditorSecurityCallbackBuilder; import org.olat.core.commons.services.vfs.VFSRepositoryService; -import org.olat.core.commons.services.vfs.ui.editor.VFSLeafEditorController; +import org.olat.core.commons.services.vfs.ui.editor.VFSLeafEditorFullscreenController; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.form.flexible.FormItem; import org.olat.core.gui.components.form.flexible.FormItemContainer; @@ -95,7 +95,7 @@ abstract class AbstractAssignmentEditController extends FormBasicController { private DialogBoxController confirmDeleteCtrl; private EditHTMLController editHtmlCtrl; private EditTaskController addTaskCtrl, editTaskCtrl; - private VFSLeafEditorController vfsLeafEditorCtrl; + private VFSLeafEditorFullscreenController vfsLeafEditorCtrl; private final File tasksFolder; protected final boolean readOnly; @@ -247,7 +247,6 @@ abstract class AbstractAssignmentEditController extends FormBasicController { if(event == Event.DONE_EVENT) { gtaManager.markNews(courseEnv, gtaNode); updateModel(); - doCloseFullscreen(); cleanUp(); } } else if(confirmDeleteCtrl == source) { @@ -392,13 +391,8 @@ abstract class AbstractAssignmentEditController extends FormBasicController { .withMode(mode) .build(); VFSLeafEditorConfigs configs = VFSLeafEditorConfigs.builder().build(); - vfsLeafEditorCtrl = new VFSLeafEditorController(ureq, getWindowControl(), (VFSLeaf)vfsItem, secCallback, configs); + vfsLeafEditorCtrl = new VFSLeafEditorFullscreenController(ureq, getWindowControl(), (VFSLeaf)vfsItem, secCallback, configs); listenTo(vfsLeafEditorCtrl); - - ChiefController cc = getWindowControl().getWindowBackOffice().getChiefController(); - String businessPath = vfsLeafEditorCtrl.getWindowControlForDebug().getBusinessControl().getAsString(); - cc.getScreenMode().setMode(ScreenMode.Mode.full, businessPath); - getWindowControl().pushToMainArea(vfsLeafEditorCtrl.getInitialComponent()); } } diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTASampleSolutionsEditController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTASampleSolutionsEditController.java index 6a32f0208ce8d0cbc36f55c15eaea3adf7421d5d..c1f68034f680bd24715a414319cbeb4ca739f451 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTASampleSolutionsEditController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTASampleSolutionsEditController.java @@ -33,7 +33,7 @@ import org.olat.core.commons.services.vfs.VFSLeafEditorSecurityCallback; import org.olat.core.commons.services.vfs.VFSLeafEditorSecurityCallbackBuilder; import org.olat.core.commons.services.vfs.VFSMetadata; import org.olat.core.commons.services.vfs.VFSRepositoryService; -import org.olat.core.commons.services.vfs.ui.editor.VFSLeafEditorController; +import org.olat.core.commons.services.vfs.ui.editor.VFSLeafEditorFullscreenController; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.form.flexible.FormItem; import org.olat.core.gui.components.form.flexible.FormItemContainer; @@ -85,7 +85,7 @@ public class GTASampleSolutionsEditController extends FormBasicController { private EditSolutionController editSolutionCtrl; private NewSolutionController newSolutionCtrl; private EditHTMLController editHtmlCtrl; - private VFSLeafEditorController vfsLeafEditorCtrl; + private VFSLeafEditorFullscreenController vfsLeafEditorCtrl; private final File solutionDir; private final boolean readOnly; @@ -238,7 +238,6 @@ public class GTASampleSolutionsEditController extends FormBasicController { if(event == Event.DONE_EVENT) { gtaManager.markNews(courseEnv, gtaNode); updateModel(); - doCloseFullscreen(); cleanUp(); } } else if(cmc == source) { @@ -319,7 +318,6 @@ public class GTASampleSolutionsEditController extends FormBasicController { } } - @SuppressWarnings("deprecation") private void doEditVfsEditor(UserRequest ureq, Solution solution, Mode mode) { VFSItem vfsItem = solutionContainer.resolve(solution.getFilename()); if(vfsItem == null || !(vfsItem instanceof VFSLeaf)) { @@ -330,13 +328,8 @@ public class GTASampleSolutionsEditController extends FormBasicController { .build(); //TODO uh container to config VFSLeafEditorConfigs configs = VFSLeafEditorConfigs.builder().build(); - vfsLeafEditorCtrl = new VFSLeafEditorController(ureq, getWindowControl(), (VFSLeaf)vfsItem, secCallback, configs); + vfsLeafEditorCtrl = new VFSLeafEditorFullscreenController(ureq, getWindowControl(), (VFSLeaf)vfsItem, secCallback, configs); listenTo(vfsLeafEditorCtrl); - - ChiefController cc = getWindowControl().getWindowBackOffice().getChiefController(); - String businessPath = vfsLeafEditorCtrl.getWindowControlForDebug().getBusinessControl().getAsString(); - cc.getScreenMode().setMode(ScreenMode.Mode.full, businessPath); - getWindowControl().pushToMainArea(vfsLeafEditorCtrl.getInitialComponent()); } } diff --git a/src/main/java/org/olat/course/nodes/gta/ui/SubmitDocumentsController.java b/src/main/java/org/olat/course/nodes/gta/ui/SubmitDocumentsController.java index 21943c4af7ef5e5590b2dcbaf8ddeb17bd538fa5..1738148851a3c8a17ca123d0f5a232d5a2f29e36 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/SubmitDocumentsController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/SubmitDocumentsController.java @@ -40,7 +40,7 @@ import org.olat.core.commons.services.vfs.VFSLeafEditorSecurityCallback; import org.olat.core.commons.services.vfs.VFSLeafEditorSecurityCallbackBuilder; import org.olat.core.commons.services.vfs.VFSMetadata; import org.olat.core.commons.services.vfs.VFSRepositoryService; -import org.olat.core.commons.services.vfs.ui.editor.VFSLeafEditorController; +import org.olat.core.commons.services.vfs.ui.editor.VFSLeafEditorFullscreenController; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.form.flexible.FormItem; import org.olat.core.gui.components.form.flexible.FormItemContainer; @@ -97,7 +97,7 @@ class SubmitDocumentsController extends FormBasicController { private DialogBoxController confirmDeleteCtrl; private SinglePageController viewDocCtrl; private EditHTMLController editHtmlCtrl; - private VFSLeafEditorController vfsLeafEditorCtrl; + private VFSLeafEditorFullscreenController vfsLeafEditorCtrl; private final int maxDocs; private final String docI18nKey; @@ -322,7 +322,6 @@ class SubmitDocumentsController extends FormBasicController { gtaManager.markNews(courseEnv, gtaNode); } updateModel(); - doCloseFullscreen(); cleanUp(); checkDeadline(ureq); } else if(cmc == source) { @@ -458,7 +457,6 @@ class SubmitDocumentsController extends FormBasicController { } } - @SuppressWarnings("deprecation") private void doEditVfsEditor(UserRequest ureq, String filename, Mode mode) { VFSItem vfsItem = documentsContainer.resolve(filename); if(vfsItem == null || !(vfsItem instanceof VFSLeaf)) { @@ -468,13 +466,8 @@ class SubmitDocumentsController extends FormBasicController { .withMode(mode) .build(); VFSLeafEditorConfigs configs = VFSLeafEditorConfigs.builder().build(); - vfsLeafEditorCtrl = new VFSLeafEditorController(ureq, getWindowControl(), (VFSLeaf)vfsItem, secCallback, configs); + vfsLeafEditorCtrl = new VFSLeafEditorFullscreenController(ureq, getWindowControl(), (VFSLeaf)vfsItem, secCallback, configs); listenTo(vfsLeafEditorCtrl); - - ChiefController cc = getWindowControl().getWindowBackOffice().getChiefController(); - String businessPath = vfsLeafEditorCtrl.getWindowControlForDebug().getBusinessControl().getAsString(); - cc.getScreenMode().setMode(ScreenMode.Mode.full, businessPath); - getWindowControl().pushToMainArea(vfsLeafEditorCtrl.getInitialComponent()); } }