import ie.dcu.apps.ist.views.*;
import ie.dcu.segment.*;
import ie.dcu.segment.annotate.*;
+import ie.dcu.segment.painters.SegmentationPainter;
import ie.dcu.swt.*;
import ie.dcu.swt.event.*;
import ie.dcu.swt.layout.LayoutFactory;
*/
public class AppWindow extends ApplicationWindow implements FileDropListener {
private static final Logger log = Logger.getLogger("AppWindow");
-
+
private final Properties props;
private AppPrefsManager prefsManager;
private final ImageControl ctrl;
private ImageData image;
+ private ImageData maskedImageData;
private boolean inside;
+ private boolean insideSegment;
private boolean enabled;
-
-
+ SegmentationPainter painter;
+
public ImageObserver(SegmentationView view) {
+ painter = view.getPainter();
view.addContextChangeListener(this);
view.getCanvas().addMouseMoveListener(this);
ctrl = view.getImageControl();
Font font = JFaceResources.getDefaultFont();
getStatusLineManager().getControl().setFont(font);
this.inside = false;
+ this.insideSegment = false;
this.enabled = enabled;
}
}
Font font = JFaceResources.getDefaultFont();
getStatusLineManager().getControl().setFont(font);
inside = false;
+ insideSegment = false;
+ shell.setToolTipText(null);
}
}
return ctrl.canvasToImage(pt);
}
}
+
+ maskedImageData = painter.getMaskImage().getImageData();
+ if (maskedImageData != null) {
+ Point pt = new Point(e.x, e.y);
+ if (ctrl.imageContains(pt)) {
+ return ctrl.canvasToImage(pt);
+ }
+ }
return null;
}
-
-
+
private final RGB getColor(Point pt) {
int pixel = image.getPixel(pt.x, pt.y);
Font font = JFaceResources.getFont(MONOSPACE_FONT);
getStatusLineManager().getControl().setFont(font);
}
-
- status(AppStatus.Information,
- "Location [%4d,%4d] Color [%3d,%3d,%3d]",
- pt.x, pt.y, c.red, c.green, c.blue);
-
+ Listener mouseListener = new Listener() {
+ public void handleEvent(Event event) {
+ switch (event.type) {
+ case SWT.MouseEnter:
+ case SWT.MouseMove:
+ if (insideSegment) {
+ // System.out.println("Which painter ? --> "+painter.getMaskImage().getImageData().y);
+ view.getCanvas().setToolTipText(SegmentationView.comboLabel.getText());
+ return;
+ }
+ view.getCanvas().setToolTipText(null);
+ break;
+ }
+ }
+ };
+ view.getCanvas().addListener(SWT.MouseMove, mouseListener);
+ view.getCanvas().addListener(SWT.MouseExit, mouseListener);
+ if((SegmentationView.comboLabel.getText()).trim().equals(""))
+ {
+ status(AppStatus.Information,
+ "Location [%4d,%4d] Color [%3d,%3d,%3d]",
+ pt.x, pt.y, c.red, c.green, c.blue);
+ }
+ else
+ {
+ status(AppStatus.Information,
+ "Location [%4d,%4d] Color [%3d,%3d,%3d] Label [%s]",
+ pt.x, pt.y, c.red, c.green, c.blue, SegmentationView.comboLabel.getText());
+ }
inside = true;
+ insideSegment = true;
}