com.ibm.as400.vaccess.ProgramCallButton Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jt400 Show documentation
Show all versions of jt400 Show documentation
The Open Source version of the IBM Toolbox for Java
The newest version!
///////////////////////////////////////////////////////////////////////////////
//
// JTOpen (IBM Toolbox for Java - OSS version)
//
// Filename: ProgramCallButton.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 com.ibm.as400.access.AS400;
import com.ibm.as400.access.AS400Message;
import com.ibm.as400.access.ActionCompletedListener;
import com.ibm.as400.access.ActionCompletedEvent;
import com.ibm.as400.access.ProgramCall;
import com.ibm.as400.access.ProgramParameter;
import javax.swing.Icon;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.beans.PropertyChangeListener;
import java.beans.VetoableChangeListener;
import java.beans.PropertyVetoException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.Serializable;
/**
The ProgramCallButton class represents a button
that calls a program when pressed.
Results of the program are returned in a message list.
ProgramCallButton objects generate the following events:
- ActionCompletedEvent
- ErrorEvent
- PropertyChangeEvent
@see com.ibm.as400.access.ProgramCall
@see com.ibm.as400.access.AS400Message
@deprecated Use Java Swing instead, along with the classes in package com.ibm.as400.access
**/
public class ProgramCallButton
extends JButton
implements Serializable
{
private static final String copyright = "Copyright (C) 1997-2000 International Business Machines Corporation and others.";
// Properties.
ProgramCall program_ = null; // Private.
// Event support.
transient ActionCompletedEventSupport actionCompletedEventSupport_; // Private.
transient ErrorEventSupport errorEventSupport_; // Private.
transient private PropertyChangeSupport propertyChangeSupport_;
transient private VetoableChangeSupport vetoableChangeSupport_;
/**
Constructs a ProgramCallButton object.
**/
public ProgramCallButton()
{
program_ = new ProgramCall ();
initializeTransient ();
}
/**
Constructs a ProgramCallButton object.
@param text The button text, or null if there is no text.
**/
public ProgramCallButton(String text)
{
super(text);
program_ = new ProgramCall ();
initializeTransient ();
}
/**
Constructs a ProgramCallButton object.
@param text The button text, or null if there is no text.
@param icon The button icon, or null if there is no icon.
**/
public ProgramCallButton(String text, Icon icon)
{
super(text,icon);
program_ = new ProgramCall ();
initializeTransient ();
}
/**
Constructs a ProgramCallButton object.
@param text The button text, or null if there is no text.
@param icon The button icon, or null if there is no icon.
@param system The system on which the programs are run.
**/
public ProgramCallButton(String text,
Icon icon,
AS400 system)
{
super(text, icon);
program_ = new ProgramCall (system);
initializeTransient ();
}
/**
Constructs a ProgramCallButton object.
@param text The button text, or null if there is no text.
@param icon The button icon, or null if there is no icon.
@param system The system on which the programs are run.
@param program The program name as a fully qualified path name
in the library file system.
The library and program name must each be
10 characters or less.
@param parmlist A list of up to 35 parameters with which to run the program.
**/
public ProgramCallButton(String text,
Icon icon,
AS400 system,
String program,
ProgramParameter[] parmlist)
{
super(text, icon);
program_ = new ProgramCall (system, program, parmlist);
initializeTransient ();
}
/**
Adds a listener to be notified when a program has been called.
@param listener The listener.
**/
public void addActionCompletedListener(ActionCompletedListener listener)
{
actionCompletedEventSupport_.addActionCompletedListener (listener);
}
/**
Adds a listener to be notified when an error occurs.
@param listener The listener.
**/
public void addErrorListener (ErrorListener listener)
{
errorEventSupport_.addErrorListener (listener);
}
/**
Adds a parameter to the end of the parameter list.
@param parameter The parameter.
@exception PropertyVetoException If the change is vetoed.
**/
public void addParameter (ProgramParameter parameter)
throws PropertyVetoException
{
program_.addParameter (parameter);
}
/**
Adds a listener to be notified when the value of any
bound property changes.
@param listener The listener.
**/
public void addPropertyChangeListener (PropertyChangeListener listener)
{
super.addPropertyChangeListener (listener); // @A1A
if (propertyChangeSupport_ != null) // @A1A
propertyChangeSupport_.addPropertyChangeListener (listener);
}
/**
Adds a listener to be notified when the value of any
constrained property changes.
@param listener The listener.
**/
public void addVetoableChangeListener (VetoableChangeListener listener)
{
vetoableChangeSupport_.addVetoableChangeListener (listener);
}
/**
Returns the message list resulting from the last program call
that was run.
@return The message list.
**/
public AS400Message[] getMessageList()
{
return program_.getMessageList();
}
/**
Returns the message text from the last program that was run. The message will be the first message received.
@return The message text.
**/
public String getMessageText()
{
AS400Message[] msglist = program_.getMessageList();
if (msglist.length==0)
return "";
else
return msglist[0].getText();
}
/**
Returns the parameter list.
@return The parameter list.
**/
public ProgramParameter[] getParameterList()
{
return program_.getParameterList();
}
/**
Returns the program which will be called when the button is pressed.
@return The program which will be called when the button is pressed.
**/
public String getProgram()
{
return program_.getProgram();
}
/**
Returns the system on which programs are run.
@return The system on which programs are run.
**/
public AS400 getSystem()
{
return program_.getSystem();
}
/**
Initializes the transient data.
**/
private void initializeTransient ()
{
// Initialize the event support.
actionCompletedEventSupport_ = new ActionCompletedEventSupport (this);
errorEventSupport_ = new ErrorEventSupport (this);
propertyChangeSupport_ = new PropertyChangeSupport (this);
vetoableChangeSupport_ = new VetoableChangeSupport (this);
program_.addActionCompletedListener (actionCompletedEventSupport_);
program_.addPropertyChangeListener (propertyChangeSupport_);
program_.addVetoableChangeListener (vetoableChangeSupport_);
addActionListener (new ActionListener_ ());
}
/**
Restores the state of the object from an input stream.
This is used when deserializing an object.
@param in The input stream.
**/
private void readObject (ObjectInputStream in)
throws IOException, ClassNotFoundException
{
in.defaultReadObject ();
initializeTransient ();
}
/**
Removes an action completed listener.
@param listener The listener.
**/
public void removeActionCompletedListener (ActionCompletedListener listener)
{
actionCompletedEventSupport_.removeActionCompletedListener (listener);
}
/**
Removes an error listener.
@param listener The listener.
**/
public void removeErrorListener (ErrorListener listener)
{
errorEventSupport_.removeErrorListener (listener);
}
/**
Removes a property change listener.
@param listener The listener.
**/
public void removePropertyChangeListener (PropertyChangeListener listener)
{
propertyChangeSupport_.removePropertyChangeListener (listener);
}
/**
Removes a vetoable change listener.
@param listener The listener.
**/
public void removeVetoableChangeListener(VetoableChangeListener listener)
{
vetoableChangeSupport_.removeVetoableChangeListener (listener);
}
/**
Sets the list of parameters to pass to the program.
@param parmlist A list of up to 35 parameters with which to run the program.
It will replace any parameters previously set.
@exception PropertyVetoException If the change is vetoed.
**/
public void setParameterList(ProgramParameter[] parmlist)
throws PropertyVetoException
{
program_.setParameterList (parmlist);
}
/**
Sets the program.
@param program The program.
@exception PropertyVetoException If the change is veoted.
**/
public void setProgram (String program)
throws PropertyVetoException
{
program_.setProgram (program);
}
/**
Sets the system on which programs are run.
@param system The system on which programs are run.
@exception PropertyVetoException If the change is vetoed.
**/
public void setSystem(AS400 system)
throws PropertyVetoException
{
program_.setSystem( system );
}
private class ActionListener_
implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
// Set the cursor to a wait cursor.
WorkingCursorAdapter cursorAdapter = new WorkingCursorAdapter (ProgramCallButton.this);
cursorAdapter.startWorking (new WorkingEvent (this));
// Run the command.
try {
program_.run();
}
catch (Exception e) {
errorEventSupport_.fireError (e);
}
// Set the cursor back.
cursorAdapter.stopWorking (new WorkingEvent (this));
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy