Package no.ugland.utransprod.gui.handlers

Source Code of no.ugland.utransprod.gui.handlers.JobFunctionViewHandler$JobFunctionTableModel

package no.ugland.utransprod.gui.handlers;

import java.awt.Dimension;
import java.util.List;

import javax.swing.JComboBox;
import javax.swing.JTextField;
import javax.swing.ListModel;
import javax.swing.table.TableColumn;
import javax.swing.table.TableModel;

import no.ugland.utransprod.gui.WindowInterface;
import no.ugland.utransprod.gui.edit.AbstractEditView;
import no.ugland.utransprod.gui.edit.EditJobFunctionView;
import no.ugland.utransprod.gui.model.JobFunctionModel;
import no.ugland.utransprod.model.ApplicationUser;
import no.ugland.utransprod.model.JobFunction;
import no.ugland.utransprod.model.UserType;
import no.ugland.utransprod.service.ApplicationUserManager;
import no.ugland.utransprod.service.JobFunctionManager;
import no.ugland.utransprod.util.ModelUtil;
import no.ugland.utransprod.util.UserUtil;

import org.jdesktop.swingx.JXTable;

import com.jgoodies.binding.PresentationModel;
import com.jgoodies.binding.adapter.AbstractTableAdapter;
import com.jgoodies.binding.adapter.BasicComponentFactory;
import com.jgoodies.binding.adapter.ComboBoxAdapter;

