src.com.ibm.as400.vaccess.VSystemValueList Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jt400-jdk9 Show documentation
Show all versions of jt400-jdk9 Show documentation
The Open Source version of the IBM Toolbox for Java
///////////////////////////////////////////////////////////////////////////////
//
// JTOpen (IBM Toolbox for Java - OSS version)
//
// Filename: VSystemValueList.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.SystemValueList;
import com.ibm.as400.access.SystemValue;
import javax.swing.Icon;
import java.beans.VetoableChangeListener;
import java.beans.PropertyChangeListener;
import java.beans.PropertyVetoException;
import javax.swing.table.TableColumnModel;
import java.io.ObjectInputStream;
import javax.swing.tree.TreeNode;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import java.util.Enumeration;
/**
* The VSystemValueList class defines the representation of a
* system value list in a system for use in various models
* and panes in this package.
* You must explicitly call load() to load the information from
* the system.
*
* Most errors are reported as ErrorEvents rather than
* throwing exceptions. Users should listen for ErrorEvents
* in order to diagnose and recover from error conditions.
*
*
VSystemValueList objects generate the following events:
*
* - ErrorEvent
*
- PropertyChangeEvent
*
- VObjectEvent
*
- WorkingEvent
*
@deprecated Use Java Swing instead, along with the classes in package com.ibm.as400.access
**/
public class VSystemValueList implements VNode, java.io.Serializable
{
private static final String copyright = "Copyright (C) 1997-2000 International Business Machines Corporation and others.";
// Properties.
private SystemValueList systemValueList_;
private VNode parent_;
// Private data.
private transient VNode[] children_; // These are VSystemValueGroups
// Event support.
private transient ErrorEventSupport errorEventSupport_;
private transient PropertyChangeSupport propertyChangeSupport_;
private transient VetoableChangeSupport vetoableChangeSupport_;
private transient VObjectEventSupport objectEventSupport_;
private transient WorkingEventSupport workingEventSupport_;
// Static data.
private static String description_;
private static Icon icon16_;
private static Icon icon32_;
private static TableColumnModel detailsColumnModel_;
private static String nameColumnHeader_;
private static String descriptionColumnHeader_;
// MRI
final private static String groupName_;
final private static String groupDescription_;
final private static int groupCount_ = SystemValueList.getGroupCount();
static
{
description_ = (String)ResourceLoader.getText("SYSTEM_VALUE_LIST_DESCRIPTION");
groupName_ = (String)ResourceLoader.getText("COLUMN_GROUP");
groupDescription_= (String)ResourceLoader.getText("COLUMN_DESCRIPTION");
icon16_= ResourceLoader.getIcon("VSystemValueList16.gif", description_);
icon32_= ResourceLoader.getIcon("VSystemValueList32.gif", description_);
nameColumnHeader_ = groupName_;
descriptionColumnHeader_ = groupDescription_;
detailsColumnModel_= new DefaultTableColumnModel();
int i= 0;
// These are the columns to display for the children.
// The children are VSystemValueGroups.
// Name Column
VTableColumn vTable1= new VTableColumn(i++, NAME_PROPERTY);
vTable1.setCellRenderer(((TableCellRenderer)new VObjectCellRenderer()));
vTable1.setHeaderRenderer(((TableCellRenderer)new VObjectHeaderRenderer()));
vTable1.setHeaderValue(nameColumnHeader_);
vTable1.setPreferredCharWidth(10);
detailsColumnModel_.addColumn(((TableColumn)vTable1));
// Description Column
VTableColumn vTable2= new VTableColumn(i++, DESCRIPTION_PROPERTY);
vTable2.setCellRenderer(((TableCellRenderer)new VObjectCellRenderer()));
vTable2.setHeaderRenderer(((TableCellRenderer)new VObjectHeaderRenderer()));
vTable2.setHeaderValue(descriptionColumnHeader_);
vTable2.setPreferredCharWidth(40);
detailsColumnModel_.addColumn(((TableColumn)vTable2));
}
/**
* Constructs a VSystemValueList object.
**/
public VSystemValueList()
{
systemValueList_ = new SystemValueList();
initializeTransient();
}
/**
* Constructs a VSystemValueList object.
* @param system The system.
**/
public VSystemValueList(AS400 system)
{
systemValueList_ = new SystemValueList(system);
initializeTransient();
}
/**
* Constructs a VSystemValueList object.
* @param parentNode The parent node.
* @param system The system.
**/
public VSystemValueList(VNode parentNode, AS400 system)
{
if (parentNode == null)
throw new NullPointerException("parent");
systemValueList_ = new SystemValueList(system);
parent_ = parentNode;
initializeTransient();
}
/**
* Adds a listener to be notified when an error occurs.
* @param listener The listener.
**/
public void addErrorListener(ErrorListener listener)
{
errorEventSupport_.addErrorListener(listener);
}
/**
* Adds a listener to be notified when the value of any bound
* property changes.
* @param listener The listener.
**/
public void addPropertyChangeListener(PropertyChangeListener listener)
{
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);
}
/**
* Adds a listener to be notified when a VObject is changed,
* created, or deleted.
* @param listener The 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 listener The listener.
**/
public void addWorkingListener(WorkingListener listener)
{
workingEventSupport_.addWorkingListener(listener);
}
/**
* Returns the children of the node.
*
* @return The children.
**/
public Enumeration children()
{
return (Enumeration)(new VEnumeration(this));
}
/**
* Returns the list of actions that can be performed.
*
* @return Always null. There are no actions.
*
**/
public VAction[] getActions()
{
return null;
}
/**
* Indiciates if the node allows children.
*
* @return Always true.
**/
public boolean getAllowsChildren()
{
return true;
}
/**
* Returns the child node at the specified index.
*
* @param index The index.
* @return The child node at the specified index.
**/
public TreeNode getChildAt(int index)
{
if (index < 0 || index >= children_.length)
{
return null;
}
return (TreeNode)children_[index];
}
/**
* Returns the number of the children.
*
* @return The number of the children.
**/
public int getChildCount()
{
return children_.length;
}
/**
* Returns the default action.
*
* @return Always null. There is no default action.
**/
public VAction getDefaultAction()
{
return null;
}
/**
* Returns the child for the details at the specified index.
*
* @param index The index.
* @return The child, or null if the index is not
* valid.
**/
public VObject getDetailsChildAt(int index)
{
if (index < 0 || index >= children_.length)
{
return null;
}
return children_[index];
}
/**
* Returns the number of children for the details.
*
* @return The number of children for the details.
**/
public int getDetailsChildCount()
{
return children_.length;
}
/**
* Returns the table column model to be used in the details
* when representing the children. This column model
* describes the details values for the children.
*
* @return The details column model.
**/
public TableColumnModel getDetailsColumnModel()
{
return detailsColumnModel_;
}
/**
* Returns the index of the specified child for the details.
*
* @param detailsChild The details child.
* @return The index, or -1 if the child is not found
* in the details.
**/
public int getDetailsIndex(VObject detailsChild)
{
for (int i=0; i < groupCount_; i++)
{
if (children_[i] == detailsChild)
{
return i;
}
}
return -1;
}
/**
* 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 index of the specified child.
*
* @param child The child.
* @return The index of the specified child.
**/
public int getIndex(TreeNode child)
{
for (int index=0; index < groupCount_; index++)
{
if (children_[index] == child)
{
return index;
}
}
return -1;
}
/**
* Returns the parent node.
*
* @return The parent node, or null if there is no parent.
**/
public TreeNode getParent()
{
return parent_;
}
/**
* Returns the properties pane.
*
* @return The properties pane.
**/
public VPropertiesPane getPropertiesPane()
{
return null;
}
/**
* Returns a property value.
*
* @param propertyIdentifier The property identifier.
* The choices are
*
* - NAME_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;
}
if (propertyIdentifier == DESCRIPTION_PROPERTY)
{
return description_;
}
return null;
}
/**
* Returns the system in which the system
* values resides.
*
* @return The system in which the system
* values resides.
*
* @see com.ibm.as400.access.SystemValueList
**/
public AS400 getSystem()
{
return systemValueList_.getSystem();
}
/**
* Returns the system value list.
* @return The SystemValueList object.
**/
public SystemValueList getSystemValueList()
{
return systemValueList_;
}
/**
* Returns the text representation of the system value list.
*
* @return The text representation of the system value list.
**/
public String getText()
{
return description_;
}
/**
* Initializes the transient data.
**/
private void initializeTransient()
{
errorEventSupport_= new ErrorEventSupport(this);
objectEventSupport_= new VObjectEventSupport(this);
propertyChangeSupport_= new PropertyChangeSupport(this);
vetoableChangeSupport_= new VetoableChangeSupport(this);
workingEventSupport_= new WorkingEventSupport(this);
children_ = new VSystemValueGroup[groupCount_];
for (int i=0; i
© 2015 - 2025 Weber Informatics LLC | Privacy Policy