Package org.olat.core.test.gui.error

Source Code of org.olat.core.test.gui.error.ErrorDemoController

/**
* OLAT - Online Learning and Training<br>
* http://www.olat.org
* <p>
* This software is protected by the OLAT software license.<br>
* Use is subject to license terms.<br>
* See LICENSE.TXT in this distribution for details.
* <p>
* Copyright (c) JGS goodsolutions GmbH, Zurich, Switzerland. http://www.goodsolutions.ch <br>
* All rights reserved.
*/
package org.olat.core.test.gui.error;

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.panel.Panel;
import org.olat.core.gui.components.velocity.VelocityContainer;
import org.olat.core.gui.control.Controller;
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.dev.controller.SourceViewController;
import org.olat.core.logging.AssertException;

/**
* Description:<br>
* demo controller which can deliberately cause different kind of errors.<br>
* mainly useful for testing error handling in standard and ajax-mode.<br>
*
*
* @author Felix Jost
*/
public class ErrorDemoController extends BasicController {
  private VelocityContainer myContent;
  private Panel mainPanel;

  private Link npeLink;
  private Link assertLink;
  private Link renderLink;

  /**
   * @param ureq
   * @param wControl
   */
  public ErrorDemoController(UserRequest ureq, WindowControl wControl) {
    super(ureq, wControl);
    myContent = createVelocityContainer("index");
    npeLink = LinkFactory.createLink("command.npe", myContent, this);
    assertLink = LinkFactory.createLink("command.assert", myContent, this);
    renderLink = LinkFactory.createLink("command.render", myContent, this);
    mainPanel = new Panel("homesitepanel");
    mainPanel.setContent(myContent);
   
    //add source view control
      Controller sourceview = new SourceViewController(ureq, wControl, this.getClass(), myContent);
      myContent.put("sourceview", sourceview.getInitialComponent());
   
    putInitialPanel(mainPanel);
  }

  /**
   * @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)
   */
  public void event(UserRequest ureq, Component source, Event event) {
    if (source == npeLink){
      // cause a nullpointer exception
      String s = new String();
      s = null;
      Class c = s.getClass();
      getWindowControl().setInfo("get class of "+c.getName());
    } else if (source == assertLink){
      // create a assertexception sample
      try {
        // cause a nullpointer exception
        String s = new String();
        s = null;
        Class c = s.getClass();
        getWindowControl().setInfo("get class of "+c.getName());
      } catch (Exception e) {
        throw new AssertException("this is an assertException with a stacktrace from a NPE", e);
      }
    } else if (source == renderLink){
      myContent.contextPut("obj", this);
    }
  }

  public void doit() {
    throw new AssertException("called while rendering, throwing an assertexception now");
  }
 
  protected void event(UserRequest ureq, Controller source, Event event) {
    // nothing to do
  }

  /**
   * @see org.olat.core.gui.control.DefaultController#doDispose(boolean)
   */
  protected void doDispose() {
    // nothing to do
  }

}
TOP

Related Classes of org.olat.core.test.gui.error.ErrorDemoController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.