Package com.liferay.faces.demos.bean

Source Code of com.liferay.faces.demos.bean.UsersBackingBean

/**
* Copyright (c) 2000-2014 Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.faces.demos.bean;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.portlet.PortletSession;

import org.primefaces.event.FileUploadEvent;
import org.primefaces.event.SelectEvent;

import com.liferay.faces.demos.dto.UploadedFileWrapper;
import com.liferay.faces.demos.util.UploadedFileUtil;
import com.liferay.faces.portal.context.LiferayFacesContext;
import com.liferay.faces.util.logging.Logger;
import com.liferay.faces.util.logging.LoggerFactory;
import com.liferay.faces.util.model.UploadedFile;

import com.liferay.portal.model.User;
import com.liferay.portal.service.UserLocalServiceUtil;


/**
* This class serves as a backing bean for the users.xhtml Facelet view. The bean is kept in request scope since it
* doesn't maintain any model data.
*
* @author  Neil Griffin
* @author  Kyle Stiemann
*/
@ManagedBean(name = "usersBackingBean")
@RequestScoped
public class UsersBackingBean {

  // Logger
  private static final Logger logger = LoggerFactory.getLogger(UsersBackingBean.class);

  // Injections
  @ManagedProperty(name = "usersModelBean", value = "#{usersModelBean}")
  private UsersModelBean usersModelBean;

  @ManagedProperty(name = "usersViewBean", value = "#{usersViewBean}")
  private UsersViewBean usersViewBean;

  // Private Data Members
  private String fileUploadAbsolutePath;
  private String uploadedFileId;
  private UploadedFile uploadedFile;

  public void cancel(ActionEvent actionEvent) {
    usersViewBean.setFormRendered(false);

    try {

      UploadedFile modelUploadedFile = usersModelBean.getUploadedFile();

      if (modelUploadedFile != null) {
        usersModelBean.setUploadedFile(null);
      }
    }
    catch (Exception e) {
      logger.error(e);

      LiferayFacesContext liferayFacesContext = LiferayFacesContext.getInstance();
      liferayFacesContext.addGlobalUnexpectedErrorMessage();
    }
  }

  public void handleFileUpload(FileUploadEvent fileUploadEvent) {

    try {

      ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
      PortletSession portletSession = (PortletSession) externalContext.getSession(false);
      String uniqueFolderName = portletSession.getId();
      org.primefaces.model.UploadedFile uploadedFile = fileUploadEvent.getFile();
      UploadedFileWrapper uploadedFileWrapper = new UploadedFileWrapper(uploadedFile,
          UploadedFile.Status.FILE_SAVED, uniqueFolderName);
      usersModelBean.setUploadedFile(uploadedFileWrapper);
      logger.debug("Received fileName=[{0}] absolutePath=[{1}]", uploadedFileWrapper.getName(),
        uploadedFileWrapper.getAbsolutePath());
    }
    catch (Exception e) {
      logger.error(e);

      LiferayFacesContext liferayFacesContext = LiferayFacesContext.getInstance();
      liferayFacesContext.addGlobalUnexpectedErrorMessage();
    }
  }

  public void save(ActionEvent actionEvent) {

    try {

      // Update the selected user in the Liferay database.
      User user = usersModelBean.getSelectedUser();
      long userId = user.getUserId();
      UserLocalServiceUtil.updateStatus(userId, user.getStatus());
      UserLocalServiceUtil.updateUser(user);

      // If the end-user uploaded a portrait, then update the portrait in
      // the Liferay database and delete the temporary file.
      UploadedFile modelUploadedFile = usersModelBean.getUploadedFile();

      if (modelUploadedFile != null) {

        byte[] imageBytes = modelUploadedFile.getBytes();
        UserLocalServiceUtil.updatePortrait(userId, imageBytes);
        modelUploadedFile.delete();
      }
    }
    catch (Exception e) {
      logger.error(e.getMessage(), e);

      LiferayFacesContext liferayFacesContext = LiferayFacesContext.getInstance();
      liferayFacesContext.addGlobalUnexpectedErrorMessage();
    }

    usersViewBean.setFormRendered(false);
    usersModelBean.forceListReload();
  }

  public void selectUser(SelectEvent selectEvent) {

    try {
      User selectedUser = (User) selectEvent.getObject();
      usersModelBean.setSelectedUser(selectedUser);
      usersViewBean.setFormRendered(true);
    }
    catch (Exception e) {
      logger.error(e.getMessage(), e);

      LiferayFacesContext liferayFacesContext = LiferayFacesContext.getInstance();
      liferayFacesContext.addGlobalUnexpectedErrorMessage();
    }
  }

  public String getFileUploadAbsolutePath() {

    if (fileUploadAbsolutePath == null) {
      fileUploadAbsolutePath = UploadedFileUtil.getTempDir();
    }

    return fileUploadAbsolutePath;
  }

  public UploadedFile getUploadedFile() {
    return uploadedFile;
  }

  public String getUploadedFileId() {
    return uploadedFileId;
  }

  public void setUploadedFileId(String uploadedFileId) {
    this.uploadedFileId = uploadedFileId;
  }

  public void setUsersModelBean(UsersModelBean usersModelBean) {

    // Injected via ManagedProperty annotation
    this.usersModelBean = usersModelBean;
  }

  public void setUsersViewBean(UsersViewBean usersViewBean) {

    // Injected via ManagedProperty annotation
    this.usersViewBean = usersViewBean;
  }
}
TOP

Related Classes of com.liferay.faces.demos.bean.UsersBackingBean

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.