Package no.ugland.utransprod.gui

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

package no.ugland.utransprod.gui;

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

import no.ugland.utransprod.gui.handlers.MainPackageViewHandler;
import no.ugland.utransprod.util.InternalFrameBuilder;

import org.jdesktop.swingx.JXTable;

import com.jgoodies.forms.builder.PanelBuilder;
import com.jgoodies.forms.factories.ButtonBarFactory;
import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;

/**
* Klasse som h�ndterer visning av vindu for pakking av garasjepakke
*
* @author atle.brekka
*
*/
public class MainPackageView implements Viewer {
  private MainPackageViewHandler viewHandler;

  private JXTable tableOrders;

  private JXTable tablePostShipment;

  private JButton buttonCancel;

  private JXTable tableOrderLines;

  private JPanel panelCollies;

  private JPanel panelColliesMain;

  private JButton buttonRefresh;

  private JCheckBox checkBoxShowPackaged;

  private JButton buttonAddArticle;

  private JCheckBox checkBoxReady;

  private JButton buttonRemoveArticle;

  private JButton buttonSearchOrder;

  private JLabel labelDayValue;

  private JLabel labelWeekValue;

  private WindowInterface currentWindow;

  private JLabel labelPackedBy;

  private JLabel labelBudget;

  private JList listComments;

  private JButton buttonAddComment;

  private JComboBox comboBoxProductAreaGroup;

  public MainPackageView(MainPackageViewHandler handler) {
    viewHandler = handler;
  }

  /**
   * Initierere vinduskomponenter
   *
   * @param window
   */
  private void initComponents(WindowInterface window) {
    tableOrders = viewHandler.getTableOrders(window);
    tablePostShipment = viewHandler.getTablePostShipment(window);
    buttonCancel = viewHandler.getButtonCancel(window);
    tableOrderLines = viewHandler.getTableOrderLines(window);
    panelColliesMain = buildColliesMainPanel();

    buttonRefresh = viewHandler.getButtonRefresh(window);
    checkBoxShowPackaged = viewHandler.getCheckBoxShowPackaged();
    buttonAddArticle = viewHandler.getButtonAddArticle(window);
    checkBoxReady = viewHandler.getCheckBoxReady(window);
    buttonRemoveArticle = viewHandler.getButtonRemoveArticle(window);

    buttonSearchOrder = viewHandler.getButtonSearchOrder(window);

    labelDayValue = viewHandler.getLabelDayValue();
    labelWeekValue = viewHandler.getLabelWeekValue();
    labelBudget = viewHandler.getLabelBudget();

    labelPackedBy = viewHandler.getLabelPackedBy();

    viewHandler.initEventHandling(this, window);
    listComments = viewHandler.getListComments();

    buttonAddComment = viewHandler.getButtonAddComment(window);
    comboBoxProductAreaGroup = viewHandler.getComboBoxProductAreaGroup();
  }

  private JPanel buildColliesMainPanel() {
    FormLayout layout = new FormLayout("fill:p:grow", "p,3dlu,fill:p:grow");
    // PanelBuilder builder = new PanelBuilder(new FormDebugPanel(),
    // layout);
    PanelBuilder builder = new PanelBuilder(layout);
    panelCollies = new JPanel();
    CellConstraints cc = new CellConstraints();
    builder.addLabel("Kollier:", cc.xy(1, 1));
    builder.add(panelCollies, cc.xy(1, 3));

    return builder.getPanel();
  }

  private JPanel buildFilterPanel() {
    FormLayout layout = new FormLayout("70dlu,3dlu,70dlu", "p,3dlu,p");
    // PanelBuilder builder = new PanelBuilder(new FormDebugPanel(),
    // layout);
    PanelBuilder builder = new PanelBuilder(layout);
    CellConstraints cc = new CellConstraints();

    builder.addLabel("Produktomr�de:", cc.xy(1, 1));
    builder.add(comboBoxProductAreaGroup, cc.xy(3, 1));
    builder.add(ButtonBarFactory.buildLeftAlignedBar(buttonSearchOrder),
        cc.xy(1, 3));
    builder.add(checkBoxShowPackaged, cc.xy(3, 3));

    return builder.getPanel();
  }

  private JPanel buildOrderPanel() {
    FormLayout layout = new FormLayout("200dlu", "p,3dlu,150dlu:grow");
    // PanelBuilder builder = new PanelBuilder(new FormDebugPanel(),
    // layout);
    PanelBuilder builder = new PanelBuilder(layout);
    CellConstraints cc = new CellConstraints();

    builder.addLabel("Ordre:", cc.xy(1, 1));
    builder.add(new JScrollPane(tableOrders), cc.xy(1, 3));
    return builder.getPanel();
  }

  private JPanel buildPostShipmentPanel() {
    FormLayout layout = new FormLayout("200dlu", "p,3dlu,150dlu:grow");
    // PanelBuilder builder = new PanelBuilder(new FormDebugPanel(),
    // layout);
    PanelBuilder builder = new PanelBuilder(layout);
    CellConstraints cc = new CellConstraints();

    builder.addLabel("Ettersendinger:", cc.xy(1, 1));
    builder.add(new JScrollPane(tablePostShipment), cc.xy(1, 3));

    return builder.getPanel();
  }

