Exemple #1
0
        public IceTask(IceBackend iceBackend,
						IceCategory iceCategory,
						TaskEntry taskEntry)
        {
            this.backend = iceBackend;
            this.category = iceCategory;
            this.entry = taskEntry;
            if (entry.Status == TaskStatus.Completed)
                this.state = TaskState.Completed;
            else if (entry.Status == TaskStatus.Cancelled)
                this.state = TaskState.Inactive; // TODO: Is this the right thing to do?
            else
                this.state = TaskState.Active;

            // Construct a unique id in the format of
            // <team-id>-<team-folder-id>-<task-entry-id>
            id = string.Format ("{0}-{1}-{2}",
                                iceCategory.Team.ID,
                                iceCategory.Folder.ID,
                                taskEntry.ID);
        }
Exemple #2
0
        private void LoadTasksFromCategory(IceCategory category)
        {
            TaskEntry [] taskEntries = null;
            try {
                taskEntries = deskIceDaemon.GetTaskEntries (category.Folder.ID);
            } catch (Exception e) {
                Logger.Warn ("Exception loading tasks from category: {0}", e.Message);
                return;
            }

            foreach (TaskEntry entry in taskEntries) {
                IceTask task = new IceTask (this, category, entry);
                Gtk.TreeIter iter;
                if (taskIters.ContainsKey (task.Id))
                    iter = taskIters [task.Id];
                else {
                    iter = tasks.Append ();
                    taskIters [task.Id] = iter;
                }

                tasks.SetValue (iter, 0, task);
            }
        }
Exemple #3
0
        /// <summary>
        /// Refreshes the backend.
        /// </summary>
        public void Refresh()
        {
            // TODO: Eventually don't clear out existing entries, but match up
            // the updates
            //			categories.Clear ();

            // TODO: Eventually don't clear out existing tasks, but match them
            // up with the updates
            //			tasks.Clear ();

            Teamspace [] teams = null;
            try {
                teams = deskIceDaemon.GetTeamList ();
            } catch {
                Logger.Warn ("Exception thrown getting team list");
                return;
            }

            foreach (Teamspace team in teams) {
                Logger.Debug ("Team Found: {0} ({1})", team.Name, team.ID);

                // Check to see if the team has tasks enabled
                TaskFolder [] taskFolders = null;
                try {
                    taskFolders = deskIceDaemon.GetTaskFolders (team.ID);
                } catch {
                    Logger.Warn ("Exception thrown getting task folders");
                    return;
                }

                foreach (TaskFolder taskFolder in taskFolders) {
                    // Create an IceCategory for each folder
                    IceCategory category = new IceCategory (team, taskFolder);
                    Gtk.TreeIter iter;
                    if (categoryIters.ContainsKey (category.Id))
                        iter = categoryIters [category.Id];
                    else {
                        iter = categories.Append ();
                        categoryIters [category.Id] = iter;
                    }

                    categories.SetValue (iter, 0, category);

                    LoadTasksFromCategory (category);
                }
            }

            // TODO: Wrap this in a try/catch
            if (BackendSyncFinished != null) {
                try {
                    BackendSyncFinished ();
                } catch (Exception e) {
                    Logger.Warn ("Error calling BackendSyncFinished handler: {0}", e.Message);
                }
            }
        }