Revision 42173 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/ExtentHistory.java

View differences:

ExtentHistory.java
129 129
      }
130 130
    }
131 131
  }
132
  
133
  public void putNext(Rectangle2D ext) {
134
    if ((ext != null) && ((numNext < 1) || (ext != extentsNext[numNext - 1])) ) {
135
      if (numNext < (NUMREC)) {
136
        extentsNext[numNext] = ext;
137
        numNext++;
138
      } else {
139
        for (int i = 0; i < (NUMREC - 1); i++) {
140
          extentsNext[i] = extentsNext[i+1];
141
        }
142
        extentsNext[numNext - 1] = ext;
143
      }
144
    }
145
  }
132 146

  
133 147
  /**
134 148
   * <p>
......
166 180

  
167 181
    return ext;
168 182
  }
169
  
183

  
170 184
  public Rectangle2D getNext() {
171 185
    if (numNext <= 0) {
172 186
      return null;
173 187
    }
174
    
188

  
175 189
    Rectangle2D ext = extentsNext[numNext - 1];
176
    
190

  
177 191
    return ext;
178 192
  }
179 193

  
......
189 203
    if (num <= 0) {
190 204
      return null;
191 205
    }
192
    if (numNext < (NUMREC)) {
193
      extentsNext[numNext] = extents[num - 1];
194
      numNext++;
195
    }
196
    else {
197
      for (int i = 0; i < (NUMREC - 1); i++) {
198
        extentsNext[i] = extentsNext[i + 1];
199
      }
200
      extentsNext[numNext - 1] = extents[num - 1];
201
    }
202 206

  
203 207
    Rectangle2D ext = extents[--num];
204 208
    return ext;
......
217 221
      return null;
218 222
    }
219 223

  
220
    if (num < (NUMREC)) {
221
      extents[num] = extentsNext[numNext - 1];
222
    }
223
    else {
224
      for (int i = 0; i < (NUMREC - 1); i++) {
225
        extents[i] = extents[i + 1];
226
      }
227
      extents[num - 1] = extentsNext[numNext - 1];
228
    }
229

  
230 224
    Rectangle2D ext = extentsNext[--numNext];
231 225
    return ext;
232 226
  }
233 227

  
234
  
235 228
  public void clear() {
236
    num = 0;
237 229
    numNext = 0;
238 230
  }
239 231

  
240
  
241 232
  public void loadFromState(PersistentState state) throws PersistenceException {
242 233

  
243 234
    num = state.getInt("num");

Also available in: Unified diff