home *** CD-ROM | disk | FTP | other *** search
/ Big Green CD 8 / BGCD_8_Dev.iso / OPENSTEP / Connectivity / OmniDNSHelper-1.0b3 / AppController.m < prev    next >
Encoding:
Text File  |  1997-10-29  |  3.3 KB  |  128 lines

  1. /* AppController.m created by andrew on Fri 13-Jun-1997 */
  2.  
  3.  
  4. #import <AppKit/AppKit.h>
  5. #import "AppController.h"
  6.  
  7. #import "ResolverWindowController.h"
  8. #import <Foundation/Foundation.h>
  9. #import <NIAccess/NIAccess.h>
  10. #import <NIInterface/NIInterface.h>
  11. // for geteuid
  12. #import <System/bsd/sys/types.h>
  13. #import <System/bsd/unistd.h>
  14.  
  15.  
  16. @interface AppController (Private)
  17. + (NIDomain *)_currentResolverDomain;
  18. @end
  19.  
  20.  
  21. @implementation AppController
  22.  
  23. static NSString *netinfoAuthenticationBugString = nil;
  24. static NSString *noCurrentResolverConfigurationString = nil;
  25.  
  26. + (void)initialize;
  27. {
  28.     static BOOL initialized = NO;
  29.  
  30.     [super initialize];
  31.  
  32.     if (initialized)
  33.         return;
  34.  
  35.     initialized = YES;
  36.  
  37.     netinfoAuthenticationBugString = NSLocalizedString (@"NetInfoAuthenticationBug", user has hit up against the netinfo authentication crasher);
  38.     noCurrentResolverConfigurationString = NSLocalizedString (@"NoCurrentResolverConfiguration", no existing resolver directory was found in NetInfo);
  39. }
  40.  
  41. - (void)showConfigurationPanel:sender;
  42. {
  43.     [configurationPanel makeKeyAndOrderFront:sender];
  44. }
  45.  
  46. - (void)showHelpWindow:sender;
  47. {
  48.     [helpPanel makeKeyAndOrderFront:sender];
  49. }
  50.  
  51. - (void)openResolver:sender;
  52. {
  53.     NIDomainPanel *domainPanel;
  54.     NIDomain *domain;
  55.     NSEnumerator *enumerator;
  56.  
  57.     domainPanel = [NIDomainPanel domainPanel];
  58.     [domainPanel setAllowsMultipleSelection:YES];
  59.     if (![domainPanel runModalForDomain:[NIDomain localDomain]])
  60.         return;
  61.  
  62.     enumerator = [[domainPanel domains] objectEnumerator];
  63.     while ((domain = [enumerator nextObject]))
  64.         [[ResolverWindowController resolverWindowControllerForDomain:domain] display];
  65. }
  66.  
  67. - (void)openFirstResolver:sender;
  68. {
  69.     NIDomain *domain;
  70.  
  71.     domain = [[self class] _currentResolverDomain];
  72.     if (!domain) {
  73.         NSRunAlertPanel (nil, noCurrentResolverConfigurationString, nil, nil, nil);
  74.         return;
  75.     }
  76.  
  77.     [[ResolverWindowController resolverWindowControllerForDomain:domain] display];
  78. }
  79.  
  80. - (void)openLocalResolver:sender;
  81. {
  82.     [[ResolverWindowController resolverWindowControllerForLocalDomain] display];
  83. }
  84.  
  85. - (void)openRootResolver:sender;
  86. {
  87.     [[ResolverWindowController resolverWindowControllerForRootDomain] display];
  88. }
  89.  
  90. @end
  91.  
  92.  
  93. @implementation AppController (Private)
  94.  
  95. + (NIDomain *)_currentResolverDomain;
  96. {
  97.     return [[[NINetInfo netinfo] firstDirectoryWithPath:@"/locations/resolver"] domain];
  98. }
  99.  
  100. @end
  101.  
  102.  
  103. @implementation AppController (NSApplicationDelegate)
  104.  
  105. - (void)applicationDidFinishLaunching:(NSNotification *)aNotification;
  106. {
  107.     NSBundle *mainBundle;
  108.     NSString *helpfilePath;
  109.     NSDictionary *infoDictionary;
  110.  
  111.     mainBundle = [NSBundle mainBundle];
  112.     helpfilePath = [mainBundle pathForResource:@"OmniDNSHelper.README" ofType:@"rtf"];
  113.     infoDictionary = [mainBundle infoDictionary];
  114.     [versionField setStringValue:[infoDictionary objectForKey:@"applicationVersionString"]];
  115.     [helpTextView readRTFDFromFile:helpfilePath];
  116.     [self showConfigurationPanel:nil];
  117.     if ([[infoDictionary objectForKey:@"useNetInfoAuthenticationHack"] isEqualToString:@"YES"])
  118.         if (([[NIDomain localDomain] isRootDomain]) && (geteuid() != 0))
  119.             NSRunAlertPanel(nil, netinfoAuthenticationBugString, nil, nil, nil);
  120. }
  121.  
  122. - (BOOL)applicationShouldTerminate:(NSApplication *)application;
  123. {
  124.     return [ResolverWindowController applicationShouldTerminate:application];
  125. }
  126.  
  127. @end
  128.