Package no.ugland.utransprod.gui.handlers

Source Code of no.ugland.utransprod.gui.handlers.ExcelReportViewHandlerDeviation$FunctionChangeListener

package no.ugland.utransprod.gui.handlers;

import java.awt.Dimension;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.ListModel;

import no.ugland.utransprod.gui.WindowInterface;
import no.ugland.utransprod.model.DeviationStatus;
import no.ugland.utransprod.model.JobFunction;
import no.ugland.utransprod.model.ProductAreaGroup;
import no.ugland.utransprod.service.DeviationStatusManager;
import no.ugland.utransprod.service.JobFunctionManager;
import no.ugland.utransprod.service.ProductAreaGroupManager;
import no.ugland.utransprod.service.enums.LazyLoadEnum;
import no.ugland.utransprod.util.ModelUtil;
import no.ugland.utransprod.util.MonthEnum;
import no.ugland.utransprod.util.Util;
import no.ugland.utransprod.util.excel.ExcelReportEnum;
import no.ugland.utransprod.util.excel.ExcelReportSetting;
import no.ugland.utransprod.util.excel.ExcelReportSettingDeviation;
import no.ugland.utransprod.util.excel.ExcelReportSettingOwnProduction;

import com.jgoodies.binding.PresentationModel;
import com.jgoodies.binding.adapter.ComboBoxAdapter;
import com.jgoodies.binding.list.ArrayListModel;
import com.jgoodies.forms.builder.PanelBuilder;
import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;

/**
* Hjelpeklasse for avviksrapport
*
* @author atle.brekka
*/
public class ExcelReportViewHandlerDeviation extends ExcelReportViewHandler {
  /**
     *
     */
  private JComboBox comboBoxDeviationFunction;

  /**
     *
     */
  private JComboBox comboBoxFunctionCategory;

  /**
     *
     */
  private JComboBox comboBoxDeviationStatus;

  /**
     *
     */
  private List<JobFunction> deviationFunctionList;

  /**
     *
     */
  private ArrayListModel functionCategoryList;

  /**
     *
     */
  private List<DeviationStatus> deviationStatusList;

  /**
     *
     */
  private JComboBox comboBoxMonths;
  private JComboBox comboBoxProductAreaGroup;
  private List<ProductAreaGroup> areas;

  /**
   * @param aWindowTitle
   * @param useFromAndTo
   * @param excelReportType
   */
  public ExcelReportViewHandlerDeviation(String aWindowTitle,
      boolean useFromAndTo, ExcelReportEnum excelReportType) {
    super(excelReportType, new Dimension(320, 130));
    presentationModel = new PresentationModel(
        new ExcelReportSettingDeviation(excelReportType));

    JobFunctionManager jobFunctionManager = (JobFunctionManager) ModelUtil
        .getBean("jobFunctionManager");
    DeviationStatusManager deviationStatusManager = (DeviationStatusManager) ModelUtil
        .getBean("deviationStatusManager");
    // ProductAreaManager productAreaManager = (ProductAreaManager)
    // ModelUtil.getBean("productAreaManager");
    deviationFunctionList = new ArrayList<JobFunction>();
    List<JobFunction> functions = jobFunctionManager.findAll();

    if (functions != null) {
      for (JobFunction function : functions) {
        jobFunctionManager
            .lazyLoad(function, new LazyLoadEnum[][] { {
                LazyLoadEnum.FUNCTION_CATEGORIES,
                LazyLoadEnum.NONE } });
      }
      deviationFunctionList.addAll(functions);
      deviationFunctionList.add(0, null);
    }

    functionCategoryList = new ArrayListModel();
    deviationStatusList = deviationStatusManager.findAll();
    deviationStatusList.add(0, null);

    ProductAreaGroupManager productAreaGroupManager = (ProductAreaGroupManager) ModelUtil
        .getBean("productAreaGroupManager");
    areas = productAreaGroupManager.findAll();

  }

  /**
   * Lager komboboks for avviksfunksjon
   *
   * @return komboboks
   */
  private JComboBox getComboBoxDeviationFunction() {
    presentationModel.getBufferedModel(
        ExcelReportSettingDeviation.PROPERTY_DEVIATION_FUNCTION)
        .addPropertyChangeListener(new FunctionChangeListener());
    return new JComboBox(
        new ComboBoxAdapter(
            deviationFunctionList,
            presentationModel
                .getModel(ExcelReportSettingDeviation.PROPERTY_DEVIATION_FUNCTION)));
  }

