Package no.ugland.utransprod.gui.model

Source Code of no.ugland.utransprod.gui.model.OrderTableModel

package no.ugland.utransprod.gui.model;

import java.util.Map;

import javax.swing.ListModel;

import no.ugland.utransprod.gui.OrderPanelTypeEnum;
import no.ugland.utransprod.gui.checker.StatusCheckerInterface;
import no.ugland.utransprod.model.Order;
import no.ugland.utransprod.model.PostShipment;
import no.ugland.utransprod.util.Util;

import com.jgoodies.binding.adapter.AbstractTableAdapter;
import com.jgoodies.binding.list.ArrayListModel;

/**
* Tabellmodell for ordre
* @author atle.brekka
*/
public final class OrderTableModel extends AbstractTableAdapter {
    /**
     *
     */
    private final ArrayListModel list;

    /**
     *
     */
    private OrderPanelTypeEnum orderPanelType;

    /**
     *
     */
    private StatusCheckerInterface<Transportable> steinChecker;

    /**
     *
     */
    private static final long serialVersionUID = 1L;


    /**
     * @param listModel
     * @param orderPanelTypeEnum
     */
    public OrderTableModel(ListModel listModel,
            OrderPanelTypeEnum orderPanelTypeEnum) {
        this(listModel, new ArrayListModel(), orderPanelTypeEnum, null);
    }

    /**
     * @param listModel
     * @param aOrderList
     * @param orderPanelTypeEnum
     * @param aSteinChecker
     */
    public OrderTableModel(ListModel listModel, ArrayListModel aOrderList,
            OrderPanelTypeEnum orderPanelTypeEnum,
            StatusCheckerInterface<Transportable> aSteinChecker) {
        super(listModel);
        list = aOrderList;
        orderPanelType = orderPanelTypeEnum;
        steinChecker = aSteinChecker;
    }

    /**
     * @see javax.swing.table.TableModel#getValueAt(int, int)
     */
    public Object getValueAt(int rowIndex, int columnIndex) {
      Transportable transportable = (Transportable) getRow(rowIndex);
      Map<String, String> statusMap = Util.createStatusMap(transportable.getStatus());
      return orderPanelType.getValueAt(transportable, columnIndex,steinChecker,statusMap);

        /*switch (orderPanelType) {
        case NEW_ORDERS:
            return getValueAtTransport(rowIndex, columnIndex);
        case ASSEMBLY_ORDERS:
            return getValueAtAssembly(rowIndex, columnIndex);
        case CONFIRM_REPORT:
            return getValueAtConfirmReport(rowIndex, columnIndex);
        default:
            return getValueAtOrder(rowIndex, columnIndex);
        }*/
    }
    private Object getValueAtConfirmReport(int rowIndex, int columnIndex) {
        Order order = (Order) getRow(rowIndex);

        switch (columnIndex) {
        case 0:
            return order.getCustomer();
        case 1:
            return order.getOrderNr();
        case 2:
            return order.getDeliveryAddress();
        case 3:
            return order.getPostalCode();
        case 4:
            return order.getPostOffice();

        case 5:
            return order.getConstructionType();
        case 6:
            return order.getTransport();
        case 7:
            return order.getCost("Egenproduksjon", "Kunde");
        case 8:
            return order.getCost("Frakt", "Kunde");
        case 9:
            return order.getCost("Montering", "Kunde");
        case 10:
            return order.getCost("Egenproduksjon", "Intern");
        case 11:
            return order.getContributionRate();
        default:
            throw new IllegalStateException("Unknown column");
        }

    }

    /**
     * Henter verdi
     * @param rowIndex
     * @param columnIndex
     * @return verdi
     */
    public Object getValueAtOrder(int rowIndex, int columnIndex) {
        Transportable transportable = (Transportable) getRow(rowIndex);

        switch (columnIndex) {
        case 0:
            return transportable.getCustomer();
        case 1:
            String orderNr = transportable.getOrder().getOrderNr();
            if(transportable instanceof PostShipment){
                orderNr+=" - etterlevering";
            }
            return orderNr;
        case 2:
            return transportable.getOrder().getDeliveryAddress();
        case 3:
            return transportable.getOrder().getPostalCode();
        case 4:
            return transportable.getOrder().getPostOffice();

        case 5:
            return transportable.getConstructionType();
        case 6:
            return transportable.getTransport();
            // case 7:return order.getComment();
        case 7:
            if(transportable.getOrder().getProductArea()!=null){
                return transportable.getOrder().getProductArea().getProductAreaGroup();
            }
            return null;
        default:
            throw new IllegalStateException("Unknown column");
        }

    }

    /**
     * Henter verdi for modell brukt ved montering
     * @param rowIndex
     * @param columnIndex
     * @return verdi
     */
    public Object getValueAtAssembly(int rowIndex, int columnIndex) {
        Order order = (Order) getRow(rowIndex);
        switch (columnIndex) {
        case 0:
            return order.getConstructionType();
        case 1:
            return order.getPostalCode();
        case 2:
            return order.getPostOffice();
        case 3:
            return order;
        case 4:
            return order.getOrderNr();
        case 5:
            return order.getDeliveryAddress();
        case 6:
            return order.getTransport();
            // case 7:return order.getComment();
        default:
            throw new IllegalStateException("Unknown column");
        }

    }

    /**
     * Henter verdi dersom modell er brukt ved transport
     * @param rowIndex
     * @param columnIndex
     * @return verdi
     */
    public Object getValueAtTransport(int rowIndex, int columnIndex) {
        Order order = (Order) getRow(rowIndex);

        Map<String, String> statusMap = Util.createStatusMap(order.getStatus());
        switch (columnIndex) {
        case 0:
            return order.getDeliveryWeek();
        case 1:
            return order.getConstructionType();
        case 2:
            if (order.doAssembly()) {
                if (order.getAssembly() != null) {
                    return "M" + order.getAssembly().getAssemblyWeek();
                }
                return "M";
            }
            return null;
        case 3:
            return order.getPostalCode();
        case 4:
            return order.getPostOffice();
        case 5:
            return statusMap.get(steinChecker.getArticleName());
        case 6:
            return order;
        case 7:
            return order.getOrderNr();
        case 8:
            return order.getDeliveryAddress();
        case 9:
            return order.getProductAreaGroup().getProductAreaGroupName();

            // case 8:return order.getComment();
        default:
            throw new IllegalStateException("Unknown column");
        }

    }

    /**
     * Henter ordre
     * @param rowIndex
     * @return ordre
     */
    public Order getOrder(int rowIndex) {
        return (Order) getRow(rowIndex);
    }

    /**
     * Setter inn ordre
     * @param index
     * @param order
     */
    public void insertRow(int index, Order order) {
        list.add(index, order);
        fireTableDataChanged();
    }

    /**
     * fjerner ordre
     * @param index
     */
    public void removeRow(int index) {
        if (index < list.size()) {
            list.remove(index);
            fireTableDataChanged();
        }
    }

    /**
     * @see com.jgoodies.binding.adapter.AbstractTableAdapter#getColumnName(int)
     */
    @Override
    public String getColumnName(int column) {
      return orderPanelType.getColumnName(column);
        /*switch (orderPanelType) {
        case NEW_ORDERS:
            return COLUMNS_NEW_ORDERS[column];
        case ASSEMBLY_ORDERS:
            return COLUMNS_ASSEMBLY_ORDERS[column];
        case CONFIRM_REPORT:
            return COLUMNS_CONFIRM_REPORT[column];
        default:
            return COLUMNS[column];
        }*/
    }

    /**
     * @see com.jgoodies.binding.adapter.AbstractTableAdapter#getColumnCount()
     */
    @Override
    public int getColumnCount() {
      return orderPanelType.getColumCount();
        /*switch (orderPanelType) {
        case NEW_ORDERS:
            return COLUMNS_NEW_ORDERS.length;
        case ASSEMBLY_ORDERS:
            return COLUMNS_ASSEMBLY_ORDERS.length;
        case CONFIRM_REPORT:
            return COLUMNS_CONFIRM_REPORT.length;
        default:
            return COLUMNS.length;
        }*/
    }

}
TOP

Related Classes of no.ugland.utransprod.gui.model.OrderTableModel

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.