Statistics
| Revision:

svn-gvsig-desktop / tags / v1_0_2_Build_894 / frameworks / _fwAndami / src / com / iver / andami / plugins / ExtensionDecorator.java @ 10309

History | View | Annotate | Download (2.64 KB)

1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
*
3
* Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
4
*
5
* This program is free software; you can redistribute it and/or
6
* modify it under the terms of the GNU General Public License
7
* as published by the Free Software Foundation; either version 2
8
* of the License, or (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
*
19
* For more information, contact:
20
*
21
*  Generalitat Valenciana
22
*   Conselleria d'Infraestructures i Transport
23
*   Av. Blasco Ib??ez, 50
24
*   46010 VALENCIA
25
*   SPAIN
26
*
27
*      +34 963862235
28
*   gvsig@gva.es
29
*      www.gvsig.gva.es
30
*
31
*    or
32
*
33
*   IVER T.I. S.A
34
*   Salamanca 50
35
*   46005 Valencia
36
*   Spain
37
*
38
*   +34 963163400
39
*   dac@iver.es
40
*/
41
package com.iver.andami.plugins;
42

    
43

    
44
/**
45
 * This class extends the functionality of Extension class to let the programmer
46
 * set an extension visible or not on-the-fly.
47
 *
48
 * @autor Jaume Dominguez Faus - jaume.dominguez@iver.es
49
 */
50
public class ExtensionDecorator implements HiddableExtension{
51
        public static final int INACTIVE = 0;
52
        public static final int ALWAYS_VISIBLE = 1;
53
        public static final int ALWAYS_INVISIBLE = 2;
54
        int  alwaysVisible;
55
        IExtension extension;
56

    
57
        public ExtensionDecorator(IExtension e, int visibilityControl){
58
                setExtension(e);
59
                setVisibility(visibilityControl);
60
        }
61

    
62
        public void setExtension(IExtension e) {
63
                this.extension = e;
64
        }
65

    
66
        public void setVisibility(int state){
67
                this.alwaysVisible = state;
68
        }
69

    
70
        public int getVisibility(){
71
                return alwaysVisible;
72
        }
73

    
74
        public IExtension getExtension(){
75
                return extension;
76
        }
77

    
78
        public void initialize() {
79
                extension.initialize();
80
        }
81

    
82
        public void terminate(){
83
                //TODO
84
        }
85

    
86
        public void execute(String actionCommand) {
87
                extension.execute(actionCommand);
88
        }
89

    
90
        public boolean isEnabled() {
91
                return extension.isEnabled();
92
        }
93

    
94
        public boolean isVisible() {
95
                if (alwaysVisible == INACTIVE)
96
                        return extension.isVisible();
97
                else if (alwaysVisible == ALWAYS_VISIBLE) return true;
98
                else return false;
99
        }
100

    
101
        public void postInitialize() {
102
                // TODO
103
        }
104
        
105
        public boolean isEnabled(IExtension extension) {                
106
                return this.extension.isEnabled(extension);
107
        }
108

    
109
        public boolean isVisible(IExtension extension) {
110
                return this.extension.isVisible(extension);
111
        }
112

    
113
}