  /**
   * Lager komboboks for kategori
   *
   * @return komboboks
   */
  private JComboBox getComboBoxFunctionCategory() {
    initFunctionCategoryList();
    return new JComboBox(
        new ComboBoxAdapter(
            (ListModel) functionCategoryList,
            presentationModel
                .getModel(ExcelReportSettingDeviation.PROPERTY_FUNCTION_CATEGORY)));
  }

  /**
   * Lager komboboks for avviksstatus
   *
   * @return komboboks
   */
  private JComboBox getComboBoxDeviationStatus() {
    return new JComboBox(
        new ComboBoxAdapter(
            deviationStatusList,
            presentationModel
                .getModel(ExcelReportSettingDeviation.PROPERTY_DEVIATION_STATUS)));
  }

  /**
   * Lager komboboks for produktomr�de
   *
   * @return komboboks
   */
  /*
   * private JComboBox getComboBoxProductArea() { return new JComboBox( new
   * ComboBoxAdapter( productAreaList, presentationModel
   * .getModel(ExcelReportSettingDeviation.PROPERTY_PRODUCT_AREA))); }
   */

  /**
   * Lager komboboks med alle m�neder
   *
   * @return komboboks
   */
  private JComboBox getComboBoxMonths() {
    JComboBox comboBox = new JComboBox(new ComboBoxAdapter(MonthEnum
        .getMonthList(), presentationModel
        .getModel(ExcelReportSettingDeviation.PROPERTY_MONTH_ENUM)));
    comboBox.setName("ComboBoxMonth");
    return comboBox;
  }

  private JComboBox getComboBoxProductAreaGroup() {
    return new JComboBox(
        new ComboBoxAdapter(
            areas,
            presentationModel
                .getModel(ExcelReportSettingDeviation.PROPERTY_PRODUCT_AREA_GROUP)));
  }

  /**
   * Initierer kategorier
   */
  void initFunctionCategoryList() {
    functionCategoryList.clear();
    presentationModel.setBufferedValue(
        ExcelReportSettingDeviation.PROPERTY_FUNCTION_CATEGORY, null);
    JobFunction jobFunction = (JobFunction) presentationModel
        .getBufferedValue(ExcelReportSettingDeviation.PROPERTY_DEVIATION_FUNCTION);
    if (jobFunction != null && jobFunction.getFunctionCategories() != null) {
      functionCategoryList.addAll(jobFunction.getFunctionCategories());
      functionCategoryList.add(0, null);
    }
  }

  /**
   * @see no.ugland.utransprod.gui.handlers.ExcelReportViewHandler#initComponents(no.ugland.utransprod.gui.WindowInterface)
   */
  @Override
  protected void initComponents(WindowInterface window, boolean addEmpty) {
    super.initComponents(window, addEmpty);
    comboBoxDeviationFunction = getComboBoxDeviationFunction();
    comboBoxFunctionCategory = getComboBoxFunctionCategory();
    comboBoxDeviationStatus = getComboBoxDeviationStatus();
    comboBoxProductArea = getComboBoxProductArea(addEmpty);
    comboBoxMonths = getComboBoxMonths();
    comboBoxProductAreaGroup = getComboBoxProductAreaGroup();
  }

  /**
   * @see no.ugland.utransprod.gui.handlers.ExcelReportViewHandler#buildConstraintPanel(no.ugland.utransprod.gui.WindowInterface)
   */
  @SuppressWarnings("incomplete-switch")
  @Override
  public JPanel buildConstraintPanel(WindowInterface window, boolean addEmpty) {
    initComponents(window, addEmpty);
    FormLayout layout = new FormLayout(
        "p,3dlu,30dlu,3dlu,50dlu,3dlu,p,3dlu,30dlu,3dlu,p",
        "p,3dlu,p,3dlu,p,3dlu,p");
    PanelBuilder builder = new PanelBuilder(layout);
    // PanelBuilder builder = new PanelBuilder(new FormDebugPanel(),layout);
    CellConstraints cc = new CellConstraints();

    builder.addLabel("�r:", cc.xy(1, 1));
    builder.add(yearChooser, cc.xy(3, 1));

    switch (((ExcelReportSetting) presentationModel.getBean())
        .getExcelReportType()) {
    case DEVIATION_SUMMARY:
      builder.addLabel("M�ned:", cc.xy(5, 1));
      builder.add(comboBoxMonths, cc.xy(7, 1));
      builder.addLabel("Produktomr�de:", cc.xy(5, 3));
      builder.add(comboBoxProductArea, cc.xyw(7, 3, 1));
      break;
    case DEVIATION_SUM:
      builder.addLabel("Fra uke:", cc.xy(5, 1));
      builder.add(comboBoxWeekFrom, cc.xy(7, 1));
      builder.addLabel("Til uke:", cc.xy(9, 1));
      builder.add(comboBoxWeekTo, cc.xy(11, 1));
      builder.addLabel("Avviksfunksjon:", cc.xy(5, 3));
      builder.add(comboBoxDeviationFunction, cc.xyw(7, 3, 5));
      builder.addLabel("Kategori:", cc.xy(5, 5));
      builder.add(comboBoxFunctionCategory, cc.xyw(7, 5, 5));
      builder.addLabel("Status:", cc.xy(5, 7));
      builder.add(comboBoxDeviationStatus, cc.xyw(7, 7, 5));
      break;
    case DEVIATION_JOB_FUNCTION_SUM:
      builder.addLabel("Avviksfunksjon:", cc.xy(5, 1));
      builder.add(comboBoxDeviationFunction, cc.xy(7, 1));
      builder.addLabel("Produktomr�de:", cc.xy(5, 3));
      builder.add(comboBoxProductAreaGroup, cc.xy(7, 3));
      break;
    }

    return builder.getPanel();
  }

  /**
   * @see no.ugland.utransprod.gui.handlers.ExcelReportViewHandler#getWindowSize()
   */
  @Override
  public Dimension getWindowSize() {
    switch (((ExcelReportSetting) presentationModel.getBean())
        .getExcelReportType()) {
    case DEVIATION_SUMMARY:
      return new Dimension(350, 140);
    case DEVIATION_JOB_FUNCTION_SUM:
      return new Dimension(360, 140);
    default:
      return new Dimension(380, 175);
    }
  }

  /**
   * H�ndterer endring av avviksfunksjon
   *
   * @author atle.brekka
   */
  class FunctionChangeListener implements PropertyChangeListener {

    /**
     * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
     */
    public void propertyChange(PropertyChangeEvent evt) {
      initFunctionCategoryList();

    }

  }

  /**
   * @see no.ugland.utransprod.gui.handlers.ExcelReportViewHandler#checkParameters(no.ugland.utransprod.util.excel.ExcelReportSetting,
   *      no.ugland.utransprod.gui.WindowInterface)
   */
  @Override
  protected boolean checkParameters(ExcelReportSetting setting,
      WindowInterface window) {
    String errorString = null;
    if (excelReportEnum.useFrom() && setting.getWeekFrom() == null) {
      errorString = "Det m� velges fra uke";
    } else if (excelReportEnum.useTo() && setting.getWeekTo() == null) {
      errorString = "Det m� velges til uke";
    } else if (setting.getExcelReportType() == null) {
      errorString = "Det m� velges rapport";
    } else if (setting.getExcelReportType() == ExcelReportEnum.DEVIATION_SUMMARY
        && ((ExcelReportSettingDeviation) setting).getProductArea() == null) {
      errorString = "Det m� velges et produktomr�de!";
    } else if (setting.getExcelReportType() == ExcelReportEnum.DEVIATION_SUMMARY
        && ((ExcelReportSettingDeviation) setting).getMonthEnum() == null) {
      errorString = "Det m� velges en m�ned!";
    }
    if(setting.getExcelReportType()==ExcelReportEnum.DEVIATION_JOB_FUNCTION_SUM){
      if(((ExcelReportSettingDeviation)setting).getDeviationFunction()==null){
        errorString = "Det m� velges en aviksfunksjon!";
      }else if(((ExcelReportSettingDeviation)setting).getProductAreaGroup()==null){
        errorString = "Det m� velges et produktomr�de!";
      }
    }

    if (errorString != null) {
      Util.showErrorDialog(window, "Rapportparametre", errorString);
      return false;
    }
    return true;

  }
}
TOP

Related Classes of no.ugland.utransprod.gui.handlers.ExcelReportViewHandlerDeviation$FunctionChangeListener

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.