Beispiel #1
0
 public void SubmitCharacterCrowdRename(object state)
 {
     if (this.OriginalName != null)
     {
         string updatedName = ControlUtilities.GetTextFromControlObject(state);
         bool   isDuplicate = false;
         if (IsUpdatingCharacter)
         {
             isDuplicate = SelectedCharacterCrowdMember.CheckIfNameIsDuplicate(updatedName, null);
         }
         else
         {
             isDuplicate = SelectedCrowdMember.CheckIfNameIsDuplicate(updatedName, this.CrowdRepository.Crowds);
         }
         if (!isDuplicate)
         {
             RenameCrowdMember(updatedName);
             OnEditModeLeave(state, null);
         }
         else
         {
             System.Windows.MessageBox.Show("The name already exists. Please choose another name!");
             this.CancelEditMode(state);
         }
     }
 }
Beispiel #2
0
        public void RenameCrowdMember(string updatedName)
        {
            CrowdMember renamedMember = null;

            if (this.OriginalName == updatedName)
            {
                OriginalName = null;
                return;
            }
            if (this.IsUpdatingCharacter)
            {
                if (SelectedCharacterCrowdMember == null)
                {
                    return;
                }
                SelectedCharacterCrowdMember.Rename(updatedName);
                renamedMember = SelectedCharacterCrowdMember;
                this.SelectedCrowdMember.SortMembers();
                this.OriginalName = null;
            }
            else
            {
                if (SelectedCrowdMember == null)
                {
                    return;
                }
                SelectedCrowdMember.Rename(updatedName);
                renamedMember = SelectedCrowdMember;
                this.CrowdRepository.SortCrowds();
                this.OriginalName = null;
            }
            this.EventAggregator.PublishOnUIThread(new RenameCrowdMemberEvent(renamedMember, this));
        }
Beispiel #3
0
        public void DeleteCrowdMember()
        {
            // Lock character crowd Tree from updating;
            this.LockTreeUpdate(true);
            CrowdMember deletedMember = null;

            // Determine if Character or Crowd is to be deleted
            if (SelectedCharacterCrowdMember != null) // Delete Character
            {
                if (SelectedCharacterCrowdMember.RosterParent != null && SelectedCharacterCrowdMember.RosterParent.Name == SelectedCrowdMember.Name)
                {
                    deletedMember = SelectedCharacterCrowdMember;
                }
                // Delete the Character from all occurances of this crowd
                SelectedCrowdMember.RemoveMember(SelectedCharacterCrowdMember);
            }
            else // Delete Crowd
            {
                //If it is a nested crowd, just delete it from the parent
                if (this.SelectedCrowdParent != null)
                {
                    SelectedCrowdParent.RemoveMember(SelectedCrowdMember);
                }
                else // Delete it from the repo altogether
                {
                    this.CrowdRepository.RemoveCrowd(SelectedCrowdMember);
                    deletedMember = SelectedCrowdMember;
                }
            }

            // UnLock character crowd Tree from updating;
            this.LockTreeUpdate(false);
            // Update character crowd if necessary
            if (this.lastCharacterCrowdStateToUpdate != null)
            {
                this.SetSelectedCrowdMember(lastCharacterCrowdStateToUpdate);
                this.lastCharacterCrowdStateToUpdate = null;
            }
            // Fire event so that roster and char editor can update themselves
            if (deletedMember != null)
            {
                this.EventAggregator.PublishOnUIThread(new DeleteCrowdMemberEvent(deletedMember));
            }
            if (this.SelectedCrowdMember != null)
            {
                OnExpansionUpdateNeeded(this.SelectedCrowdMember, new CustomEventArgs <ExpansionUpdateEvent> {
                    Value = ExpansionUpdateEvent.Delete
                });
            }
        }