Package no.ugland.utransprod.gui.handlers

Source Code of no.ugland.utransprod.gui.handlers.ShowTakstolInfoAction

/**
*
*/
package no.ugland.utransprod.gui.handlers;

import java.awt.event.ActionEvent;
import java.io.InputStream;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;

import javax.swing.AbstractAction;
import javax.swing.JLabel;

import no.ugland.utransprod.ProTransException;
import no.ugland.utransprod.gui.IconEnum;
import no.ugland.utransprod.gui.WindowInterface;
import no.ugland.utransprod.gui.model.ReportEnum;
import no.ugland.utransprod.model.Produceable;
import no.ugland.utransprod.model.TakstolInfoV;
import no.ugland.utransprod.service.ManagerRepository;
import no.ugland.utransprod.util.Threadable;
import no.ugland.utransprod.util.Util;
import no.ugland.utransprod.util.report.ReportViewer;

import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;

public class ShowTakstolInfoAction extends AbstractAction {
  private static final String UTSTIKK_BILDE = "utstikk_bilde";
  private OrderNrProvider orderNrProvider;
  private ManagerRepository managerRepository;
  private WindowInterface window;

  // private InputStream iconStream;
  @Inject
  public ShowTakstolInfoAction(final ManagerRepository aManagerRepository,
      @Assisted WindowInterface aWindow,
      @Assisted OrderNrProvider aProduceableProvider) {
    super("Takstolinfo...");
    managerRepository = aManagerRepository;
    orderNrProvider = aProduceableProvider;
    window = aWindow;
  }

  public void actionPerformed(ActionEvent e) {
    Util.runInThreadWheel(window != null ? window.getRootPane() : null,
        new Threadable() {

          public void enableComponents(boolean enable) {
            // TODO Auto-generated method stub

          }

          public Object doWork(Object[] params, JLabel labelInfo) {
            labelInfo.setText("Genererer takstolinfo...");
            String errorString = null;
            try {
              showTakstolInfo();
            } catch (ProTransException e1) {
              errorString = e1.getMessage();

            }
            return errorString;
          }

          public void doWhenFinished(Object object) {
            if (object != null) {
              Util.showErrorDialog(window, "Feil", object
                  .toString());
            }

          }
        }, null);

  }

  void showTakstolInfo() throws ProTransException {
    String orderNr = orderNrProvider.getSelectedOrderNr();
    List<TakstolInfoV> list = managerRepository.getTakstolInfoVManager()
        .findByOrderNr(orderNr);
    if (list.size() != 0) {
      TakstolInfoV takstolInfoV = getTakstolInfoV(list);
      if(takstolInfoV!=null){
      String reportFileName = getReportfileName(takstolInfoV);
      Map<String, Object> params = getParams(takstolInfoV);
      ReportViewer reportViewer = new ReportViewer("Takstolinfo");
      reportViewer.generateProtransReportFromBeanAndShow(list,
          "Takstolinfo", ReportEnum.TAKSTOL_INFO, params,
          reportFileName, null, false);
      }
    }
  }

  private Map<String, Object> getParams(TakstolInfoV takstolInfoV) {
    Map<String, Object> params = new Hashtable<String, Object>();

    if (takstolInfoV.getUtstikkType() != null) {
      String imagePath = ImageSelector.valueOf(
          "UTSTIKKTYPE_" + takstolInfoV.getUtstikkType())
          .getImagePath();
      if (imagePath != null) {
        InputStream iconStream = this.getClass().getClassLoader()
            .getResourceAsStream(imagePath);

        params.put(UTSTIKK_BILDE, iconStream);
      }
    }
    return params;
  }

  private String getReportfileName(TakstolInfoV takstolInfoV) {
    String reportFileName = "Takstolinfo - " + takstolInfoV.getOrdernr()
        + ".pdf";
    return reportFileName;
  }

  private TakstolInfoV getTakstolInfoV(List<TakstolInfoV> list) {
    TakstolInfoV takstolInfoV = list.get(0);
    return takstolInfoV;
  }

  private enum ImageSelector {
    UTSTIKKTYPE_0(null), UTSTIKKTYPE_1(IconEnum.ICON_UTSTIKKTYPE_1), UTSTIKKTYPE_2(
        IconEnum.ICON_UTSTIKKTYPE_2), UTSTIKKTYPE_3(
        IconEnum.ICON_UTSTIKKTYPE_3), UTSTIKKTYPE_4(
        IconEnum.ICON_UTSTIKKTYPE_4);

    private IconEnum iconEnum;

    private ImageSelector(IconEnum aIconEnum) {
      iconEnum = aIconEnum;
    }

    public String getImagePath() {
      return iconEnum != null ? iconEnum.getIconPath() : null;
    }
  }

}
TOP

Related Classes of no.ugland.utransprod.gui.handlers.ShowTakstolInfoAction

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.