App delegate now controls communication between device / mapping controllers and...
[enjoyable.git] / Classes / NJDeviceViewController.m
index 5d0bf6a..8b36a0e 100644 (file)
     [self expandRecursive:[self.delegate deviceViewController:self elementForUID:uid]];
 }
 
-- (void)beginUpdates {
-    [self.inputsTree beginUpdates];
-}
-
-- (void)endUpdates {
-    [self.inputsTree endUpdates];
-}
-
 - (void)reexpandAll {
     for (NSString *uid in [_expanded copy])
         [self expandRecursiveByUID:uid];
 }
 
 - (void)addedDevice:(NJDevice *)device atIndex:(NSUInteger)idx {
+    [self.inputsTree beginUpdates];
     [self.inputsTree insertItemsAtIndexes:[[NSIndexSet alloc] initWithIndex:idx]
                                   inParent:nil
                              withAnimation:NSTableViewAnimationEffectFade];
     [self reexpandAll];
+    [self.inputsTree endUpdates];
     self.noDevicesNotice.hidden = YES;
 }
 
-- (void)removedDevice:(NJDevice *)device atIndex:(NSUInteger)idx {
+- (void)removedDeviceAtIndex:(NSUInteger)idx {
     BOOL anyDevices = !![self.delegate numberOfDevicesInDeviceList:self];
+    [self.inputsTree beginUpdates];
     [self.inputsTree removeItemsAtIndexes:[[NSIndexSet alloc] initWithIndex:idx]
                                   inParent:nil
                              withAnimation:NSTableViewAnimationEffectFade];
+    [self.inputsTree endUpdates];
     self.noDevicesNotice.hidden = anyDevices || !self.hidStoppedNotice.isHidden;
 }
 
@@ -163,11 +159,9 @@ objectValueForTableColumn:(NSTableColumn *)tableColumn
     return ![self outlineView:outlineView isGroupItem:item];
 }
 
-- (NJInputPathElement *)selectedHandler {
+- (NJInput *)selectedHandler {
     NJInputPathElement *element = self.inputsTree.selectedItem;
-    return element.children ? nil : element;
+    return element.children ? nil : (NJInput *)element;
 }
 
-
-
 @end