Package org.olat.core.gui.control.generic.wizard

Source Code of org.olat.core.gui.control.generic.wizard.StepFormBasicController

/**
*
*/
package org.olat.core.gui.control.generic.wizard;

import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.Component;
import org.olat.core.gui.components.form.flexible.FormItem;
import org.olat.core.gui.components.form.flexible.FormItemContainer;
import org.olat.core.gui.components.form.flexible.impl.Form;
import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
import org.olat.core.gui.components.form.flexible.impl.FormEvent;
import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowControl;

/**
* @author patrickb
*
*/
public abstract class StepFormBasicController extends FormBasicController implements
    StepFormController {
 
  private StepsRunContext runContext;

  /**
   *
   * @param ureq
   * @param wControl
   * @param rootForm
   * @param runContext
   * @param layout The layout used as form layouter container. Use the public
   *          static variables of this class LAYOUT_DEFAULT, LAYOUT_HORIZONTAL
   *          and LAYOUT_VERTICAL
   * @param customLayoutPageName The page name if layout is set to LAYOUT_CUSTOM
   */
  public StepFormBasicController(UserRequest ureq, WindowControl wControl, Form rootForm, StepsRunContext runContext, int layout, String customLayoutPageName){
    super(ureq, wControl, layout, customLayoutPageName, rootForm);
    this.runContext = runContext;
  }
 
  protected void addToRunContext(String key, Object value){
    runContext.put(key, value);
  }
  protected boolean containsRunContextKey(String key){
    return runContext.containsKey(key);
  }
  protected Object getFromRunContext(String key){
    return runContext.get(key);
  }
 
 
  @SuppressWarnings("unused")
  @Override
  public void event(UserRequest ureq, Component source, Event event) {
    if (source == mainForm.getInitialComponent()) {
      // general form events
      if (event == org.olat.core.gui.components.form.Form.EVNT_VALIDATION_OK) {
        formOK(ureq);
        // set container dirty to remove potentially rendered error messages
        this.flc.setDirty(true);
      } else if (event == org.olat.core.gui.components.form.Form.EVNT_VALIDATION_NOK) {
        formNOK(ureq);
        // set container dirty to rendered error messages
        this.flc.setDirty(true);
      } else if (event == FormEvent.RESET) {
        formResetted(ureq);
        // set container dirty to render everything from scratch, remove error messages
        this.flc.setDirty(true);
      } else if (event instanceof FormEvent) {
        /*
         * evaluate inner form events
         */
        FormEvent fe = (FormEvent) event;
        FormItem fiSrc = fe.getFormItemSource();
        //
        formInnerEvent(ureq, fiSrc, fe);
        // no need to set container dirty, up to controller code if something is dirty
      }
    }
  }
 
 
  abstract protected void doDispose();

  abstract protected void formOK(UserRequest ureq);

  abstract protected void initForm(FormItemContainer formLayout, Controller listener,
      UserRequest ureq);

  /* (non-Javadoc)
   * @see org.olat.core.gui.control.generic.wizard.StepFormController#getStepFormItem()
   */
  public FormItem getStepFormItem() {
    return flc;
  }


}
TOP

Related Classes of org.olat.core.gui.control.generic.wizard.StepFormBasicController

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.