コード例 #1
0
        /// <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();
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
ファイル: Events.cs プロジェクト: zyonet/vsSolutionBuildEvent
        /// <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();
        }
コード例 #5
0
ファイル: Events.cs プロジェクト: zyonet/vsSolutionBuildEvent
        /// <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);
        }
コード例 #6
0
ファイル: Events.cs プロジェクト: zyonet/vsSolutionBuildEvent
        /// <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);
        }