11#import "CredentialsEditorController.h" 
   19#define SECTION_CREDENTIALS 0 
   20#define SECTION_COUNT 1 
   26  if ((
self = [super initWithStyle:UITableViewStyleGrouped]))
 
   29    _bookmark = [bookmark retain];
 
   30    _params = [bookmark params];
 
   38  [
self setTitle:NSLocalizedString(@"Credentials", @"Credentials title")];
 
   43  [
super viewDidUnload];
 
   47- (void)viewWillDisappear:(BOOL)animated
 
   49  [
super viewWillDisappear:animated];
 
   52  [[
self view] endEditing:NO];
 
   55- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
 
   67#pragma mark Table view data source 
   69- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
 
   75- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
 
   80    case SECTION_CREDENTIALS: 
 
   90- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
 
   94    case SECTION_CREDENTIALS:
 
   95      return NSLocalizedString(
@"Credentials", 
@"'Credentials': credentials settings header");
 
  101- (UITableViewCell *)tableView:(UITableView *)tableView
 
  102         cellForRowAtIndexPath:(NSIndexPath *)indexPath
 
  106  NSString *cellType = nil;
 
  107  switch ([indexPath section])
 
  109    case SECTION_CREDENTIALS: 
 
  110      if ([indexPath row] == 1)
 
  111        cellType = TableCellIdentifierSecretText; 
 
  113        cellType = TableCellIdentifierText;
 
  119  NSAssert(cellType != nil, 
@"Couldn't determine cell type");
 
  122  UITableViewCell *cell = [
self tableViewCellFromIdentifier:cellType];
 
  123  NSAssert(cell, 
@"Invalid cell");
 
  126  switch ([indexPath section])
 
  129    case SECTION_CREDENTIALS:
 
  130      [
self initCredentialSettings:indexPath cell:cell];
 
  141- (void)initCredentialSettings:(NSIndexPath *)indexPath cell:(UITableViewCell *)cell
 
  143  switch (indexPath.row)
 
  148      [[textCell textfield] setTag:GET_TAG_FROM_PATH(indexPath)];
 
  150          setText:NSLocalizedString(@"Username", @"'Username': Bookmark username")];
 
  151      [[textCell textfield] setText:[_params StringForKey:@"username"]];
 
  152      [[textCell textfield]
 
  153          setPlaceholder:NSLocalizedString(@"not set", @"not set placeholder")];
 
  159      [[textCell textfield] setTag:GET_TAG_FROM_PATH(indexPath)];
 
  161          setText:NSLocalizedString(@"Password", @"'Password': Bookmark password")];
 
  162      [[textCell textfield] setText:[_params StringForKey:@"password"]];
 
  163      [[textCell textfield]
 
  164          setPlaceholder:NSLocalizedString(@"not set", @"not set placeholder")];
 
  170      [[textCell textfield] setTag:GET_TAG_FROM_PATH(indexPath)];
 
  171      [[textCell label] setText:NSLocalizedString(@"Domain", @"'Domain': Bookmark domain")];
 
  172      [[textCell textfield] setText:[_params StringForKey:@"domain"]];
 
  173      [[textCell textfield]
 
  174          setPlaceholder:NSLocalizedString(@"not set", @"not set placeholder")];
 
  178      NSLog(
@"Invalid row index in settings table!");
 
  184#pragma mark Text Field delegate 
  186- (BOOL)textFieldShouldReturn:(UITextField *)textField
 
  188  [textField resignFirstResponder];
 
  192- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
 
  194  switch (textField.tag)
 
  197    case GET_TAG(SECTION_CREDENTIALS, 0):
 
  198      [_params setValue:[textField text] forKey:
@"username"];
 
  201    case GET_TAG(SECTION_CREDENTIALS, 1):
 
  202      [_params setValue:[textField text] forKey:
@"password"];
 
  205    case GET_TAG(SECTION_CREDENTIALS, 2):
 
  206      [_params setValue:[textField text] forKey:
@"domain"];