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

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

There is a newer version: 20.0.7
Show newest version
///////////////////////////////////////////////////////////////////////////////
//                                                                             
// JTOpen (IBM Toolbox for Java - OSS version)                              
//                                                                             
// Filename: VSystemValueGroup.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.SystemValue;
import com.ibm.as400.access.SystemValueList;
import com.ibm.as400.access.AS400;

import java.io.ObjectInputStream;
import javax.swing.tree.TreeNode;
import javax.swing.Icon;
import java.util.Enumeration;
import java.util.Vector;


import javax.swing.Icon;

import java.beans.VetoableChangeListener;
import java.beans.PropertyChangeListener;

import javax.swing.table.TableColumnModel;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;

/**
 * The VSystemValueGroup class defines the representation of a 
 * system value group on 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. * *

VSystemValueGroup objects generate the following events: *

    *
  • ErrorEvent *
  • PropertyChangeEvent *
  • VObjectEvent *
  • WorkingEvent *
**/ class VSystemValueGroup implements VNode { private static final String copyright = "Copyright (C) 1997-2000 International Business Machines Corporation and others."; // Private data. private VSystemValueList systemValueList_; private int group_; private String groupName_; private String groupDescription_; private VNode parent_ = null; private boolean loaded_ = false; private Vector systemValues_; private VObject[] detailsChildren_; private VPropertiesPane propertiesPane_; // Event support. private ErrorEventSupport errorEventSupport_; private VObjectEventSupport objectEventSupport_; private WorkingEventSupport workingEventSupport_; // This one is for refreshing all other date and time values // if one of them should change. private VObjectListener_ dateTimeListener_; // Static data. static public final String VALUE_PROPERTY = "Value"; private static TableColumnModel detailsColumnModel_; // MRI private static String nameColumnHeader_; private static String descriptionColumnHeader_; private static String valueColumnHeader_; private static String description_; private static Icon icon16_; private static Icon icon32_; /** * Static initializer **/ static { nameColumnHeader_ = (String)ResourceLoader.getText("COLUMN_NAME"); valueColumnHeader_ = (String)ResourceLoader.getText("COLUMN_VALUE"); descriptionColumnHeader_ = (String)ResourceLoader.getText("COLUMN_DESCRIPTION"); description_ = (String)ResourceLoader.getText("COLUMN_GROUP"); icon16_= ResourceLoader.getIcon("VSystemValueGroup16.gif", description_); icon32_= ResourceLoader.getIcon("VSystemValueGroup32.gif", description_); detailsColumnModel_= new DefaultTableColumnModel(); int i = 0; // These are the columns to display for the children. // The children are VSystemValues. // 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)); // Value column. VTableColumn vTable2= new VTableColumn(i++, VALUE_PROPERTY); vTable2.setCellRenderer(((TableCellRenderer)new VObjectCellRenderer())); vTable2.setHeaderRenderer(((TableCellRenderer)new VObjectHeaderRenderer())); vTable2.setHeaderValue(valueColumnHeader_); vTable2.setPreferredCharWidth(15); detailsColumnModel_.addColumn(((TableColumn)vTable2)); // Description column VTableColumn vTable3= new VTableColumn(i++, DESCRIPTION_PROPERTY); vTable3.setCellRenderer(((TableCellRenderer)new VObjectCellRenderer())); vTable3.setHeaderRenderer(((TableCellRenderer)new VObjectHeaderRenderer())); vTable3.setHeaderValue(descriptionColumnHeader_); vTable3.setPreferredCharWidth(40); detailsColumnModel_.addColumn(((TableColumn)vTable3)); } /** * Constructs a VSystemValueGroup object. * @param systemValueList The SystemValueList object. * @param group The group type. **/ public VSystemValueGroup(VSystemValueList systemValueList, int group) { systemValueList_ = systemValueList; group_ = group; groupName_ = SystemValueList.getGroupName(group_); groupDescription_ = SystemValueList.getGroupDescription(group_); parent_ = systemValueList; errorEventSupport_= new ErrorEventSupport(this); objectEventSupport_= new VObjectEventSupport(this); workingEventSupport_= new WorkingEventSupport(this); dateTimeListener_ = new VObjectListener_(); propertiesPane_= new VSystemValueGroupPropertiesPane(this); propertiesPane_.addErrorListener(errorEventSupport_); propertiesPane_.addVObjectListener(objectEventSupport_); propertiesPane_.addWorkingListener(workingEventSupport_); propertiesPane_.addVObjectListener(dateTimeListener_); systemValues_ = new Vector(); detailsChildren_= new VSystemValue[0]; loaded_ = false; } /** * Adds the specified error listener * to receive error event from this * component. * @param listener The error listener. **/ public void addErrorListener(ErrorListener listener) { errorEventSupport_.addErrorListener(listener); } /** * Adds the specified VObject listener * to receive VObject event from this * component. * @param listener The VObject listener. **/ public void addVObjectListener(VObjectListener listener) { objectEventSupport_.addVObjectListener(listener); } /** * Adds the specified working listener * to receive working event from this * component. * @param listener The working 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((VNode)this)); } /** * Returns the list of actions that can be performed. * * @return Always null. There are no actions. * **/ public VAction[] getActions() { return null; } /** * Indicates if the node allows children. * * @return Always false. **/ public boolean getAllowsChildren() { return false; } /** * Returns the child node at the specified index. * * @param index The index. * @return Always null. **/ public TreeNode getChildAt(int index) { return null; } /** * Returns the number of children. * * @return The number of the children. **/ public int getChildCount() { return 0; } /** * Returns the description. * @return The description. **/ public String getDescription() { return groupDescription_; } /** * 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 >= detailsChildren_.length) return null; loadChildren(); return detailsChildren_[index]; } /** * Returns the number of children for the details. * * @return The number of children for the details. **/ public int getDetailsChildCount() { loadChildren(); return detailsChildren_.length; } /** * Returns the table column model to use 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 vObject The details child. * @return The index, or -1 if the child is not found * in the details. **/ public int getDetailsIndex(VObject vObject) { loadChildren(); for (int i=0; i *
  • NAME_PROPERTY *
  • DESCRIPTION_PROPERTY * * @return The property value, or null if the * property identifier is not recognized. **/ public Object getPropertyValue(Object object) { if (object == NAME_PROPERTY) { return groupName_; } if (object == DESCRIPTION_PROPERTY) { return groupDescription_; } return null; } /** * Returns the text. This is the system value group name * * @return The text which is the system value group name. **/ public String getText() { return groupName_; } /** * Indicates if the node is a leaf. * * @return Always true. **/ public boolean isLeaf() { return true; } /** * Indicates if the details children are sortable. * * @return Always false. **/ public boolean isSortable() { return false; } /** * Loads information about the object from the server. **/ public void load() { workingEventSupport_.fireStartWorking(); for (int i=0; i




  • © 2015 - 2024 Weber Informatics LLC | Privacy Policy