summaryrefslogtreecommitdiff
path: root/tutorials/java/src/phpdbg/ui/CommandHistory.java
blob: b8a3b0ff0a9a61d7e896214efd17df2d6db19f72 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package phpdbg.ui;


import java.util.ArrayList;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Implement a simple history list for command input
 * @author krakjoe
 */
public class CommandHistory extends ArrayList<String> {
    private Integer position = new Integer(0);
    
    public CommandHistory() {
        super();
    }
    
    @Override public boolean add(String text) {
        String last = last();
        if (text != null) {
           if (last == null || !last.equals(text)) {
               if (super.add(text)) {
                   position = size();
                   return true;
               }
           }
        }
        return false;
    }
    
    public String last() {
        if (position >= 1) {
            position--;
            return get(position);
        } else return new String();
    }
    
    public String next() {
        if (position+1 < size()) {
            position++;
            return get(position);
        } else return new String();
    }
}