package org.dawnsci.surfacescatter; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.util.ArrayList; import org.eclipse.dawnsci.analysis.api.roi.IROI; import org.eclipse.dawnsci.analysis.api.roi.IRectangularROI; import org.eclipse.january.dataset.Dataset; import org.eclipse.january.dataset.IDataset; public class OverlapUIModel { private int imageNumber = 0; private IROI ROI; private int[][] lenpt; private IDataset currentImage; private ArrayList<IRectangularROI> ROIList = new ArrayList<IRectangularROI>(); private int ROIevent=0; private Dataset[] output; private String[] filepaths1; private final PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this); public IROI getROI(){ return ROI; } public void setROI(IROI ROI) { //this.setLenPt(ROI); firePropertyChange("ROI", this.ROI, this.ROI= 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); firePropertyChange("lenpt", this.lenpt, this.lenpt= lenpt); } public void setROIList(ArrayList<IRectangularROI> ROIList) { firePropertyChange("ROIList", this.ROIList, this.ROIList= ROIList); } public void setROIListElement(IRectangularROI ROI, int k) { if (ROIList.size() <= k | ROIList.size() !=0){ ROIList.add(ROI); firePropertyChange("ROIevent", this.ROIevent, this.ROIevent= (ROIevent+1)); firePropertyChange("ROIList", this.ROIList, this.ROIList= ROIList); } else { ROIList.add(ROI); firePropertyChange("ROIevent", this.ROIevent, this.ROIevent= (ROIevent+1)); ROIList.set(k, ROI); firePropertyChange("ROIList", this.ROIList, this.ROIList= ROIList); } firePropertyChange("ROIevent", this.ROIevent, this.ROIevent= (ROIevent+1)); } public void setROIListElementEst(IRectangularROI ROI, int k) { ROIList.set(k, ROI); firePropertyChange("ROIevent", this.ROIevent, this.ROIevent= (ROIevent+1)); firePropertyChange("ROIList", this.ROIList, this.ROIList= ROIList); } public void setOutput(Dataset[] input){ output = input; } public Dataset[] getOutput(){ return output; } public void setFilepaths(String[] filepaths){ filepaths1 =filepaths; } public String[] getFilepaths(){ return filepaths1; } public IROI getROIListElement(int k){ return ROIList.get(k); } public ArrayList<IRectangularROI> getROIList(){ return ROIList; } public int[][] getLenPt(){ return 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); } }