use of org.olat.core.gui.control.creator.ControllerCreator in project OpenOLAT by OpenOLAT.
the class RichTextElementComponent method createFileSelectorPopupWindow.
private void createFileSelectorPopupWindow(final UserRequest ureq, final String type, final String fileName) {
// Get allowed suffixes from configuration and requested media browser type from event
final RichTextConfiguration config = element.getEditorConfiguration();
final boolean allowCustomMediaFactory = config.isAllowCustomMediaFactory();
final boolean uriValidation = config.isFilenameUriValidation();
final String[] suffixes;
if (type.equals(CMD_FILEBROWSER)) {
suffixes = null;
} else if (type.equals(CMD_IMAGEBROWSER)) {
suffixes = config.getLinkBrowserImageSuffixes();
} else if (type.equals(CMD_FLASHPLAYERBROWSER)) {
suffixes = config.getLinkBrowserFlashPlayerSuffixes();
} else {
suffixes = config.getLinkBrowserMediaSuffixes();
}
// Show popup window with file browser to select file
// Only one popup file chooser allowed at any time. ccc contains icc,
// icc gets disposed by ccc
// helper code which is used to create link chooser controller
ControllerCreator linkChooserControllerCreator = new ControllerCreator() {
@Override
public Controller createController(UserRequest lureq, WindowControl lwControl) {
LinkChooserController myLinkChooserController;
VFSContainer baseContainer = config.getLinkBrowserBaseContainer();
String uploadRelPath = config.getLinkBrowserUploadRelPath();
String absolutePath = config.getLinkBrowserAbsolutFilePath();
CustomLinkTreeModel linkBrowserCustomTreeModel = config.getLinkBrowserCustomLinkTreeModel();
if (type.equals(CMD_FILEBROWSER)) {
// when in file mode we include the internal links to the selection
myLinkChooserController = new LinkChooserController(lureq, lwControl, baseContainer, uploadRelPath, absolutePath, suffixes, uriValidation, fileName, linkBrowserCustomTreeModel, allowCustomMediaFactory);
} else {
// in media or image mode, internal links make no sense here
myLinkChooserController = new LinkChooserController(lureq, lwControl, baseContainer, uploadRelPath, absolutePath, suffixes, uriValidation, fileName, null, allowCustomMediaFactory);
}
return new LayoutMain3ColsController(lureq, lwControl, myLinkChooserController);
}
};
PopupBrowserWindow pbw = Windows.getWindows(ureq).getWindowManager().createNewPopupBrowserWindowFor(ureq, linkChooserControllerCreator);
pbw.open(ureq);
}
use of org.olat.core.gui.control.creator.ControllerCreator in project OpenOLAT by OpenOLAT.
the class CourseRuntimeController method launchCalendar.
private void launchCalendar(UserRequest ureq) {
ControllerCreator ctrlCreator = new ControllerCreator() {
@Override
public Controller createController(UserRequest lureq, WindowControl lwControl) {
ICourse course = CourseFactory.loadCourse(getRepositoryEntry());
ContextEntry ce = BusinessControlFactory.getInstance().createContextEntry(getRepositoryEntry());
WindowControl llwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ce, lwControl);
CourseCalendarController calendarController = new CourseCalendarController(lureq, llwControl, getUserCourseEnvironment());
// use a one-column main layout
LayoutMain3ColsController layoutCtr = new LayoutMain3ColsController(lureq, llwControl, calendarController);
layoutCtr.setCustomCSS(CourseFactory.getCustomCourseCss(lureq.getUserSession(), course.getCourseEnvironment()));
// dispose calendar on layout dispose
layoutCtr.addDisposableChildController(calendarController);
return layoutCtr;
}
};
// wrap the content controller into a full header layout
ControllerCreator layoutCtrlr = BaseFullWebappPopupLayoutFactory.createAuthMinimalPopupLayout(ureq, ctrlCreator);
// open in new browser window
PopupBrowserWindow pbw = getWindowControl().getWindowBackOffice().getWindowManager().createNewPopupBrowserWindowFor(ureq, layoutCtrlr);
pbw.open(ureq);
}
use of org.olat.core.gui.control.creator.ControllerCreator in project OpenOLAT by OpenOLAT.
the class CourseRuntimeController method launchGlossary.
private void launchGlossary(UserRequest ureq) {
// start glossary in window
ICourse course = CourseFactory.loadCourse(getRepositoryEntry());
// do not cache cc, not save
final CourseConfig cc = course.getCourseConfig();
final boolean allowGlossaryEditing = reSecurity.isEntryAdmin() || hasCourseRight(CourseRights.RIGHT_GLOSSARY);
// if glossary had been opened from LR as Tab before, warn user:
DTabs dts = Windows.getWindows(ureq).getWindow(ureq).getDTabs();
RepositoryEntry repoEntry = RepositoryManager.getInstance().lookupRepositoryEntryBySoftkey(cc.getGlossarySoftKey(), false);
DTab dt = dts.getDTab(repoEntry.getOlatResource());
if (dt != null) {
List<ContextEntry> entries = BusinessControlFactory.getInstance().createCEListFromResourceType(allowGlossaryEditing ? "true" : "false");
dts.activate(ureq, dt, entries);
} else {
ControllerCreator ctrlCreator = new ControllerCreator() {
public Controller createController(UserRequest lureq, WindowControl lwControl) {
GlossaryMainController glossaryController = CourseGlossaryFactory.createCourseGlossaryMainRunController(lwControl, lureq, cc, allowGlossaryEditing);
listenTo(glossaryController);
if (glossaryController == null) {
// happens in the unlikely event of a user who is in a course and
// now
// tries to access the glossary
String text = translate("error.noglossary");
return MessageUIFactory.createInfoMessage(lureq, lwControl, null, text);
} else {
// use a one-column main layout
LayoutMain3ColsController layoutCtr = new LayoutMain3ColsController(lureq, lwControl, glossaryController);
// dispose glossary on layout dispose
layoutCtr.addDisposableChildController(glossaryController);
return layoutCtr;
}
}
};
ControllerCreator layoutCtrlr = BaseFullWebappPopupLayoutFactory.createAuthMinimalPopupLayout(ureq, ctrlCreator);
// open in new browser window
openInNewBrowserWindow(ureq, layoutCtrlr);
// immediate return after opening new browser window!
return;
}
}
use of org.olat.core.gui.control.creator.ControllerCreator in project OpenOLAT by OpenOLAT.
the class CourseRuntimeController method launchPersonalNotes.
private void launchPersonalNotes(UserRequest ureq) {
// will not be disposed on course run dispose, pop up as new browser window
ControllerCreator ctrlCreator = new ControllerCreator() {
@Override
public Controller createController(UserRequest lureq, WindowControl lwControl) {
ICourse course = CourseFactory.loadCourse(getRepositoryEntry());
Controller notesCtr = new NoteController(lureq, course, course.getCourseTitle(), lwControl);
LayoutMain3ColsController layoutCtr = new LayoutMain3ColsController(lureq, lwControl, notesCtr);
layoutCtr.setCustomCSS(CourseFactory.getCustomCourseCss(lureq.getUserSession(), course.getCourseEnvironment()));
// dispose glossary on layout dispose
layoutCtr.addDisposableChildController(notesCtr);
return layoutCtr;
}
};
// wrap the content controller into a full header layout
ControllerCreator popupLayoutCtr = BaseFullWebappPopupLayoutFactory.createAuthMinimalPopupLayout(ureq, ctrlCreator);
// open in new browser window
openInNewBrowserWindow(ureq, popupLayoutCtr);
}
use of org.olat.core.gui.control.creator.ControllerCreator in project OpenOLAT by OpenOLAT.
the class ProjectDetailsDisplayController method event.
/**
* @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest, org.olat.core.gui.components.Component, org.olat.core.gui.control.Event)
*/
@Override
public void event(UserRequest ureq, Component source, Event event) {
if (projectBrokerManager.existsProject(project.getKey())) {
if (source == editProjectButton) {
fireEvent(ureq, new Event("switchToEditMode"));
} else if (source == deleteProjectButton) {
OLATResourceable projectOres = OresHelper.createOLATResourceableInstance(Project.class, project.getKey());
this.lock = CoordinatorManager.getInstance().getCoordinator().getLocker().acquireLock(projectOres, ureq.getIdentity(), null);
if (lock.isSuccess()) {
deleteConfirmController = activateOkCancelDialog(ureq, null, translate("delete.confirm", project.getTitle()), deleteConfirmController);
} else {
this.showInfo("info.project.already.edit", project.getTitle());
}
return;
} else if (event.getCommand().equals(CMD_OPEN_PROJECT_LEADER_DETAIL)) {
if (source instanceof Link) {
Link projectLeaderLink = (Link) source;
final Identity identity = (Identity) projectLeaderLink.getUserObject();
ControllerCreator ctrlCreator = new ControllerCreator() {
@Override
public Controller createController(UserRequest lureq, WindowControl lwControl) {
return new UserInfoMainController(lureq, lwControl, identity, true, false);
}
};
// wrap the content controller into a full header layout
ControllerCreator layoutCtrlr = BaseFullWebappPopupLayoutFactory.createAuthMinimalPopupLayout(ureq, ctrlCreator);
// open in new browser window
this.openInNewBrowserWindow(ureq, layoutCtrlr);
}
} else if (source == attachedFileLink) {
doFileDelivery(ureq, project, courseEnv, courseNode);
} else if (source == changeProjectStateToNotAssignButton) {
projectBrokerManager.setProjectState(project, Project.STATE_NOT_ASSIGNED);
myContent.remove(changeProjectStateToNotAssignButton);
changeProjectStateToAssignButton = LinkFactory.createButtonSmall("change.project.state.assign.button", myContent, this);
} else if (source == changeProjectStateToAssignButton) {
projectBrokerManager.setProjectState(project, Project.STATE_ASSIGNED);
myContent.remove(changeProjectStateToAssignButton);
changeProjectStateToNotAssignButton = LinkFactory.createButtonSmall("change.project.state.not_assign.button", myContent, this);
}
} else {
this.showInfo("info.project.nolonger.exist", project.getTitle());
}
}
Aggregations