ftp.nice.ch/pub/next/developer/resources/palettes/ConnectDemo.s.tar.gz#/ConnectDemo/doc/EDBConnectInspector.rtf

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




EDBConnectInspector






Inherits From:	IBInspector

Declared In:	EDBConnectInspector.h





Class Description

EDBConnectInspector ist, wie der Name schon sagt, ein Connection Inspektor, der den originalen Inspektor des InterfaceBuilders funktional erweitert. EDBConnectInspector erlaubt, von einem Outlet aus zu mehreren Zielen Verbindungen zu ziehen und weiters beliebige Outlets wie Targets aussehen zu lassen, d.h. mit Pfeil und der Möglichkeit, Actions einzugeben.

Der einzige sonstige Unterschied zum Standardinspektor liegt darin begröndet, daû der Zugriff auf Outlets und Actions, so wie sie im InterfaceBuilder editiert werden können, in der derzeitigen Betriebssystemversion NS3.0 nicht dokumentiert und dadurch nicht möglich ist. Das Protokoll EDBConnections definiert daher eine Methode, um die Outlets eines Objekts zu erhalten (sh. EDBConnections und EDBOutlet). Actions dagegen beziehen sich auf das Ziel einer Verbindung, und nur InterfaceBuilder selbst weiû die Actions aller anderen Objekte. Aus diesem Grund ist es nur möglich, den Namen der Action einzugeben statt die gewönschte Action aus einer Liste von Möglichkeiten auszuwÙhlen.

Folgende Methoden mössen implementiert werden, um EDBConnectInspector verwenden zu können: getConnectInspectorClassName, welche z.B. "EDBConnectInspector" zuröckliefert und die Methoden aus dem Protokoll EDBConnections.

Zur Laufzeit werden schluûendlich Verbindungen in Aufrufe wie z.B. setDelegate:, wenn das Objekt ein Outlet namens delegate definiert hat, umgewandelt. Wie und in welcher Reihenfolge das funktioniert, ist in der Klassenbeschreibung zu EDBConnector nachzulesen.

EDBConnectInspector stellt Methoden zur Verfögung, um Outlets wÙhrend der Laufzeit von InterfaceBuilder zu verÙndern, hinzuzufögen oder zu entfernen. Siehe +obtainEDBConnectInspector,  -outletOfObject:renamedFrom:to:, -outlet:removedFromObject:, outletAddedToObject:.





Instance Variables

id		actionMatrix
id		actionScrollView
id		actionTitleField
id		commentField
id		connectMatrix
id		connectScrollView
id		lowerBox
id		outletBrowser
id		upperBox
id		*connections
NXCoord		minHeight
List		*outlets
u_long		outletCount
BOOL		refreshOnRevert


actionMatrix	User Interface Objekt

actionScrollView	User Interface Objekt

actionTitleField	User Interface Objekt

commentField	User Interface Objekt

connectMatrix	User Interface Objekt

connectScrollView	User Interface Objekt

lowerBox	User Interface Objekt

outletBrowser	User Interface Objekt

upperBox	User Interface Objekt

connections	Liste von allen derzeitigen Connections von diesem Objekt

minHeight	Die Mindesthöhe der Boxes in der SplitView

outlets	Liste aller Outlets des aktiven Objekts

outletCount	Zahl der Outlets

refreshOnRevert	NO, nachdem ein Outlet oder eine Connection angeklickt wurde. Optimierung.




Method Types

Initializing and freeing	- init
- free
+ obtainEDBConnectInspector

Overridden Methods	- ok:
- revert:
- wantsButtons

Actions	- clickAction:
- clickConnection:
- clickOutlet:
- doubleClickOutlet:

Handling Connections	- getConnections:
- displayConnections:
- setSequenceNumberOf:
- fillTargetMatrixForConnection:andOutlet:
- createConnectorForOutlet:withNr:andSel:

