Package no.ugland.utransprod.gui.edit

Source Code of no.ugland.utransprod.gui.edit.EditTransportView

package no.ugland.utransprod.gui.edit;

import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import no.ugland.utransprod.gui.WindowInterface;
import no.ugland.utransprod.gui.handlers.TransportViewHandler;
import no.ugland.utransprod.gui.model.TransportModel;
import no.ugland.utransprod.model.Transport;
import no.ugland.utransprod.model.validators.TransportValidator;
import no.ugland.utransprod.util.IconFeedbackPanel;
import no.ugland.utransprod.util.Util;

import com.jgoodies.binding.adapter.BasicComponentFactory;
import com.jgoodies.binding.adapter.ComboBoxAdapter;
import com.jgoodies.binding.beans.PropertyConnector;
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.jgoodies.forms.layout.RowSpec;
import com.jgoodies.validation.Validator;
import com.jgoodies.validation.view.ValidationComponentUtils;
import com.toedter.calendar.JDateChooser;
import com.toedter.calendar.JYearChooser;

/**
* Klasse som h�ndterer visning og editering av transport
*
* @author atle.brekka
*
*/
public class EditTransportView extends
    AbstractEditView<TransportModel, Transport> {
  /**
   *
   */
  private JYearChooser yearChooser;

  /**
   *
   */
  private JComboBox comboBoxWeek;

  /**
   *
   */
  private JDateChooser dateChooser;

  /**
   *
   */
  private JTextField textFieldName;
  private JTextArea textAreaTransportComment;

  /**
   * @param handler
   * @param transport
   * @param searchDialog
   */
  public EditTransportView(TransportViewHandler handler, Transport transport,
      boolean searchDialog) {
    super(searchDialog, new TransportModel(transport), handler);
  }

  /**
   * @see no.ugland.utransprod.gui.edit.AbstractEditView#buildEditPanel(no.ugland.utransprod.gui.WindowInterface)
   */
  @Override
  protected JComponent buildEditPanel(WindowInterface window) {
    initEditEventHandling();
    FormLayout layout = new FormLayout(
        "10dlu,p,3dlu,30dlu,3dlu,50dlu,10dlu",
        "10dlu,p,3dlu,p,3dlu,p,3dlu,p,3dlu,p,3dlu,fill:30dlu,3dlu,p");

    PanelBuilder builder = new PanelBuilder(layout);
    // PanelBuilder builder = new PanelBuilder(new FormDebugPanel(),layout);
    CellConstraints cc = new CellConstraints();
    builder.addLabel("Navn:", cc.xy(2, 2));
    builder.add(textFieldName, cc.xyw(4, 2, 3));
    builder.addLabel("�r:", cc.xy(2, 4));
    builder.add(yearChooser, cc.xy(4, 4));
    builder.addLabel("Uke:", cc.xy(2, 6));
    builder.add(comboBoxWeek, cc.xy(4, 6));
    builder.addLabel("Opplasting:", cc.xy(2, 8));
    builder.add(dateChooser, cc.xyw(4, 8, 3));

    builder.addLabel("Kommentar:", cc.xy(2, 10));
    builder.add(new JScrollPane(textAreaTransportComment),
        cc.xywh(4, 10, 3, 3));

    builder.add(
        ButtonBarFactory.buildCenteredBar(buttonSave, buttonCancel),
        cc.xyw(2, 14, 5));

    builder.appendRow(new RowSpec("5dlu"));
    return new IconFeedbackPanel(validationResultModel, builder.getPanel());
  }

  /**
   * @param object
   * @return validator
   * @see no.ugland.utransprod.gui.edit.AbstractEditView#getValidator(java.lang.Object)
   */
  @Override
  protected Validator getValidator(TransportModel object, boolean search) {
    return new TransportValidator(object);
  }

  /**
   * @see no.ugland.utransprod.gui.edit.AbstractEditView#initComponentAnnotations()
   */
  @Override
  protected void initComponentAnnotations() {
    ValidationComponentUtils.setMandatory(yearChooser, true);
    ValidationComponentUtils.setMessageKey(yearChooser, "Transport.�r");

    ValidationComponentUtils.setMandatory(comboBoxWeek, true);
    ValidationComponentUtils.setMessageKey(comboBoxWeek, "Transport.uke");

    ValidationComponentUtils.setMandatory(textFieldName, true);
    ValidationComponentUtils.setMessageKey(textFieldName, "Transport.navn");

  }

  /**
   * Initierer hendelseh�ndtering
   */
  private void initEditEventHandling() {
    PropertyConnector connYear = new PropertyConnector(
        yearChooser,
        "year",
        presentationModel
            .getBufferedModel(TransportModel.PROPERTY_TRANSPORT_YEAR),
        "value");

    if (presentationModel
        .getBufferedValue(TransportModel.PROPERTY_TRANSPORT_WEEK) == null) {
      connYear.updateProperty2();
    } else {
      connYear.updateProperty1();
    }
  }

  /**
   * @see no.ugland.utransprod.gui.edit.AbstractEditView#initEditComponents(no.ugland.utransprod.gui.WindowInterface)
   */
  @Override
  protected void initEditComponents(WindowInterface window1) {
    yearChooser = new JYearChooser();

    comboBoxWeek = new JComboBox(
        new ComboBoxAdapter(
            Util.getWeeks(),
            presentationModel
                .getBufferedModel(TransportModel.PROPERTY_TRANSPORT_WEEK)));

    dateChooser = new JDateChooser();
    PropertyConnector connDate = new PropertyConnector(
        dateChooser,
        "date",
        presentationModel
            .getBufferedModel(TransportModel.PROPERTY_LOADING_DATE),
        "value");

    if (presentationModel
        .getBufferedValue(TransportModel.PROPERTY_LOADING_DATE) != null) {
      connDate.updateProperty1();
    }

    textFieldName = BasicComponentFactory.createTextField(presentationModel
        .getBufferedModel(TransportModel.PROPERTY_TRANSPORT_NAME));

    textAreaTransportComment = BasicComponentFactory
        .createTextArea(presentationModel
            .getBufferedModel(TransportModel.PROPERTY_TRANSPORT_COMMENT));
    textAreaTransportComment.setName("TextAreaComment");

  }

  public final String getDialogName() {
    return "EditTransportView";
  }

  public final String getHeading() {
    return "Transport";
  }
}
TOP

Related Classes of no.ugland.utransprod.gui.edit.EditTransportView

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.