ftp.nice.ch/pub/next/developer/resources/classes/misckit/MiscKit.1.10.0.s.gnutar.gz#/MiscKit/Documentation/Classes/MiscTree.rtf

This is MiscTree.rtf in view mode; [Download] [Up]

Release 1.0  Copyright ©1993, 1994, 1996 by Don Yacktman.  All Rights Reserved.






MiscTree






Inherits From:	Object

Declared In:	misckit/MiscTree.h





Class Description

The MiscTree implements a tree data structure.  Each MiscTree contains a List object which points to the branch objects, which should be other MiscTree objects.  You can create a new node for the tree using ±alloc and ±init and you can assign a label to the node when you initialize it with the ±initLabel: and ±initLabelString: methods.  To add a branch object, simply use the ±addbranch: method.  If you need to manipulate the branches in some way, you can obtain the List object containing the branches via the ±branches method.  The ±depth and ±width methods return the depth and width of the tree below the messaged node.

Each node in the tree can have a label and a value, both of which are arbitrary character strings.  You can set and retrieve the character strings with the ±label, ±value, ±setLabel:, and ±setValue: methods.

The tree may be dumped to an NXStream, with all its branches, by using the ±dumpTree:level:indent method.  You can avoid having the branches below a MiscTree node printed when dumping the tree by collapsing the node.  Use ±collapse to collapse the node and ±uncollapse to uncollapse it.  The ±collapsed method will tell you if a particular node is collapsed.  If you wish to exert more specific control over whether or not a node will be dumped, you can override the ±moreData:level:indent: method to add the required functionality.  Overriding this method also allows you to add extra text to a node's line when a node is being dumped.

Note that this documentation is incomplete.  It will be finished soon.




Method Types


Initializing the MiscTree	± init
	± initLabel:
	± initLabelString:

Dealing with branches	± addBranch:
	± branches
	± depth
	± width

Labels and node values	± label
	± setLabel:
	± setValue:
	± value

Printing	± collapse
	± collapsed
	± dumpTree:level:indent:
	± moreData:level:indent:
	± uncollapse





Instance Methods


addBranch:
- addBranch:child

Adds the MiscTree node child to the end of the ªbranchesº List object.  Returns self.

See also:  -branches




branches
- branches

Returns a List object containing all of the ªchildrenº of this MiscTree node.

See also:  -addBranch:


collapse
- collapse

This method is used to avoid having the branches below a MiscTree node printed when dumping the tree by collapsing the node.  Returns self.

See also:  -collapsed and -uncollapse


collapsed
- (BOOL)collapsed

  This methods returns YES if the MiscTree node is collapsed.

See also:  -collapse and -uncollapse




depth
- (int)depth

Returns the depth of the MiscTree.  Depth means the longest distance from the receiver to the farthest leaf node.

See also:  -width




dumpTree:level:indent:
- dumpTree:(NXStream *)file level:(int)lev indent:(const char *)ind

Dumps the MiscTree to an NXStream.  This method should be sent to the top level of the tree with lev set to zero and ind being a string used for indenting.  Returns self.





free
- free

Frees the children beneath the MiscTree node sent to.  Returns self.

See also:  -initLabel: and -initLabelString:


init
- init

Initializes a new MiscTree node with an empty label.  Returns self.

See also:  -initLabel: and -initLabelString:




initLabel:
- initLabel:(const char *)newLabel

Initializes a new MiscTree node with a label of newLabel.  Returns self.

See also:  -init and -initLabelString::




initLabelString:
- initLabelString:(MiscString *)newLabel

Initializes a new MiscTree node with a the value of the MiscString object newLabel.  Returns self.

See also:  -initLabel: and -init




label
- (const char *)label
Returns the a string containing the label.

See also:  -setLabel:




moreData:level:indent:	
- (BOOL)moreData:(NXStream *)file level:(int)lev indent:(const char *)ind

This method is up to the subclass to define. You can dynamically control collapsing (for example, cut off at a certain level, etc.) and also add info to the end of a dumped node's line from here. Be sure to message super when you override this method; if the superclass method returns a NO then you should return a NO, regardless. Don't just use the notCollapsed instance variable, since it may change in the future; look at the return value from super!

Here is an example of how you might override to keep from printing levels deeper than level 2 (remember that the root level is zero):

- (BOOL)moreData:(NXStream *)file level:(int)level indent:(const char *)indent
{
	if ((level > 2) || ![super moreData:file level:level indent:indent]) {
		return NO;
	}
	return YES;
}

By default returns ![self collapased].

See also:  -dumpTree:level:indent:




setLabel:
- setLabel:(const char *)newLabel

Sets the value of the label of the MiscTree node to newLabel.  Returns self.

See also:  -label




setValue:
- setValue:(MiscString *)newValue

Sets the value held by the MiscTree node to newValue.  Frees the current value.  (Maybe this should return the old value instead of returning self?) Returns self.

See also:  -value




uncollapse
- uncollapse

Does the opposite of -collapse.  Returns self.

See also:  -collapse and -collapsed




value
- (const char *)value

Returns a pointer to the string holding the value of the MiscTree node.

See also:  -setValue:


width
- (int)width

Returns the total width of the MiscTree node and it's children.  Width means the total number of leaf nodes.

See also:  -depth

















These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.