Exemple #1
0
    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;
        }
    }
Exemple #2
0
    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;
        }
    }
Exemple #5
0
 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);
 }
Exemple #6
0
    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();
    }
Exemple #7
0
    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);
        }
    }
Exemple #8
0
    public static TaskBundle CreateABundleInstance()
    {
        TaskBundle ret = new TaskBundle();

        TaskBundleHelper.TryInitalizeBundleInstance(ret);
        return(ret);
    }
Exemple #9
0
    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;
                    }
                }
            }
        }
    }
Exemple #11
0
    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);
    }
Exemple #12
0
 /**
  * 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);
 }
Exemple #14
0
 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();
     }
 }
Exemple #15
0
    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();
    }
Exemple #16
0
    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;
    }
Exemple #17
0
    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
                }
            }
        }
    }
Exemple #19
0
    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;
    }
Exemple #20
0
    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);
    }
Exemple #21
0
    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);
    }
Exemple #22
0
    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);
        }
    }