com.ibm.as400.vaccess.VSystemValue 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: 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 - 2025 Weber Informatics LLC | Privacy Policy