206 lines
4.6 KiB
Java
206 lines
4.6 KiB
Java
/*
|
|
The contents of this file are subject to the THDL Open Community License
|
|
Version 1.0 (the "License"); you may not use this file except in compliance
|
|
with the License. You may obtain a copy of the License on the THDL web site
|
|
(http://www.thdl.org/).
|
|
|
|
Software distributed under the License is distributed on an "AS IS" basis,
|
|
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
|
License for the specific terms governing rights and limitations under the
|
|
License.
|
|
|
|
The Initial Developer of this software is the Tibetan and Himalayan Digital
|
|
Library (THDL). Portions created by the THDL are Copyright 2001-2003 THDL.
|
|
All Rights Reserved.
|
|
|
|
Contributor(s): ______________________________________.
|
|
*/
|
|
|
|
package org.thdl.tib.bibl;
|
|
|
|
import java.awt.*;
|
|
import java.awt.event.*;
|
|
import java.util.*;
|
|
import javax.swing.*;
|
|
import javax.swing.event.*;
|
|
|
|
|
|
/**
|
|
* <p>
|
|
* This class is a generic class for displaying a dialog in TiblEdit. I'm not sure if it is actually used in
|
|
* TiblEdit. It may be a relic. CHECK!
|
|
* </p>
|
|
*
|
|
* @author Than Garson, Tibetan and Himalayan Digital Library
|
|
*/
|
|
|
|
public class TibDialog extends JDialog implements ActionListener, TibConstants
|
|
{
|
|
// Attributes
|
|
TiblEdit controller;
|
|
TibFrame frame;
|
|
String[] specs;
|
|
String response;
|
|
int num;
|
|
Hashtable results;
|
|
JLabel[] jl;
|
|
JTextField[] jtf;
|
|
String type;
|
|
boolean isStartUp = false;
|
|
|
|
transient protected String value;
|
|
public static final String RESPONSE_PROPERTY = "response";
|
|
public static final String NEW_ED = "new edition";
|
|
|
|
private void init()
|
|
{
|
|
GridLayout gl = new GridLayout(0,2);
|
|
gl.setHgap(5);
|
|
gl.setVgap(5);
|
|
JPanel cpane = new JPanel(gl);
|
|
jl = new JLabel[num];
|
|
jtf = new JTextField[num];
|
|
for(int n=0; n<num; n++)
|
|
{
|
|
jl[n] = new JLabel(specs[n]);
|
|
jtf[n] = new JTextField();
|
|
cpane.add(jl[n]);
|
|
cpane.add(jtf[n]);
|
|
}
|
|
JButton enter = new JButton(ENTER);
|
|
JButton cancel = new JButton(CANCEL);
|
|
enter.addActionListener(this);
|
|
cancel.addActionListener(this);
|
|
cpane.add(enter);
|
|
cpane.add(cancel);
|
|
setContentPane(cpane);
|
|
pack();
|
|
setLocation(250,250);
|
|
type = "";
|
|
}
|
|
|
|
public void showDialog()
|
|
{
|
|
setVisible(true);
|
|
}
|
|
|
|
public String getResponse()
|
|
{
|
|
return response;
|
|
}
|
|
|
|
public void setResponse(String newValue) {
|
|
String oldValue = value;
|
|
value = newValue;
|
|
firePropertyChange(RESPONSE_PROPERTY, oldValue, value);
|
|
}
|
|
|
|
public String getType()
|
|
{
|
|
return (String)results.get(TYPE);
|
|
}
|
|
|
|
public void setValue(int index, String value)
|
|
{
|
|
jtf[index].setText(value);
|
|
}
|
|
|
|
public String getValue(String key)
|
|
{
|
|
return (String)results.get(key);
|
|
}
|
|
|
|
public String[] getResults()
|
|
{
|
|
Vector newResults = new Vector();
|
|
for(int n=0;n<specs.length;n++)
|
|
{
|
|
newResults.add(getValue(specs[n]));
|
|
}
|
|
String[] output = TiblEdit.toStringArray(newResults);
|
|
return output;
|
|
}
|
|
|
|
public JTextField getTextField(int index)
|
|
{
|
|
if(index > -1 && index < jtf.length) {
|
|
return jtf[index];
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public void clearTextFields() {
|
|
for(int n=0; n<jtf.length; n++) {
|
|
jtf[n].setText("");
|
|
jtf[n].repaint();
|
|
}
|
|
}
|
|
|
|
public void clear()
|
|
{
|
|
System.out.println("Clearing tibdialog");
|
|
results = new Hashtable();
|
|
response = new String();
|
|
clearTextFields();
|
|
repaint();
|
|
}
|
|
|
|
public void reset()
|
|
{
|
|
specs = null;
|
|
results = new Hashtable();
|
|
response = new String();
|
|
}
|
|
|
|
public TibDialog(TibFrame frame, String title, String[] specs)
|
|
{
|
|
super(frame,title,true);
|
|
this.frame = frame;
|
|
this.specs = specs;
|
|
num = specs.length;
|
|
results = new Hashtable();
|
|
results.put(TYPE,title);
|
|
response =new String();
|
|
value = "null";
|
|
if(title.equals(EDITORS_INFO)) { isStartUp = true;} else {isStartUp = false;}
|
|
init();
|
|
}
|
|
|
|
public TibDialog(TiblEdit tt, String title, String[] specs)
|
|
{
|
|
this(tt.getFrame(),title,specs);
|
|
controller = tt;
|
|
type = NEW_ED;
|
|
}
|
|
|
|
|
|
public void actionPerformed(ActionEvent ae)
|
|
{
|
|
String src_text = ((JButton)ae.getSource()).getText();
|
|
System.out.println("Action performed in TibDialog: " + src_text);
|
|
if(src_text.equals(ENTER)) {
|
|
for(int n=0; n<num; n++)
|
|
{
|
|
results.put(specs[n],jtf[n].getText());
|
|
}
|
|
clearTextFields();
|
|
setResponse(ENTER);
|
|
setVisible(false);
|
|
if(type.equals(NEW_ED)) {
|
|
controller.submitNewEditionInfo(this);
|
|
} else if(getTitle().equals(NEW_ED_TITLE_INFO)) {
|
|
frame.getController().insertNewEdTitle(this);
|
|
} else if(getTitle().equals(NEW_ED_INFO)) {
|
|
frame.getController().insertNewEdAndTitle(this);
|
|
} else if(getTitle().equals(EDITORS_INFO)) {
|
|
System.out.println("It's editors info!");
|
|
frame.getController().setEditor();
|
|
}
|
|
} else {
|
|
setResponse(CANCEL);
|
|
if(isStartUp) {System.exit(0);}
|
|
setVisible(false);
|
|
}
|
|
|
|
}
|
|
}
|