package imseProc.fluxSurfs;

import mds.AugMDSFetcher;

import org.eclipse.swt.widgets.Composite;

import signals.aug.AUGSignal;
import sun.reflect.generics.reflectiveObjects.NotImplementedException;
import descriptors.aug.AUGSignalDesc;

import base.SignalFetcher;

import imseProc.core.ImagePipeController;
import imseProc.core.ImgPipe;
import imseProc.core.ImgSink;

/** Doesn't really do anything, just here to attach the FluxSurfacesSWT */
public class FluxSurfacesHanger extends ImgPipe implements ImgSink {
	private FluxSurfacesSWTControl swtController;
	
	private String equiSignalPFMNode = "PFM#augdiag";			

	@Override
	public ImagePipeController createPipeController(Class interfacingClass, Object args[], boolean asSink) {
		if(interfacingClass == Composite.class){
			if(swtController == null){
				swtController = new FluxSurfacesSWTControl(this, (Composite)args[0], (Integer)args[1]);
				controllers.add(swtController);
			}
			return swtController;
		}else
			return null;
	}

	@Override
	public void imageChanged(int idx) {
				
	}

	public void load(int pulse, String signalPath) {

		SignalFetcher amds = AugMDSFetcher.defaultInstance();
		//AugShotfileFetcher amds = AugShotfileFetcher.defaultInstance();
		
		AUGSignalDesc desc = new AUGSignalDesc("/aug/" + pulse + "/" + signalPath + "/" + equiSignalPFMNode);
		System.out.print("Loading AUG Psi Map from signal '" + desc + "'... ");
		AUGSignal sig = (AUGSignal)amds.getSig(desc); //This can take a while, even from disk
		System.out.println("Done");
		
		
		
	}
	
	public boolean isIdle(){ throw new NotImplementedException(); }
}
