Package event_manager.controllers

Source Code of event_manager.controllers.StaffsController

package event_manager.controllers;

import event_manager.helpers.DBHelper;
import event_manager.helpers.FileHelper;
import event_manager.helpers.ViewHelper;
import event_manager.models.Staff;
import event_manager.views.Show;
import event_manager.views.forms.StaffForm;
import event_manager.views.View;
import java.io.File;
import java.io.IOException;
import javax.swing.JFrame;
import org.apache.commons.io.FileUtils;
import org.javalite.activejdbc.Model;

/**
* Controller to handle user related actions
* @author uzzaldevkota
*/
public class StaffsController implements Controller {

    @Override
    public void index(View view) {
        String panelName = "List " + Staff.class.getSimpleName();
        view.show(panelName, ViewHelper.LIST_STAFF);
    }

    @Override
    public void createNew(View view) {
        new StaffForm(view, true, new Staff()).setVisible(true);
    }

    @Override
    public boolean save(View view, Model model) {
        DBHelper.openConnection();

        boolean saved = false;
        String errors = "";
        Staff st = (Staff) model;
        String profilePicturePath = st.getProfilePicturePath();

        if(st.save()) {
            saved = true;
            // Upload profile picture if provided
            if(!profilePicturePath.equals("")) {
                File tmpFile = new File(profilePicturePath);
                if(tmpFile.exists() && tmpFile.isFile()) {
                    if(FileHelper.fileSizeInMB(tmpFile) < FileHelper.UPLOAD_LIMIT) {
                        try {
                            String profilePicture = FileHelper.absolutePathToLocalFilename(profilePicturePath, (String)st.get("username"));
                            FileUtils.copyFile(new File(profilePicturePath), new File(FileHelper.PROFILE_PIC_DIR + profilePicture));
                            st.set("profile_picture", profilePicture);
                            st.save();
                        } catch (IOException ex) {
                            errors += "Error saving profile picture";
                        }
                    } else {
                        errors += "The upload limit is " + FileHelper.UPLOAD_LIMIT + "MB";
                    }
                } else {
                    errors += "Invalid File!";
                }
            }
        } else {
            errors += DBHelper.getNiceErrors(model);
        }

        if (errors.equals("")) {
            ViewHelper.showDialog("Saved!");
        } else {
            ViewHelper.showDialog("Error saving!\n\nErrors:\n"+errors);
        }
        DBHelper.closeConnection();
        return saved;
    }

    @Override
    public void show(View view, int modelId) {
        DBHelper.openConnection();
        Staff staff = Staff.findById(modelId);
        new Show(view, true, staff).setVisible(true);
        DBHelper.closeConnection();
    }
   
    @Override
    public void edit(View view, int modelId) {
        DBHelper.openConnection();
        Staff staff = Staff.findById(modelId);
        new StaffForm(view, true, staff).setVisible(true);
        DBHelper.closeConnection();
    }

    @Override
    public boolean delete(View view, int modelId) {
        boolean deleted = false;
        DBHelper.openConnection();
        Staff staff = Staff.findById(modelId);
        if(staff.delete()) {
            ViewHelper.showDialog("Deleted!");
            deleted = true;
        } else {
            ViewHelper.showDialog("Error deleting!");
        }
        DBHelper.closeConnection();
        return deleted;
    }

    /**
     * JFrame only in this method, because View is not exposed during login
     * @param v JFrame
     * @param staff Staff
     */
    public static void login(JFrame v, Staff staff) {
        try {
            DBHelper.openConnection();
            if(staff.isAdmin()) {
                v.dispose();
                new View().maximize().setVisible(true);
            } else {
                ViewHelper.showDialog("Invalid Login");
            }
        } finally {
            DBHelper.closeConnection();
        }
    }

}
TOP

Related Classes of event_manager.controllers.StaffsController

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.