home *** CD-ROM | disk | FTP | other *** search
/ PC World 2001 March / PCWorld_2001-03_cd.bin / Software / Topware / aspedit / _SETUP.1 / IndentedWriter.cs < prev    next >
Text File  |  2000-06-23  |  7KB  |  193 lines

  1. /*=====================================================================
  2.   File:      IndentedWriter.cool
  3.  
  4.   Summary:   Utility class used to provide basic text out services that 
  5.              can be indented.
  6.  
  7.   Classes:   FindType
  8.              Indented Writer
  9.  
  10.   Origin:    COM+ 2.0 Samples Team
  11.  
  12. ---------------------------------------------------------------------
  13.   This file is part of the Microsoft COM+ 2.0 SDK Code Samples.
  14.  
  15.   Copyright (C) 1999 Microsoft Corporation.  All rights reserved.
  16.  
  17. This source code is intended only as a supplement to Microsoft
  18. Development Tools and/or on-line documentation.  See these other
  19. materials for detailed information regarding Microsoft code samples.
  20.  
  21. THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  22. KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  23. IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  24. PARTICULAR PURPOSE.
  25. =====================================================================*/
  26. namespace Microsoft.Samples.Reflection
  27. {    
  28.     using System;
  29.     using System.IO;
  30.     using System.Text;
  31.  
  32.     /*=====================================================================
  33.       Class:    Indented Writer
  34.  
  35.       Summary:  Utility class that performs basic text output operations 
  36.                 that can be indented via "push" and "pop". The text writer
  37.                 used to write information out can be changed by setting the 
  38.                 appropriate property. The default text writer is
  39.                 System.Console.Out.
  40.                 
  41.     =====================================================================*/
  42.     public class IndentedWriter 
  43.     {
  44.         private TextWriter myTextWriter = Console.Out;
  45.         private bool       myPrintFlag  = true;
  46.         private int        myIndent     = 0;
  47.         
  48.         
  49.         /*=====================================================================
  50.           [Public] Property: Print
  51.  
  52.           Type:    Boolean  
  53.  
  54.           Description:   Controls whether printing is performed or not. This can 
  55.                          be useful for clients that require a "verbose" writer 
  56.                          that only displays information when the verbose mode is
  57.                          set.
  58.         =====================================================================*/
  59.         public bool Print
  60.         {
  61.             get { return myPrintFlag; }
  62.             set { myPrintFlag = value; }
  63.         }
  64.  
  65.         /*=====================================================================
  66.           [Public] Property: TextWriter
  67.  
  68.           Type:    TextWriter  
  69.  
  70.           Description:   Sets the TextWriter to use when writing strings out.
  71.         =====================================================================*/
  72.         public TextWriter TextWriter
  73.         {
  74.             get { return myTextWriter; }
  75.             set { myTextWriter = value; }
  76.         }
  77.         
  78.         /*=====================================================================
  79.           [Public] Method: PushIndent 
  80.           
  81.           Description:   Pushs the current indent.
  82.         =====================================================================*/
  83.         public void PushIndent()
  84.         {
  85.             myIndent += 2;
  86.         }
  87.         
  88.         /*=====================================================================
  89.           [Public] Method: PopIndent 
  90.  
  91.           Description:   Pushs the current indent.
  92.         =====================================================================*/
  93.         public void PopIndent()
  94.         {
  95.             if (myIndent > 0)
  96.             {
  97.                 myIndent -= 2;
  98.             }
  99.         }
  100.         
  101.         /*=====================================================================
  102.           [Public] Method: WriteLine 
  103.  
  104.           Description:   Writes out an empty line.
  105.         =====================================================================*/
  106.         public void WriteLine()
  107.         {
  108.             WriteLine("");
  109.         }
  110.         
  111.         /*=====================================================================
  112.           [Public] Method: WriteLine 
  113.  
  114.           Parameter(s)
  115.                          format The string format to use
  116.                          arg0   The first argument for the string format.
  117.                          
  118.           Description:   Writes a formatted string.
  119.         =====================================================================*/
  120.         public void WriteLine(String format, Object arg0)
  121.         {
  122.             WriteLine( String.Format(format, arg0) );
  123.         }
  124.        
  125.         /*=====================================================================
  126.           [Public] Method: WriteLine 
  127.  
  128.           Parameter(s)
  129.                          format The string format to use
  130.                          arg0   The first argument for the string format.
  131.                          arg1   The second argument for the string format.
  132.                          
  133.           Description:   Writes a formatted string.
  134.         =====================================================================*/
  135.         public void WriteLine(String format, Object arg0, Object arg1)
  136.         {
  137.             WriteLine( String.Format(format, arg0, arg1) );    
  138.         }    
  139.         
  140.         /*=====================================================================
  141.           [Public] Method: WriteLine 
  142.  
  143.           Parameter(s)
  144.                          format The string format to use
  145.                          arg0   The first argument for the string format.
  146.                          arg1   The second argument for the string format.
  147.                          arg2   The third argument for the string format.
  148.                          
  149.           Description:   Writes a formatted string.
  150.         =====================================================================*/
  151.         public  void WriteLine(String format, Object arg0, Object arg1, Object arg2)
  152.         {
  153.             WriteLine( String.Format(format, arg0, arg1, arg2) );    
  154.         }
  155.         
  156.         /*=====================================================================
  157.           [Public] Method: WriteLine 
  158.  
  159.           Parameter(s)
  160.                          format The string format to use
  161.                          arg[]  An array of arguments to be used in the string format.
  162.                          
  163.           Description:   Writes a formatted string.
  164.         =====================================================================*/
  165.         public  void WriteLine(String format, Object[] arg)
  166.         {
  167.             WriteLine( String.Format(format, arg) );    
  168.         }
  169.        
  170.         /*=====================================================================
  171.           [Public] Method: WriteLine
  172.  
  173.           Parameter(s)
  174.                          message The string to write out.
  175.                          
  176.           Description:   Writes out a string (indented it as required)
  177.         =====================================================================*/
  178.         public  void WriteLine(string message)
  179.         {
  180.             if (myPrintFlag)
  181.             {
  182.                 StringBuilder sb = new StringBuilder();
  183.                 
  184.                 for (int i = 0; i < myIndent; i++)
  185.                 {
  186.                     sb.Append(' ');
  187.                 }
  188.                 
  189.                 myTextWriter.WriteLine( sb.ToString() + message );
  190.             }
  191.         }
  192.     }
  193. }