Statistics
| Revision:

svn-gvsig-desktop / branches / v2_0_0_prep / extensions / extRasterTools-SE / src / org / gvsig / fmap / raster / layers / FLyrState.java @ 28995

History | View | Annotate | Download (4.06 KB)

1 13703 nacho
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2007 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
package org.gvsig.fmap.raster.layers;
20
21
22
/**
23
 * Estados de una capa. Cada capa tiene uno o varios estados activos en cada instante.
24
 * Hay estados no compatibles entre si, es decir, no pueden estar activos a la vez en cada
25
 * instante. Por ejemplo, una capa no puede estar cerrada y renderizando ya que sus datos no
26
 * est?n accesibles para esa operaci?n. Los estados de una capa sir
27
 * @version 13/09/2007
28
 * @author Nacho Brodin (nachobrodin@gmail.com)
29
 *
30
 */
31
public class FLyrState implements ILayerState {
32
        private boolean open                 = false;
33
        private boolean closed               = true;
34
        private boolean awake                = false;
35
        private boolean stopped              = false;
36
        //private boolean renderizing        = false;
37
38
        private int lastBeforeStop           = UNDEFINED;
39
40
41
        /*
42
         * (non-Javadoc)
43
         * @see org.gvsig.fmap.raster.layers.IState#isAwake()
44
         */
45
        public boolean isAwake() {
46
                return awake;
47
        }
48
49
        /*
50
         * (non-Javadoc)
51
         * @see org.gvsig.fmap.raster.layers.IState#enableAwake()
52
         */
53
        public void enableAwake() throws NotAvailableStateException {
54
                if(open == true || closed == true || stopped == true) {
55
                        this.awake = true;
56
                        stopped = closed = open = false;
57
                        lastBeforeStop = UNDEFINED;
58
                } else
59
                        throw new NotAvailableStateException("Awake state not available");
60
        }
61
62
        /*
63
         * (non-Javadoc)
64
         * @see org.gvsig.fmap.raster.layers.IState#isOpen()
65
         */
66
        public boolean isOpen() {
67
                return open;
68
        }
69
70
        /*
71
         * (non-Javadoc)
72
         * @see org.gvsig.fmap.raster.layers.IState#enableOpen()
73
         */
74
        public void enableOpen() throws NotAvailableStateException {
75
                if(stopped == true || awake == true) {
76
                        this.open = true;
77
                        stopped = closed = awake = false;
78
                        lastBeforeStop = UNDEFINED;
79
                } else
80
                        throw new NotAvailableStateException("Open state not available");
81
        }
82
83
84
        /*
85
         * (non-Javadoc)
86
         * @see org.gvsig.fmap.raster.layers.IState#isClosed()
87
         */
88
        public boolean isClosed() {
89
                return closed;
90
        }
91
92
        /*
93
         * (non-Javadoc)
94
         * @see org.gvsig.fmap.raster.layers.IState#enableClosed()
95
         */
96
        public void enableClosed() throws NotAvailableStateException {
97
                if(open == true || awake == true || stopped == true) {
98
                        this.closed = true;
99
                        stopped = open = awake = false;
100
                        lastBeforeStop = UNDEFINED;
101
                } else
102
                        throw new NotAvailableStateException("Closed state not available");
103
        }
104
105
        /*
106
         * (non-Javadoc)
107
         * @see org.gvsig.fmap.raster.layers.IState#isStopped()
108
         */
109
        public boolean isStopped() {
110
                return stopped;
111
        }
112
113
        /*
114
         * (non-Javadoc)
115
         * @see org.gvsig.fmap.raster.layers.IState#enableStopped()
116
         */
117
        public void enableStopped() {
118
                if(open == true || awake == true || closed == true) {
119
                        lastBeforeStop = (open == true) ? OPEN : ((closed == true) ? CLOSED : ((awake == true) ? AWAKE : UNDEFINED));
120
                        if(lastBeforeStop != UNDEFINED) {
121
                                stopped = true;
122
                                closed = open = awake = false;
123
                        }
124
                }
125
        }
126
127
        /*
128
         * (non-Javadoc)
129
         * @see org.gvsig.fmap.raster.layers.IState#disableStopped()
130
         */
131
        public void disableStopped() {
132
                if(stopped == true && lastBeforeStop != UNDEFINED) {
133
                        switch(lastBeforeStop) {
134
                        case OPEN: open = true; closed = awake = false; break;
135
                        case CLOSED: closed = true; awake = open = false; break;
136
                        case AWAKE: awake = true; closed = open = false; break;
137
                        }
138
                        stopped = false;
139
                        lastBeforeStop = UNDEFINED;
140
                }
141
        }
142
143
}