  private JPanel buildStatisticsPanel() {
    FormLayout layout = new FormLayout(
        "50dlu,3dlu,50dlu,3dlu,50dlu,3dlu,70dlu,3dlu,p", "p,p");
    // PanelBuilder builder = new PanelBuilder(new FormDebugPanel(),
    // layout);
    PanelBuilder builder = new PanelBuilder(layout);
    CellConstraints cc = new CellConstraints();

    builder.addLabel("Dagsverdi:", cc.xy(1, 1));
    builder.add(labelDayValue, cc.xy(1, 2));
    builder.addLabel("Ukesverdi:", cc.xy(3, 1));
    builder.add(labelWeekValue, cc.xy(3, 2));
    builder.addLabel("Budsjett:", cc.xy(5, 1));
    builder.add(labelBudget, cc.xy(5, 2));
    builder.addLabel("Pakket av:", cc.xy(7, 1));
    builder.add(labelPackedBy, cc.xy(7, 2));
    builder.add(checkBoxReady, cc.xy(9, 1));

    return builder.getPanel();
  }

  private JPanel buildOrderLinePanel() {
    FormLayout layout = new FormLayout("p", "p,3dlu,fill:200dlu:grow");
    // PanelBuilder builder = new PanelBuilder(new FormDebugPanel(),
    // layout);
    PanelBuilder builder = new PanelBuilder(layout);
    CellConstraints cc = new CellConstraints();

    builder.addLabel("Artikler:", cc.xy(1, 1));
    builder.add(new JScrollPane(tableOrderLines), cc.xy(1, 3));

    return builder.getPanel();
  }

  private JPanel buildOrderLineAndCommentPanel() {
    FormLayout layout = new FormLayout("p", "fill:p:grow,3dlu,p");
    // FormLayout layout = new FormLayout("fill:p", "fill:p,3dlu,p");
    // PanelBuilder builder = new PanelBuilder(new FormDebugPanel(),
    // layout);
    PanelBuilder builder = new PanelBuilder(layout);
    CellConstraints cc = new CellConstraints();

    builder.add(buildOrderLinePanel(), cc.xy(1, 1));
    builder.add(buildCommentsPanel(), cc.xy(1, 3));

    return builder.getPanel();
  }

  /**
   * Bygger vinduspanel
   *
   * @param window
   * @return panel
   */
  public JPanel buildPanel(WindowInterface window) {
    currentWindow = window;
    initComponents(window);
    FormLayout layout = new FormLayout(
        "10dlu,p,3dlu,p,3dlu,fill:p:grow,10dlu",
        "10dlu,p,3dlu,fill:p:grow,3dlu,fill:p:grow,3dlu,p,5dlu");
    PanelBuilder builder = new PanelBuilder(layout);
    // PanelBuilder builder = new PanelBuilder(new FormDebugPanel(),
    // layout);
    CellConstraints cc = new CellConstraints();

    builder.add(buildFilterPanel(), cc.xy(2, 2));
    builder.add(buildOrderPanel(), cc.xy(2, 4));
    builder.add(buildPostShipmentPanel(), cc.xy(2, 6));
    builder.add(buildStatisticsPanel(), cc.xyw(4, 2, 3));
    builder.add(buildOrderLineAndCommentPanel(), cc.xywh(4, 4, 1, 3));

    builder.add(panelColliesMain, cc.xywh(6, 4, 1, 3));

    builder.add(
        ButtonBarFactory.buildCenteredBar(buttonRefresh, buttonCancel),
        cc.xyw(2, 8, 5));
    return builder.getPanel();
  }

  /**
   * Bygger kommentarpanel
   *
   * @return panel
   */
  private JPanel buildCommentsPanel() {
    // FormLayout layout = new FormLayout("fill:p:grow",
    // "p,3dlu,85dlu,3dlu,p");
    FormLayout layout = new FormLayout("280dlu", "p,3dlu,85dlu,3dlu,p");
    PanelBuilder builder = new PanelBuilder(layout);
    // PanelBuilder builder = new PanelBuilder(new FormDebugPanel(),
    // layout);
    CellConstraints cc = new CellConstraints();

    builder.addLabel("Kommentarer:", cc.xy(1, 1));
    builder.add(new JScrollPane(listComments), cc.xy(1, 3));
    builder.add(ButtonBarFactory.buildCenteredBar(buttonAddComment,
        buttonAddArticle, buttonRemoveArticle), cc.xy(1, 5));
    return builder.getPanel();
  }

  /**
   * Oppdaterer kollipanel
   *
   * @param clear
   */
  public void updateColliesPanel(boolean clear) {
    panelColliesMain.remove(panelCollies);
    if (clear) {
      panelCollies = new JPanel();
    } else {
      panelCollies = viewHandler.getColliListView(currentWindow);
    }
    CellConstraints cc = new CellConstraints();
    panelColliesMain.add(panelCollies, cc.xy(1, 3));
    panelColliesMain.repaint();
    panelColliesMain.validate();

    if (panelColliesMain.getParent() != null) {
      panelColliesMain.getParent().repaint();
      panelColliesMain.getParent().validate();
    }

  }

  /**
   * @see no.ugland.utransprod.gui.Viewer#buildWindow()
   */
  public WindowInterface buildWindow() {
    WindowInterface window = InternalFrameBuilder
        .buildInternalFrame(viewHandler.getWindowTitle(),
            viewHandler.getWindowSize(), true);
    window.add(buildPanel(window), BorderLayout.CENTER);

    return window;
  }

  /**
   * @see no.ugland.utransprod.gui.Viewer#getTitle()
   */
  public String getTitle() {
    return viewHandler.getWindowTitle();
  }

  /**
   * @see no.ugland.utransprod.gui.Viewer#initWindow()
   */
  public void initWindow() {
    viewHandler.doRefresh(null);

  }

  /**
   * @see no.ugland.utransprod.gui.Viewer#cleanUp()
   */
  public void cleanUp() {
  }

  /**
   * @see no.ugland.utransprod.gui.Viewer#useDispose()
   */
  public boolean useDispose() {
    return viewHandler.getDisposeOnClose();
  }

}
TOP

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

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.