All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.myfaces.custom.schedule.HtmlSchedule Maven / Gradle / Ivy

Go to download

JSF components and utilities that can be used with any JSF implementation. This library is compatible with both JSF1.1 and JSF1.2; however for JSF1.2 users there is an alternative build of Tomahawk available that takes advantage of JSF1.2 features to offer some additional benefits.

There is a newer version: 1.1.14
Show newest version
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

package org.apache.myfaces.custom.schedule;

import java.io.Serializable;
import java.util.Date;

import javax.faces.context.FacesContext;
import javax.faces.el.MethodBinding;
import javax.faces.el.ValueBinding;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.FacesEvent;
import javax.faces.event.PhaseId;

import org.apache.myfaces.component.UserRoleAware;
import org.apache.myfaces.custom.schedule.util.ScheduleUtil;
import org.apache.myfaces.shared_tomahawk.util._ComponentUtils;

/**
 *
 * @author Bruno Aranda (latest modification by $Author: jlust $)
 * @author Jurgen Lust
 * @version $Revision: 392301 $
 */
public class HtmlSchedule extends UISchedule implements UserRoleAware,
        Serializable
{

    public static final String COMPONENT_FAMILY = "javax.faces.Panel";

    public static final String COMPONENT_TYPE = "org.apache.myfaces.Schedule";
    private static final String DEFAULT_RENDERER_TYPE = "org.apache.myfaces.Schedule";
    private static final long serialVersionUID = 5859593107442371656L;
    //  ------------------ GENERATED CODE BEGIN (do not modify!) --------------------

    private String _enabledOnUserRole = null;
    private Date _lastClickedDateAndTime = null;
    private MethodBinding _mouseListener = null;
    private Boolean _submitOnClick = null;
    private String _visibleOnUserRole = null;

    public HtmlSchedule()
    {
        setRendererType(DEFAULT_RENDERER_TYPE);
    }

    /**
     * @see javax.faces.component.UIComponent#broadcast(javax.faces.event.FacesEvent)
     */
    public void broadcast(FacesEvent event) throws AbortProcessingException
    {
        // First invoke the mouse listener, before any other listener
        if (event instanceof ScheduleMouseEvent)
        {
            FacesContext context = getFacesContext();
            ScheduleMouseEvent mouseEvent = (ScheduleMouseEvent) event;
            MethodBinding mouseListenerBinding = getMouseListener();

            if (mouseListenerBinding != null)
            {
                mouseListenerBinding.invoke(context,
                        new Object[] { mouseEvent });
            }
        }
        //now invoke the other listeners
        super.broadcast(event);
    }

    /**
     * @see org.apache.myfaces.component.UserRoleAware#getEnabledOnUserRole()
     */
    public String getEnabledOnUserRole()
    {
        if (_enabledOnUserRole != null)
            return _enabledOnUserRole;
        ValueBinding vb = getValueBinding("enabledOnUserRole");
        return vb != null ? _ComponentUtils.getStringValue(getFacesContext(),
                vb) : null;
    }

    /**
     * @see javax.faces.component.UIComponent#getFamily()
     */
    public String getFamily()
    {
        return COMPONENT_FAMILY;
    }

    /**
     * 

* The last date and time of day that was clicked. This is set when * submitOnClick is true, and the schedule is clicked by the user. *

* * @return the last clicked date and time */ public Date getLastClickedDateAndTime() { return _lastClickedDateAndTime; } /** * @return the method binding to the mouse listener method */ public MethodBinding getMouseListener() { return _mouseListener; } /** * @see org.apache.myfaces.component.UserRoleAware#getVisibleOnUserRole() */ public String getVisibleOnUserRole() { if (_visibleOnUserRole != null) return _visibleOnUserRole; ValueBinding vb = getValueBinding("visibleOnUserRole"); return vb != null ? _ComponentUtils.getStringValue(getFacesContext(), vb) : null; } /** *

* Should the parent form of this schedule be submitted when the user * clicks on a day? Note that this will only work when the readonly * property is set to false. *

* * @return submit the form on mouse click */ public boolean isSubmitOnClick() { return ScheduleUtil.getBooleanProperty(this, _submitOnClick, "submitOnClick", false); } /** * @see javax.faces.component.UIComponent#queueEvent(javax.faces.event.FacesEvent) */ public void queueEvent(FacesEvent event) { if (event instanceof ScheduleMouseEvent) { if (isImmediate()) { event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES); } else { event.setPhaseId(PhaseId.INVOKE_APPLICATION); } } super.queueEvent(event); } /** * This method is invoked at the beginning of the restore view phase, * resetting all mouse event variables that were left from the previous * request */ public void resetMouseEvents() { this._lastClickedDateAndTime = null; } /** * @see javax.faces.component.StateHolder#restoreState(javax.faces.context.FacesContext, java.lang.Object) */ public void restoreState(FacesContext context, Object state) { Object values[] = (Object[]) state; super.restoreState(context, values[0]); _enabledOnUserRole = (String) values[1]; _visibleOnUserRole = (String) values[2]; _submitOnClick = (Boolean) values[3]; _lastClickedDateAndTime = (Date) values[4]; _mouseListener = (MethodBinding) restoreAttachedState(context, values[5]); } // ------------------ GENERATED CODE END --------------------------------------- /** * @see javax.faces.component.StateHolder#saveState(javax.faces.context.FacesContext) */ public Object saveState(FacesContext context) { Object values[] = new Object[6]; values[0] = super.saveState(context); values[1] = _enabledOnUserRole; values[2] = _visibleOnUserRole; values[3] = _submitOnClick; values[4] = _lastClickedDateAndTime; values[5] = saveAttachedState(context, _mouseListener); return ((Object) (values)); } /** * @see org.apache.myfaces.component.UserRoleAware#setEnabledOnUserRole(java.lang.String) */ public void setEnabledOnUserRole(String enabledOnUserRole) { _enabledOnUserRole = enabledOnUserRole; } /** *

* The last date and time of day that was clicked. This is set when * submitOnClick is true, and the schedule is clicked by the user. *

* * @return the last clicked date and time */ public void setLastClickedDateAndTime(Date lastClickedDateAndTime) { this._lastClickedDateAndTime = lastClickedDateAndTime; } /** * @param listener the method binding to the mouse listener method */ public void setMouseListener(MethodBinding listener) { _mouseListener = listener; } /** *

* Should the parent form of this schedule be submitted when the user * clicks on a day? Note that this will only work when the readonly * property is set to false. *

* * * @param submitOnClick submit the form on mouse click */ public void setSubmitOnClick(boolean submitOnClick) { this._submitOnClick = Boolean.valueOf(submitOnClick); } public void setVisibleOnUserRole(String visibleOnUserRole) { _visibleOnUserRole = visibleOnUserRole; } } //The End




© 2015 - 2024 Weber Informatics LLC | Privacy Policy