/*
 * ICESOFT COMMERCIAL SOURCE CODE LICENSE V 1.1
 *
 * The contents of this file are subject to the ICEsoft Commercial Source
 * Code License Agreement V1.1 (the "License"); you may not use this file
 * except in compliance with the License. You may obtain a copy of the
 * License at
 * http://www.icesoft.com/license/commercial-source-v1.1.html
 *
 * Software distributed under the License is distributed on an "AS IS"
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
 * License for the specific language governing rights and limitations under
 * the License.
 *
 * Copyright 2009-2015 ICEsoft Technologies Canada, Corp. All Rights Reserved.
 */
package com.icesoft.faces.facelets.component.dialog;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import java.io.Serializable;

/**
 * <p>Currently only one Dialog, possibility to add more if required. </p>
 *
 * @author ICEfaces Technologies Inc.
 */
@ViewScoped
@ManagedBean
public class DialogState implements Serializable {

    // generic dialog.
    private Dialog currentDialog;

    // reference to DialogTypes associated in faces-config.
    @ManagedProperty(value = "#{dialogTypes}")
    private DialogTypes dialogTypes;

    /**
     * Assign default dialog states.
     */
    public void init() {
        currentDialog = (Dialog) dialogTypes.get(dialogTypes.getDefaultDialog());
    }

    public Dialog getCurrentDialog() {
        return currentDialog;
    }

    public void setCurrentDialog(Dialog currentDialog) {
        this.currentDialog = currentDialog;
    }

    public void setDialogTypes(DialogTypes dialogTypes) {
        this.dialogTypes = dialogTypes;
        init();
    }
}