Handling Outlets	- selectOutlet
- outletAt:inMatrix:setConnected:andDisplay:
- indexOfOutlet:
- indexOfFirstFreeOutlet
- outletIsConnected:

Dynamically Change of Outlets	- outletOfObject:renamedFrom:to:
- outlet:removedFromObject:
- outletAddedToObject:

Outlets	- addEDBOutlet:at:
- removeEDBOutletWithName:
- removeEDBOutletAt:
- outletRenamedFrom:to:

Browser delegate	- browser:fillMatrix:inColumn:




Class Methods

obtainEDBConnectInspector
+ obtainEDBConnectInspector

Returniert die einzige Instanz dieser Klasse oder kreiert eine Instanz, falls es noch keine gibt und returniert diese.




Instance Methods

browser:fillMatrix:inColumn:
- (int)browser:sender fillMatrix:matrix inColumn:(int)column

Föllt den Outletbrowser mit allen Outlets des gerade inspizierten Objekts. Die Outlets werden in der Liste outlets erwartet. Returniert die Anzahl der Outlets.

See also:  EDBOutlet




clickAction:
- clickAction:sender

Föhrt nur ein [okButton performClick:self] durch und returniert self.



clickConnection:
- clickConnection:sender

Zeigt die Connection an und selektiert das entsprechende Outlet. Returniert self.

See also:  - displayConnectionBetween:and: (IB)



clickOutlet:
- clickOutlet:sender

Selektiert den Text im Actionbrowser, falls es sich um ein Target handelt. Wenn es kein Multiuse-Outlet ist und eine Verbindung för dieses Outlet existiert, wird die Verbindung selektiert und angezeigt. Returniert self.

See also:  - isTarget (EDBOutlet), - multiUse (EDBOutlet)




createConnectorForOutlet:withNr:andSel:
- createConnectorForOutlet:(NXAtom)outletName withNr:(int)outletNr andSel:(const char *)sel

Kreiert eine neue Instanz der Klasse EDBConnecotor und setzt deren Argumente entsprechend den Parametern dieser Methode. Source und Destination werden allerdings direkt durch [NXApp connectSource] und [NXApp connectDestination] ermittelt. Der Returnwert ist die neue Instanz.

See also:  EDBConnector




displayConnections:
- displayConnections:list

Föllt die Matrix der Connections entsprechend dem Inhalt der Liste list. In list sollten alle Connections mit dem inspizierten Objekt als source enthalten sein (alle diese Objekte haben dem Protokoll IBConnectors zu gehorchen). Die Anzeige einer Connection entspricht der des Standardconnectinspectors, d.h. links der Name des Outlets (plus einer Nummer, falls es sich um ein MultiUse Outlet handelt) und rechts entweder der Name des ZielObjekts oder dessen Klasse. Returniert self.

See also:  IBConnectors, EDBConnector




doubleClickOutlet:
- doubleClickOutlet:sender

Föhrt die Action des Ok-Buttons aus und returniert self.




fillTargetMatrixForConnection:andOutlet:
- fillTargetMatrixForConnection:connection andOutlet:(int)outletNr

Setzt den Inhalt des TextFields im Targetbrowser entweder auf den Namen der Action, wenn das Outlet ein Target ist oder auf NULL. Returniert self.

See also:  - isTarget (EDBOutlet)




free
- free

Freed die Resourcen dieser Klasse und setzt die Klassenvariable onlyInspector auf nil, falls self gleich onlyInspector ist. Es ist daher för Unterklassen möglich, mehrere Instanzen zu erzeugen, ohne den Wert der privaten Klassenvariable zu verÙndern.

See also:  - init




getConnections:
- getConnections:list

Holt alle Connections mit dem inspizierten Objekt als Source (mittels [[NXApp activeDocument] listConnectors:list forSource:object]) und speichert sie in Liste list. Diese Liste wird anschlieûend nach Outletnamen sortiert. Returniert self.




indexOfFirstFreeOutlet
- (int)indexOfFirstFreeOutlet

