/*
JchoiceList.java
Created: 1 Oct 1996
Module By: Navin Manohar
-----------------------------------------------------------------------
Ganymede Directory Management System
Copyright (C) 1996-2010
The University of Texas at Austin
Contact information
Author Email: ganymede_author@arlut.utexas.edu
Email mailing list: ganymede@arlut.utexas.edu
US Mail:
Computer Science Division
Applied Research Laboratories
The University of Texas at Austin
PO Box 8029, Austin TX 78713-8029
Telephone: (512) 835-3200
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, see <http://www.gnu.org/licenses/>.
*/
package arlut.csd.JDataComponent;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.List;
import java.awt.Panel;
import java.awt.event.ActionEvent;
/**********************************************************************
JchoiceList
This class is basically a java.awt.List object with some added
functionality. When the user makes a selection, a callback is
made to send the string representation of that selection to whatever
component in attached to the JchoiceList.
**********************************************************************/
public class JchoiceList extends Panel {
JchoiceInterface my_cint = null;
List l;
Button restore;
Button apply;
boolean changed = false;
public JchoiceList()
{
setLayout(new BorderLayout());
l = new List();
restore = new Button("Restore");
add("North",l);
add("South",restore);
}
public JchoiceList(JchoiceInterface cint)
{
this();
if (cint == null)
throw new IllegalArgumentException("Illegal Argument: The handle to JchoiceInterface is null");
my_cint = cint;
}
public void attach(JchoiceInterface cint)
{
if (cint == null)
throw new IllegalArgumentException("Illegal Argument: The handle to JchoiceInterface is null");
if (my_cint != null)
my_cint.unAttach();
my_cint = cint;
clear();
}
public void detach()
{
my_cint = null;
clear();
}
public void clear()
{
l.removeAll();
}
public void setChoices(String[] choices)
{
if (choices == null)
throw new IllegalArgumentException("Illegal Argument: The array of choices is null");
clear();
for (int i=0;i<choices.length;i++)
l.add(choices[i]);
}
public void actionPerformed(ActionEvent evt)
{
if (my_cint == null)
return;
if (evt.getSource() == restore)
{
my_cint.restoreValue();
my_cint.notifyComponent();
changed = true;
return;
}
if (evt.getSource() == l)
{
my_cint.setVal(evt.paramString());
my_cint.notifyComponent();
changed = true;
}
}
}