Revision 19224 trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/toolselectrgb/SelectRGBListener.java
SelectRGBListener.java | ||
---|---|---|
19 | 19 |
package org.gvsig.rastertools.toolselectrgb; |
20 | 20 |
|
21 | 21 |
import java.awt.geom.Point2D; |
22 |
import java.awt.geom.Rectangle2D; |
|
23 | 22 |
import java.awt.image.BufferedImage; |
24 | 23 |
|
25 | 24 |
import com.iver.andami.PluginServices; |
26 | 25 |
import com.iver.cit.gvsig.fmap.MapControl; |
27 | 26 |
import com.iver.cit.gvsig.fmap.tools.SelectImageListenerImpl; |
28 | 27 |
import com.iver.cit.gvsig.fmap.tools.Events.PointEvent; |
29 |
import com.iver.cit.gvsig.project.documents.view.gui.IView; |
|
30 |
import com.iver.cit.gvsig.project.documents.view.gui.View; |
|
31 | 28 |
/** |
32 | 29 |
* Extensi?n de la clase SelectImageListenerImple de FMap. Esta clase permite |
33 | 30 |
* capturar el evento de la selecci?n de un punto RGB sobre la vista |
34 | 31 |
* |
35 |
* @author Nacho Brodin (nachobrodin@gmail.com) |
|
32 |
* 22/02/2008 |
|
33 |
* @author BorSanZa - Borja S?nchez Zamorano (borja.sanchez@iver.es) |
|
36 | 34 |
*/ |
37 | 35 |
public class SelectRGBListener extends SelectImageListenerImpl { |
36 |
private ISelectRGB selectRGB; |
|
38 | 37 |
|
39 |
Rectangle2D extentLayer = null; |
|
40 | 38 |
/** |
41 | 39 |
* Contructor |
42 | 40 |
* @param mapCtrl |
43 | 41 |
*/ |
44 |
public SelectRGBListener(MapControl mapCtrl) { |
|
42 |
public SelectRGBListener(MapControl mapCtrl, ISelectRGB selectRGB) {
|
|
45 | 43 |
super(mapCtrl); |
44 |
this.selectRGB = selectRGB; |
|
46 | 45 |
} |
47 | 46 |
|
48 | 47 |
/* (non-Javadoc) |
... | ... | |
51 | 50 |
public void point(PointEvent event) { |
52 | 51 |
super.point(event); |
53 | 52 |
|
54 |
Point2D pointSelect = event.getPoint();
|
|
53 |
Point2D point2D = event.getPoint();
|
|
55 | 54 |
|
56 | 55 |
if (PluginServices.getMainFrame() != null) |
57 | 56 |
PluginServices.getMainFrame().enableControls(); |
58 | 57 |
|
59 |
int[] argb = { -1, -1, -1, -1 }; |
|
60 |
BufferedImage buf = null; |
|
61 |
View theView = (View) PluginServices.getMDIManager().getActiveWindow(); |
|
62 |
if (theView instanceof IView) { |
|
63 |
buf = ((IView) theView).getMapControl().getImage(); |
|
64 |
int value = buf |
|
65 |
.getRGB((int) pointSelect.getX(), (int) pointSelect.getY()); |
|
66 |
argb[0] = ((value & 0xff000000) >> 24); |
|
67 |
argb[1] = ((value & 0x00ff0000) >> 16); |
|
68 |
argb[2] = ((value & 0x0000ff00) >> 8); |
|
69 |
argb[3] = (value & 0x000000ff); |
|
70 |
} |
|
71 |
System.out.println(argb[0] + " " + argb[1] + " " + argb[2]); |
|
58 |
BufferedImage image = mapCtrl.getImage(); |
|
59 |
int value = image.getRGB((int) point2D.getX(), (int) point2D.getY()); |
|
60 |
int r = (value >> 16) & 0xff; |
|
61 |
int g = (value >> 8) & 0xff; |
|
62 |
int b = value & 0xff; |
|
63 |
|
|
64 |
selectRGB.actionRGBSelected(r, g, b); |
|
72 | 65 |
} |
73 | 66 |
} |
Also available in: Unified diff