X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=SpiderConsole%2Fsrc%2FCommandBuffer.java;fp=SpiderConsole%2Fsrc%2FCommandBuffer.java;h=e8f41512baa96f13d46ab795dee67a99331e1108;hb=1540d1ee26801546ad652653951bbc25744d85a0;hp=0000000000000000000000000000000000000000;hpb=5e145358734eabf8855fb2b4c1daabcc55bd9da0;p=spider.git diff --git a/SpiderConsole/src/CommandBuffer.java b/SpiderConsole/src/CommandBuffer.java new file mode 100644 index 00000000..e8f41512 --- /dev/null +++ b/SpiderConsole/src/CommandBuffer.java @@ -0,0 +1,110 @@ +/** + * Command Buffer for the cluster window of the spider GUI. + * @author Ian Norton + * @version 1.00 - 20010418. + * + * Copyright (C) 2001 Ian Norton. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public Licence as published by + * the Free Software Foundation; either version 2 of the Licence, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public Licence for more details. + * + * You should have received a copy of the GNU General Public Licence + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Contacting the author : + * Ian Norton + * i.norton@lancaster.ac.uk + * http://www.lancs.ac.uk/~norton/ **/ + +import java.util.Vector ; + +class CommandBuffer + { + private int top, bottom, pointer, size ; + private Vector buffer ; + private boolean rolled ; + + /** + * main - testing purposes only. + **/ + public static void main(String[] args) + { + CommandBuffer c = new CommandBuffer(5) ; + c.addCommand("1") ; + System.out.println(c.getPreviousCommand()) ; + System.out.println(c.getNextCommand()) ; + } + + /** + * CommandBuffer + * @param int - Number of lines of buffer. + **/ + public CommandBuffer(int i) + { + // Size of the buffer. + size = i ; + + // "Pointers" + bottom = 0 ; + pointer = 0 ; + + top = size - 1 ; + + // Vector that does that actual storage. + buffer = new Vector(size) ; + } + + /** + * addCommand + * @param String - command to add to the buffer + **/ + public void addCommand(String s) + { + // Is it an empty string + if(s.length() == 0) return ; + + // Add the command to the buffer + buffer.addElement(s) ; + + // Check the buffer remains the correct size. + while(buffer.size() > size) buffer.removeElementAt(0) ; + + // Pointer to the last command + pointer = buffer.indexOf(s) ; + } + + /** + * getPreviousCommand - get the previous command (recursive) + * @returns String - previous command + **/ + public String getPreviousCommand() + { + String output = (String)buffer.elementAt(pointer) ; + if(pointer != 0) pointer-- ; + return output ; + } + + /** + * getNextCommand - get the next command (recursive) + * @returns String - next command + **/ + public String getNextCommand() + { + pointer++ ; + if(pointer == buffer.size()) + { + pointer-- ; + return "" ; + } + String output = (String)buffer.elementAt(pointer) ; + return output ; + } + } // End of class.