Something went wrong on our end
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
UserSettingsController.java 5.76 KiB
/**
* <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.user;
import java.util.List;
import org.olat.core.CoreSpringFactory;
import org.olat.core.commons.services.webdav.WebDAVModule;
import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.Component;
import org.olat.core.gui.components.link.Link;
import org.olat.core.gui.components.link.LinkFactory;
import org.olat.core.gui.components.segmentedview.SegmentViewComponent;
import org.olat.core.gui.components.segmentedview.SegmentViewEvent;
import org.olat.core.gui.components.segmentedview.SegmentViewFactory;
import org.olat.core.gui.components.velocity.VelocityContainer;
import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.gui.control.controller.BasicController;
import org.olat.core.gui.control.generic.dtabs.Activateable2;
import org.olat.core.id.context.ContextEntry;
import org.olat.core.id.context.StateEntry;
import org.olat.instantMessaging.InstantMessagingModule;
import org.olat.instantMessaging.ui.IMPreferenceController;
import org.olat.registration.DisclaimerController;
import org.olat.registration.RegistrationModule;
/**
*
* Wrapper for some settings: preferences, webdav settings, disclaimer
*
* Initial date: 27.01.2014<br>
* @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
*
*/
public class UserSettingsController extends BasicController implements Activateable2 {
private final Link preferencesLink;
private Link webdavLink, imLink, disclaimerLink;
private final SegmentViewComponent segmentView;
private final VelocityContainer mainVC;
private IMPreferenceController imCtrl;
private DisclaimerController disclaimerCtrl;
private WebDAVPasswordController webdavCtrl;
private ChangePrefsController preferencesCtrl;
/**
* @param ureq
* @param wControl
*/
public UserSettingsController(UserRequest ureq, WindowControl wControl) {
super(ureq, wControl);
mainVC = createVelocityContainer("user_settings");
segmentView = SegmentViewFactory.createSegmentView("segments", mainVC, this);
preferencesLink = LinkFactory.createLink("tab.prefs", mainVC, this);
preferencesLink.setElementCssClass("o_sel_user_settings_prefs");
segmentView.addSegment(preferencesLink, true);
if(CoreSpringFactory.getImpl(WebDAVModule.class).isEnabled()) {
webdavLink = LinkFactory.createLink("tab.pwdav", mainVC, this);
webdavLink.setElementCssClass("o_sel_user_settings_webdav");
segmentView.addSegment(webdavLink, false);
}
if(CoreSpringFactory.getImpl(InstantMessagingModule.class).isEnabled()){
imLink = LinkFactory.createLink("tab.im", mainVC, this);
imLink.setElementCssClass("o_sel_user_settings_im");
segmentView.addSegment(imLink, false);
}
if (CoreSpringFactory.getImpl(RegistrationModule.class).isDisclaimerEnabled()) {
disclaimerLink = LinkFactory.createLink("tab.disclaimer", mainVC, this);
disclaimerLink.setElementCssClass("o_sel_user_settings_disclaimer");
segmentView.addSegment(disclaimerLink, false);
}
mainVC.put("segments", segmentView);
doOpenPreferences(ureq);
putInitialPanel(mainVC);
}
@Override
protected void doDispose() {
//
}
/**
* @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(source == segmentView) {
if(event instanceof SegmentViewEvent) {
SegmentViewEvent sve = (SegmentViewEvent)event;
String segmentCName = sve.getComponentName();
Component clickedLink = mainVC.getComponent(segmentCName);
if (clickedLink == preferencesLink) {
doOpenPreferences(ureq);
} else if (clickedLink == webdavLink) {
doOpenWebDAV(ureq);
} else if (clickedLink == imLink) {
doOpenIM(ureq);
} else if (clickedLink == disclaimerLink) {
doOpenDisclaimer(ureq);
}
}
}
}
private void doOpenPreferences(UserRequest ureq) {
if(preferencesCtrl == null) {
preferencesCtrl = new ChangePrefsController(ureq, getWindowControl(), getIdentity());
listenTo(preferencesCtrl);
}
mainVC.put("segmentCmp", preferencesCtrl.getInitialComponent());
}
private void doOpenWebDAV(UserRequest ureq) {
if(webdavCtrl == null) {
webdavCtrl = new WebDAVPasswordController(ureq, getWindowControl());
listenTo(webdavCtrl);
}
mainVC.put("segmentCmp", webdavCtrl.getInitialComponent());
}
private void doOpenIM(UserRequest ureq) {
if(imCtrl == null) {
imCtrl = new IMPreferenceController(ureq, getWindowControl(), getIdentity());
listenTo(imCtrl);
}
mainVC.put("segmentCmp", imCtrl.getInitialComponent());
}
private void doOpenDisclaimer(UserRequest ureq) {
if(disclaimerCtrl == null) {
disclaimerCtrl = new DisclaimerController(ureq, getWindowControl(), true);
listenTo(disclaimerCtrl);
}
mainVC.put("segmentCmp", disclaimerCtrl.getInitialComponent());
}
@Override
public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) {
//
}
}