}         // RtfInterpreterBase

        // ----------------------------------------------------------------------
        public void AddInterpreterListener(IRtfInterpreterListener listener)
        {
            if (listener == null)
            {
                throw new ArgumentNullException("listener");
            }
            if (listeners == null)
            {
                listeners = new ArrayList();
            }
            if (!listeners.Contains(listener))
            {
                listeners.Add(listener);
            }
        }         // AddInterpreterListener
 // ----------------------------------------------------------------------
 public void AddInterpreterListener( IRtfInterpreterListener listener )
 {
     if ( listener == null )
     {
         throw new ArgumentNullException( "listener" );
     }
     if ( listeners == null )
     {
         listeners = new ArrayList();
     }
     if ( !listeners.Contains( listener ) )
     {
         listeners.Add( listener );
     }
 }
 // ----------------------------------------------------------------------
 public static IRtfDocument BuildDoc( IRtfGroup rtfDocument, params IRtfInterpreterListener[] listeners )
 {
     RtfInterpreterListenerDocumentBuilder docBuilder = new RtfInterpreterListenerDocumentBuilder();
     IRtfInterpreterListener[] allListeners;
     if ( listeners == null )
     {
         allListeners = new IRtfInterpreterListener[] { docBuilder };
     }
     else
     {
         allListeners = new IRtfInterpreterListener[ listeners.Length + 1 ];
         allListeners[ 0 ] = docBuilder;
         listeners.CopyTo( allListeners, 1 );
     }
     Interpret( rtfDocument, allListeners );
     return docBuilder.Document;
 }
        }         // AddInterpreterListener

        // ----------------------------------------------------------------------
        public void RemoveInterpreterListener(IRtfInterpreterListener listener)
        {
            if (listener == null)
            {
                throw new ArgumentNullException("listener");
            }
            if (listeners != null)
            {
                if (listeners.Contains(listener))
                {
                    listeners.Remove(listener);
                }
                if (listeners.Count == 0)
                {
                    listeners = null;
                }
            }
        }         // RemoveInterpreterListener
        }         // BuildDoc

        // ----------------------------------------------------------------------
        public static IRtfDocument BuildDoc(IRtfGroup rtfDocument, params IRtfInterpreterListener[] listeners)
        {
            RtfInterpreterListenerDocumentBuilder docBuilder = new RtfInterpreterListenerDocumentBuilder();

            IRtfInterpreterListener[] allListeners;
            if (listeners == null)
            {
                allListeners = new IRtfInterpreterListener[] { docBuilder };
            }
            else
            {
                allListeners    = new IRtfInterpreterListener[listeners.Length + 1];
                allListeners[0] = docBuilder;
                listeners.CopyTo(allListeners, 1);
            }
            Interpret(rtfDocument, allListeners);
            return(docBuilder.Document);
        }         // BuildDoc
示例#6
0
		} // AddInterpreterListener

		// ----------------------------------------------------------------------
		public void RemoveInterpreterListener( IRtfInterpreterListener listener )
		{
			if ( listener == null )
			{
				throw new ArgumentNullException( "listener" );
			}
			if ( this.listeners != null )
			{
				if ( this.listeners.Contains( listener ) )
				{
					this.listeners.Remove( listener );
				}
				if ( this.listeners.Count == 0 )
				{
					this.listeners = null;
				}
			}
		} // RemoveInterpreterListener