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

Reply via email to