annotate src/de/mpg/mpiwg/itgroup/digilib/manipulator/extensions/RectangleListener.java @ 1:83c58ea33792

first release (continued)
author dwinter
date Mon, 03 Jan 2011 09:11:25 +0100
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
1 package de.mpg.mpiwg.itgroup.digilib.manipulator.extensions;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
2
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
3
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
4
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
5
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
6
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
7 import org.eclipse.swt.SWT;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
8 import org.eclipse.swt.events.MouseEvent;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
9 import org.eclipse.swt.events.MouseListener;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
10 import org.eclipse.swt.graphics.Color;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
11 import org.eclipse.swt.graphics.GC;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
12 import org.eclipse.swt.graphics.Point;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
13 import org.eclipse.swt.widgets.Canvas;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
14 import org.eclipse.swt.widgets.Label;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
15 import org.eclipse.swt.graphics.Device;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
16
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
17 import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImage;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
18 import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImageController;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
19 import de.mpg.mpiwg.itgroup.digilib.plugin.editors.DigilibLinkEditorObservable;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
20
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
21 public class RectangleListener implements MouseListener {
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
22 static int FIRST_CLICK=1;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
23 static int SECOND_CLICK=2;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
24 static int NO_CLICK=0;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
25 int status=NO_CLICK;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
26 private Label label;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
27 private Point firstPoint;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
28 private DigiImageController dc;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
29
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
30
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
31 private RectangleListener() {
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
32
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
33 }
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
34
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
35 public RectangleListener(DigiImageController dc,Label label){
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
36 this.label =label;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
37 this.dc=dc;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
38 }
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
39 public void reset(){
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
40 status=0;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
41 }
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
42 public void mouseDoubleClick(MouseEvent e) {
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
43 // TODO Auto-generated method stub
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
44
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
45 }
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
46
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
47 public void mouseDown(MouseEvent e) {
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
48 // TODO Auto-generated method stub
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
49
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
50 }
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
51
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
52 public void mouseUp(MouseEvent e) {
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
53 if (status==NO_CLICK){
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
54 handleFirstClick(e);
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
55 } else if (status==FIRST_CLICK){
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
56 handleSecondClick(e);
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
57 }
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
58
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
59 }
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
60
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
61 private void handleSecondClick(MouseEvent e) {
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
62 //Canvas canvas = new Canvas(label.getParent(),SWT.NO_BACKGROUND);
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
63
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
64 GC gc = new GC(label.getImage());
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
65
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
66 gc.setForeground(new Color(label.getDisplay(),255,0,0));
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
67
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
68 gc.drawRectangle(firstPoint.x, firstPoint.y, e.x-firstPoint.x, e.y-firstPoint.y);
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
69 gc.dispose();
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
70 label.redraw();
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
71 status=SECOND_CLICK;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
72 dc.zoomArea(firstPoint.x,firstPoint.y,e.x,e.y);
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
73 dc.digiImage.getLabel().removeMouseListener(this);
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
74 DigilibLinkEditorObservable.INSTANCE.setCursorStatus(SWT.CURSOR_ARROW);
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
75 DigilibLinkEditorObservable.INSTANCE.imageHasChanged(dc.digiImage);
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
76
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
77 }
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
78
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
79 private void handleFirstClick(MouseEvent e) {
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
80 //Canvas canvas = new Canvas(label.getParent(),SWT.NO_BACKGROUND);
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
81
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
82 GC gc = new GC(label.getImage());
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
83
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
84 gc.setForeground(new Color(label.getDisplay(),255,0,0));
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
85 firstPoint = new Point(e.x,e.y);
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
86 gc.drawOval(e.x, e.y, 10, 10);
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
87 gc.dispose();
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
88 status=FIRST_CLICK;
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
89 label.redraw();
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
90 DigilibLinkEditorObservable.INSTANCE.setCursorStatus(SWT.CURSOR_CROSS);
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
91 }
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
92
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
93
83c58ea33792 first release (continued)
dwinter
parents:
diff changeset
94 }