/
ScryMUD/mud/
ScryMUD/mud/grrmud/Boards/
ScryMUD/mud/grrmud/Help/
ScryMUD/mud/grrmud/Pfiles/
ScryMUD/mud/grrmud/PlayerSacks/
ScryMUD/mud/grrmud/PlayerShops/
ScryMUD/mud/grrmud/help_filter/
ScryMUD/mud/hegemon/
ScryMUD/mud/hegemon/data/
ScryMUD/mud/hegemon/data/help/battle/
ScryMUD/mud/hegemon/data/help/client/
ScryMUD/mud/hegemon/data/help/communications/
ScryMUD/mud/hegemon/data/help/skills/
ScryMUD/mud/hegemon/data/help/spells/
ScryMUD/mud/include/
ScryMUD/mud/lib/
ScryMUD/mud/lib/bitfield/
ScryMUD/mud/lib/log/
ScryMUD/mud/lib/string2/
// $Id: CommandHistory.java,v 1.2 1999/06/05 23:29:12 greear Exp $
// $Revision: 1.2 $  $Author: greear $ $Date: 1999/06/05 23:29:12 $

//
//Hegemon Client Code:  Java Client for ScryMUD Server Code
//Copyright (C) 1998  Ben Greear
//
//This program is free software; you can redistribute it and/or
//modify it under the terms of the GNU General Public License
//as published by the Free Software Foundation; either version 2
//of the License, 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 License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program; if not, write to the Free Software
//Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
//
// To contact the Author, Ben Greear:  greear@cyberhighway.net, (preferred)
//                                     greearb@agcs.com
//

import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class CommandHistory extends Frame {
   HegemonManager hm;
   TextArea ta;
   CHButtons sb;
   Vector cmds;
   int cmd_offset;

   public CommandHistory(HegemonManager h) {
      super("Command History");
      hm = h;
      ta = new TextArea("", 10, 80, TextArea.SCROLLBARS_BOTH);
      cmds = new Vector(100);
      cmd_offset = 0;

      add("Center", ta);

      sb = new CHButtons(this);
      add("South", sb);

      pack();
   }//constructor

   public void do_clear() {
      ta.setText("");
      cmds = null;
      cmds = new Vector(100);
   }

   public void do_help() {
      new MessageDialog("Help for Command History",
                        "This area will store previous commands that you have"
                        + " entered.  You can cut and paste to easily modify"
                        + " and change previous commands.", "blue", "white");
   }

   public void do_close() {
      setVisible(false);
   }

   public void append(String txt) {
      ta.append(txt);
      cmds.addElement(txt);
      cmd_offset = cmds.size() - 1;
   }

   public int getCmdOffset() {
      return cmd_offset;
   }

   public String getPreviousCmd() {
      String retval = null;

      if (cmd_offset >= 0) {
         retval = (String)(cmds.elementAt(cmd_offset));
         cmd_offset--;
      }//if

      if (retval == null) {
         return "";
      }
      else {
         return retval;
      }
   }//getPreviousCmd

   public String getNextCmd() {
      String retval = null;
      if (cmd_offset + 1 < cmds.size()) {
         cmd_offset++;
         retval = (String)(cmds.elementAt(cmd_offset));
      }//if

      if (retval == null) {
         return "";
      }
      else {
         return retval;
      }
   }//getNextCmd

}//CommandHistory


class CHButtons extends Panel {
   CommandHistory parent;
   
   public CHButtons(CommandHistory par) {
      super();
      parent = par;

      Button close_b = new Button("Done");
      Button clear_b = new Button("Clear");
      Button help_b = new Button("Help");

      close_b.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            parent.do_close();
         }});

      clear_b.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            parent.do_clear();
         }});

      help_b.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            parent.do_help();
         }});

      FlowLayout fl = new FlowLayout();
      setLayout(fl);

      add(close_b);
      add(clear_b);
      add(help_b);
   }//CHButtons constructor
}//CHButtons