Statistics
| Revision:

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

History | View | Annotate | Download (2.78 KB)

1 2862 jaume
/* 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 12574 cesar
import com.iver.andami.plugins.status.IExtensionStatus;
44 2862 jaume
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 8765 jjdelcerro
        int  alwaysVisible;
56 5005 jorpiell
        IExtension extension;
57 8765 jjdelcerro
58 5005 jorpiell
        public ExtensionDecorator(IExtension e, int visibilityControl){
59 2862 jaume
                setExtension(e);
60
                setVisibility(visibilityControl);
61
        }
62 8765 jjdelcerro
63 5005 jorpiell
        public void setExtension(IExtension e) {
64 2862 jaume
                this.extension = e;
65
        }
66 8765 jjdelcerro
67 2862 jaume
        public void setVisibility(int state){
68
                this.alwaysVisible = state;
69
        }
70 8765 jjdelcerro
71 2862 jaume
        public int getVisibility(){
72
                return alwaysVisible;
73
        }
74 8765 jjdelcerro
75 5005 jorpiell
        public IExtension getExtension(){
76 2862 jaume
                return extension;
77
        }
78
79 5005 jorpiell
        public void initialize() {
80 8765 jjdelcerro
                extension.initialize();
81 2862 jaume
        }
82 8765 jjdelcerro
83 6586 cesar
        public void terminate(){
84 8765 jjdelcerro
                //TODO
85 5005 jorpiell
        }
86 2862 jaume
87
        public void execute(String actionCommand) {
88 8765 jjdelcerro
                extension.execute(actionCommand);
89 2862 jaume
        }
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 8765 jjdelcerro
102
        public void postInitialize() {
103
                // TODO
104
        }
105 9321 jmvivo
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 12574 cesar
        public IExtensionStatus getStatus() {
115
                return this.extension.getStatus();
116
        }
117
118 2862 jaume
}