package org.dawnsci.surfacescatter;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.util.ArrayList;
import org.dawnsci.surfacescatter.AnalaysisMethodologies.FitPower;
import org.dawnsci.surfacescatter.AnalaysisMethodologies.Methodology;
import org.dawnsci.surfacescatter.TrackingMethodology.TrackerType1;
import org.eclipse.dawnsci.analysis.api.roi.IROI;
import org.eclipse.dawnsci.analysis.api.roi.IRectangularROI;
import org.eclipse.january.DatasetException;
import org.eclipse.january.dataset.AggregateDataset;
import org.eclipse.january.dataset.Dataset;
import org.eclipse.january.dataset.IDataset;
import org.eclipse.january.dataset.ILazyDataset;
import org.eclipse.january.dataset.SliceND;
public class ExampleModel {
private int imageNumber = 0;
private IROI ROI;
private int[][] lenpt;
private IDataset currentImage;
private ArrayList<ILazyDataset> arrayILD;
private ILazyDataset datImages;
private int sliderPos = 0;
private float iterationMarker =0;
private AggregateDataset aggDat;
private IRectangularROI box;
private IDataset input;
private int boundaryBox = 10;
private Methodology methodology = Methodology.TWOD;
private double[] trackerCoordinates = {100,100,110,100,110,100,110,110};
private double[] intialTrackerCoordinates = {100,100,110,100,110,100,110,110};
private String filepath;
private double outputNo;
private ILazyDataset DatX;
private final PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);
private ILazyDataset dcdtheta;
private ILazyDataset qdcd;
private ILazyDataset flux;
private ILazyDataset theta;
private TrackerType1 trackerType = TrackerType1.TLD;
private FitPower fitPower = FitPower.ONE;
private Dataset tifNames;
public Dataset getTifNames() {
return tifNames;
}
public void setTifNames(Dataset tifNames) {
this.tifNames = tifNames;
}
public IDataset getInput() {
return input;
}
public void setInput(IDataset input) {
this.input = input;
}
public double[] getTrackerCoordinates() {
return trackerCoordinates;
}
public void setTrackerCoordinates(double[] trackerCoordinates) {
this.trackerCoordinates = trackerCoordinates;
}
public Methodology getMethodology() {
return methodology;
}
public void setMethodology(Methodology methodology) {
this.methodology = methodology;
}
public int getBoundaryBox() {
return boundaryBox;
}
public void setBoundaryBox(int boundaryBox) {
this.boundaryBox = boundaryBox;
}
public FitPower getFitPower() {
return fitPower;
}
public void setFitPower(FitPower fitPower1) {
this.fitPower = fitPower1;
}
public IRectangularROI getBox() {
return box;
}
public void setBox(IRectangularROI box) {
firePropertyChange("box", this.box, this.box= box);
}
public AggregateDataset getAggDat() {
return aggDat;
}
public void setAggDat(AggregateDataset aggDat) {
this.aggDat = aggDat;
}
public float getIterationMarker() {
return iterationMarker;
}
public void setIterationMarker(float iterationMarker) {
firePropertyChange("iterationMarker", this.iterationMarker, this.iterationMarker= iterationMarker);
}
public int getSliderPos() {
return sliderPos;
}
public void setSliderPos(int sliderPos) {
this.sliderPos = sliderPos;
}
public ArrayList<ILazyDataset> getArrayILD() {
return arrayILD;
}
public void setArrayILD(ArrayList<ILazyDataset> arrayILD) {
this.arrayILD = arrayILD;
}
public IROI getROI(){
return ROI;
}
public void setROI(IROI ROI) {
IRectangularROI bounds = ROI.getBounds();
int[] len = bounds.getIntLengths();
int[] pt = bounds.getIntPoint();
int[][] lenpt = new int[2][];
lenpt[0]=len;
lenpt[1]=pt;
firePropertyChange("ROI", this.ROI, this.ROI= ROI);
this.setLenPt(lenpt);
firePropertyChange("lenpt", this.lenpt, this.lenpt= lenpt);
}
public int[][] getLenPt(){
return lenpt;
}
public void setLenPt(int[][] lenpt){
this.lenpt = lenpt;
}
public IDataset getCurrentImage(){
return currentImage;
}
public void setCurrentImage(IDataset currentImage){
firePropertyChange("currentImage", this.currentImage, this.currentImage= currentImage);
}
public int getImageNumber() {
return imageNumber;
}
public void setImageNumber(int imageNumber) {
firePropertyChange("imageNumber", this.imageNumber, this.imageNumber= imageNumber);
}
public void addPropertyChangeListener(PropertyChangeListener listener) {
propertyChangeSupport.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(String propertyName,
PropertyChangeListener listener) {
propertyChangeSupport.removePropertyChangeListener(propertyName,
listener);
}
protected void firePropertyChange(String propertyName, Object oldValue,
Object newValue) {
propertyChangeSupport.firePropertyChange(propertyName, oldValue,
newValue);
}
public String getFilepath() {
return filepath;
}
public void setFilepath(String filepath) {
this.filepath = filepath;
}
public double getOutputNo() {
return outputNo;
}
public void setOutputNo(double outputNo) {
this.outputNo = outputNo;
}
public ILazyDataset getDatX() {
return DatX;
}
public void setDatX(ILazyDataset Datx) {
this.DatX = Datx;
}
public ILazyDataset getDatImages() {
return datImages;
}
public void setDatImages(ILazyDataset datImages) {
this.datImages = datImages;
}
public ILazyDataset getDcdtheta() {
return dcdtheta;
}
public void setDcdtheta(ILazyDataset dcdtheta) {
this.dcdtheta = dcdtheta;
}
public ILazyDataset getQdcd() {
return qdcd;
}
public Dataset getQdcdDat() {
try {
SliceND sl = new SliceND(qdcd.getShape());
Dataset QdcdDat = (Dataset) qdcd.getSlice(sl);
return QdcdDat;
} catch (Exception e) {
// TODO Auto-generated catch block
// e.printStackTrace();
return null;
}
}
public void setQdcd(ILazyDataset qdcd) {
this.qdcd = qdcd;
}
public ILazyDataset getFlux() {
return flux;
}
public void setFlux(ILazyDataset flux) {
this.flux = flux;
}
public ILazyDataset getTheta() {
return theta;
}
public void setTheta(ILazyDataset theta) {
this.theta = theta;
}
public TrackerType1 getTrackerType() {
return trackerType;
}
public void setTrackerType(TrackerType1 trackerType) {
this.trackerType = trackerType;
}
public double[] getIntialTrackerCoordinates() {
return intialTrackerCoordinates;
}
public void setIntialTrackerCoordinates(double[] intialTrackerCoordinates) {
this.intialTrackerCoordinates = intialTrackerCoordinates;
}
}