Statistics
| Revision:

root / branches / v10 / frameworks / _fwAndami / src / com / iver / andami / plugins / ExtensionDecorator.java @ 13656

History | View | Annotate | Download (2.88 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
import com.iver.andami.plugins.status.IExtensionStatus;
44

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

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

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

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

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

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

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

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

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

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

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

    
102
        public void postInitialize() {
103
                // TODO
104
        }
105

    
106
        public boolean isEnabled(IExtension extension) {
107
                return this.extension.isEnabled(extension);
108
        }
109

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

    
114
        public IExtensionStatus getStatus() {
115
                return this.extension.getStatus();
116
        }
117

    
118
        public IExtensionStatus getStatus(IExtension extension) {
119
                return this.extension.getStatus(extension);
120
        }
121

    
122
}