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

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

The newest version!
///////////////////////////////////////////////////////////////////////////////
//                                                                             
// JTOpen (IBM Toolbox for Java - OSS version)                              
//                                                                             
// Filename: VSystemValue.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.SystemValue;
import com.ibm.as400.access.SystemValueList;

import javax.swing.Icon;

import java.io.ObjectInputStream;
import java.text.SimpleDateFormat;
import java.util.Date;

import java.beans.PropertyVetoException;

/**
 * The VSystemValue class defines the representation of a 
 * system value in a server for use in various models 
 * and panes in this package.
 * You must explicitly call load() to load the information from
 * the server.
 * 
 * 

Most errors are reported as ErrorEvents rather than * throwing exceptions. Users should listen for ErrorEvents * in order to diagnose and recover from error conditions. * *

VSystemValue objects generate the following events: *

    *
  • ErrorEvent *
  • PropertyChangeEvent *
  • VObjectEvent *
  • WorkingEvent *
**/ class VSystemValue implements VObject { private static final String copyright = "Copyright (C) 1997-2000 International Business Machines Corporation and others."; // Property. private SystemValue systemValue_; // Private data. private VObject[] detailsChildren_; private VObject[] children_; private VAction[] actions_; // Event support. VPropertiesPane propertiesPane_; ErrorEventSupport errorEventSupport_; VObjectEventSupport objectEventSupport_; WorkingEventSupport workingEventSupport_; // MRI final static private Icon icon16_; final static private Icon icon32_; static { // The icon description is not MRI. icon16_= ResourceLoader.getIcon("VSystemValue16.gif", "System Values"); icon32_= ResourceLoader.getIcon("VSystemValue32.gif", "System Values"); } /** * Constants indicating property for system value information. * **/ final public static String VALUE_PROPERTY = "Value"; /** * Constructs a VSystemValue object. * @param systemValue The SystemValue object. **/ public VSystemValue(SystemValue systemValue) { systemValue_ = systemValue; errorEventSupport_= new ErrorEventSupport(this); objectEventSupport_= new VObjectEventSupport(this); workingEventSupport_= new WorkingEventSupport(this); actions_ = new VAction[1]; actions_[0]= new VSystemValueModifyAction(this); if (systemValue_.isReadOnly()) actions_[0].setEnabled(false); actions_[0].addErrorListener(errorEventSupport_); actions_[0].addVObjectListener(objectEventSupport_); actions_[0].addWorkingListener(workingEventSupport_); propertiesPane_= new VSystemValueDetailsPropertiesPane(this, systemValue_); propertiesPane_.addErrorListener(errorEventSupport_); propertiesPane_.addVObjectListener(objectEventSupport_); propertiesPane_.addWorkingListener(workingEventSupport_); } /** * Adds a listener to be notified when an error occurs. * @param listener The error listener. **/ public void addErrorListener(ErrorListener listener) { errorEventSupport_.addErrorListener(listener); } /** * Adds a listener to be notified when a VObject is changed, * created, or deleted. * @param listener The VObject listener. **/ public void addVObjectListener(VObjectListener listener) { objectEventSupport_.addVObjectListener(listener); } /** * Adds a listener to be notified when work starts and stops on * potentially long-running operations. * @param workin1 The working listener. **/ public void addWorkingListener(WorkingListener workin1) { workingEventSupport_.addWorkingListener(workin1); } /** * Returns the list of actions that can be performed. * * @return Always null. There are no actions. * **/ public VAction[] getActions() { return actions_; } /** * Returns the default action. * * @return Always null. There is no default action. **/ public VAction getDefaultAction() { return null; } /** * Returns the description. * @return The system value description. * **/ public String getDescription() { return systemValue_.getDescription(); } /** * Returns the icon. * * @param size The icon size, either 16 or 32. If any other * value is given, then returns a default. * @param open This parameter has no effect. * @return The icon. **/ public Icon getIcon(int size, boolean open) { if (size != 32) { return icon16_; } return icon32_; } /** * Returns the system value name. * @return The system value name. * **/ public String getName() { return systemValue_.getName(); } /** * Returns the properties pane. * * @return The properties pane. **/ public VPropertiesPane getPropertiesPane() { return propertiesPane_; } /** * Returns a property value. * * @param propertyIdentifier The property identifier. * The choices are *
    *
  • NAME_PROPERTY *
  • VALUE_PROPERTY *
  • DESCRIPTION_PROPERTY *
* @return The property value, or null if the * property identifier is not recognized. **/ public Object getPropertyValue(Object propertyIdentifier) { if (propertyIdentifier == NAME_PROPERTY) { return this; // The renderer will call toString() on us. } if (propertyIdentifier == DESCRIPTION_PROPERTY) { return systemValue_.getDescription(); } if (propertyIdentifier == VALUE_PROPERTY) { //@B0D workingEventSupport_.fireStartWorking(); Object value = null; try { value = systemValue_.getValue(); } catch(Exception e) { errorEventSupport_.fireError(e); } //@B0D workingEventSupport_.fireStopWorking(); if (value != null && systemValue_.getType() == SystemValueList.TYPE_ARRAY) { String[] valStrs = (String[]) value; StringBuffer strBuf = new StringBuffer(); for (int i=0; i 0) { // Have we added any items to the string yet? if (strBuf.length() > 0) { strBuf.append(","); } strBuf.append(temp); } } return strBuf.toString(); } return value; } return null; } /** * Returns the text. This is the system value name. * @return The text which is the system value name. **/ public String getText() { return systemValue_.getName(); } /** * Returns the system value type. * @return The system value type. **/ public int getType() { return systemValue_.getType(); } /** * Returns the system value information. * @return The system value information. * **/ public Object getValue() { Object value = null; try { //@B0D workingEventSupport_.fireStartWorking(); value = systemValue_.getValue(); } catch(Exception e) { errorEventSupport_.fireError(e); } //@B0D workingEventSupport_.fireStopWorking(); return value; } /** * Loads information about the object from the server. **/ public void load() { workingEventSupport_.fireStartWorking(); try { systemValue_.clear(); // This clears the system value cache so // that we get the new value from the 400. systemValue_.getValue(); // This causes a connection in case we haven't made one yet. } catch(Exception e) { errorEventSupport_.fireError(e); } workingEventSupport_.fireStopWorking(); } /** * Removes an error listener. * * @param listener The listener. **/ public void removeErrorListener(ErrorListener listener) { errorEventSupport_.removeErrorListener(listener); } /** * Removes a VObjectListener. * * @param listener The listener. **/ public void removeVObjectListener(VObjectListener listener) { objectEventSupport_.removeVObjectListener(listener); } /** * Removes a working listener. * * @param workin1 The listener. **/ public void removeWorkingListener(WorkingListener workin1) { workingEventSupport_.removeWorkingListener(workin1); } /** * Sets the system value. * @param value The value to be set. * Example: *
     *   AS400 theSystem = new AS400("My400");
     *   VSystemValue sysVal = new VSystemValue(theSystem, "QUSRLIBL");
     *   // QUSRLIBL is of type TYPE_ARRAY
     *   String[] theList = new String[] { "QGPL", "QTEMP" };
     *   sysVal.setValue(theList);
     *
     *   sysVal = new VSystemValue(theSystem, "QTIME");
     *   // QTIME is of type TYPE_DATE
     *   java.sql.Time theTime = new java.sql.Time(12, 30, 0);
     *   sysVal.setValue(theTime);
     *
     *   sysVal = new VSystemValue(theSystem, "QCCSID");
     *   // QCCSID is of type TYPE_INTEGER
     *   Integer theCcsid = new Integer(37);
     *   sysVal.setValue(theCcsid);
     * 
* **/ public void setValue(Object value) { //@B0D workingEventSupport_.fireStartWorking(); try { systemValue_.setValue(value); // fireStopWorking should occur before fireObjectChanged // because VSystemValueGroup listens for the objectChanged // and could possibly "disconnect all of the wiring" of // the group, which has the result of disabling the // explorer pane. //@B0D workingEventSupport_.fireStopWorking(); objectEventSupport_.fireObjectChanged(this); } catch(Exception e) { errorEventSupport_.fireError(e); // Need to fire a stopWorking, but don't want to // fire two of them. //@B0D workingEventSupport_.fireStopWorking(); } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy