src.com.ibm.as400.vaccess.IFSFileDialog Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jt400-jdk9 Show documentation
Show all versions of jt400-jdk9 Show documentation
The Open Source version of the IBM Toolbox for Java
///////////////////////////////////////////////////////////////////////////////
//
// JTOpen (IBM Toolbox for Java - OSS version)
//
// Filename: IFSFileDialog.java
//
// The source code contained herein is licensed under the IBM Public License
// Version 1.0, which has been approved by the Open Source Initiative.
// Copyright (C) 1997-2000 International Business Machines Corporation and
// others. All rights reserved.
//
///////////////////////////////////////////////////////////////////////////////
package com.ibm.as400.vaccess;
import java.awt.*;
import java.awt.event.*;
import java.io.Serializable;
import java.util.Hashtable;
import com.ibm.as400.access.*;
/**
* The IFSFileDialog class represents a
* file dialog for the IFS file classes. This dialog allows the user to
* traverse the file system and select a file. The text on the Cancel button
* and the OK button can be set by the calling application.
*
* A filter list can be provided by the caller.
*
* This dialog is designed to emulate the Windows file dialog.
*
* Usage:
*
* AS400 sys = new AS400("system1");
* IFSFileDialog fd = new IFSFileDialog(this, "File Open", sys);
* FileFilter[] filterList = {new FileFilter("All files (*.*)", "*.*"),
* new FileFilter("Executables (*.exe)", "*.exe"),
* new FileFilter("HTML files (*.html)", "*.html"),
* new FileFilter("HTML files (*.htm)", "*.htm"),
* new FileFilter("Images (*.gif)", "*.gif"),
* new FileFilter("Text files (*.txt)", "*.txt")};
* fd.setFileFilter(filterList, 2);
* if (fd.show() == IFSFileDialog.OK)
* {
* String s = fd.getFileName(); // get file name
* String p = fd.getPath(); // get path
* String a = fd.getAbsolutePath(); // get fully qualified file
* }
*
* @deprecated Use com.ibm.as400.access.IFSSystemView instead.
**/
public class IFSFileDialog extends Dialog
{
private static final String copyright = "Copyright (C) 1997-2000 International Business Machines Corporation and others.";
//{{DECLARE_CONTROLS
private Label label1;
IFSList directoryList; // Private. @A3C
private Label label2;
IFSList fileList; // Private. @A3C
private Label label3;
TextField fileName; // Private. @A3C
private Label label4;
Choice fileType; // Private. @A3C
Button open; // Private. @A3C
Button cancel; // Private. @A3C
private Label currentDirectory;
TextField status; // Private. @A3C
//}}
AS400 sys_; // Private. @A3C
int state_; // Private. @A3C
Hashtable filters_; // Private. @A3C
private Listeners listener_;
// MRI.
private static String READY_TEXT = ResourceLoader.getPrintText ("READY"); //@A6A
private static String WORKING_TEXT = ResourceLoader.getText ("EVT_NAME_WORKING"); //@A6A
/**
* Dialog still active.
**/
public static final int ACTIVE = 0;
/**
* Dialog was dismissed with the Ok button.
**/
public static final int OK = 1;
/**
* Dialog was dismissed with the Cancel button.
**/
public static final int CANCEL = 2;
/**
Constructs an IFSFileDialog object.
@param parent The parent.
@param title The title of the dialog.
@param system The system.
**/
public IFSFileDialog(Frame parent, String title, AS400 system)
{
super(parent, title, true);
listener_ = new Listeners();
//{{INIT_CONTROLS
// setLayout(null); // @A2D
// addNotify(); // @A2D
//
// Start of @A2C
//
// Create a GridBagLayout manager
GridBagLayout layout = new GridBagLayout();
GridBagConstraints constraints = new GridBagConstraints();
constraints.fill = GridBagConstraints.BOTH;
constraints.insets = new Insets(8, 8, 0, 8);
setLayout(layout);
// Set the background color to light gray.
setBackground(Color.lightGray);
String text = ResourceLoader.getText ("IFS_DIRECTORY"); //@A6a
label1 = new Label(text, Label.LEFT); // @A4C @A6c
add(label1, layout, constraints, 0, 0, 3, 1);
directoryList = new IFSList();
constraints.ipadx = 40;
constraints.ipady = 90;
add(directoryList, layout, constraints, 0, 1, 3, 5);
text = ResourceLoader.getText ("IFS_FILE"); //@A6a
label2 = new Label(text, Label.LEFT); //@A6c
constraints.ipadx = 0;
constraints.ipady = 0;
add(label2, layout, constraints, 3, 0, 3, 1);
fileList = new IFSList();
constraints.ipadx = 40;
constraints.ipady = 90;
add(fileList, layout, constraints, 3, 1, 3, 5);
text = ResourceLoader.getText ("IFS_FILE_NAME"); //@A6a
label3 = new Label(text); //@A6c
constraints.ipadx = 0;
constraints.ipady = 0;
add(label3, layout, constraints, 0, 7, 1, 1);
fileName = new TextField(21);
add(fileName, layout, constraints, 1, 7, 5, 1);
text = ResourceLoader.getPrintText ("TYPE"); //@A6a
label4 = new Label(text); //@A6c
add(label4, layout, constraints, 0, 8, 1, 1);
fileType = new Choice();
add(fileType, layout, constraints, 1, 8, 5, 1);
text = ResourceLoader.getPrintText ("OPEN"); //@A6a
open = new Button(text); //@A6c
constraints.ipadx = 20;
add(open, layout, constraints, 6, 0, 3, 1);
text = ResourceLoader.getText ("DLG_CANCEL"); //@A6a
cancel = new Button(text); //@A6c
add(cancel, layout, constraints, 6, 1, 3, 1);
currentDirectory = new Label("/");
constraints.ipadx = 0;
constraints.ipady = 0;
add(currentDirectory, layout, constraints, 0, 6, 6, 1);
status = new TextField(44);
add(status, layout, constraints, 0, 9, 9, 1);
// Arrange the components in the dialog.
pack();
//
// End of @A2C
//}}
status.setEditable(false);
sys_ = system;
directoryList.setSystem(sys_);
fileList.setSystem(sys_);
directoryList.setSort(true);
fileList.setSort(true);
directoryList.setListType(IFSList.DIRECTORYONLY);
fileList.setListType(IFSList.FILEONLY);
filters_ = new Hashtable();
text = ResourceLoader.getText ("IFS_ALL_FILES_FILTER"); //@A6a
filters_.put(text, "*.*"); //@A6c
fileType.addItem(text); //@A6c
open.addActionListener(listener_);
cancel.addActionListener(listener_);
directoryList.addActionListener(listener_);
fileList.addActionListener(listener_);
fileList.addItemListener(listener_);
addWindowListener(listener_);
fileType.addItemListener(listener_);
label1.addKeyListener(listener_);
directoryList.addKeyListener(listener_);
label2.addKeyListener(listener_);
fileList.addKeyListener(listener_);
label3.addKeyListener(listener_);
fileName.addKeyListener(listener_);
label4.addKeyListener(listener_);
fileType.addKeyListener(listener_);
open.addKeyListener(listener_);
cancel.addKeyListener(listener_);
currentDirectory.addKeyListener(listener_);
status.addKeyListener(listener_);
addKeyListener(listener_);
directoryList.addErrorListener(listener_);
fileList.addErrorListener(listener_);
status.setText(READY_TEXT); //@A6c
setResizable(false);
state_ = ACTIVE;
}
/**
This methods adds a user interface component to the specified
GridBagLayout manager using the specified constraints.
@param component the user interface component to add
@param layout the GridBagLayout manager
@param constraints the constraints for the component
@param x the x coordinate of the leftmost cell of the component
@param y the y coordinate of the topmost cell of the component
@param width the horizontal measurement of the component in cells
@param height the vertical measurement of the component in cells
**/
protected void add(Component component,
GridBagLayout layout,
GridBagConstraints constraints,
int x,
int y,
int width,
int height)
{
constraints.gridx = x;
constraints.gridy = y;
constraints.gridwidth = width;
constraints.gridheight = height;
layout.setConstraints(component, constraints);
add(component);
}
/**
* Returns the absolute path for the file that was selected.
*
* @return The fully qualified path, including the file name.
**/
public String getAbsolutePath()
{
if (state_ != CANCEL)
{
return getDirectory() + "/" + getFileName();
}
else
{
return "";
}
}
/**
* Returns the text for the Cancel button.
*
* @return The text for the Cancel button.
**/
public String getCancelButtonText()
{
return cancel.getLabel();
}
/**
* Returns the selected file name.
*
* @return The file name.
**/
public String getFileName()
{
if (state_ != CANCEL)
{
return fileName.getText();
}
else
{
return "";
}
}
/**
* Returns the filter that was selected.
*
* @return The file filter that was selected.
**/
public FileFilter getFileFilter()
{
String desc = fileType.getSelectedItem();
String p = (String)filters_.get(desc);
return new FileFilter(desc, p);
}
/**
* Returns the text for the Ok button.
*
* @return The text for the Ok button.
**/
public String getOkButtonText()
{
return open.getLabel();
}
/**
* Returns the path for the file selected. The file name is not
* part of the path.
*
* @return The path for the selected file.
**/
public String getDirectory()
{
if (state_ != CANCEL)
{
return directoryList.getPath();
}
else
{
return "";
}
}
/**
* Returns the system for this dialog.
*
* @return The object that represents the system.
**/
public AS400 getSystem()
{
return sys_;
}
/**
* Sets the text for the Cancel button.
*
* @param buttonText The text to use for the Cancel button.
**/
public void setCancelButtonText(String buttonText)
{
cancel.setLabel(buttonText);
}
/**
* Sets the file name field.
*
* @param filename The name of the file.
**/
public void setFileName(String filename)
{
fileName.setText(filename);
}
/**
* Sets the filter list.
*
* @param filterList The list of filters to be listed in the choice control.
* @param defaultFilter The index into the list that is to be used as the default (zero-based).
**/
public void setFileFilter(FileFilter[] filterList, int defaultFilter)
{
fileType.removeAll();
filters_ = new Hashtable();
for (int i=0; i 0))
{
// we have a file name, so act like ok's hit
state_ = OK;
dispose();
}
}
}
}
/**
* Handles a key typed event.
* Applications should not call this method.
* It is a KeyListener method used by the dialog.
*
* @param e The event.
**/
public void keyTyped(KeyEvent e)
{
}
/**
* Handles a window activated event.
* Applications should not call this method.
* It is a WindowListener method used by the dialog.
*
* @param e The event.
**/
public void windowActivated(WindowEvent e)
{
}
/**
* Handles window closed events.
* Applications should not call this method.
* It is a WindowListener method used by the dialog.
*
* @param e The event.
**/
public void windowClosed(WindowEvent e)
{
// sys_.disconnectService(AS400.FILE);
}
/**
* WindowListener method used by the dialog. Applications should not
* call this method.
*
* @param e The event.
**/
public void windowClosing(WindowEvent e)
{
fileName.setText("");
state_ = CANCEL;
dispose();
}
/**
* Handles a window deactivated event.
* Applications should not call this method.
* It is a WindowListener method used by the dialog.
*
* @param e The event.
**/
public void windowDeactivated(WindowEvent e)
{
}
/**
* Handles a windoe deiconified event.
* Applications should not call this method.
* It is a WindowListener method used by the dialog.
*
* @param e The event.
**/
public void windowDeiconified(WindowEvent e)
{
}
/**
* Handles window iconified events.
* Applications should not call this method.
* It is a WindowListener method used by the dialog.
*
* @param e The event.
**/
public void windowIconified(WindowEvent e)
{
}
/**
* Handles window opened event.
* Applications should not call this method.
* It is a WindowListener method used by the dialog.
*
* @param e The event.
**/
public void windowOpened(WindowEvent e)
{
}
// @A6d Deleted copyright() method.
}
// @A6d Deleted copyright() method.
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy