
package de.ivu.elect.presentation.exchange.action;

import javax.annotation.Nonnull;
import javax.inject.Inject;
import javax.inject.Named;

import de.ivu.elect.business.datei.boundary.DateiConversationSelect;
import de.ivu.elect.business.datei.entity.DateiExport;
import de.ivu.elect.presentation.exchange.DateiVorschauContextSelect;
import de.ivu.elect.presentation.exchange.DateiVorschauView;
import de.ivu.elect.presentation.exchange.ExportDescriptionSelect;

@Named
public class DateiExportVorschauAction extends AbstractDateiExportAction {

  private static final long serialVersionUID = 1L;

  @Inject
  private DateiConversationSelect dateiSelection;

  @Inject
  private ExportDescriptionSelect exportDescriptionSelect;

  @Inject
  private DateiVorschauContextSelect dateiVorschauContextSelect;

  @Override
  public boolean isDisabledInternal(@Nonnull DateiExport entity) {
    return entity.getDatei() == null || !entity.getDatei().getFileType().isVorschauMoeglich();
  }

  @Override
  protected String doIt(DateiExport entity) {
    dateiVorschauContextSelect.setLastViewId(exportDescriptionSelect.getExportSearchViewId());
    dateiVorschauContextSelect.setPageMenuComponentName(exportDescriptionSelect.getPageMenuComponentName());

    dateiSelection.setEntity(entity.getDatei());

    return DateiVorschauView.VIEW_ID;
  }

  @Override
  public String getLabelKey() {
    return "datei.import.edit.action.vorschau";
  }

  @Override
  public String getIcon() {
    return appIcons.getIconSearch();
  }
}
