ActionToRoi.java

package com.github.celldynamics.quimp.plugin.protanalysis;

import java.awt.event.ActionEvent;

import com.github.celldynamics.quimp.QParamsQconf;
import com.github.celldynamics.quimp.filesystem.QconfLoader;
import com.github.celldynamics.quimp.geom.MapCoordConverter;
import com.github.celldynamics.quimp.plugin.protanalysis.Prot_Analysis.PointHashSet;
import com.github.celldynamics.quimp.plugin.qanalysis.STmap;

import ij.gui.PointRoi;
import ij.gui.Roi;
import ij.plugin.frame.RoiManager;

/**
 * Action for ROI to/from transfer.
 * 
 * @author p.baniukiewicz
 *
 */
@SuppressWarnings("serial")
public class ActionToRoi extends ProtAnalysisAbstractAction {

  /**
   * Create action.
   * 
   * @param name name
   * @param desc tooltip
   * @param ui reference to manager
   */
  public ActionToRoi(String name, String desc, ProtAnalysisUi ui) {
    super(name, desc, ui);
  }

  /*
   * (non-Javadoc)
   * 
   * @see
   * com.github.celldynamics.quimp.plugin.protanalysis.ProtAnalysisAbstractAction#actionPerformed(
   * java.awt.event.ActionEvent)
   */
  @Override
  public void actionPerformed(ActionEvent e) {
    PointHashSet points = ui.getModel().selected;
    RoiManager rm = RoiManager.getRoiManager();
    rm.reset();
    QconfLoader qconfLoader = ui.getModel().getQconfLoader();
    STmap[] stMap = ((QParamsQconf) qconfLoader.getQp()).getLoadedDataContainer().getQState();
    int i = 0;
    for (PointCoords p : points) {
      int tmpIndex = MapCoordConverter.findPointIndex(stMap[p.cellNo].getxMap()[p.frame],
              stMap[p.cellNo].getyMap()[p.frame], p.point.getX(), p.point.getY(), Double.MAX_VALUE);
      Roi roi = new PointRoi(tmpIndex, (double) p.frame / (stMap[p.cellNo].getT() - 1)
              * stMap[p.cellNo].getVerticalResolution());
      roi.setName(ProtAnalysisOptions.roiPrefix + p.cellNo + "_" + i++);
      rm.addRoi(roi);
    }

  }

}