Package no.ugland.utransprod.gui.model

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

package no.ugland.utransprod.gui.model;

import java.util.Hashtable;
import java.util.Map;

import no.ugland.utransprod.ProTransRuntimeException;
import no.ugland.utransprod.gui.Login;
import no.ugland.utransprod.gui.OrderOverviewView;
import no.ugland.utransprod.gui.OverviewView;
import no.ugland.utransprod.gui.Viewer;
import no.ugland.utransprod.gui.WindowInterface;
import no.ugland.utransprod.gui.handlers.CustomersViewHandler;
import no.ugland.utransprod.gui.handlers.OrderViewHandlerFactory;
import no.ugland.utransprod.model.Customer;
import no.ugland.utransprod.service.CustomerManager;
import no.ugland.utransprod.service.OrderManager;
import no.ugland.utransprod.util.ModelUtil;

import com.google.inject.Inject;

/**
* Dialogfactory
*
* @author atle.brekka
*
*/
public class WindowFactoryImpl implements WindowFactory {

  /**
   *
   */
  private final Map<WindowEnum, WindowInterface> windows = new Hashtable<WindowEnum, WindowInterface>();

  /**
   *
   */
  private final Map<WindowEnum, Viewer> viewers = new Hashtable<WindowEnum, Viewer>();
  private OrderViewHandlerFactory orderViewHandlerFactory;
 
  @Inject
  public WindowFactoryImpl(OrderViewHandlerFactory aOrderViewHandlerFactory){
    orderViewHandlerFactory=aOrderViewHandlerFactory;
  }

  /**
   * @see no.ugland.utransprod.gui.model.WindowFactory#getWindow(no.ugland.utransprod.gui.model.WindowEnum,
   *      no.ugland.utransprod.model.UserType,
   *      no.ugland.utransprod.model.ApplicationUser)
   */
  public WindowInterface getWindow(WindowEnum windowEnum, Login login) {
    WindowInterface window = null;
    Viewer viewer = null;
    switch (windowEnum) {
    case CUSTOMER:
      window = windows.get(windowEnum);
      if (window == null) {
        CustomerManager customerManager=(CustomerManager)ModelUtil.getBean(CustomerManager.MANAGER_NAME);
        viewer = new OverviewView<Customer, CustomerModel>(
            new CustomersViewHandler(login,customerManager));
        viewers.put(windowEnum, viewer);
      }
      break;
    case ORDER:
      window = windows.get(windowEnum);
      if (window == null) {
        viewer = new OrderOverviewView(orderViewHandlerFactory.create(false));
        viewers.put(windowEnum, viewer);
      }
      break;
    default:
      throw new ProTransRuntimeException(
          "Det er ikke definert enum for vindu");
    }
    if (viewer != null) {
      window = viewer.buildWindow();
      windows.put(windowEnum, window);
    } else {
      viewer = viewers.get(windowEnum);
      viewer.initWindow();
    }
    return window;
  }

}
TOP

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

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.