Package no.ugland.utransprod.gui

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

package no.ugland.utransprod.gui;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;

import no.ugland.utransprod.dao.hibernate.QuerySettings;
import no.ugland.utransprod.gui.handlers.SearchAttributeViewHandler;

import org.jdesktop.swingx.JXTreeTable;

import com.jgoodies.binding.beans.PropertyConnector;
import com.jgoodies.forms.builder.ButtonStackBuilder;
import com.jgoodies.forms.builder.PanelBuilder;
import com.jgoodies.forms.factories.ButtonBarFactory;
import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;
import com.toedter.calendar.JDateChooser;
import com.toedter.calendar.JYearChooser;

/**
* Vindu som brukes til � s�ke opp ordre med gitte kriterier for attributter
*
* @author atle.brekka
*
*/
public class SearchAttributeView {
  /**
   *
   */
  private JDateChooser dateChooserFrom;

  /**
   *
   */
  private JDateChooser dateChooserTo;

  /**
   *
   */
  private JXTreeTable treeTableArticles;

  /**
   *
   */
  private JXTreeTable treeTableChosen;

  /**
   *
   */
  private JButton buttonSelect;

  /**
   *
   */
  private JButton buttonDeselect;

  /**
   *
   */
  private JButton buttonSearch;

  /**
   *
   */
  private JButton buttonCancel;

  /**
   *
   */
  private SearchAttributeViewHandler viewHandler;

  /**
   *
   */
  private JRadioButton radioButtonInvoiceDate;

  /**
   *
   */
  private JRadioButton radioButtonOrderDate;

  /**
   *
   */
  private JRadioButton radioButtonTransportWeek;

  /**
   *
   */
  private JRadioButton radioButtonAnd;

  /**
   *
   */
  private JRadioButton radioButtonOr;

  /**
   *
   */
  private JPanel panelDates;

  /**
   *
   */
  private JPanel panelWeeks;

  /**
   *
   */
  private JYearChooser yearChooserFrom;

  /**
   *
   */
  private JYearChooser yearChooserTo;

  /**
   *
   */
  private JComboBox comboBoxWeeksFrom;

  /**
   *
   */
  private JComboBox comboBoxWeeksTo;

  /**
   *
   */
  private JButton buttonClear;

  /**
   * @param handler
   */
  public SearchAttributeView(SearchAttributeViewHandler handler) {
    viewHandler = handler;
  }

  /**
   * Initierer vinduskomponenter
   *
   * @param window
   */
  private void initComponents(WindowInterface window) {
    window.setName("SearchAttributeView");
    dateChooserFrom = viewHandler.getDateChooserFrom();
    dateChooserTo = viewHandler.getDateChooserTo();

    treeTableArticles = viewHandler.getTreeTableArticles();
    treeTableChosen = viewHandler.getTreeTableChosen();
    buttonSelect = viewHandler.getButtonSelect();
    buttonDeselect = viewHandler.getButtonDeselect();
    buttonSearch = viewHandler.getButtonSearch(window);
    buttonCancel = viewHandler.getButtonCancel(window);
    buttonClear = viewHandler.getButtonClear();
    viewHandler.initEventHandling();

    radioButtonInvoiceDate = viewHandler.getRadioButtonInvoiceDate();
    radioButtonOrderDate = viewHandler.getRadioButtonOrderDate();
    radioButtonTransportWeek = viewHandler.getRadioButtonTransportWeek();
    radioButtonOr = viewHandler.getRadioButtonOr();
    radioButtonAnd = viewHandler.getRadioButtonAnd();

    yearChooserFrom = viewHandler.getYearChooserFrom();
    yearChooserTo = viewHandler.getYearChooserTo();
    comboBoxWeeksFrom = viewHandler.getComboBoxWeeksFrom();
    comboBoxWeeksTo = viewHandler.getComboBoxWeeksTo();

    panelDates = buildPanelDates();
    panelDates.setVisible(false);
    panelWeeks = buildPanelWeeks();
    panelWeeks.setVisible(false);
  }

