/// <exception cref="ArgumentOutOfRangeException"></exception> public void removeEventItem(int index) { cacheToRemove(SBE.evt[index].Mode); switch (SBE.type) { case SolutionEventType.Common: case SolutionEventType.CommandEvent: case SolutionEventType.OWP: { SlnEvents.Event = SlnEvents.Event.GetWithRemoved(index); break; } } SBE.update(); }
/// <exception cref="ArgumentOutOfRangeException"></exception> public void moveEventItem(int from, int to) { if (from == to) { return; } switch (SBE.type) { case SolutionEventType.Common: case SolutionEventType.CommandEvent: case SolutionEventType.OWP: { SlnEvents.Event = SlnEvents.Event.GetWithMoved(from, to); break; } } SBE.update(); setEventIndexes(to); }
/// <param name="copy">Cloning the event-item at the specified index</param> /// <returns>added item</returns> public ISolutionEvent addEventItem(int copy = -1) { ISolutionEvent added; bool isNew = (copy >= SBE.evt.Count || copy < 0); switch (SBE.type) { case SolutionEventType.Common: case SolutionEventType.CommandEvent: case SolutionEventType.OWP: { var evt = (isNew)? new Event() : SBE.evt[copy].CloneBySerializationWithType <ISolutionEvent, Event>(); SlnEvents.Event = SlnEvents.Event.GetWithAdded(evt); added = evt; break; } default: { throw new InvalidArgumentException("Unsupported SolutionEventType: '{0}'", SBE.type); } } SBE.update(); // fix new data if (isNew) { added.Name = UniqueNameForAction; return(added); } added.Caption = String.Format("Copy of '{0}' - {1}", added.Name, added.Caption); added.Name = genUniqueName(ACTION_PREFIX_CLONE + added.Name, SBE.evt); cacheUnlink(added.Mode); return(added); }
/// <exception cref="ArgumentOutOfRangeException"></exception> public void removeEventItem(int index) { cacheToRemove(SBE.evt[index].Mode); switch (SBE.type) { case SolutionEventType.Pre: { SlnEvents.PreBuild = SlnEvents.PreBuild.GetWithRemoved(index); break; } case SolutionEventType.Post: { SlnEvents.PostBuild = SlnEvents.PostBuild.GetWithRemoved(index); break; } case SolutionEventType.Cancel: { SlnEvents.CancelBuild = SlnEvents.CancelBuild.GetWithRemoved(index); break; } case SolutionEventType.OWP: { SlnEvents.OWPBuild = SlnEvents.OWPBuild.GetWithRemoved(index); break; } case SolutionEventType.Warnings: { SlnEvents.WarningsBuild = SlnEvents.WarningsBuild.GetWithRemoved(index); break; } case SolutionEventType.Errors: { SlnEvents.ErrorsBuild = SlnEvents.ErrorsBuild.GetWithRemoved(index); break; } case SolutionEventType.Transmitter: { SlnEvents.Transmitter = SlnEvents.Transmitter.GetWithRemoved(index); break; } case SolutionEventType.CommandEvent: { SlnEvents.CommandEvent = SlnEvents.CommandEvent.GetWithRemoved(index); break; } case SolutionEventType.SlnOpened: { SlnEvents.SlnOpened = SlnEvents.SlnOpened.GetWithRemoved(index); break; } case SolutionEventType.SlnClosed: { SlnEvents.SlnClosed = SlnEvents.SlnClosed.GetWithRemoved(index); break; } case SolutionEventType.Logging: { SlnEvents.Logging = SlnEvents.Logging.GetWithRemoved(index); break; } } SBE.update(); }
/// <exception cref="ArgumentOutOfRangeException"></exception> public void moveEventItem(int from, int to) { if (from == to) { return; } switch (SBE.type) { case SolutionEventType.Pre: { SlnEvents.PreBuild = SlnEvents.PreBuild.GetWithMoved(from, to); break; } case SolutionEventType.Post: { SlnEvents.PostBuild = SlnEvents.PostBuild.GetWithMoved(from, to); break; } case SolutionEventType.Cancel: { SlnEvents.CancelBuild = SlnEvents.CancelBuild.GetWithMoved(from, to); break; } case SolutionEventType.OWP: { SlnEvents.OWPBuild = SlnEvents.OWPBuild.GetWithMoved(from, to); break; } case SolutionEventType.Warnings: { SlnEvents.WarningsBuild = SlnEvents.WarningsBuild.GetWithMoved(from, to); break; } case SolutionEventType.Errors: { SlnEvents.ErrorsBuild = SlnEvents.ErrorsBuild.GetWithMoved(from, to); break; } case SolutionEventType.Transmitter: { SlnEvents.Transmitter = SlnEvents.Transmitter.GetWithMoved(from, to); break; } case SolutionEventType.CommandEvent: { SlnEvents.CommandEvent = SlnEvents.CommandEvent.GetWithMoved(from, to); break; } case SolutionEventType.SlnOpened: { SlnEvents.SlnOpened = SlnEvents.SlnOpened.GetWithMoved(from, to); break; } case SolutionEventType.SlnClosed: { SlnEvents.SlnClosed = SlnEvents.SlnClosed.GetWithMoved(from, to); break; } case SolutionEventType.Logging: { SlnEvents.Logging = SlnEvents.Logging.GetWithMoved(from, to); break; } } SBE.update(); setEventIndexes(currentEventIndex, to); }
/// <param name="copy">Cloning the event-item at the specified index</param> /// <returns>added item</returns> public ISolutionEvent addEventItem(int copy = -1) { ISolutionEvent added; bool isNew = (copy >= SBE.evt.Count || copy < 0); switch (SBE.type) { case SolutionEventType.Pre: { var evt = (isNew)? new SBEEvent() : SBE.evt[copy].CloneBySerializationWithType <ISolutionEvent, SBEEvent>(); SlnEvents.PreBuild = SlnEvents.PreBuild.GetWithAdded(evt); added = evt; break; } case SolutionEventType.Post: { var evt = (isNew)? new SBEEvent() : SBE.evt[copy].CloneBySerializationWithType <ISolutionEvent, SBEEvent>(); SlnEvents.PostBuild = SlnEvents.PostBuild.GetWithAdded(evt); added = evt; break; } case SolutionEventType.Cancel: { var evt = (isNew) ? new SBEEvent() : SBE.evt[copy].CloneBySerializationWithType <ISolutionEvent, SBEEvent>(); SlnEvents.CancelBuild = SlnEvents.CancelBuild.GetWithAdded(evt); added = evt; break; } case SolutionEventType.OWP: { var evt = (isNew)? new SBEEventOWP() : SBE.evt[copy].CloneBySerializationWithType <ISolutionEvent, SBEEventOWP>(); SlnEvents.OWPBuild = SlnEvents.OWPBuild.GetWithAdded(evt); added = evt; break; } case SolutionEventType.Warnings: { var evt = (isNew)? new SBEEventEW() : SBE.evt[copy].CloneBySerializationWithType <ISolutionEvent, SBEEventEW>(); SlnEvents.WarningsBuild = SlnEvents.WarningsBuild.GetWithAdded(evt); added = evt; break; } case SolutionEventType.Errors: { var evt = (isNew)? new SBEEventEW() : SBE.evt[copy].CloneBySerializationWithType <ISolutionEvent, SBEEventEW>(); SlnEvents.ErrorsBuild = SlnEvents.ErrorsBuild.GetWithAdded(evt); added = evt; break; } case SolutionEventType.Transmitter: { var evt = (isNew)? new SBETransmitter() : SBE.evt[copy].CloneBySerializationWithType <ISolutionEvent, SBETransmitter>(); SlnEvents.Transmitter = SlnEvents.Transmitter.GetWithAdded(evt); added = evt; break; } case SolutionEventType.CommandEvent: { var evt = (isNew)? new CommandEvent() : SBE.evt[copy].CloneBySerializationWithType <ISolutionEvent, CommandEvent>(); SlnEvents.CommandEvent = SlnEvents.CommandEvent.GetWithAdded(evt); added = evt; break; } case SolutionEventType.SlnOpened: { var evt = (isNew)? new SBEEvent() : SBE.evt[copy].CloneBySerializationWithType <ISolutionEvent, SBEEvent>(); SlnEvents.SlnOpened = SlnEvents.SlnOpened.GetWithAdded(evt); added = evt; break; } case SolutionEventType.SlnClosed: { var evt = (isNew)? new SBEEvent() : SBE.evt[copy].CloneBySerializationWithType <ISolutionEvent, SBEEvent>(); SlnEvents.SlnClosed = SlnEvents.SlnClosed.GetWithAdded(evt); added = evt; break; } case SolutionEventType.Logging: { var evt = (isNew)? new LoggingEvent() { Process = new EventProcess() { Waiting = false // is better for performance } } : SBE.evt[copy].CloneBySerializationWithType <ISolutionEvent, LoggingEvent>(); SlnEvents.Logging = SlnEvents.Logging.GetWithAdded(evt); added = evt; break; } default: { throw new InvalidArgumentException("Unsupported SolutionEventType: '{0}'", SBE.type); } } SBE.update(); // fix new data if (isNew) { added.Name = UniqueNameForAction; return(added); } added.Caption = String.Format("Copy of '{0}' - {1}", added.Name, added.Caption); added.Name = genUniqueName(ACTION_PREFIX_CLONE + added.Name, SBE.evt); cacheUnlink(added.Mode); return(added); }