All Downloads are FREE. Search and download functionalities are using the official Maven repository.

src.com.ibm.as400.vaccess.ErrorDialogAdapter Maven / Gradle / Ivy

There is a newer version: 20.0.7
Show newest version
///////////////////////////////////////////////////////////////////////////////
//                                                                             
// JTOpen (IBM Toolbox for Java - OSS version)                              
//                                                                             
// Filename: ErrorDialogAdapter.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.Trace;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import java.awt.Component;
import java.io.Serializable;



/**
The ErrorDialogAdapter class represents an object
that listens for error events and displays a message dialog
for each error event.

Most errors in the com.ibm.as400.vaccess package are reported using ErrorEvents rather than throwing exceptions. An ErrorDialogAdapter object is useful to give users feedback whenever an error occurs.

The component property is used to determine the frame that is to be the parent of message dialogs. If no component is set, then a default frame will be used.

The following example creates an explorer pane filled with the contents of a directory in the integrated file system. It will use an ErrorDialogAdapter object to display all errors in a message dialog.

// Set up the explorer pane.
AS400ExplorerPane explorerPane = new AS400ExplorerPane ();

// Set up the explorer pane to display the contents
// of a directory.
AS400 system = new AS400 ("MySystem", "Userid", "Password");
VIFSDirectory directory = new VIFSDirectory (system, "/myDirectory");
explorerPane.setRoot (directory);

// Add the explorer pane to a frame.
frame.add (explorerPane);

// Set up the error dialog adapter.
explorerPane.addErrorListener (new ErrorDialogAdapter (frame));
@deprecated Use Java Swing instead, along with the classes in package com.ibm.as400.access **/ public class ErrorDialogAdapter implements ErrorListener, Serializable { private static final String copyright = "Copyright (C) 1997-2000 International Business Machines Corporation and others."; // MRI. private static final String title_ = ResourceLoader.getText ("DLG_ERROR_TITLE"); // Properties. private Component component_ = null; private boolean modal_ = true; //@C1A /** Constructs an ErrorDialogAdapter object. **/ public ErrorDialogAdapter () { } //@C1C - javadoc /** Constructs an ErrorDialogAdapter object. The dialog is modal by default. @param component Determines the parent frame for dialogs. **/ public ErrorDialogAdapter (Component component) { component_ = component; } //@C1A /** Constructs an ErrorDialogAdapter object. @param component Determines the parent frame for dialogs. @param modal Specifies whether this dialog should be modal. **/ public ErrorDialogAdapter (Component component, boolean modal) { component_ = component; modal_ = modal; } /** Invoked when an error has occurred. This will display a message dialog with the error message. @param event The event. **/ public void errorOccurred (ErrorEvent event) { if ((Trace.isTraceOn ()) && (Trace.isTraceErrorOn ())) // @B1A event.getException ().printStackTrace (Trace.getPrintWriter ()); // @B1A String message = VUtilities.getExceptionText (event.getException ()); message = VUtilities.formatHelp2 (message, 50); // @A1A //@C1D // Note: This is a modal dialog. //@C1D JOptionPane.showMessageDialog (component_, message, title_, //@C1D JOptionPane.ERROR_MESSAGE); // @C1: Changed ErrorDialogAdapter to be either modal or non-modal. // The reason for having a modal option is to allow the caller to setup // an ErrorDialogAdapter that isn't modal by default. In some cases, // a modal EDA will hang the Swing thread if the EDA is displayed during // the creation of another visual component. This is a Swing bug for which // there is no known fix. A non-modal EDA will not block the current thread // when it is shown, which allows Swing to paint the parent component. //@C2D Performing a dialog.toFront() seems to be as close to modal behavior //@C2D that a non-modal dialog can get. JOptionPane pane = new JOptionPane(message, JOptionPane.ERROR_MESSAGE); //@C1A JDialog dialog = pane.createDialog(component_, title_); //@C1A dialog.setModal(modal_); //@C1A dialog.setResizable(false); //@C1A dialog.pack(); //@C1A // @C2D dialog.toFront(); //@C1A dialog.show(); //@C1A } /** Returns the component that determines the parent frame for dialogs. @return The component, or null if none has been set. **/ public Component getComponent () { return component_; } /** Sets the component that determines the parent frame for dialogs. @param component The component, or null to use a default frame. **/ public void setComponent (Component component) { component_ = component; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy