Package no.ugland.utransprod.gui

Source Code of no.ugland.utransprod.gui.DeviationOverviewView

package no.ugland.utransprod.gui;

import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;

import no.ugland.utransprod.gui.handlers.DeviationViewHandler;
import no.ugland.utransprod.gui.handlers.DeviationViewHandlerFactory;
import no.ugland.utransprod.gui.handlers.PreventiveActionViewHandler;
import no.ugland.utransprod.gui.model.DeviationModel;
import no.ugland.utransprod.model.ApplicationUser;
import no.ugland.utransprod.model.Deviation;
import no.ugland.utransprod.model.JobFunction;
import no.ugland.utransprod.model.Order;

import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
import com.jgoodies.forms.builder.PanelBuilder;
import com.jgoodies.forms.factories.Borders;
import com.jgoodies.forms.factories.ButtonBarFactory;
import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;

/**
* Oversiktsview for avvik
*
* @author atle.brekka
*/
public class DeviationOverviewView extends
    OverviewView<Deviation, DeviationModel> {
  /**
     *
     */
  private JCheckBox checkBoxFilterDone;

  /**
     *
     */
  private JCheckBox checkBoxFilterOwn;

  private PreventiveActionViewHandler preventiveActionViewHandler;

  /**
   * @param handler
   * @param useSearchButton
   */
  @Inject
  public DeviationOverviewView(
     
      PreventiveActionViewHandler aPreventiveActionViewHandler,
      @Assisted DeviationViewHandler deviationViewHandler,
      @Assisted boolean useSearchButton, @Assisted Order aOrder,
      @Assisted boolean doSeeAll, @Assisted boolean forOrderInfo,
      @Assisted boolean isForRegisterNew,
      @Assisted Deviation notDisplayDeviation,
      @Assisted boolean isDeviationTableEditable) {
    super(deviationViewHandler, useSearchButton);
    preventiveActionViewHandler = aPreventiveActionViewHandler;
  }

  /**
   * @see no.ugland.utransprod.gui.OverviewView#initComponents(no.ugland.utransprod.gui.WindowInterface)
   */
  @Override
  protected void initComponents(WindowInterface window) {
    super.initComponents(window);
    checkBoxFilterDone = ((DeviationViewHandler) viewHandler)
        .getCheckBoxFilterDone();
    checkBoxFilterOwn = ((DeviationViewHandler) viewHandler)
        .getCheckBoxFilterOwn();

  }

  /**
   * @see no.ugland.utransprod.gui.OverviewView#buildPanel(no.ugland.utransprod.gui.WindowInterface)
   */
  @Override
  public JComponent buildPanel(WindowInterface window) {
    FormLayout layout = new FormLayout("15dlu,"
        + viewHandler.getTableWidth() + ":grow,15dlu", "10dlu,p,3dlu,p");
    PanelBuilder builder = new PanelBuilder(layout);
    CellConstraints cc = new CellConstraints();

    window.setName("Overview" + viewHandler.getClassName());
    JTabbedPane tabbedPane = new JTabbedPane();
    tabbedPane.add("Avvik", buildDeviationPanel(window, false));
    JPanel preventiveActionPanel = buildPreventiveActionPanel(window);
    String preventiveActionHeading = getPreventiveActionHeading();
    tabbedPane.add(preventiveActionHeading, preventiveActionPanel);

    builder.add(tabbedPane, cc.xy(2, 2));
    builder.add(ButtonBarFactory.buildCenteredBar(buttonCancel), cc
        .xy(2, 4));

    return builder.getPanel();
  }

  private String getPreventiveActionHeading() {
    StringBuilder heading = new StringBuilder("Korrigerende tiltak");
    int ownPreventiveActionCount = preventiveActionViewHandler
        .getRowCount();
    if (ownPreventiveActionCount != 0) {
      heading.append("(").append(ownPreventiveActionCount).append(")");
    }
    return heading.toString();
  }

  private JPanel buildPreventiveActionPanel(WindowInterface window) {

    PreventiveActionOverviewView preventiveActionOverviewView = new PreventiveActionOverviewView(
        preventiveActionViewHandler);
    return preventiveActionOverviewView.buildPreventiveActionPanel(window);
  }

  /**
   * Bygger panel for � vise avvik
   *
   * @param window
   * @param onlyInfo
   * @return panel med avvik
   */
  public JPanel buildDeviationPanel(WindowInterface window, boolean onlyInfo) {
    initComponents(window);
    if (onlyInfo) {
      return buildDeviationPanelForOrderInfo();
    }
    FormLayout layout = new FormLayout(viewHandler.getTableWidth()
        + ":grow,3dlu,p,3dlu,p", "p,3dlu,"
        + viewHandler.getTableHeight() + ":grow,5dlu,p");
    // PanelBuilder builder = new PanelBuilder(layout,new FormDebugPanel());
    PanelBuilder builder = new PanelBuilder(layout);
    JScrollPane scrollPaneTable = new JScrollPane(table);

    CellConstraints cc = new CellConstraints();
    scrollPaneTable.setBorder(Borders.EMPTY_BORDER);

    // builder.add(labelHeading, cc.xy(2, 2));
    builder.add(checkBoxFilterOwn, cc.xy(3, 1));
    builder.add(checkBoxFilterDone, cc.xy(5, 1));
    builder.add(scrollPaneTable, cc.xywh(1, 3, 3, 1));

    builder.add(buildButtonPanel(), cc.xywh(5, 3, 1, 1));

    builder.add(ButtonBarFactory.buildCenteredBar(buttonExcel), cc.xyw(1,
        5, 4));

    return builder.getPanel();

  }

  /**
   * Bygger panel for � vise evvik for en order i ordrevindu
   *
   * @return panel
   */
  private JPanel buildDeviationPanelForOrderInfo() {
    FormLayout layout = new FormLayout(viewHandler.getTableWidth()
        + ":grow,3dlu,p", "p,3dlu," + viewHandler.getTableHeight()
        + ":grow");
    // PanelBuilder builder = new PanelBuilder(layout,new FormDebugPanel());
    PanelBuilder builder = new PanelBuilder(layout);
    JScrollPane scrollPaneTable = new JScrollPane(table);
    CellConstraints cc = new CellConstraints();
    scrollPaneTable.setBorder(Borders.EMPTY_BORDER);
    builder.add(checkBoxFilterDone, cc.xy(1, 1));
    builder.add(scrollPaneTable, cc.xywh(1, 3, 1, 1));
    if (((DeviationViewHandler) viewHandler).useButtons()) {
      builder.add(buildButtonPanel(), cc.xywh(3, 3, 1, 1));
    }
    return builder.getPanel();
  }

  /**
   * @see no.ugland.utransprod.gui.OverviewView#updateActionEnablement()
   */
  @Override
  protected void updateActionEnablement() {
    // Deviation deviation = (Deviation)
    // viewHandler.getObjectSelectionList().getSelection();
    Deviation deviation = (Deviation) viewHandler.getTableSelection();
    boolean hasSelection = viewHandler.objectSelectionListHasSelection();
    buttonEdit.setEnabled(hasSelection);
    if (viewHandler.hasWriteAccess()) {
      if (deviation != null) {

        JobFunction jobFunction = deviation.getDeviationFunction();
        ApplicationUser manager = null;
        ApplicationUser currentUser = ((DeviationViewHandler) viewHandler)
            .getApplicationUser();
        if (jobFunction != null) {
          manager = jobFunction.getManager();
        }
        if ((currentUser != null && currentUser.equals(manager))
            || (currentUser != null && viewHandler.getUserType()
                .isAdministrator())) {
          buttonRemove.setEnabled(hasSelection);
        } else {
          buttonRemove.setEnabled(false);
        }

      }
    }
  }

  public void setComponentEnablement(boolean enable) {
    ((DeviationViewHandler) viewHandler).setComponentEnablement(enable);

  }
}
TOP

Related Classes of no.ugland.utransprod.gui.DeviationOverviewView

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.