/**
* H�ndterer jobfunksjoner
* @author atle.brekka
*/
public class JobFunctionViewHandler extends
DefaultAbstractViewHandler<JobFunction, JobFunctionModel> {

    /**
     *
     */
    private static final long serialVersionUID = 1L;

    /**
     * @param userType
     */
    public JobFunctionViewHandler(UserType userType,JobFunctionManager jobFunctionManager) {
        super("Funksjon", jobFunctionManager, userType, true);

    }

    /**
     * Lager tekstfelt for navn
     * @param presentationModel
     * @return tekstfelt
     */
    public JTextField getTextFieldName(PresentationModel presentationModel) {
        JTextField textField = BasicComponentFactory
                .createTextField(presentationModel
                        .getBufferedModel(JobFunctionModel.PROPERTY_JOB_FUNCTION_NAME));
        textField.setEnabled(hasWriteAccess());
        return textField;
    }

    /**
     * Lager tekstfelt for beskrivelse
     * @param presentationModel
     * @return tekstfelt
     */
    public JTextField getTextFieldDescription(
            PresentationModel presentationModel) {
        JTextField textField = BasicComponentFactory
                .createTextField(presentationModel
                        .getBufferedModel(JobFunctionModel.PROPERTY_JOB_FUNCTION_DESCRIPTION));
        textField.setEnabled(hasWriteAccess());
        return textField;
    }

    /**
     * Lager komboboks for leder
     * @param presentationModel
     * @return komboboks
     */
    public JComboBox getComboBoxManager(PresentationModel presentationModel) {
        JComboBox comboBox = new JComboBox(new ComboBoxAdapter(
                getApplicationUserList(), presentationModel
                        .getBufferedModel(JobFunctionModel.PROPERTY_MANAGER)));
        comboBox.setEnabled(hasWriteAccess());
        return comboBox;
    }

    /**
     * Finner alle brukere som ikke er gruppebrukere
     * @return brukere
     */
    public List<ApplicationUser> getApplicationUserList() {
        ApplicationUserManager applicationUserManager = (ApplicationUserManager) ModelUtil
                .getBean("applicationUserManager");
        return applicationUserManager.findAllNotGroup();
    }

    /**
     * @param object
     * @return feilmelding
     * @see no.ugland.utransprod.gui.handlers.AbstractViewHandler#checkDeleteObject(java.lang.Object)
     */
    @Override
    public CheckObject checkDeleteObject(JobFunction object) {
        String errorString = null;
        if (object.getDeviations() != null
                && object.getDeviations().size() != 0) {
            errorString = "Kan ikke slette funksjon som brukes av et avvik";
        } else if (object.getOwnDeviations() != null
                && object.getOwnDeviations().size() != 0) {
            errorString = "Kan ikke slette funksjon som brukes av et avvik";
        }

        return new CheckObject(errorString, false);
    }

    /**
     * @param object
     * @param presentationModel
     * @param window
     * @return feilmelding
     * @see no.ugland.utransprod.gui.handlers.AbstractViewHandler#checkSaveObject(java.lang.Object,
     *      com.jgoodies.binding.PresentationModel,
     *      no.ugland.utransprod.gui.WindowInterface)
     */
    @Override
    public CheckObject checkSaveObject(JobFunctionModel object,
            PresentationModel presentationModel, WindowInterface window) {
        return null;
    }

    /**
     * @see no.ugland.utransprod.gui.handlers.AbstractViewHandler#getAddRemoveString()
     */
    @Override
    public String getAddRemoveString() {
        return "funksjon";
    }

    /**
     * @see no.ugland.utransprod.gui.handlers.AbstractViewHandler#getClassName()
     */
    @Override
    public String getClassName() {
        return "JobFunction";
    }

    /**
     * @see no.ugland.utransprod.gui.handlers.AbstractViewHandler#getNewObject()
     */
    @Override
    public JobFunction getNewObject() {
        return new JobFunction();
    }

    /**
     * @see no.ugland.utransprod.gui.handlers.AbstractViewHandler#getTableModel(no.ugland.utransprod.gui.WindowInterface)
     */
    @Override
    public TableModel getTableModel(WindowInterface window) {
        return new JobFunctionTableModel(objectSelectionList);
    }

    /**
     * @see no.ugland.utransprod.gui.handlers.AbstractViewHandler#getTableWidth()
     */
    @Override
    public String getTableWidth() {
        return "220dlu";
    }

    /**
     * @see no.ugland.utransprod.gui.handlers.AbstractViewHandler#getTitle()
     */
    @Override
    public String getTitle() {
        return "Funksjon";
    }

    /**
     * @see no.ugland.utransprod.gui.handlers.AbstractViewHandler#getWindowSize()
     */
    @Override
    public Dimension getWindowSize() {
        return new Dimension(550, 270);
    }

    /**
     * @see no.ugland.utransprod.gui.handlers.AbstractViewHandler#setColumnWidth(org.jdesktop.swingx.JXTable)
     */
    @Override
    public void setColumnWidth(JXTable table) {
        // Navn
        TableColumn col = table.getColumnModel().getColumn(0);
        col.setPreferredWidth(150);

        // Beskrivelse
        col = table.getColumnModel().getColumn(1);
        col.setPreferredWidth(100);

        // Leder
        col = table.getColumnModel().getColumn(2);
        col.setPreferredWidth(100);

    }

    /**
     * Tabellmodell for jobbfunksjoner
     * @author atle.brekka
     */
    private static final class JobFunctionTableModel extends
            AbstractTableAdapter {

        /**
         *
         */
        private static final long serialVersionUID = 1L;

        /**
         *
         */
        private static final String[] COLUMNS = {"Navn", "Beskrivelse", "Leder"};

        /**
         * @param listModel
         */
        JobFunctionTableModel(ListModel listModel) {
            super(listModel, COLUMNS);
        }

        /**
         * Henter verdi
         * @param rowIndex
         * @param columnIndex
         * @return verdi
         */
        public Object getValueAt(int rowIndex, int columnIndex) {
            JobFunction jobFunction = (JobFunction) getRow(rowIndex);
            switch (columnIndex) {
            case 0:
                return jobFunction.getJobFunctionName();
            case 1:
                return jobFunction.getJobFunctionDescription();
            case 2:
                return jobFunction.getManager();
            default:
                throw new IllegalStateException("Unknown column");
            }

        }

        /**
         * @see javax.swing.table.AbstractTableModel#getColumnClass(int)
         */
        @Override
        public Class<?> getColumnClass(int columnIndex) {
            switch (columnIndex) {
            case 0:
            case 1:
                return String.class;
            case 2:
                return ApplicationUser.class;
            default:
                throw new IllegalStateException("Unknown column");
            }
        }

    }

    /**
     * @see no.ugland.utransprod.gui.handlers.AbstractViewHandler#hasWriteAccess()
     */
    @Override
    public Boolean hasWriteAccess() {
        return UserUtil.hasWriteAccess(userType, "Funksjon");
    }

    /**
     * @param handler
     * @param object
     * @param searching
     * @return view
     * @see no.ugland.utransprod.gui.handlers.AbstractViewHandler#getEditView(no.ugland.utransprod.gui.handlers.AbstractViewHandler,
     *      java.lang.Object, boolean)
     */
    @Override
    protected AbstractEditView<JobFunctionModel, JobFunction> getEditView(
            AbstractViewHandler<JobFunction, JobFunctionModel> handler,
            JobFunction object, boolean searching) {
        return new EditJobFunctionView(searching, new JobFunctionModel(object),
                this);
    }

}
TOP

Related Classes of no.ugland.utransprod.gui.handlers.JobFunctionViewHandler$JobFunctionTableModel

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.