  /**
   * Bygger panel for datoutvalg
   *
   * @return panel
   */
  public JPanel buildPanelDates() {
    FormLayout layout = new FormLayout("p,3dlu,p", "p,3dlu,p");
    PanelBuilder builder = new PanelBuilder(layout);
    CellConstraints cc = new CellConstraints();

    builder.addLabel("Fra dato:", cc.xy(1, 1));
    builder.add(dateChooserFrom, cc.xy(3, 1));
    builder.addLabel("Til dato:", cc.xy(1, 3));
    builder.add(dateChooserTo, cc.xy(3, 3));

    return builder.getPanel();
  }

  /**
   * Bygger panel for ukeutvalg
   *
   * @return panel
   */
  public JPanel buildPanelWeeks() {
    FormLayout layout = new FormLayout("p,3dlu,30dlu,3dlu,p,3dlu,p",
        "p,3dlu,p");
    PanelBuilder builder = new PanelBuilder(layout);
    CellConstraints cc = new CellConstraints();

    builder.addLabel("Fra �r:", cc.xy(1, 1));
    builder.add(yearChooserFrom, cc.xy(3, 1));
    builder.addLabel("Fra uke:", cc.xy(5, 1));
    builder.add(comboBoxWeeksFrom, cc.xy(7, 1));

    builder.addLabel("Til �r:", cc.xy(1, 3));
    builder.add(yearChooserTo, cc.xy(3, 3));
    builder.addLabel("Til uke:", cc.xy(5, 3));
    builder.add(comboBoxWeeksTo, cc.xy(7, 3));

    return builder.getPanel();
  }

  /**
   * Bygger panel
   *
   * @param window
   * @return panel
   */
  public JComponent buildPanel(WindowInterface window) {
    initComponents(window);
    initEventHandling();

    FormLayout layout = new FormLayout(
        "10dlu,p,3dlu,60dlu,3dlu,100dlu,3dlu,p,3dlu,130dlu,10dlu",
        "10dlu,p,3dlu,p,3dlu,50dlu,3dlu,p,3dlu,100dlu:grow,5dlu,p:grow");
    // PanelBuilder builder = new PanelBuilder(new FormDebugPanel(),layout);
    PanelBuilder builder = new PanelBuilder(layout);
    CellConstraints cc = new CellConstraints();
    builder.add(radioButtonInvoiceDate, cc.xy(2, 2));
    builder.add(radioButtonOrderDate, cc.xy(4, 2));
    builder.add(radioButtonTransportWeek, cc.xy(2, 4));
    builder.add(panelDates, cc.xyw(2, 6, 3));
    builder.add(panelWeeks, cc.xyw(2, 6, 3));

    builder.add(radioButtonAnd, cc.xy(2, 8));
    builder.add(radioButtonOr, cc.xy(4, 8));

    builder.addLabel("Artikler:", cc.xy(6, 2));
    builder.add(new JScrollPane(treeTableArticles), cc.xywh(6, 4, 1, 7));
    builder.add(buildButtonPanel(), cc.xywh(8, 4, 1, 4));
    builder.addLabel("Utvalg:", cc.xy(10, 2));
    builder.add(new JScrollPane(treeTableChosen), cc.xywh(10, 4, 1, 7));
    builder.add(ButtonBarFactory.buildCenteredBar(buttonSearch,
        buttonClear, buttonCancel), cc.xyw(2, 12, 9));
    return builder.getPanel();
  }

  /**
   * Bygger knappepanel
   *
   * @return panel
   */
  private JPanel buildButtonPanel() {
    ButtonStackBuilder builder = new ButtonStackBuilder();
    builder.addGridded(buttonSelect);
    builder.addRelatedGap();
    builder.addGridded(buttonDeselect);
    return builder.getPanel();
  }

  /**
   * Initierer hendelseh�ndtering
   */
  private void initEventHandling() {
    PropertyConnector connDates = new PropertyConnector(panelDates,
        "visible", viewHandler.getPresentationModel().getModel(
            QuerySettings.PROPERTY_USE_DATES), "value");
    connDates.updateProperty1();

    PropertyConnector connWeeks = new PropertyConnector(panelWeeks,
        "visible", viewHandler.getPresentationModel().getModel(
            QuerySettings.PROPERTY_USE_WEEKS), "value");
    connWeeks.updateProperty1();
  }

}
TOP

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

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.