blob: b7227db4005f28aa9b1ede96c4a1ace068a884ac [file] [log] [blame]
//
// DataPickerState.h
//
// Copyright 2014 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
#import <Foundation/Foundation.h>
// Dictionary Key indicating whether multiple selection is enabled.
extern NSString * const kMultipleSelectKey;
// Dictionary Key for the array of elements to be shown.
extern NSString * const kElementsKey;
// Dictionary Key for the label of each element.
extern NSString * const kLabelKey;
// Dictionary Key for the short label for each element (Optional).
extern NSString * const kShortLabelKey;
// Dictionary Key to indicate whether a particular element should be selected by default (Optional).
extern NSString * const kSelectedKey;
// DataPickerState objects keep track of the list of available cells and set
// of selected cells that are being used in a DataPickerViewController object.
@interface DataPickerState : NSObject
// An ordered list of cell labels (NSStrings) to select from
@property(strong, nonatomic) NSArray *cellLabels;
// A set of the labels of the selected cells (NSStrings).
@property(strong, nonatomic) NSMutableSet *selectedCells;
// Determines if multiple cells can be checked.
@property(assign, nonatomic) BOOL multipleSelectEnabled;
// Initializes a DataPickerState to collect its data from
// the provided dictionary. The assumption about the provided
// dictionary is that it obeys the structure:
// dict[@"multiple-select"] - BOOL that represents whether multiple of the
// elements can be simultaneously selected.
// dict[@"elements"] - Array that contains the list of cell items to be shown.
// dict[@"elements"][index] - Dictionary that contains properties for each cell.
// dict[@"elements"][index][@"label"] - String storing the label of the cell.
// dict[@"elements"][index][@"selected"] - BOOL for whether the cell begins as
// selected. If this property is not
// set, then we default to NO.
- (id)initWithDictionary:(NSDictionary *)dict;
@end