Import Upstream version 1.8.5
[hcoop/debian/openafs.git] / src / platform / DARWIN / AFSPreference / LynkCreationController.m
CommitLineData
805e021f
CE
1//
2// LynkCreationController.m
3// OpenAFS
4//
5// Created by MacDeveloper on 03/06/08.
6// Copyright 2008 __MyCompanyName__. All rights reserved.
7//
8
9#import "LynkCreationController.h"
10#import "global.h"
11
12@implementation LynkCreationController
13
14-(NSPanel*)getView {
15 return lynkCreationSheet;
16}
17
18- (IBAction) save:(id) sender {
19 NSMutableDictionary *linkConfiguration = nil;
20 if([[[textFieldLinkDestPath stringValue] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] == 0 ||
21 [[[textfieldLinkName stringValue] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] == 0 )
22 return;
23
24 //load all configuration
25 NSData *prefData = (NSData*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_LINK_CONFIGURATION, (CFStringRef)kAfsCommanderID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
26 if(prefData) {
27 linkConfiguration = [NSPropertyListSerialization propertyListFromData:prefData
28 mutabilityOption:NSPropertyListMutableContainers
29 format:nil
30 errorDescription:nil];
31 } else {
32 linkConfiguration = [NSMutableDictionary dictionaryWithCapacity:1];
33 }
34
35 [linkConfiguration setObject:[textFieldLinkDestPath stringValue]
36 forKey:[textfieldLinkName stringValue]];
37
38 //save new configuration
39 prefData = [NSPropertyListSerialization dataWithPropertyList:linkConfiguration
40 format:NSPropertyListXMLFormat_v1_0
41 options:0
42 error:nil];
43 CFPreferencesSetValue((CFStringRef)PREFERENCE_LINK_CONFIGURATION,
44 (CFDataRef)prefData,
45 (CFStringRef)kAfsCommanderID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
46 CFPreferencesSynchronize((CFStringRef)kAfsCommanderID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
47 [NSApp endSheet:lynkCreationSheet];
48}
49
50- (IBAction) cancell:(id) sender{
51 [NSApp endSheet:lynkCreationSheet];
52}
53
54- (IBAction) selectLinkDest:(id) sender {
55 NSOpenPanel *openPanel = [NSOpenPanel openPanel];
56 [openPanel setCanChooseFiles:NO];
57 [openPanel setCanChooseDirectories:YES];
58 [openPanel setAllowsMultipleSelection:NO];
59 choiceResult = [openPanel runModalForTypes:nil];
60 switch(choiceResult){
61 case NSOKButton:
62 if([[openPanel filenames] count] == 1) {
63 [textFieldLinkDestPath setStringValue:[[openPanel filenames] objectAtIndex:0]];
64 }
65 break;
66
67 case NSCancelButton:
68 [textFieldLinkDestPath setStringValue:@""];
69 break;
70 }
71}
72@end