Sei sulla pagina 1di 6

//

//
//
//
//
//
//

AddTaskViewController.swift
Kalidad Wedding Planner
Created by Edward P. Legaspi on 10/30/14.
Copyright (c) 2014 BroodCamp. All rights reserved.

import UIKit
import CoreData
class AddTaskViewController: UIViewController, UITextFieldDelegate, UIPickerView
Delegate, UIPickerViewDataSource{
var taskListDatePeriods = [TaskListDatePeriod]()
var taskList = [TaskList]()
@IBOutlet weak var txtField_taskName: UITextField!
@IBOutlet weak var txtField_taskSection: UITextField!
@IBOutlet weak var txtField_taskNote: UITextField!
var pickerForDatePeriod = UIPickerView()
var pickerDataForDatePeriod = [[String]]()
/*===== Use for
var tempString1
var tempString2
var tempString3
/*===== Use for

getting picker view values ===*/


= "1"
= "month/s"
= "before"
getting picker view values ===*/

override func didReceiveMemoryWarning() {


super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

override func viewDidLoad() {


super.viewDidLoad()
setPickerView()
}

//------------------------------------Picker-------------------------------/
/
func setPickerView(){
initializePickerData()

txtField_taskSection.delegate = self
txtField_taskName.delegate = self
txtField_taskNote.delegate = self
pickerForDatePeriod.delegate = self
pickerForDatePeriod.dataSource = self
txtField_taskSection.inputView = pickerForDatePeriod
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return pickerDataForDatePeriod.count
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component:
Int) -> Int {
return pickerDataForDatePeriod[component].count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent
component: Int) -> String! {
return pickerDataForDatePeriod[component][row]
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int,
component: Int) {
if(component == 0){
tempString1 = pickerDataForDatePeriod[component][row] as
}else if(component == 1){
tempString2 = pickerDataForDatePeriod[component][row] as
}else{
tempString3 = pickerDataForDatePeriod[component][row] as
}

inComponent
String
String
String

txtField_taskSection.text = tempString1 + " " + tempString2 + " " + temp


String3
}
func initializePickerData(){
pickerDataForDatePeriod = [["1", "2", "3", "4", "5", "6", "7", "8", "9",
"10", "11", "12",],
["month/s", "week/s", "day/s"],
["before", "after"],
]
}
//------------------------------------Picker-------------------------------/
/

//------------------------------------TextField Delegates-----------------------------//
func textFieldDidBeginEditing(textField: UITextField) {

UINavigationBar.appearance().barTintColor = UIColor.blackColor()
UIBarButtonItem.appearance().tintColor = UIColor.blackColor()
}
func textFieldDidEndEditing(textField: UITextField) {
UINavigationBar.appearance().barTintColor = AppConfig.navColor()
UIBarButtonItem.appearance().tintColor = UIColor.whiteColor()
if(textField == txtField_taskSection){
if(txtField_taskSection.text.isEmpty){
txtField_taskSection.text = "1 month/s before"
}
}
//didEndScroll()
}
//------------------------------------TextField Delegates-----------------------------//

@IBAction func btn_cancel(sender: UIBarButtonItem) {


navigationController?.popViewControllerAnimated(true)
}
@IBAction func btn_done(sender: UIBarButtonItem) {
var toBeEdit = true
for var i = 0; i <= taskListDatePeriods.count-1; ++i{
var currentTaskListDatePeriod = taskListDatePeriods[i]
if(currentTaskListDatePeriod.datePeriod == txtField_taskSection.text
){
toBeEdit = false
}
}
if(toBeEdit){
updateTaskDatePeriodsDatabase()
updateTaskDatePeriodsLocal()
}
updateTaskListDatabase()
updateTaskListLocal()
performSegueWithIdentifier("fromAddTaskToTaskList", sender: nil)
}
func updateTaskDatePeriodsDatabase(){
var appDel : AppDelegate = (UIApplication.sharedApplication().delegate a
s AppDelegate)

var context : NSManagedObjectContext = appDel.managedObjectContext!


var newTask = NSEntityDescription.insertNewObjectForEntityForName("TaskL
istDatePeriod", inManagedObjectContext: context) as NSManagedObject
newTask.setValue(0, forKeyPath: "parentId")
var maxId : Double = 0
for var i = 0; i <= taskListDatePeriods.count-1; ++i{
var currentTaskListDatePeriods = taskListDatePeriods[i]
if maxId < currentTaskListDatePeriods.id{
maxId = currentTaskListDatePeriods.id
}
}
newTask.setValue(maxId + 1, forKeyPath: "id")
newTask.setValue(txtField_taskSection.text as String, forKeyPath: "dateP
eriod")
var error : NSError?
context.save(&error)
println(newTask)
println("Object saved")
}
func updateTaskListDatabase(){
var appDel : AppDelegate = (UIApplication.sharedApplication().delegate a
s AppDelegate)
var context : NSManagedObjectContext = appDel.managedObjectContext!
var newTask = NSEntityDescription.insertNewObjectForEntityForName("Taskl
ist", inManagedObjectContext: context) as NSManagedObject
var maxId : Double = 0
for var i = 0; i <= taskListDatePeriods.count-1; ++i{
var currentDatePeriod = taskListDatePeriods[i]
if maxId < currentDatePeriod.id{
maxId = currentDatePeriod.id
}
}
newTask.setValue(maxId, forKeyPath: "parentId")
maxId = 0
for var i = 0; i <= taskList.count-1; ++i{
var currentTask = taskList[i]
if maxId < currentTask.taskParentId {

maxId = currentTask.taskParentId
}
}
newTask.setValue(maxId+1, forKeyPath: "id")
newTask.setValue(txtField_taskName.text as String, forKeyPath: "taskName
")
newTask.setValue(txtField_taskNote.text as String, forKeyPath: "taskNote
")
newTask.setValue(txtField_taskSection.text as String, forKeyPath: "taskD
atePeriod")
newTask.setValue(false, forKeyPath: "taskCompleted")
var error : NSError?
context.save(&error)
println(newTask)
println("Object saved")
}

func updateTaskDatePeriodsLocal(){
var maxId : Double = 0
for var i = 0; i <= taskListDatePeriods.count-1; ++i{
var currentTaskListDatePeriods = taskListDatePeriods[i]
if maxId < currentTaskListDatePeriods.id{
maxId = currentTaskListDatePeriods.id
}
}
taskListDatePeriods += [TaskListDatePeriod(parentId: 0, id: maxId + 1, d
atePeriod: txtField_taskSection.text)]
}
func updateTaskListLocal(){
var maxIdForParent : Double = 0
for var i = 0; i <= taskListDatePeriods.count-1; ++i{
var currentTaskListDatePeriods = taskListDatePeriods[i]
if maxIdForParent < currentTaskListDatePeriods.id{
maxIdForParent = currentTaskListDatePeriods.id
}
}
var maxIdForId : Double = 0
for var i = 0; i <= taskList.count-1; ++i{
var currentTaskList = taskList[i]
if maxIdForId < currentTaskList.taskId{
maxIdForId = currentTaskList.taskId

}
}
taskList += [TaskList(taskParentId: maxIdForParent, taskId: maxIdForId,
taskName: txtField_taskName.text as String, taskNote: txtField_taskNote.text as
String, taskDatePeriod: txtField_taskSection.text as String, taskCompleted: fals
e)]
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
var controller : TaskListViewController = segue.destinationViewControll
er as TaskListViewController
controller.taskList = taskList
controller.taskListDatePeriods = taskListDatePeriods
}

Potrebbero piacerti anche