Select Git revision
ChainingModule.java
ChainingModule.java 10.08 KiB
package plugins.nherve.toolbox.imageanalysis.impl;
import icy.gui.component.PopupPanel;
import icy.gui.dialog.MessageDialog;
import icy.gui.util.GuiUtil;
import icy.sequence.Sequence;
import icy.system.thread.ThreadUtil;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JPanel;
import javax.swing.border.TitledBorder;
import plugins.nherve.maskeditor.MaskEditor;
import plugins.nherve.toolbox.NherveToolbox;
import plugins.nherve.toolbox.image.mask.MaskStack;
import plugins.nherve.toolbox.imageanalysis.ImageAnalysisContext;
import plugins.nherve.toolbox.imageanalysis.ImageAnalysisException;
import plugins.nherve.toolbox.imageanalysis.ImageAnalysisModule;
import plugins.nherve.toolbox.imageanalysis.ImageAnalysisModuleListener;
import plugins.nherve.toolbox.imageanalysis.ImageAnalysisParameters;
import plugins.nherve.toolbox.imageanalysis.ImageAnalysisProcessListener;
public abstract class ChainingModule extends ModuleGroup implements ActionListener, ImageAnalysisProcessListener {
private class LaunchButton extends JButton implements ImageAnalysisModuleListener {
private static final long serialVersionUID = -7597996048640565055L;
public LaunchButton(ImageAnalysisModule module) {
super(NherveToolbox.playIcon);
setToolTipText("Launch " + module.getName());
setName("Launch");
module.addListener(this);
}
@Override
public void statutsChanged(ImageAnalysisModule m) {
final ImageAnalysisModule m2 = m;
ThreadUtil.invokeLater(new Runnable() {
@Override
public void run() {
switch (m2.getState()) {
case ImageAnalysisModule.STOPPED:
setEnabled(true);
break;
case ImageAnalysisModule.RUNNING:
setEnabled(false);
break;
case ImageAnalysisModule.FINISHED:
setEnabled(false);