KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > aspectj > ajde > ui > internal > NavigationHistoryModel


1
2 /* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
3  *
4  * This file is part of the IDE support for the AspectJ(tm)
5  * programming language; see http://aspectj.org
6  *
7  * The contents of this file are subject to the Mozilla Public License
8  * Version 1.1 (the "License"); you may not use this file except in
9  * compliance with the License. You may obtain a copy of the License at
10  * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/.
11  *
12  * Software distributed under the License is distributed on an "AS IS" basis,
13  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
14  * for the specific language governing rights and limitations under the
15  * License.
16  *
17  * The Original Code is AspectJ.
18  *
19  * The Initial Developer of the Original Code is Xerox Corporation. Portions
20  * created by Xerox Corporation are Copyright (C) 1999-2002 Xerox Corporation.
21  * All Rights Reserved.
22  *
23  * Contributor(s):
24  */

25
26 package org.aspectj.ajde.ui.internal;
27
28 import java.util.*;
29 import org.aspectj.asm.*;
30
31 /**
32  * @author Mik Kersten
33  */

34 public class NavigationHistoryModel {
35     
36     private ProgramElementNode currNode = null;
37     private Stack backHistory = new Stack();
38     private Stack forwardHistory = new Stack();
39     
40     /**
41      * @return null if the history is empty
42      */

43     public ProgramElementNode navigateBack() {
44         if (backHistory.isEmpty() || currNode == null) return null;
45         
46         forwardHistory.push(currNode);
47         currNode = (ProgramElementNode)backHistory.pop();
48         return currNode;
49     }
50
51     /**
52      * @return null if the history is empty
53      */

54     public ProgramElementNode navigateForward() {
55         if (forwardHistory.isEmpty() || currNode == null) return null;
56         
57         backHistory.push(currNode);
58         currNode = (ProgramElementNode)forwardHistory.pop();
59         return currNode;
60     }
61
62     
63     public void navigateToNode(ProgramElementNode toNode) {
64         if (currNode != null) backHistory.push(currNode);
65         currNode = toNode;
66     }
67 }
68
Popular Tags