Revision 12127 trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/properties/panels/TransparencyControl.java

View differences:

TransparencyControl.java
19 19
package org.gvsig.rastertools.properties.panels;
20 20

  
21 21
import java.util.ArrayList;
22
import java.util.EventObject;
22 23

  
23 24
import org.gvsig.raster.grid.GridTransparency;
24 25
import org.gvsig.raster.util.TransparencyRange;
25

  
26 26
/**
27
 * 
28 27
 * Clase que hace de interfaz entre los objetos que contienen la informaci?n de 
29 28
 * transparencia y el panel. 
30 29
 *  
31 30
 * @author Nacho Brodin (nachobrodin@gmail.com)
32 31
 */
33
public class TransparencyControl {
34
    private GridTransparency transparency = null;
35
    private TransparencyPanel tPanel = null;
36
    
37
    /**
38
     * Constructor
39
     * @param tp
40
     */
41
    public TransparencyControl(TransparencyPanel tp) {
42
    	this.tPanel = tp;
43
    }
44
    
45
    public void setTransparencyObject(GridTransparency t) {
46
    	this.transparency = t;
47
    	setValuesFromGridTransparencyToPanel();
48
    }
49
    
50
    /**
51
     * Carga los valores del panel desde el objeto con la transparencia
52
     */
53
    private void setValuesFromGridTransparencyToPanel() {
54
    	//Asignamos la opacidad al panel
55
    	if(transparency.getOpacity() != 255) {
56
    		tPanel.getOpacityPanel().setControlEnabled(true);
57
    		tPanel.getOpacityPanel().setValue((int)(transparency.getOpacity() * 100) / 255);
58
    	}else{
59
    		tPanel.getOpacityPanel().setControlEnabled(false);
60
    		tPanel.getOpacityPanel().setValue(100);
61
    	}
62
    	
63
    	//Asignamos los rangos de transparencia al panel
64
    	if(transparency.getTransparencyRange().size() > 0) {
65
    		tPanel.getPTranspByPixel().clear();
32
public class TransparencyControl implements TranspByPixelEventListener {
33
	private GridTransparency  transparency = null;
34
	private TransparencyPanel tPanel       = null;
35

  
36
	/**
37
	 * Constructor
38
	 * @param tp
39
	 */
40
	public TransparencyControl(TransparencyPanel tp) {
41
		this.tPanel = tp;
42
		tPanel.getPTranspByPixel().addValueChangedListener(this);
43
	}
44

  
45
	public void setTransparencyObject(GridTransparency t) {
46
		this.transparency = t;
47
		setValuesFromGridTransparencyToPanel();
48
	}
49

  
50
	/**
51
	 * Carga los valores del panel desde el objeto con la transparencia
52
	 */
53
	private void setValuesFromGridTransparencyToPanel() {
54
		//Asignamos la opacidad al panel
55
		if (transparency.getOpacity() != 255) {
56
			tPanel.getOpacityPanel().setControlEnabled(true);
57
			tPanel.getOpacityPanel().setValue((int) (transparency.getOpacity() * 100) / 255);
58
		} else {
59
			tPanel.getOpacityPanel().setControlEnabled(false);
60
			tPanel.getOpacityPanel().setValue(100);
61
		}
62

  
63
		// Asignamos los rangos de transparencia al panel
64
		tPanel.getPTranspByPixel().getListener().setEventsDisabled(true);
65
		if (transparency.getTransparencyRange().size() > 0) {
66
			tPanel.getPTranspByPixel().clear();
66 67
			tPanel.getPTranspByPixel().setControlEnabled(true);
67
    		for(int i = 0; i < transparency.getTransparencyRange().size(); i ++) {
68
    			TransparencyRange range = (TransparencyRange)transparency.getTransparencyRange().get(i);
69
    			tPanel.getPTranspByPixel().addStringElement(range);
70
    		}
71
    	}else {
72
    		tPanel.getPTranspByPixel().clear();
73
    		tPanel.getPTranspByPixel().setControlEnabled(false);
74
    	}
75
    	
76
    }
77
    
78
    /**
79
     * Carga los valores del objeto transparencia desde el panel
80
     */
81
    private void setValuesFromPanelToGridTransparency() {
82
    	    	
83
    	//Asignamos la opacidad al objeto
84
    	if(tPanel.getOpacityPanel().getCheck().isSelected()) {
85
    		transparency.setOpacity((int)Math.round((tPanel.getOpacityPanel().getValue() * 255) / 100));
86
    	}else
87
    		transparency.setOpacity(255);
88
    	
89
    	//Asignamos los rangos de transparencia al objeto
90
    	if(tPanel.getPTranspByPixel().getActiveCheck().isSelected()) {
91
    		transparency.clearListOfTransparencyRange();
92
    		ArrayList entries = tPanel.getPTranspByPixel().getEntries();	
93
    		for(int i = 0; i < entries.size(); i++)
94
				transparency.setTransparencyRange((TransparencyRange)entries.get(i));
95
    	} else
96
    		transparency.clearListOfTransparencyRange();
97
    		
98
    	transparency.activeTransparency();
99
    	
100
    	//Redibujamos
101
    	if(tPanel.getLayer() != null)
102
    		tPanel.getLayer().getMapContext().invalidate();
103
    }
104
    
105
    /**
68
			for (int i = 0; i < transparency.getTransparencyRange().size(); i++) {
69
				TransparencyRange range = (TransparencyRange) transparency.getTransparencyRange().get(i);
70
				tPanel.getPTranspByPixel().addStringElement(range);
71
			}
72
		} else {
73
			tPanel.getPTranspByPixel().clear();
74
			tPanel.getPTranspByPixel().setControlEnabled(false);
75
		}
76
		tPanel.getPTranspByPixel().getListener().setEventsDisabled(false);
77
	}
78

  
79
	/**
80
	 * Carga los valores del objeto transparencia desde el panel
81
	 */
82
	private void setValuesFromPanelToGridTransparency() {
83
		// Asignamos la opacidad al objeto
84
		if (tPanel.getOpacityPanel().getCheck().isSelected()) {
85
			transparency.setOpacity((int) Math.round((tPanel.getOpacityPanel().getValue() * 255) / 100));
86
		} else
87
			transparency.setOpacity(255);
88

  
89
		// Asignamos los rangos de transparencia al objeto
90
		if (tPanel.getPTranspByPixel().getActiveCheck().isSelected()) {
91
			transparency.clearListOfTransparencyRange();
92
			ArrayList entries = tPanel.getPTranspByPixel().getEntries();
93
			for (int i = 0; i < entries.size(); i++)
94
				transparency.setTransparencyRange((TransparencyRange) entries.get(i));
95
		} else
96
			transparency.clearListOfTransparencyRange();
97

  
98
		transparency.activeTransparency();
99

  
100
		// Redibujamos
101
		if (tPanel.getLayer() != null)
102
			tPanel.getLayer().getMapContext().invalidate();
103
	}
104

  
105
	/**
106 106
	 * Acciones a ejecutar cuando se acepta
107 107
	 */
108 108
	public void accept() {
109
		setValuesFromPanelToGridTransparency();	
109
		setValuesFromPanelToGridTransparency();
110 110
	}
111
	
111

  
112 112
	/**
113 113
	 * Acciones a ejecutar cuando se aplica
114 114
	 */
115 115
	public void apply() {
116 116
		setValuesFromPanelToGridTransparency();
117 117
	}
118
	
118

  
119 119
	/**
120 120
	 * Acciones a ejecutar cuando se cancela
121 121
	 */
122
	public void cancel(){
123
		
122
	public void cancel() {
124 123
	}
125
    
126
}
124

  
125
	/*
126
	 * (non-Javadoc)
127
	 * @see org.gvsig.rastertools.properties.panels.TranspByPixelEventListener#actionPixelListChanged(java.util.EventObject)
128
	 */
129
	public void actionPixelListChanged(EventObject e) {
130
		apply();
131
	}
132
}

Also available in: Unified diff