Author: ericwa Date: Mon Mar 24 07:38:16 2014 New Revision: 10623 URL: http://svn.gna.org/viewcvs/etoile?rev=10623&view=rev Log: ProjectDemo: Outliner: Pause syncing during field editor usage
Added: trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWOutlineView.h trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWOutlineView.m Modified: trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.h trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.m trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.h trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.m trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineWindow.xib trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/ProjectDemo.xcodeproj/project.pbxproj trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/SharingSession.h trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/SharingSession.m Modified: trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.h URL: http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.h?rev=10623&r1=10622&r2=10623&view=diff ============================================================================== --- trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.h (original) +++ trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.h Mon Mar 24 07:38:16 2014 @@ -121,4 +121,6 @@ - (IBAction) moveToTrash:(id)sender; +- (SharingSession *) sharingSession; + @end Modified: trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.m URL: http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.m?rev=10623&r1=10622&r2=10623&view=diff ============================================================================== --- trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.m (original) +++ trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.m Mon Mar 24 07:38:16 2014 @@ -487,4 +487,9 @@ } } +- (SharingSession *) sharingSession +{ + return [[XMPPController sharedInstance] sharingSessionForBranch: self.editingBranch]; +} + @end Added: trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWOutlineView.h URL: http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWOutlineView.h?rev=10623&view=auto ============================================================================== --- trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWOutlineView.h (added) +++ trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWOutlineView.h Mon Mar 24 07:38:16 2014 @@ -0,0 +1,14 @@ +#import <AppKit/AppKit.h> + +@class EWOutlineView; + +@protocol EWOutlineViewDelegate <NSObject> +- (void) outlineViewDidStartFieldEditor: (EWOutlineView *)aView; +- (void) outlineViewDidEndFieldEditor: (EWOutlineView *)aView; +@end + +@interface EWOutlineView : NSOutlineView + +@property (readwrite, nonatomic, weak) id<EWOutlineViewDelegate> delegate; + +@end Added: trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWOutlineView.m URL: http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWOutlineView.m?rev=10623&view=auto ============================================================================== --- trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWOutlineView.m (added) +++ trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWOutlineView.m Mon Mar 24 07:38:16 2014 @@ -0,0 +1,27 @@ +#import "EWOutlineView.h" + +@implementation EWOutlineView + +@synthesize delegate; + +- (void)textDidEndEditing:(NSNotification *)notification +{ + [super textDidEndEditing: notification]; + + if ([self.delegate respondsToSelector: @selector(outlineViewDidEndFieldEditor:)]) + { + [self.delegate outlineViewDidEndFieldEditor: self]; + } +} + +- (void)editColumn:(NSInteger)columnIndex row:(NSInteger)rowIndex withEvent:(NSEvent *)theEvent select:(BOOL)flag +{ + if ([self.delegate respondsToSelector: @selector(outlineViewDidStartFieldEditor:)]) + { + [self.delegate outlineViewDidStartFieldEditor: self]; + } + + [super editColumn: columnIndex row: rowIndex withEvent: theEvent select: flag]; +} + +@end Modified: trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.h URL: http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.h?rev=10623&r1=10622&r2=10623&view=diff ============================================================================== --- trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.h (original) +++ trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.h Mon Mar 24 07:38:16 2014 @@ -3,10 +3,11 @@ #import "Document.h" #import "SharingSession.h" #import "EWDocumentWindowController.h" +#import "EWOutlineView.h" -@interface OutlineController : EWDocumentWindowController <NSOutlineViewDelegate> +@interface OutlineController : EWDocumentWindowController <NSOutlineViewDelegate, EWOutlineViewDelegate> { - IBOutlet NSOutlineView *outlineView; + IBOutlet EWOutlineView *outlineView; } - (instancetype) initAsPrimaryWindowForPersistentRoot: (COPersistentRoot *)aPersistentRoot Modified: trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.m URL: http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.m?rev=10623&r1=10622&r2=10623&view=diff ============================================================================== --- trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.m (original) +++ trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.m Mon Mar 24 07:38:16 2014 @@ -3,6 +3,7 @@ #import "Document.h" #import "ApplicationDelegate.h" #import <CoreObject/COSQLiteStore+Graphviz.h> +#import "EWOutlineView.h" @implementation OutlineController @@ -65,6 +66,7 @@ [outlineView setDelegate: self]; [outlineView setTarget: self]; [outlineView setDoubleAction: @selector(doubleClick:)]; + outlineView.delegate = self; //NSLog(@"Got rect %@ for doc %@", NSStringFromRect([doc screenRectValue]), [doc uuid]); @@ -724,4 +726,28 @@ }*/ } +#pragma mark - EWOutlineViewDelegate + +- (void) outlineViewDidStartFieldEditor: (EWOutlineView *)aView +{ + NSLog(@"outlineViewDidStartFieldEditor:"); + if ([self sharingSession] != nil) + { + [self sharingSession].paused = YES; + } +} + +- (void) outlineViewDidEndFieldEditor: (EWOutlineView *)aView +{ + NSLog(@"outlineViewDidEndFieldEditor:"); + + SharingSession *ss = [self sharingSession]; + if (ss != nil) + { + dispatch_async(dispatch_get_main_queue(), ^{ + ss.paused = NO; + }); + } +} + @end Modified: trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineWindow.xib URL: http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineWindow.xib?rev=10623&r1=10622&r2=10623&view=diff ============================================================================== --- trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineWindow.xib (original) +++ trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineWindow.xib Mon Mar 24 07:38:16 2014 @@ -1026,6 +1026,7 @@ <string key="816.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <reference key="816.IBUserGuides" ref="0"/> <boolean value="NO" key="816.showNotes"/> + <string key="817.CustomClassName">EWOutlineView</string> <string key="817.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <reference key="817.IBUserGuides" ref="0"/> <boolean value="NO" key="817.showNotes"/> @@ -1175,6 +1176,14 @@ </object> </object> <object class="IBPartialClassDescription"> + <string key="className">EWOutlineView</string> + <string key="superclassName">NSOutlineView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">./Classes/EWOutlineView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">OutlineController</string> <string key="superclassName">EWDocumentWindowController</string> <dictionary class="NSMutableDictionary" key="actions"> Modified: trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/ProjectDemo.xcodeproj/project.pbxproj URL: http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/ProjectDemo.xcodeproj/project.pbxproj?rev=10623&r1=10622&r2=10623&view=diff ============================================================================== --- trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/ProjectDemo.xcodeproj/project.pbxproj (original) +++ trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/ProjectDemo.xcodeproj/project.pbxproj Mon Mar 24 07:38:16 2014 @@ -63,6 +63,7 @@ 6646988717D407A400A1B767 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6646988617D407A000A1B767 /* AppKit.framework */; }; 66488DC718D57DF9009F4C55 /* EWUndoManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 66488DC618D57DF9009F4C55 /* EWUndoManager.m */; }; 66568C6A189399A80075FD9A /* TODO.md in Resources */ = {isa = PBXBuildFile; fileRef = 66568C69189399A80075FD9A /* TODO.md */; }; + 665EF96318DFB89500BCF089 /* EWOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = 665EF96218DFB89500BCF089 /* EWOutlineView.m */; }; 66708F9C12486F0400E65F00 /* ProjectDemoMainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* ProjectDemoMainMenu.xib */; }; 66708F9F12486F0400E65F00 /* OutlineWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 66708F9412486E9D00E65F00 /* OutlineWindow.xib */; }; 66708FAB12486F0400E65F00 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; }; @@ -344,6 +345,8 @@ 66488DC518D57DF9009F4C55 /* EWUndoManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EWUndoManager.h; sourceTree = "<group>"; }; 66488DC618D57DF9009F4C55 /* EWUndoManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EWUndoManager.m; sourceTree = "<group>"; }; 66568C69189399A80075FD9A /* TODO.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TODO.md; sourceTree = "<group>"; }; + 665EF96118DFB89500BCF089 /* EWOutlineView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EWOutlineView.h; sourceTree = "<group>"; }; + 665EF96218DFB89500BCF089 /* EWOutlineView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EWOutlineView.m; sourceTree = "<group>"; }; 66708F7112486CD300E65F00 /* OutlineController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OutlineController.h; sourceTree = "<group>"; }; 66708F7212486CD300E65F00 /* OutlineController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OutlineController.m; sourceTree = "<group>"; }; 66708F9412486E9D00E65F00 /* OutlineWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = OutlineWindow.xib; sourceTree = "<group>"; }; @@ -849,6 +852,8 @@ 66708F9412486E9D00E65F00 /* OutlineWindow.xib */, 66708F7112486CD300E65F00 /* OutlineController.h */, 66708F7212486CD300E65F00 /* OutlineController.m */, + 665EF96118DFB89500BCF089 /* EWOutlineView.h */, + 665EF96218DFB89500BCF089 /* EWOutlineView.m */, ); name = "Outline Document"; sourceTree = "<group>"; @@ -1201,6 +1206,7 @@ 661211D11821A568003AEC29 /* XMPPDeprecatedPlainAuthentication.m in Sources */, 6612118F1821A482003AEC29 /* DispatchQueueLogFormatter.m in Sources */, 66488DC718D57DF9009F4C55 /* EWUndoManager.m in Sources */, + 665EF96318DFB89500BCF089 /* EWOutlineView.m in Sources */, 79911A4C12CDAECD009D28C0 /* SKTRectangle.m in Sources */, 661211D91821A568003AEC29 /* XMPPIQ.m in Sources */, 79911A4D12CDAECD009D28C0 /* SKTRenderingView.m in Sources */, Modified: trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/SharingSession.h URL: http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/SharingSession.h?rev=10623&r1=10622&r2=10623&view=diff ============================================================================== --- trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/SharingSession.h (original) +++ trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/SharingSession.h Mon Mar 24 07:38:16 2014 @@ -50,4 +50,6 @@ - (void) addClientJID: (XMPPJID *)peerJID; +@property (nonatomic, readwrite, assign) BOOL paused; + @end Modified: trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/SharingSession.m URL: http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/SharingSession.m?rev=10623&r1=10622&r2=10623&view=diff ============================================================================== --- trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/SharingSession.m (original) +++ trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/SharingSession.m Mon Mar 24 07:38:16 2014 @@ -169,4 +169,22 @@ return [[_xmppStream myJID] full]; } +- (BOOL)paused +{ + return _isServer ? _JSONServer.paused : _JSONClient.paused; +} + +- (void)setPaused:(BOOL)paused +{ + if (_isServer) + { + _JSONServer.paused = paused; + } + else + { + _JSONClient.paused = paused; + } +} + @end + _______________________________________________ Etoile-cvs mailing list Etoile-cvs@gna.org https://mail.gna.org/listinfo/etoile-cvs