Liefert den Index des ersten Outlets in der Liste outlets, för das entweder keine Connection existiert oder das ein MultiUse-Outlet ist, oder -1 andernfalls.

See also:  - multiUse (EDBOutlet)




indexOfOutlet:
- (int)indexOfOutlet:(NXAtom)outlet

Liefert den Index des Outlets mit Namen outlet in der Liste outlets oder -1, falls kein solches Outlet existiert.




init
- init

Falls bereits ein Objekt der Klasse EDBConnectInspector existiert und [self class]==[EDBConnectInspector class] ist, so wird die ID des existierenden Objekts zuröckgegeben. Andernfalls wird die neue Instanz initialisiert und self oder nil (wenn EDBConnectInspector.nib nicht gefunden wurde) returniert. D.h. wenn eine Unterklasse [super init] aufruft (oder init nicht implementiert), wird auf jeden Fall eine neue Instanz initialisiert. Es liegt also im Ermessen der Unterklassen, ob mehr als eine Instanz existieren darf.

See also:  - free, + obtainEDBConnectInspector




ok:
- ok:sender

Je nachdem, ob die gerade angezeigte Verbindung bereits existiert oder nicht, wird sie gelöscht bzw. neu erzeugt. Returniert self.

See also:  - createConnectorForOutlet:withNr:andSel:




outlet:removedFromObject:
- outlet:(NXAtom)name removedFromObject:sender

Entfernt alle Connections för das Outlet mit Namen name und schickt sich selbst -revert:, falls das gerade inspizierte Objekt mit sender öbereinstimmt.




outletAddedToObject:
- outletAddedToObject:sender

Schickt sich selbst die Methode -revert:, falls das gerade inspizierte Objekt mit sender öbereinstimmt.




outletAt:inMatrix:setConnected:andDisplay:
- outletAt:cell inMatrix:matrix setConnected:(BOOL)flag andDisplay:(BOOL)disp

Stattet Outlet cell im Outletbrowser mit einer entprechenden Markierung aus, die anzeigt, ob das Outlet verbunden (flag==YES) oder nicht verbunden (flag==NO) ist. Retuniert self.




outletIsConnected:
- (BOOL)outletIsConnected:(int)ind

Returniert YES, wenn das Outlet mit Index ind in der Liste outlets verbunden ist und kein MultiUse-Outlet ist. Retuniert NO andernfalls.

See also:  - multiUse (EDBOutlet)




outletOfObject:renamedFrom:to:
- outletOfObject:sender renamedFrom:(NXAtom)from to:(NXAtom)to

Sucht das Outlet mit Namen form in der Liste outlets und ersetzt dessen Namen durch to. Retuniert self.

See also:  - setOutletName: (EDBOutlet)




removeSequenceNumberOf:
- removeSequenceNumberOf:connector

Die Sequencenummer ist durchgehend und bestimmt die Reihenfolge der Connections för ein MultiUse-Outlet (entspricht der Reihenfolge, in der die Verbindungen erstellt werden). Diese Methode schlieût die Löcke in der Nummerierung, die entsteht, wenn eine Connection gelöscht wird. Returniert self.

See also:  - setSequence: (EDBConnection)




revert:
- revert:sender

Kopiert alle Connections mit dem inspizierten Objekt als Source in die Liste connections, zeigt die Daten erneut an und selektiert das erste freie Outlet. Returniert [super revert:sender].

See also:  - getOutlets (EDBConnections), - getConnections:, - displayConnections:, - selectOutlet




selectOutlet
- selectOutlet

Untersucht, ob InterfaceBuilder gerade eine Connection anzeigt und selektiert entsprechend im Connection- und Outletbrowser, oder selektiert das nÙchste freie Outlet. Returniert self.




setSequenceNumberFor:
- setSequenceNumberFor:connector

Setzt Connectors Sequencenummer auf die nÙchste Freie. Returniert self.

See also:  - setSequence: (EDBConnector)




wantsButtons
- (BOOL)wantsButtons

Returniert YES.




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