com.ibm.as400.vaccess.OutputMoveAction 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
///////////////////////////////////////////////////////////////////////////////
//
// JTOpen (IBM Toolbox for Java - OSS version)
//
// Filename: OutputMoveAction.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.SpooledFile;
import com.ibm.as400.access.OutputQueue;
import com.ibm.as400.access.PrintObject;
import com.ibm.as400.access.Trace;
import javax.swing.JComboBox;
import javax.swing.JRadioButton;
import javax.swing.ButtonGroup;
import javax.swing.JPanel;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.border.EmptyBorder;
import javax.swing.SwingConstants;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
/**
The OutputMoveAction class represents the action of moving a spooled file.
**/
class OutputMoveAction
extends DialogAction
implements ActionListener
{
private static final String copyright = "Copyright (C) 1997-2000 International Business Machines Corporation and others.";
// Private data.
private static final String displayName_ = ResourceLoader.getText("ACTION_MOVE");
private static final String prtOutToMoveText_ = ResourceLoader.getPrintText("PRINTER_OUTPUT_TO_MOVE") + ":";
private static final String moveOutputText_ = ResourceLoader.getPrintText("MOVE_OUTPUT") + ":";
private static final String useLibListText_ = ResourceLoader.getPrintText("USE_LIBRARY_LIST");
private static final String printerText_ = ResourceLoader.getPrintText("PRINTER");
private static final String outQText_ = ResourceLoader.getPrintText("OUTPUT_QUEUE");
private static final String outQLibText_ = ResourceLoader.getPrintText("LIBRARY");
private SpooledFile splF_ = null; // the spooled file
private JRadioButton printerButton_ = null; // printer
private JTextField printerField_ = null; // printer name
private JRadioButton outQButton_ = null; // output queue
private JTextField outQField_ = null; // output queue name
private JComboBox outQLibBox_ = null; // output queue library
private VPrinterOutput parent_ = null; // parent (the spooled list)
/**
Constructs an OutputMoveAction object.
@param object The object.
@param splF The spooled file.
* @param parent
**/
public OutputMoveAction (VObject object, SpooledFile splF, VPrinterOutput parent)
{
super (object);
splF_ = splF;
parent_ = parent;
}
/**
catches the state change of radio buttons
**/
public void actionPerformed(ActionEvent e)
{
// if the printer radio button is selected
if (e.getActionCommand() == printerText_)
{
// enable the printer field
printerField_.setEnabled(true);
// disable the output queue fields
outQField_.setEnabled(false);
outQLibBox_.setEnabled(false);
}
else // the output queue button is selected
{
// enable the output queue fields
outQField_.setEnabled(true);
outQLibBox_.setEnabled(true);
// disable the printer field
printerField_.setEnabled(false);
}
}
/**
Returns the component for the dialog box.
@return The component.
**/
public JComponent getInputComponent()
{
JPanel panel = new JPanel();
GridBagLayout layout = new GridBagLayout ();
GridBagConstraints constraints;
panel.setLayout (layout);
panel.setBorder (new EmptyBorder (10, 10, 10, 10));
try
{
// build components to display the output to be moved
VUtilities.constrain( new JLabel(prtOutToMoveText_), panel, layout, 0,0,1,1);
JTextField text = new JTextField(getObject().toString());
text.setEditable(false);
VUtilities.constrain( text, panel, layout, 0,1,1,1);
VUtilities.constrain (new JLabel (" "), panel, layout, 0, 2, 2, 1);
// build components to ask user for move input
VUtilities.constrain( new JLabel(moveOutputText_), panel, layout, 0,3,1,1);
// build printer/output queue buttons
printerButton_ = new JRadioButton(printerText_);
printerButton_.setHorizontalAlignment(SwingConstants.LEFT);
printerButton_.setSelected(true);
outQButton_ = new JRadioButton(outQText_);
outQButton_.setHorizontalAlignment(SwingConstants.LEFT);
// add listeners for the printer and output queue buttons
printerButton_.addActionListener(this);
outQButton_.addActionListener(this);
// group the buttons so that only one can be on at a time
ButtonGroup group = new ButtonGroup();
group.add(printerButton_);
group.add(outQButton_);
// printer name
printerField_ = new JTextField(10);
VUtilities.constrain( printerButton_, panel, layout, 0,4,1,1);
VUtilities.constrain( printerField_, panel, layout, 1,4,1,1);
// output queue name
outQField_ = new JTextField(10);
outQField_.setEnabled(false); // disable until outQButton is selected
VUtilities.constrain( outQButton_, panel, layout, 0,5,1,1);
VUtilities.constrain( outQField_, panel, layout, 1,5,1,1);
// output queue library
outQLibBox_ = new JComboBox();
outQLibBox_.setEditable(true);
outQLibBox_.addItem(useLibListText_);
outQLibBox_.setEnabled(false); // disable until outQButton is selected
VUtilities.constrain( new JLabel(outQLibText_), panel, layout, 0,6,1,1);
VUtilities.constrain( outQLibBox_, panel, layout, 1,6,1,1);
}
catch (Exception e)
{
panel = null;
fireError (e);
}
return panel;
}
/**
Returns the display name for the action.
@return The display name.
**/
public String getText ()
{
return displayName_;
}
/**
Performs the action.
**/
public void perform2 ()
{
try {
// determine if they selected printer
if (printerButton_.isSelected())
{
// retrieve the printer name
String ptr = printerField_.getText().trim();
// build an output queue object using the printer name
// Note: QUSRSYS is the library name for all system printers
OutputQueue outQ = new OutputQueue(splF_.getSystem(), "/QSYS.LIB/QUSRSYS.LIB/" + ptr + ".OUTQ");
// fire started working event
fireStartWorking();
// move the spooled file to the output queue
splF_.move(outQ);
// fire stopped working event
fireStopWorking();
// trace the move
if (Trace.isTraceOn())
Trace.log (Trace.INFORMATION, "Moved file ["
+ splF_.getName () + "].");
}
// they selected output queue
else
{
// retieve the output queue name
String outputQ = outQField_.getText().trim();
// retrieve the library value
String outputQLib = (String)outQLibBox_.getSelectedItem();
OutputQueue outQ = null;
// if use the library list was selected
if (outputQLib.equals(useLibListText_))
// build an output queue object using name
outQ = new OutputQueue(splF_.getSystem(), "/QSYS.LIB/%LIBL%.LIB/" + outputQ + ".OUTQ");
else
// build an output queue object using name and lib
outQ = new OutputQueue(splF_.getSystem(), "/QSYS.LIB/" + outputQLib + ".LIB/" + outputQ + ".OUTQ");
// fire started working event
fireStartWorking();
// move the spooled file to the output queue
splF_.move(outQ);
// fire stopped working event
fireStopWorking();
// trace the move
if (Trace.isTraceOn())
Trace.log (Trace.INFORMATION, "Moved file ["
+ splF_.getName () + "].");
}
// fire the object changed passing in the object's parent so the list is
// rearranged
fireObjectChanged (parent_);
} // end try block
catch (Exception e)
{
// trace the error
if (Trace.isTraceOn())
Trace.log (Trace.ERROR, "ERROR Moving file [" + splF_.getName () + "].");
fireError (e);
}
}
} // end OutputMoveAction class
© 2015 - 2025 Weber Informatics LLC | Privacy Policy