Statistics
| Branch: | Tag: | Revision:

root / pithos-macos / PithosPreferencesController.m @ 74314fd6

History | View | Annotate | Download (3.9 kB)

1
//
2
//  PithosPreferencesController.m
3
//  pithos-macos
4
//
5
// Copyright 2011 GRNET S.A. All rights reserved.
6
//
7
// Redistribution and use in source and binary forms, with or
8
// without modification, are permitted provided that the following
9
// conditions are met:
10
// 
11
//   1. Redistributions of source code must retain the above
12
//      copyright notice, this list of conditions and the following
13
//      disclaimer.
14
// 
15
//   2. Redistributions in binary form must reproduce the above
16
//      copyright notice, this list of conditions and the following
17
//      disclaimer in the documentation and/or other materials
18
//      provided with the distribution.
19
// 
20
// THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
21
// OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
22
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
24
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
27
// USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
28
// AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
30
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31
// POSSIBILITY OF SUCH DAMAGE.
32
// 
33
// The views and conclusions contained in the software and
34
// documentation are those of the authors and should not be
35
// interpreted as representing official policies, either expressed
36
// or implied, of GRNET S.A.
37

    
38
#import "PithosPreferencesController.h"
39
#import "PithosBrowserController.h"
40
#import "PithosAccountNode.h"
41
#import "pithos_macosAppDelegate.h"
42

    
43
@implementation PithosPreferencesController
44
@synthesize pithosBrowserController;
45
@synthesize authenticationUserTextField, authenticationTokenTextField, authenticationRenewCheckBox;
46
@synthesize groupsDictionaryController, selectedGroupMembersDictionaryController;
47

    
48
#pragma mark -
49
#pragma mark Object Lifecycle
50

    
51
- (id)init {
52
    return [super initWithWindowNibName:@"PithosPreferencesController"];
53
}
54

    
55
- (void)windowDidLoad {
56
    [super windowDidLoad];
57
    
58
    NSWindow *window = [self window];
59
    [window setHidesOnDeactivate:NO];
60
    [window setExcludedFromWindowsMenu:YES];
61
    
62
	// Select the first tab when the window is loaded for the first time.
63
	[[window valueForKeyPath:@"toolbar"] setSelectedItemIdentifier:@"0"];
64

    
65
    [groupsDictionaryController setInitialKey:@"group"];
66
    [groupsDictionaryController setInitialValue:@"user"];
67
    [selectedGroupMembersDictionaryController setInitialKey:@"user"];
68
    [selectedGroupMembersDictionaryController setInitialValue:@""];
69

    
70
    [window setDelegate:self];
71
}
72

    
73
- (void)windowWillClose:(NSNotification *)notification {
74
    [self authenticationApply:self];
75
}
76

    
77
- (IBAction)toolbarItemSelected:(id)sender {
78
}
79

    
80
#pragma mark -
81
#pragma Authentication
82

    
83
- (IBAction)authenticationApply:(id)sender {
84
    [[self window] makeFirstResponder:nil];
85
    [(pithos_macosAppDelegate *)[[NSApplication sharedApplication] delegate] authenticate];
86
}
87

    
88
- (IBAction)authenticationLogin:(id)sender {
89
    NSProcessInfo *processInfo = [NSProcessInfo processInfo];
90
    NSString *loginURL = [NSString stringWithFormat:@"%@?next=pithos://%@_%d",
91
                          ((pithos_macosAppDelegate *)[[NSApplication sharedApplication] delegate]).loginURLPrefix, 
92
                          [processInfo processName], 
93
                          [processInfo processIdentifier]];
94
    if ([authenticationRenewCheckBox state] == NSOnState)
95
        loginURL = [loginURL stringByAppendingString:@"&renew="];
96
    NSLog(@"loginURL: %@", loginURL);
97
    [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:loginURL]];
98
}
99

    
100
#pragma mark -
101
#pragma mark Groups Actions
102

    
103
- (void)applyGroups {
104
    [[self window] makeFirstResponder:nil];
105
    [pithosBrowserController.accountNode applyInfo];
106
}
107

    
108
@end