//
//  PWOutlineView.h
//  PWTreeControllerDemo
//
//  Created by Frank Illenberger on 04.03.06.
//  Copyright 2006 ProjectWizards, Melle, Germany. 
//

#import <Cocoa/Cocoa.h>
#import "OAConfigurableColumnOutlineView.h"
//#import <OmniAppKit/OAExtendedOutlineView.h>

@interface PWOutlineView : OAConfigurableColumnOutlineView
//@interface PWOutlineView : OAExtendedOutlineView
//@interface PWOutlineView : NSOutlineView
{
	NSString 		*isExpandedKeyPath, *isExpandedFilteredKeyPath;
	BOOL 			dontRegisterCollapsing;
	BOOL			isRestoringSelection;
	BOOL			dontCreateAttributeObservers;
	BOOL			isReloading;
	
	id				editItem;
	int				editColumn;
	NSArray			*savedSelectedOriginalItems;
}

- (id)originalItemAtRow:(int)row;
- (int)rowForOriginalItem:(id)originalItem;
- (id)itemForOriginalItem:(id)originalItem;

- (void)setIsExpandedKeyPath:(NSString *)keyPath;
- (NSString *)isExpandedKeyPath;

- (void)setIsExpandedFilteredKeyPath:(NSString *)keyPath;
- (NSString *)isExpandedFilteredKeyPath;

- (void)setDontRegisterCollapsing:(BOOL)dont;
- (void)restoreCollapsedItems;
- (BOOL)isRestoringSelection;
- (void)uncoverOriginalItems:(NSArray *)items;

- (void)setDontCreateAttributeObservers:(BOOL)dont;
- (BOOL)dontCreateAttributeObservers;

- (void)createAttributeObservers;
- (void)removeAttributeObservers;
- (void)saveState;
- (void)restoreState;
- (void)dispose;
@end

@interface NSTableColumn (PWAdditions)
- (NSString *)keyPath;
- (NSString *)bindingKeyPath;
- (NSSet *)additionalObservingKeyPaths;
@end
