2001-04-22 11:05:39 +08:00
|
|
|
/* Copyright (C) 2000, 2001 Free Software Foundation
|
2000-08-03 20:09:41 +08:00
|
|
|
|
|
|
|
This file is part of libgcj.
|
|
|
|
|
|
|
|
This software is copyrighted work licensed under the terms of the
|
|
|
|
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
|
|
|
details. */
|
|
|
|
|
|
|
|
package java.awt;
|
|
|
|
|
2001-04-22 11:05:39 +08:00
|
|
|
import java.awt.peer.FileDialogPeer;
|
|
|
|
import java.io.FilenameFilter;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @author Tom Tromey <tromey@redhat.com>
|
|
|
|
* @date April 20, 2001
|
|
|
|
*/
|
2000-08-03 20:09:41 +08:00
|
|
|
|
|
|
|
public class FileDialog extends Dialog
|
|
|
|
{
|
2001-04-22 11:05:39 +08:00
|
|
|
public static int LOAD = 0;
|
|
|
|
public static int SAVE = 1;
|
|
|
|
|
|
|
|
public FileDialog (Frame parent)
|
|
|
|
{
|
|
|
|
this (parent, "", LOAD);
|
|
|
|
}
|
|
|
|
|
|
|
|
public FileDialog (Frame parent, String title)
|
|
|
|
{
|
|
|
|
this (parent, title, LOAD);
|
|
|
|
}
|
|
|
|
|
|
|
|
public FileDialog (Frame parent, String title, int mode)
|
|
|
|
{
|
|
|
|
super (parent, title, true);
|
|
|
|
if (mode != LOAD && mode != SAVE)
|
|
|
|
throw new IllegalArgumentException ("unknown mode: " + mode);
|
|
|
|
this.mode = mode;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void addNotify ()
|
|
|
|
{
|
|
|
|
if (peer == null)
|
|
|
|
peer = getToolkit ().createFileDialog (this);
|
|
|
|
super.addNotify ();
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getDirectory ()
|
|
|
|
{
|
|
|
|
return dir;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getFile ()
|
|
|
|
{
|
|
|
|
return file;
|
|
|
|
}
|
|
|
|
|
|
|
|
public FilenameFilter getFilenameFilter ()
|
2000-08-03 20:09:41 +08:00
|
|
|
{
|
2001-04-22 11:05:39 +08:00
|
|
|
return filter;
|
2000-08-03 20:09:41 +08:00
|
|
|
}
|
2001-04-22 11:05:39 +08:00
|
|
|
|
|
|
|
public int getMode ()
|
|
|
|
{
|
|
|
|
return mode;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected String paramString ()
|
|
|
|
{
|
|
|
|
return ("FileDialog[mode=" + mode
|
|
|
|
+ ",dir=" + dir
|
|
|
|
+ ",file=" + file + "]");
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setDirectory (String dir)
|
|
|
|
{
|
|
|
|
this.dir = dir;
|
|
|
|
if (peer != null)
|
|
|
|
{
|
|
|
|
FileDialogPeer f = (FileDialogPeer) peer;
|
|
|
|
f.setDirectory (dir);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setFile (String file)
|
|
|
|
{
|
|
|
|
this.file = file;
|
|
|
|
if (peer != null)
|
|
|
|
{
|
|
|
|
FileDialogPeer f = (FileDialogPeer) peer;
|
|
|
|
f.setFile (file);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setFilenameFilter (FilenameFilter filter)
|
|
|
|
{
|
|
|
|
this.filter = filter;
|
|
|
|
if (peer != null)
|
|
|
|
{
|
|
|
|
FileDialogPeer f = (FileDialogPeer) peer;
|
|
|
|
f.setFilenameFilter (filter);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setMode (int mode)
|
|
|
|
{
|
|
|
|
if (mode != LOAD && mode != SAVE)
|
|
|
|
throw new IllegalArgumentException ("unknown mode: " + mode);
|
|
|
|
this.mode = mode;
|
|
|
|
// FIXME: update peer?
|
|
|
|
}
|
|
|
|
|
|
|
|
// Names here from serialization spec.
|
|
|
|
private int mode;
|
|
|
|
private String dir;
|
|
|
|
private String file;
|
|
|
|
private FilenameFilter filter;
|
2000-08-03 20:09:41 +08:00
|
|
|
}
|