content: /*
   * Copyright (C) 2013 4th Line GmbH, Switzerland
   *
   * The contents of this file are subject to the terms of either the GNU
   * Lesser General Public License Version 2 or later ("LGPL") or the
   * Common Development and Distribution License Version 1 or later
   * ("CDDL") (collectively, the "License"). You may not use this file
   * except in compliance with the License. See LICENSE.txt for more
   * information.
   *
   * This program is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   */
  
  package org.fourthline.cling.workbench.control.impl;
  
  import org.fourthline.cling.workbench.control.ControlView;
  import org.fourthline.cling.workbench.info.InvokeAction;
  
  import javax.enterprise.context.ApplicationScoped;
  import javax.enterprise.event.Observes;
  import javax.enterprise.inject.Instance;
  import javax.inject.Inject;
  
  /**
   * TODO: Is this injection/lifecycle behavior of CDI specified? The newly created
   * instances are dependent on the lifecycle of this application scoped instance.
   *
   * @author Christian Bauer
   */
  
  @ApplicationScoped
  public class ControlPresenters {
  
      @Inject
      Instance<ControlView.Presenter> controlPresenterInstance;
  
      public void onActionInvocationRequest(@Observes InvokeAction request) {
          controlPresenterInstance.get().init(
                  request.action, request.presetInputValues
          );
      }
  }
  