void MouseRelease() { if (m_SelectedObjDraged) { if (IsSelected()) { // update position to data TaskBundle bundle = TryFindTaskData(m_SelectedObjTaskID); TaskVisualObj visual = TryFindTaskVisual(m_SelectedObjTaskID); if (null != visual && null != bundle) { if (bundle.Visual.IsPin) { // revert position SetTaskVisual3DFromBundle(visual.m_3DObj, bundle); } else { Vector3 pos = visual.m_3DObj.transform.localPosition; bundle.Visual.PositionStr = string.Format("{0},{1},{2}", pos.x, pos.y, pos.z); // uploading apply change to task TaskAddRequest fetchReq = new TaskAddRequest(); fetchReq.UpdateSerial = TaskMauerStaticData.GetUpdateSerial(); fetchReq.ProjectKey = m_ProjectKey; fetchReq.Task = bundle; StartCoroutine(StartRequestModifyTask(fetchReq)); } } } m_SelectedObjDraged = false; } }
public void AddTask() { Debug.LogWarning("AddTask"); if (null == m_AddTaskInterfaceHelper) { return; } { TaskBundle bundle = TaskBundleHelper.CopyFromAddTaskInterfaceHelper(m_AddTaskInterfaceHelper); // prepare bundle to upload string TaskAddRequest req = new TaskAddRequest(); req.RequestSerial = m_RequestSerial++; req.UpdateSerial = TaskMauerStaticData.GetUpdateSerial(); req.ProjectKey = m_ProjectKey; req.Task = bundle; m_RequestList.Add(m_RequestSerial, req); StartCoroutine(StartRequestTaskAdd(req)); } m_AddTaskInterfaceHelper.gameObject.SetActive(false); }
void SetLocalPositionInArray(List <int> row, float yPos, out float maxYSpace) { maxYSpace = 0.0f; float tempX = 0; foreach (var taskID in row) { // calculate the size of each task TaskBundle task = m_TaskData[taskID]; TaskPositionHelper calculator = m_TaskCalculator[taskID]; TaskVisualObj visual = TryFindTaskVisual(taskID); if (null != visual && !calculator.IsSetPosition) { visual.m_3DObj.transform.localPosition = new Vector3(tempX, yPos, 0); } if (calculator.YSpace > maxYSpace) { maxYSpace = calculator.YSpace; } tempX += calculator.XSpace; } }
void SetParentAndLocalPositionInArray(Dictionary <int, TaskBundle> tasks, Dictionary <int, TaskPositionHelper> helpers, List <int> row) { float tempX = 0; foreach (var taskID in row) { // calculate the size of each task TaskBundle task = tasks[taskID]; TaskPositionHelper calculator = helpers[taskID]; TaskVisualObj visual = TryFindTaskVisual(taskID); TaskVisualObj visualParent = TryFindTaskVisual(task.Relation.ParentID); if (null != visual && null != visualParent) { visual.m_3DObj.transform.SetParent(visualParent.m_3DObj.transform); if (!calculator.IsSetPosition) { visual.m_3DObj.transform.localPosition = new Vector3(tempX, 0.7f, 1); } // Debug.LogWarning("visual.m_3DObj.transform.localPosition" + visual.m_3DObj.transform.localPosition ); } tempX += calculator.XSpace; } }
void SetTaskVisualDataFromBundle(TaskVidual2DObjectHelper taskVisualtwoDHelper, TaskBundle bundle) { taskVisualtwoDHelper.UpdateLinkURL(bundle.Data.Link); taskVisualtwoDHelper.UpdateTitle(bundle.Data.Title); taskVisualtwoDHelper.UpdateAssignee(bundle.Data.Assignee); taskVisualtwoDHelper.UpdateColor(bundle.Data.Type); }
public void ConfirmModifyTask() { Debug.LogWarning("ConfirmModifyTask"); if (null == m_ModifyTaskInterfaceHelper) { return; } TaskBundle bundle = TryFindTaskData(m_SelectedObjTaskID); if (null != bundle) { // uploading apply change to task TaskBundle modifyBundle = TaskBundleHelper.CopyFromModifyTaskInterfaceHelper(m_ModifyTaskInterfaceHelper, bundle); TaskAddRequest fetchReq = new TaskAddRequest(); fetchReq.UpdateSerial = TaskMauerStaticData.GetUpdateSerial(); fetchReq.ProjectKey = m_ProjectKey; fetchReq.Task = modifyBundle; StartCoroutine(StartRequestModifyTask(fetchReq)); } HideModifyTaskInterface(); }
void SetTaskVisual3DFromBundle(GameObject obj, TaskBundle bundle) { if (null == obj) { return; } if (null == bundle) { return; } if (bundle.Relation.ParentID != 0) { TaskVisualObj visualParent = TryFindTaskVisual(bundle.Relation.ParentID); if (null != visualParent) { obj.transform.SetParent(visualParent.m_3DObj.transform); } } if (bundle.Visual.PositionStr != string.Empty) { obj.transform.localPosition = TaskBundleHelper.ParsePositionStr(bundle.Visual.PositionStr); } }
public static TaskBundle CreateABundleInstance() { TaskBundle ret = new TaskBundle(); TaskBundleHelper.TryInitalizeBundleInstance(ret); return(ret); }
public static TaskBundle CopyFromModifyTaskInterfaceHelper(ModifyTaskInterfaceHelper ui, TaskBundle srcBundle) { TaskBundle modifyBundle = new TaskBundle(); modifyBundle.Data = new TaskData(); modifyBundle.Relation = new TaskRelation(); modifyBundle.Visual = new TaskVisual(); CopyBundle(srcBundle, modifyBundle); modifyBundle.Data.Title = ui.m_TitleInput.text; modifyBundle.Data.Assignee = ui.m_AssigneeInput.text; modifyBundle.Data.Link = ui.m_LinkInput.text; modifyBundle.Data.Type = ui.m_TypeDropDown.value; modifyBundle.Data.ProgressInt = ui.m_ProgressIntDropDown.value; modifyBundle.Data.ProgressFloat = ui.m_ProgressFloatSlider.value; int parentID = 0; int.TryParse(ui.m_ParentInput.text, out parentID); modifyBundle.Relation.ParentID = parentID; modifyBundle.Visual.IsPin = ui.m_IsPin.isOn; return(modifyBundle); }
void AddTaskCalculatorFromTaskBundle(TaskBundle bundle) { TaskPositionHelper helper = InsertTaskPositionHelper(bundle); if (null != helper) { helper.DepthToRoot = FindDepthToRootByThisNode(m_TaskCalculator, bundle.Data.TaskID); CalculateParentDepthTilParent(m_TaskCalculator, helper, helper.DepthToRoot); CalculateYSpaceFromParentDepth(helper); CalculateXSpace(m_TaskData, helper); helper.IsSetPosition = (helper.Bundle.Visual.PositionStr != string.Empty); CheckAndAssignRowIndex(m_TaskCalculator, helper); List <int> sortingArray = new List <int>(); if (0 != bundle.Relation.ParentID) { // sor sortingArray = CreateSortingArrayForParentIDSet(m_TaskData, bundle.Relation.ParentID); SetParentAndLocalPositionInArray(m_TaskData, m_TaskCalculator, sortingArray); } else { Debug.Log("bundle.Visual.PositionStr=" + bundle.Visual.PositionStr); if (bundle.Visual.PositionStr != string.Empty) { TaskVisualObj visual = TryFindTaskVisual(bundle.Data.TaskID); if (null != visual) { SetTaskVisual3DFromBundle(visual.m_3DObj, bundle); } } else { bool addRowMaxY = false; sortingArray = CreateSortingArrayForEachRowIndex(m_TaskData, m_TaskCalculator, helper.RowIndex); if (!m_RowToPosY.ContainsKey(helper.RowIndex)) { addRowMaxY = true; m_RowToPosY.Add(helper.RowIndex, m_RowMaxYNow); } float maxYSpace = 0; SetLocalPositionInArray(sortingArray, m_RowToPosY[helper.RowIndex], out maxYSpace); if (addRowMaxY) { m_RowMaxYNow += maxYSpace; } } } } }
void AddTask(TaskBundle bundleData) { string assignee = bundleData.Data.Assignee; if (string.Empty != bundleData.Data.Assignee && -1 == m_ExistAssignee.IndexOf(assignee)) { m_ExistAssignee.Add(assignee); } m_TaskData.Add(bundleData.Data.TaskID, bundleData); }
/** * Check m_TaskVisuals Call CreateTaskVisualObjByTaskBundle() to create TaskVisual */ void CheckAndCreateTaskObj(TaskBundle bundleData) { if (null == bundleData) { return; } if (!m_TaskVisuals.ContainsKey(bundleData.Data.TaskID)) { CreateTaskVisualObjByTaskBundle(bundleData); } }
TaskPositionHelper InsertTaskPositionHelper(TaskBundle bundle) { if (null != bundle) { m_TaskCalculator.Add(bundle.Data.TaskID, new TaskPositionHelper { Bundle = bundle }); return(m_TaskCalculator[bundle.Data.TaskID]); } return(null); }
public static void TryInitalizeBundleInstance(TaskBundle budnle) { if (null == budnle.Data) { budnle.Data = new TaskData(); } if (null == budnle.Relation) { budnle.Relation = new TaskRelation(); } if (null == budnle.Visual) { budnle.Visual = new TaskVisual(); } }
void SelectATask(int selectTaskID) { m_SelectedObjTaskID = selectTaskID; TaskBundle bundle = TryFindTaskData(m_SelectedObjTaskID); TaskVisualObj visual = TryFindTaskVisual(m_SelectedObjTaskID); if (null != visual) { FetchDataToEditor(bundle); ShowSelectionGUI(true); UpdateSelectionGUI(visual); } ShowModifyTaskInterface(); }
public static void CopyBundle(TaskBundle input, TaskBundle dest) { dest.Data.TaskID = input.Data.TaskID; dest.Data.Title = input.Data.Title; dest.Data.Assignee = input.Data.Assignee; dest.Data.Link = input.Data.Link; dest.Data.Type = input.Data.Type; dest.Data.ProgressFloat = input.Data.ProgressFloat; dest.Data.ProgressInt = input.Data.ProgressInt; dest.Relation.ParentID = input.Relation.ParentID; dest.Relation.SetRelatives(input.Relation.GetTaskRelative()); dest.Relation.NeedFollowID = input.Relation.NeedFollowID; dest.Visual.PositionStr = input.Visual.PositionStr; dest.Visual.IsPin = input.Visual.IsPin; }
void UpdateTaskBundle(TaskBundle inputBundle) { if (null == inputBundle) { return; } int taskID = inputBundle.Data.TaskID; TaskBundle previousBundle = TryFindTaskData(taskID); TaskVisualObj previousVisual = TryFindTaskVisual(taskID); TaskBundle targetBundleData = null; if (null == previousVisual || null == previousBundle) { if (null != previousVisual || null != previousBundle) { // fatal error. return; } } if (null != previousBundle) { Debug.LogWarning("null != previousBundle"); targetBundleData = previousBundle; TaskBundleHelper.CopyBundle(inputBundle, targetBundleData); // update visual data SetTaskVisualDataFromBundle(previousVisual.m_2DHelper, targetBundleData); // update position SetTaskVisual3DFromBundle(previousVisual.m_3DObj, targetBundleData); } else { Debug.LogWarning("new bundle data"); targetBundleData = TaskBundleHelper.CreateABundleInstance(); TaskBundleHelper.CopyBundle(inputBundle, targetBundleData); CheckAndCreateTaskObj(targetBundleData); AddTask(targetBundleData); AddTaskCalculatorFromTaskBundle(targetBundleData); } }
void SortVisualTaskInARow(List <int> sortingIndexInARow) { for (int i = 0; i < sortingIndexInARow.Count; ++i) { for (int j = i + 1; j < sortingIndexInARow.Count; ++j) { TaskBundle taskI = m_TaskData[sortingIndexInARow[i]]; TaskBundle taskJ = m_TaskData[sortingIndexInARow[j]]; // check time if (taskI.Data.TimeStamp > taskJ.Data.TimeStamp) { } else if (taskI.Data.TimeStamp == taskJ.Data.TimeStamp) { // check relation } } } }
void FetchDataToEditor(TaskBundle bundle) { Debug.Log("FetchDataToEditor"); if (null == bundle) { return; } if (null == m_ModifyTaskInterfaceHelper) { return; } m_ModifyTaskInterfaceHelper.m_TaskID.text = bundle.Data.TaskID.ToString(); m_ModifyTaskInterfaceHelper.m_TitleInput.text = bundle.Data.Title; m_ModifyTaskInterfaceHelper.m_AssigneeInput.text = bundle.Data.Assignee; m_ModifyTaskInterfaceHelper.m_LinkInput.text = bundle.Data.Link; m_ModifyTaskInterfaceHelper.m_TypeDropDown.value = bundle.Data.Type; m_ModifyTaskInterfaceHelper.SetProgressFloat(bundle.Data.ProgressFloat); m_ModifyTaskInterfaceHelper.m_ProgressIntDropDown.value = bundle.Data.ProgressInt; m_ModifyTaskInterfaceHelper.m_ParentInput.text = bundle.Relation.ParentID.ToString(); m_ModifyTaskInterfaceHelper.m_IsPin.isOn = bundle.Visual.IsPin; }
public static TaskBundle CopyFromAddTaskInterfaceHelper(AddTaskInterfaceHelper ui) { TaskBundle bundleData = new TaskBundle(); bundleData.Data = new TaskData(); bundleData.Relation = new TaskRelation(); bundleData.Data.Title = ui.m_TitleInput.text; bundleData.Data.Assignee = ui.m_AssigneeInput.text; bundleData.Data.Link = ui.m_LinkInput.text; bundleData.Data.Type = ui.m_TypeDropDown.value; bundleData.Data.ProgressInt = ui.m_ProgressIntDropDown.value; bundleData.Data.ProgressFloat = ui.m_ProgressFloatSlider.value; int parentID = 0; int.TryParse(ui.m_ParentInput.text, out parentID); bundleData.Relation.ParentID = parentID; return(bundleData); }
void CreateTaskVisualObjByTaskBundle(TaskBundle bundleData) { TaskVisualObj visual = new TaskVisualObj(); visual.m_3DObj = GameObject.Instantiate(m_Task3DPrefab, m_Task3DParent.transform); visual.m_3DObj.name = bundleData.Data.TaskID.ToString(); // init 2d var obj2d = GameObject.Instantiate(m_Task2DPrefab, m_Task2DParent.transform); obj2d.name = visual.m_3DObj.name; visual.m_2DHelper = obj2d.AddComponent <TaskVidual2DObjectHelper>(); visual.m_2DHelper.Setup(); visual.m_2DHelper.OnPressSwitchButton += TaskVisual2DObjectOnPressSwitchButton; SetTaskVisualDataFromBundle(visual.m_2DHelper, bundleData); var task2dupdate = obj2d.AddComponent <Task2DUpdateWith3D>(); task2dupdate.Setup(visual.m_3DObj, m_3DCamera); m_TaskVisuals.Add(bundleData.Data.TaskID, visual); }
void InitalizeLocalTestData() { int id = 0; /* ### Task1 ### Task2 Member1 ### Task3 parent Task2 ### Task4 relative Task1 ### Task5 Member2 ### Task6 Member3 ### Task7 parent Task3 ### Task8 PositionStr ### Task9 parent Task3 PositionStr ### Task10 follow Task4 ### */ ++id; // zero is not a valid taskid int task1ID = 0; int task2ID = 0; int task3ID = 0; { TaskBundle bundleData = TaskBundleHelper.CreateABundleInstance(); bundleData.Data.TaskID = id++; task1ID = bundleData.Data.TaskID; bundleData.Data.Title = "Task1"; bundleData.Data.Link = "www.google.com.tw"; bundleData.Data.Type = (int)TaskType.Art; CheckAndCreateTaskObj(bundleData); AddTask(bundleData); } { TaskBundle bundleData = TaskBundleHelper.CreateABundleInstance(); task2ID = bundleData.Data.TaskID = id++; bundleData.Data.Title = "Task2"; bundleData.Data.Assignee = "Member1"; bundleData.Data.Link = "www.google.com.tw"; bundleData.Data.Type = (int)TaskType.Art; CheckAndCreateTaskObj(bundleData); AddTask(bundleData); } { TaskBundle bundleData = TaskBundleHelper.CreateABundleInstance(); task3ID = bundleData.Data.TaskID = id++; bundleData.Data.Title = "Task3"; bundleData.Relation.ParentID = task1ID; // task1 bundleData.Data.Link = "www.google.com.tw"; bundleData.Data.Type = (int)TaskType.Art; CheckAndCreateTaskObj(bundleData); AddTask(bundleData); } { TaskBundle bundleData = TaskBundleHelper.CreateABundleInstance(); bundleData.Data.TaskID = id++; bundleData.Data.Title = "Task4"; var relatives = new TaskRelative[1]; relatives[0] = new TaskRelative(); relatives[0].ID = 0; bundleData.Relation.SetRelatives(relatives); bundleData.Data.Link = "www.google.com.tw"; bundleData.Data.Type = (int)TaskType.Art; CheckAndCreateTaskObj(bundleData); AddTask(bundleData); } { TaskBundle bundleData = TaskBundleHelper.CreateABundleInstance(); bundleData.Data.TaskID = id++; bundleData.Data.Title = "Task5"; bundleData.Data.Assignee = "Member2"; bundleData.Data.Link = "www.google.com.tw"; bundleData.Data.Type = (int)TaskType.Art; CheckAndCreateTaskObj(bundleData); AddTask(bundleData); } { TaskBundle bundleData = TaskBundleHelper.CreateABundleInstance(); bundleData.Data.TaskID = id++; bundleData.Data.Title = "Task6"; bundleData.Data.Assignee = "Member3"; bundleData.Data.Link = "www.google.com.tw"; bundleData.Data.Type = (int)TaskType.Art; CheckAndCreateTaskObj(bundleData); AddTask(bundleData); } { TaskBundle bundleData = TaskBundleHelper.CreateABundleInstance(); bundleData.Data.TaskID = id++; bundleData.Data.Title = "Task7"; bundleData.Data.Link = "www.google.com.tw"; bundleData.Data.Type = (int)TaskType.Art; bundleData.Relation.ParentID = task3ID; // task3ID CheckAndCreateTaskObj(bundleData); AddTask(bundleData); } { TaskBundle bundleData = TaskBundleHelper.CreateABundleInstance(); bundleData.Data.TaskID = id++; bundleData.Data.Title = "Task8"; bundleData.Data.Type = (int)TaskType.Art; bundleData.Visual.PositionStr = "2.0,0.5,0"; CheckAndCreateTaskObj(bundleData); AddTask(bundleData); } { TaskBundle bundleData = TaskBundleHelper.CreateABundleInstance(); bundleData.Data.TaskID = id++; bundleData.Data.Title = "Task9"; bundleData.Data.Type = (int)TaskType.Art; bundleData.Visual.PositionStr = "3.0,0.5,0"; bundleData.Relation.ParentID = task2ID; // task2ID CheckAndCreateTaskObj(bundleData); AddTask(bundleData); } }