예제 #1
0
        /// <summary>
        ///   returns a replica of this runtime event
        /// </summary>
        internal RunTimeEvent replicate()
        {
            RunTimeEvent newRtEvt = (RunTimeEvent)MemberwiseClone();

            newRtEvt.setTimestamp();
            return(newRtEvt);
        }
예제 #2
0
 /// <summary>
 ///   CTOR - creates a new run time event by copying the member variables of a given
 ///   event and the member variables of a given run time event
 /// </summary>
 /// <param name = "evt">a reference to the event to be used </param>
 /// <param name = "rtEvt">a reference to the run time event to be used </param>
 internal RunTimeEvent(Event evt, RunTimeEvent rtEvt)
     : base(evt)
 {
     _taskTag           = rtEvt._taskTag;
     _task              = rtEvt._task;
     Control            = rtEvt.Control;
     _eventFld          = rtEvt._eventFld;
     _mgdId             = rtEvt._mgdId;
     _displayLine       = rtEvt._displayLine;
     _reversibleExit    = rtEvt._reversibleExit;
     _argList           = rtEvt._argList;
     _immediate         = rtEvt._immediate;
     _mprgCreator       = rtEvt._mprgCreator;
     _priority          = rtEvt._priority;
     _guiTriggeredEvent = rtEvt._guiTriggeredEvent;
     _isIdleTimer       = rtEvt._isIdleTimer;
     _val            = rtEvt._val;
     _selectionStart = rtEvt._selectionStart;
     _selectionEnd   = rtEvt._selectionEnd;
     _controlsList   = rtEvt._controlsList;
     _direction      = rtEvt._direction;
     _dotNetObject   = rtEvt._dotNetObject;
     DotNetArgs      = rtEvt.DotNetArgs;
     LastFocusedVal  = rtEvt.LastFocusedVal;
     _imeParam       = rtEvt._imeParam;
 }
예제 #3
0
        /// <summary>
        ///   implementing comparator, the events are compared by priority
        /// </summary>
        public int CompareTo(object obj)
        {
            RunTimeEvent otherEvent    = (RunTimeEvent)obj;
            Priority     otherPriority = otherEvent._priority;
            int          result        = otherPriority - _priority;

            if (result == 0)
            {
                result = (int)(_timestamp - otherEvent._timestamp);
            }
            return(result);
        }
예제 #4
0
        /// <summary>
        ///   init the position to start a new chain of search
        /// </summary>
        internal void init(RunTimeEvent rtEvent)
        {
            _rtEvt = rtEvent;
            _task  = _rtEvt.getTask();
            if (_task.isMainProg())
            {
                //phase = PHASE_CONTROL_NON_SPECIFIC;
                _prevTask = _rtEvt.getMainPrgCreator();
                if (_prevTask != null && _prevTask.isMainProg())
                {
                    _prevTask = null;
                }
            }

            if (rtEvent.getType() == ConstInterface.EVENT_TYPE_USER_FUNC)
            {
                _phase = PHASE_CONTROL_NON_SPECIFIC;
            }
            else
            {
                if (rtEvent.getType() == ConstInterface.EVENT_TYPE_USER_FUNC)
                {
                    _phase = PHASE_CONTROL_NON_SPECIFIC;
                }
                else
                {
                    _phase = PHASE_CONTROL_SPECIFIC;
                }
            }

            _orgTask     = _task;
            _orgPrevTask = _prevTask;

            _handlersTab = _task.getHandlersTab();
            if (_handlersTab == null)
            {
                goUpTaskChain();
            }
            _handlerIdx = -1;
        }
예제 #5
0
 /// <summary>
 ///   changes the current run time event and returns the next event handler
 /// </summary>
 protected internal EventHandler getNext(RunTimeEvent evt)
 {
     _rtEvt = evt;
     return(getNext());
 }