コード例 #1
0
        /// <summary>
        /// Event Handler for Remove User
        /// </summary>
        private void OnRemoveUser(object o, EventArgs args)
        {
            TreeModel tModel;

            TreeSelection tSelect = UserTreeView.Selection;

            if (tSelect.CountSelectedRows() > 0)
            {
                iFolderMsgDialog dialog = new iFolderMsgDialog(
                    topLevelWindow,
                    iFolderMsgDialog.DialogType.Question,
                    iFolderMsgDialog.ButtonSet.YesNo,
                    "",
                    Util.GS("Remove the selected users?"),
                    Util.GS("This will remove the selected users from this iFolder.  They will no longer be able to synchronize files with this iFolder."));
                int rc = dialog.Run();
                dialog.Hide();
                dialog.Destroy();
                if (rc == -8)
                {
                    Queue iterQueue;
                    Array treePaths = tSelect.GetSelectedRows(out tModel);

                    iterQueue = new Queue();

                    foreach (TreePath tPath in treePaths)
                    {
                        TreeIter iter;

                        if (UserTreeStore.GetIter(out iter, tPath))
                        {
                            iterQueue.Enqueue(iter);
                        }
                    }
                    // Now that we have all of the TreeIters, loop and
                    // remove them all
                    while (iterQueue.Count > 0)
                    {
                        TreeIter iter = (TreeIter)iterQueue.Dequeue();

                        iFolderUser user =
                            (iFolderUser)tModel.GetValue(iter, 0);

                        try
                        {
                            ifws.RemoveiFolderUser(ifolder.ID,
                                                   user.UserID);
                            UserTreeStore.Remove(ref iter);
                            curUsers.Remove(user.UserID);
                        }
                        catch (Exception e)
                        {
                            iFolderExceptionDialog ied =
                                new iFolderExceptionDialog(
                                    topLevelWindow, e);
                            ied.Run();
                            ied.Hide();
                            ied.Destroy();
                            ied = null;
                        }
                    }
                }
            }
        }