ヘッダーをスキップ
Oracle Application Server Microsoft Officeとの相互運用性開発者ガイド
10gリリース3(10.1.3.1.0)
B31842-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

A コード例

この付録の内容は次のとおりです。

A.1 AutoLoanSmartDocument.csファイルの内容

例A-1に、AutoLoanSmartDocument.csファイルの内容を示します。詳細は、4.3.3項「スマート・ドキュメント・フォームの作成」を参照してください。

例A-1 AutoLoanSmartDocument.cs

using System;
using System.IO;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Serialization;
using Microsoft.Office.Interop.SmartTag;
using Microsoft.Office.Interop.Word;

namespace AutoLoanSmartDocument
{
   //BASE CLASS
   public class clsActions : Microsoft.Office.Interop.SmartTag.ISmartDocument
   {
      //CONSTANTS
      //You need one constant for the schema namespace, one constant for each
      //of the schema elements for which you want to provide smart document controls
      //and actions, and one constant for the total number of schema elements
      //for which there are associated actions.
      //Because XML is case-sensitive, the values
      //of these constants must be exact in both spelling and case.
      //Namespace constant
      const String cNAMESPACE = "http://www.autoloan.com/ns/autoloan";
      //Element constants
      const String cAutoLoanRootElemName = cNAMESPACE + "#loanApplication";
      //Number of types (or element constants)
      const Int32 cTYPES = 2;
      public void SmartDocInitialize( string ApplicationName,
                                      object Document,
                                      string SolutionPath,
                                      string SolutionRegKeyRoot)
      {
      }
      //SmartDocXMLTypeCount
      public int SmartDocXmlTypeCount
      {
         get
         {
            String message = "SmartDocXmlTypeName" + cTYPES;
            return cTYPES;
         }
      }
      //SmartDocXMLTypeName
      public string get_SmartDocXmlTypeName(int XMLTypeID)
      {
         String strTypeName = "";
         String message = "SmartDocXmlTypeName" + XMLTypeID;
         switch (XMLTypeID) {
               case 1:
                  strTypeName = cAutoLoanRootElemName;
                  break;
               default:
                  break;
         }
         return strTypeName;
      }
      //SmartDocXMLTypeCaption
      public string get_SmartDocXmlTypeCaption(int XMLTypeID, int LocaleID)
      {
         String strTypeCaption = "";

         switch (XMLTypeID) {
            case 1:
               strTypeCaption = "Please submit loan application";
               break;
            default:
               break;
         }

         return strTypeCaption;
      }
      //ControlCount
      public int get_ControlCount(string XMLTypeName)
      {
         Int32 intNumberOfControls = 0;

         switch (XMLTypeName) {
            case cAutoLoanRootElemName:
               intNumberOfControls = 1;
               break;
            default:
               break;
         }

         return intNumberOfControls;
      }
      //ControlID
      //The ControlID for the first control you add will be 1.
      //For more information on specifying the ControlID, see the ControlID reference
      //topic in the References section of this SDK.
      public int get_ControlID(string XMLTypeName, int ControlIndex)
      {
         Int32 intControlID = 0;
         switch (XMLTypeName) {

            case cAutoLoanRootElemName:
               intControlID = 1;
               break;
            default:
               break;
         }

         return intControlID;
      }
      //ControlNameFromID
      public string get_ControlNameFromID(int ControlID)
      {
         String strControlName = "";
         strControlName = cNAMESPACE + ControlID;
         return strControlName;
      }
      //ControlCaptionFromID
      public string get_ControlCaptionFromID(int ControlID,
         string ApplicationName, int LocaleID, string Text,
         string Xml, object Target)
      {
         String strControlCaption = "";
         switch (ControlID){
            case 1:
               strControlCaption = "Submit for Approval";
               break;
            default:
               break;
         }
         return strControlCaption;
      }
      //ControlTypeFromID
      public C_TYPE get_ControlTypeFromID(int ControlID,
         string ApplicationName, int LocaleID)
      {
         C_TYPE type = new C_TYPE();
         switch (ControlID)
         {
            case 1:
               type = C_TYPE.C_TYPE_BUTTON;
               break;
            default:
               break;
         }
         return type;
      }
      public void PopulateHelpContent(int ControlID,
         string ApplicationName, int LocaleID, string Text, string Xml,
         object Target, Microsoft.Office.Interop.SmartTag.ISmartDocProperties Props, ref string Content)
      {
         switch (ControlID)
         {
            case 1:
               Content = "This document is an XML smart document that submits an loan application";
               break;
            default:
               break;
         }
      }
      // OnSubmitDocument
      public void InvokeControl(int ControlID,
         string ApplicationName, object Target, string Text, string Xml, int LocaleID)
      {
         try {
            // Get the xml node
            Microsoft.Office.Interop.Word.Range objRange = (Microsoft.Office.Interop.Word.Range)Target;
            XMLNode objNode = objRange.XMLNodes[1];
            // MessageBox.Show (objNode.BaseName, "Base name",
// MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
            // MessageBox.Show (objNode.get_XML(true), "Data xml from objNode",
// MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
            // From the xml node, create a AutoLoan object for the web service input
            String xmlString = objNode.get_XML(true).ToString();
            // MessageBox.Show (xmlString, "xmlString",
// MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(xmlString);
            XmlNode root = doc.DocumentElement;
            // MessageBox.Show (root.ToString(), "loan application",
// MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
            // MessageBox.Show ("Serialization to XML doc success",
// "My Application", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
            XmlReader xmlReader = new XmlNodeReader(doc);
            XmlSerializer serializer = new XmlSerializer(typeof(LoanApplicationType));
            LoanApplicationType loanApplicationMessage = (LoanApplicationType) serializer.Deserialize(xmlReader);
            // MessageBox.Show (loanApplicationMessage.ToString(), "loan application", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
            // MessageBox.Show ("Serialization to input message success", "My Application", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
            // Invoke the web service
            AutoLoanFlowBinding autoLoanFlowBindingProxy = new AutoLoanFlowBinding();
            autoLoanFlowBindingProxy.initiate(loanApplicationMessage);
            MessageBox.Show ("The loan application was successfully submitted for approval",
                             "Application Submission Status",
                             MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
         } catch(XmlException xe){
           MessageBox.Show (xe.Message, "XML Parse Error",
                            MessageBoxButtons.OK, MessageBoxIcon.Error);
         } catch(InvalidOperationException ioe){
           MessageBox.Show (ioe.InnerException.Message, "XML Serialization Error",
                            MessageBoxButtons.OK, MessageBoxIcon.Error);
         } catch(Exception ioe){
           MessageBox.Show (ioe.Message, "XML Serialization Error",
                            MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
      }
      public void PopulateCheckbox(int ControlID, string ApplicationName,
         int LocaleID, string Text, string Xml, object Target,
         Microsoft.Office.Interop.SmartTag.ISmartDocProperties Props, ref bool Checked)
      {
         // do nothing
      }
      public void PopulateTextboxContent(int ControlID, string ApplicationName, int LocaleID,
         string Text, string Xml, object Target,
         Microsoft.Office.Interop.SmartTag.ISmartDocProperties Props, ref string Value)
      {
         // do nothing
      }
      public void PopulateListOrComboContent(int ControlID, string ApplicationName,
         int LocaleID, string Text, string Xml, object Target,
         Microsoft.Office.Interop.SmartTag.ISmartDocProperties Props, ref System.Array List,
         ref int Count, ref int InitialSelected)
      {
         switch (ControlID)
         {
            case 101:
                 Count = 6;
                 List.SetValue("AirFare", 1);
                 List.SetValue("Rental", 2);
                 List.SetValue("Hotel", 3);
                 List.SetValue("Meals", 4);
                 List.SetValue("Phone", 5);
                 List.SetValue("Other", 6);
                 InitialSelected = -1;
                 break;
            default:
              break;
         }
      }
      public void OnCheckboxChange(int ControlID, object Target, bool Checked)
      {
         // do nothing
      }
      public void OnTextboxContentChange(int ControlID, object Target, string Value)
      {
         // do nothing
      }
      public void OnListOrComboSelectChange(int ControlID, object Target, int Selected, string Value)
      {
         switch (ControlID)
         {
            case 101:
              Range objRange = (Range) Target;
              objRange.XMLNodes[1].Range.Text = Value;
              break;
            default:
              break;
         }
      }
      public void PopulateDocumentFragment(int ControlID, string ApplicationName,
         int LocaleID, string Text, string Xml, object Target,
         Microsoft.Office.Interop.SmartTag.ISmartDocProperties Props,
         ref string DocumentFragment)
      {
         // do nothing
      }
      public void PopulateActiveXProps(int ControlID, string ApplicationName,
         int LocaleID, string Text, string Xml, object Target,
         Microsoft.Office.Interop.SmartTag.ISmartDocProperties Props,
         Microsoft.Office.Interop.SmartTag.ISmartDocProperties ActiveXPropBag)
      {
         // do nothing
      }
      public void PopulateImage(int ControlID, string ApplicationName, int LocaleID,
         string Text, string Xml, object Target,
         Microsoft.Office.Interop.SmartTag.ISmartDocProperties Props,
         ref string ImageSrc)
      {
         // do nothing
      }
      public void ImageClick(int ControlID, string ApplicationName, object Target,
         string Text, string Xml, int LocaleID, int XCoordinate, int YCoordinate)
      {
         // do nothing
      }
      public void PopulateRadioGroup(int ControlID, string ApplicationName,
         int LocaleID, string Text, string Xml, object Target,
         Microsoft.Office.Interop.SmartTag.ISmartDocProperties Props,
         ref System.Array List, ref int Count, ref int InitialSelected)
      {
         // do nothing
      }
      public void OnRadioGroupSelectChange(int ControlID, object Target, int Selected, string Value)
      {
         // do nothing
      }
      public void OnPaneUpdateComplete(object Document)
      {
         // do nothing
      }
      public void PopulateOther(int ControlID, string ApplicationName,
         int LocaleID, string Text, string Xml, object Target,
         Microsoft.Office.Interop.SmartTag.ISmartDocProperties Props)
      {
         // do nothing
      }
   }
}

A.2 第4章のManagedManifest.xmlファイルの内容

例A-2に、ManagedManifest.xmlファイルの内容を示します。詳細は、4.3.3項「スマート・ドキュメント・フォームの作成」を参照してください。

例A-2 第4章のManagedManifest.xml

<SD:manifest xmlns:SD="http://schemas.microsoft.com/office/xmlexpansionpacks/2003">
  <SD:version>1.1</SD:version>
  <SD:updateFrequency>20160</SD:updateFrequency>
  <SD:uri>http://www.autoloan.com/ns/autoloan</SD:uri>
  <SD:solution>
    <SD:solutionID>AutoLoanSmartDocument.clsActions</SD:solutionID>
    <SD:type>smartDocument</SD:type>
    <SD:alias lcid="*">Smart Word Document to submit loan application for a car</SD:alias>
    <SD:file>
      <SD:type>solutionActionHandler</SD:type>
      <SD:version>1.0</SD:version>
      <SD:filePath>AutoLoanSmartDocument.dll</SD:filePath>
      <SD:CLSNAME>AutoLoanSmartDocument.clsActions</SD:CLSNAME>
      <SD:runFromServer>True</SD:runFromServer>
      <SD:managed/>
    </SD:file>
  </SD:solution>
  <SD:solution>
    <SD:solutionID>schema</SD:solutionID>
    <SD:type>schema</SD:type>
    <SD:alias lcid="*">Sample schema</SD:alias>
    <SD:file>
      <SD:type>schema</SD:type>
      <SD:version>1.0</SD:version>
      <SD:filePath>AutoLoanTypes.xsd</SD:filePath>
      <SD:runFromServer>True</SD:runFromServer>
    </SD:file>
  </SD:solution>
</SD:manifest>

A.3 第6章のManagedManifest.xmlファイルの内容

例A-3に、ManagedManifest.xmlファイルの内容を示します。詳細は、6.3.4項「スマート・ドキュメントへのXMLスキーマおよび拡張パックのアタッチ」を参照してください。

例A-3 第6章のManagedManifest.xml

<SD:manifest xmlns:SD="http://schemas.microsoft.com/office/xmlexpansionpacks/2003">
  <SD:version>1.1</SD:version>
  <SD:updateFrequency>20160</SD:updateFrequency>
  <SD:uri>http://xmlns.oracle.com/SecureSmartDocument</SD:uri>
  <SD:solution>
    <SD:solutionID>SecureSmartDocument.clsActions</SD:solutionID>
    <SD:type>smartDocument</SD:type>
    <SD:alias lcid="*">Smart Word Document </SD:alias>
    <SD:file>
      <SD:type>solutionActionHandler</SD:type>
      <SD:version>1.0</SD:version>
      <SD:filePath>SecureDoc.dll</SD:filePath>
      <SD:CLSNAME>SecureSmartDocument.clsActions</SD:CLSNAME>
      <SD:runFromServer>True</SD:runFromServer>
      <SD:managed/>
    </SD:file>
  </SD:solution>
  <SD:solution>
    <SD:solutionID>schema</SD:solutionID>
    <SD:type>schema</SD:type>
    <SD:alias lcid="*">Sample schema</SD:alias>
    <SD:file>
      <SD:type>schema</SD:type>
      <SD:version>1.0</SD:version>
      <SD:filePath>SecureDocument.xsd</SD:filePath>
      <SD:runFromServer>True</SD:runFromServer>
    </SD:file>
  </SD:solution>
</SD:manifest>

A.4 AutoLoanTypes.xsdファイルの内容

例A-4に、AutoLoanTypes.xsdファイルの内容を示します。詳細は、4.3.3項「スマート・ドキュメント・フォームの作成」を参照してください。

例A-4 AutoLoanTypes.xsd

<?xml version="1.0"?>
<schema attributeFormDefault="qualified" elementFormDefault="qualified"
 targetNamespace="http://www.autoloan.com/ns/autoloan"
 xmlns:tns="http://www.autoloan.com/ns/autoloan"
 xmlns="http://www.w3.org/2001/XMLSchema">
  <element name="loanApplication" type="tns:LoanApplicationType"/>
  <element name="loanOffer" type="tns:LoanOfferType"/>
  <element name="loan" type="tns:LoanType"/>
  <complexType name="LoanType">
      <sequence>
        <element ref="tns:loanApplication"/>
        <element ref="tns:loanOffer"/>
      </sequence>
  </complexType>
  <complexType name="LoanOfferType">
      <sequence>
        <element name="providerName" type="string"/>
        <element name="selected" type="boolean"/>
        <element name="approved" type="boolean"/>
        <element name="APR" type="double"/>
      </sequence>
  </complexType>
  <complexType name="LoanApplicationType">
      <sequence>
        <element name="SSN" type="string"/>
        <element name="email" type="string"/>
        <element name="customerName" type="string"/>
        <element name="customerAge" type="string"/>
        <element name="customerAnnualIncome" type="string"/>
        <element name="city" type="string"/>
        <element name="state" type="string"/>
        <element name="country" type="string"/>
        <element name="loanAmount" type="double"/>
        <element name="carMake" type="string"/>
        <element name="carModel" type="string"/>
        <element name="carYear" type="string"/>
        <element name="creditRating" type="int"/>
      </sequence>
  </complexType>
</schema>

A.5 SecureDocument.xsdファイルの内容

例A-5に、SecureDocument.xsdファイルの内容を示します。詳細は、6.3.4項「スマート・ドキュメントへのXMLスキーマおよび拡張パックのアタッチ」を参照してください。

例A-5 SecureDocument.xsd

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<schema targetNamespace="http://xmlns.oracle.com/SecureSmartDocument"
     xmlns:tns="http://xmlns.oracle.com/SecureSmartDocument"
     xmlns="http://www.w3.org/2001/XMLSchema"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     elementFormDefault="qualified" blockDefault="#all">
  <element name="Report">
    <complexType>
      <sequence>
        <element name="name" type="string" minOccurs="1" maxOccurs="1"/>
      </sequence>
    </complexType>
  </element>

</schema>

A.6 SecureSmartDocument.csファイルの内容

例A-6に、SecureSmartDocument.csファイルの内容を示します。詳細は、6.3.3項「スマート・ドキュメントDLLの作成」を参照してください。


注意:

サンプル・ファイルの検索方法の詳細は、「はじめに」の「デモ・サポート・ファイルへのアクセス」を参照してください。

例A-6 SecureSmartDocument.cs

using System;
using System.IO;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Serialization;
using Microsoft.Office.Interop.SmartTag;
using Microsoft.Office.Interop.Word;
using Microsoft.Web.Services2.Security.Tokens;
using Microsoft.Web.Services2.Security.X509;
using Microsoft.Web.Services2.Security;


namespace SecureSmartDocument
{

   //BASE CLASS
   public class clsActions : Microsoft.Office.Interop.SmartTag.ISmartDocument
   {

      //CONSTANTS
      //You need one constant for the schema namespace, one constant for each
      //of the schema elements for which you want to provide smart document controls
      //and actions, and one constant for the total number of schema elements
      //for which there are associated actions.

      //Because XML is case-sensitive, the values
      //of these constants must be exact in both spelling and case.

      //Namespace constant
      const String cNAMESPACE = "http://xmlns.oracle.com/SecureSmartDocument";

      //Element constants

      const String cElemName = cNAMESPACE + "#name";

      //Number of types (or element constants)
      const Int32 cTYPES = 1;


      public void SmartDocInitialize( string ApplicationName,
                                      object Document,
                                      string SolutionPath,
                                      string SolutionRegKeyRoot)
      {

      }

      //SmartDocXMLTypeCount
      public int SmartDocXmlTypeCount
      {
         get
         {
            String message = "SmartDocXmlTypeName" + cTYPES;
            return cTYPES;
         }
      }

      //SmartDocXMLTypeName
      public string get_SmartDocXmlTypeName(int XMLTypeID)
      {
         String strTypeName = "";

         String message = "SmartDocXmlTypeName" + XMLTypeID;

         switch (XMLTypeID)
         {
            case 1:
               strTypeName = cElemName;
               break;

            default:
               break;
         }
         return strTypeName;
      }

      //SmartDocXMLTypeCaption
      public string get_SmartDocXmlTypeCaption(int XMLTypeID, int LocaleID)
      {
         String strTypeCaption = "";

         switch (XMLTypeID)
         {
            case 1:
               strTypeCaption = "Please Enter Name  ";
               break;

            default:
               break;
         }
         return strTypeCaption;
      }

      //ControlCount
      public int get_ControlCount(string XMLTypeName)
      {
         Int32 intNumberOfControls = 0;

         switch (XMLTypeName)
         {
            case cElemName:
               intNumberOfControls = 1;
               break;

            default:
               break;
         }
         return intNumberOfControls;
      }

      //ControlID
      //The ControlID for the first control you add will be 1.
      //For more information on specifying the ControlID, see the ControlID reference
      //topic in the References section of this SDK.
      public int get_ControlID(string XMLTypeName, int ControlIndex)
      {
         Int32 intControlID = 0;

         switch (XMLTypeName)
         {

            case cElemName:
               intControlID = 1;
               break;

            default:
               break;
         }
         return intControlID;
      }

      //ControlNameFromID
      public string get_ControlNameFromID(int ControlID)
      {
         String strControlName = "";
         strControlName = cNAMESPACE + ControlID;
         return strControlName;
      }

      //ControlCaptionFromID
      public string get_ControlCaptionFromID(int ControlID,
         string ApplicationName, int LocaleID, string Text,
         string Xml, object Target)
      {
         String strControlCaption = "";

         switch (ControlID)
         {
            case 1:
               strControlCaption = "Name";
               break;

            default:
               break;
         }
         return strControlCaption;
      }

      //ControlTypeFromID
      public C_TYPE get_ControlTypeFromID(int ControlID,
         string ApplicationName, int LocaleID)
      {
         C_TYPE type = new C_TYPE();

         switch (ControlID)
         {
            case 1:
               type = C_TYPE.C_TYPE_TEXTBOX;
               break;

            default:
               break;
         }
         return type;
      }

      public void PopulateHelpContent(int ControlID,
         string ApplicationName, int LocaleID, string Text, string Xml,
         object Target, Microsoft.Office.Interop.SmartTag.ISmartDocProperties Props, ref string Content)
      {
         switch (ControlID)
         {
            case 1:
               Content = "This document is an XML smart document";
               break;

            default:
               break;
         }
      }

      public void InvokeControl(int ControlID,
         string ApplicationName, object Target, string Text, string Xml, int LocaleID)
      {
         //do nothing
      }

      public void PopulateCheckbox(int ControlID, string ApplicationName,
         int LocaleID, string Text, string Xml, object Target,
         Microsoft.Office.Interop.SmartTag.ISmartDocProperties Props, ref bool Checked)
      {
         // do nothing
      }

      public void PopulateTextboxContent(int ControlID, string ApplicationName, int LocaleID,
         string Text, string Xml, object Target,
         Microsoft.Office.Interop.SmartTag.ISmartDocProperties Props, ref string Value)
      {
         //do nothing
      }

      public void PopulateListOrComboContent(int ControlID, string ApplicationName,
         int LocaleID, string Text, string Xml, object Target,
         Microsoft.Office.Interop.SmartTag.ISmartDocProperties Props, ref System.Array List,
         ref int Count, ref int InitialSelected)
      {
         //do nothing
      }

      public void OnCheckboxChange(int ControlID, object Target, bool Checked)
      {
         // do nothing
      }

      public void OnTextboxContentChange(int ControlID, object Target, string Value)
      {
         // Add code later ….
      }


      public void OnListOrComboSelectChange(int ControlID, object Target, int Selected, string Value)
      {

      }

      public void PopulateDocumentFragment(int ControlID, string ApplicationName,
         int LocaleID, string Text, string Xml, object Target,
         Microsoft.Office.Interop.SmartTag.ISmartDocProperties Props,
         ref string DocumentFragment)
      {
         // do nothing
      }

      public void PopulateActiveXProps(int ControlID, string ApplicationName,
         int LocaleID, string Text, string Xml, object Target,
         Microsoft.Office.Interop.SmartTag.ISmartDocProperties Props,
         Microsoft.Office.Interop.SmartTag.ISmartDocProperties ActiveXPropBag)
      {
         // do nothing
      }

      public void PopulateImage(int ControlID, string ApplicationName, int LocaleID,
         string Text, string Xml, object Target,
         Microsoft.Office.Interop.SmartTag.ISmartDocProperties Props,
         ref string ImageSrc)
      {
         // do nothing
      }

      public void ImageClick(int ControlID, string ApplicationName, object Target,
         string Text, string Xml, int LocaleID, int XCoordinate, int YCoordinate)
      {
         // do nothing
      }

      public void PopulateRadioGroup(int ControlID, string ApplicationName,
         int LocaleID, string Text, string Xml, object Target,
         Microsoft.Office.Interop.SmartTag.ISmartDocProperties Props,
         ref System.Array List, ref int Count, ref int InitialSelected)
      {
         // do nothing
      }

      public void OnRadioGroupSelectChange(int ControlID, object Target, int Selected, string Value)
      {
         // do nothing
      }

      public void OnPaneUpdateComplete(object Document)
      {
         // do nothing
      }

      public void PopulateOther(int ControlID, string ApplicationName,
         int LocaleID, string Text, string Xml, object Target,
         Microsoft.Office.Interop.SmartTag.ISmartDocProperties Props)
      {
         // do nothing
      }
   }
}

A.7 UsernameTokenDialog.csファイルの内容

例A-7に、UsernameTokenDialog.csの内容を示します。詳細は、6.3.5.1.1項「クライアント側のセキュリティ保護」を参照してください。


注意:

サンプル・ファイルの検索方法の詳細は、「はじめに」の「デモ・サポート・ファイルへのアクセス」を参照してください。

例A-7 UsernameTokenDialog.cs

using System;
using System.Windows.Forms;
namespace SecureSmartDocument
{

   /// <summary>
   /// Dialog.
   /// </summary>
   class UsernameTokenDialog : System.Windows.Forms.Form
   {
      private String uname;
      private System.Windows.Forms.TextBox textBox1;
      private System.Windows.Forms.TextBox textBox2;
      private System.Windows.Forms.Button button1;
      private System.Windows.Forms.Button button2;
      private System.Windows.Forms.Label label1;
      private System.Windows.Forms.Label label2;
      private System.Windows.Forms.Label label3;
      private String pwd;
      public UsernameTokenDialog():base()
      {
         InitializeComponent();
      }
      private void InitializeComponent()
      {
         this.textBox1 = new System.Windows.Forms.TextBox();
         this.textBox2 = new System.Windows.Forms.TextBox();
         this.button1 = new System.Windows.Forms.Button();
         this.button2 = new System.Windows.Forms.Button();
         this.label1 = new System.Windows.Forms.Label();
         this.label2 = new System.Windows.Forms.Label();
         this.label3 = new System.Windows.Forms.Label();
         this.SuspendLayout();
         //
         // textBox1
         //
         this.textBox1.Location = new System.Drawing.Point(120, 104);
         this.textBox1.Name = "textBox1";
         this.textBox1.TabIndex = 0;
         this.textBox1.Text = "";
         this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
         //
         // textBox2
         //
         this.textBox2.Location = new System.Drawing.Point(408, 104);
         this.textBox2.Name = "textBox2";
         this.textBox2.PasswordChar = '*';
         this.textBox2.TabIndex = 1;
         this.textBox2.Text = "";
         this.textBox2.TextChanged += new System.EventHandler(this.textBox2_TextChanged);
         //
         // button1
         //
         this.button1.Location = new System.Drawing.Point(96, 192);
         this.button1.Name = "button1";
         this.button1.Size = new System.Drawing.Size(88, 32);
         this.button1.TabIndex = 2;
         this.button1.Text = "Ok";
         this.button1.Click += new System.EventHandler(this.button1_Click);
         //
         // button2
         //
         this.button2.Location = new System.Drawing.Point(320, 192);
         this.button2.Name = "button2";
         this.button2.TabIndex = 3;
         this.button2.Text = "Cancel";
         this.button2.Click += new System.EventHandler(this.button2_Click);
         //
         // label1
         //
         this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif",
                       14.25F,
               ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold |
                                            System.Drawing.FontStyle.Underline))),
               System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
         this.label1.Location = new System.Drawing.Point(176, 24);
         this.label1.Name = "label1";
         this.label1.Size = new System.Drawing.Size(216, 48);
         this.label1.TabIndex = 4;
         this.label1.Text = "User Credentials";
         //
         // label2
         //
         this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F,
                                      System.Drawing.FontStyle.Bold,
                                      System.Drawing.GraphicsUnit.Point,
                                      ((System.Byte)(0)));
         this.label2.Location = new System.Drawing.Point(16, 104);
         this.label2.Name = "label2";
         this.label2.Size = new System.Drawing.Size(80, 16);
         this.label2.TabIndex = 5;
         this.label2.Text = "Username : ";
         //
         // label3
         //
         this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F,
                                      System.Drawing.FontStyle.Bold,
                                      System.Drawing.GraphicsUnit.Point,
                                      ((System.Byte)(0)));
         this.label3.Location = new System.Drawing.Point(296, 104);
         this.label3.Name = "label3";
         this.label3.Size = new System.Drawing.Size(88, 32);
         this.label3.TabIndex = 6;
         this.label3.Text = "Password :";
         //
         // UsernameTokenDialog
         //
         this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
         this.ClientSize = new System.Drawing.Size(576, 266);
         this.Controls.Add(this.label3);
         this.Controls.Add(this.label2);
         this.Controls.Add(this.label1);
         this.Controls.Add(this.button2);
         this.Controls.Add(this.button1);
         this.Controls.Add(this.textBox2);
         this.Controls.Add(this.textBox1);
         this.Name = "UsernameTokenDialog";
         this.ResumeLayout(false);
      }

      private void button1_Click(object sender, System.EventArgs e)
      {
         Console.WriteLine(" Ok button clicked ");
         uname = textBox1.Text;
         pwd = textBox2.Text;
         Console.WriteLine(" Username : "+ uname + " pwd : " + pwd);

         this.Close();
         this.DialogResult = DialogResult.OK;
      }

      private void button2_Click(object sender, System.EventArgs e)
      {
         uname = null;
         pwd = null;
         this.DialogResult = DialogResult.Cancel;
      }
      private void textBox1_TextChanged(object sender, System.EventArgs e)
      {

      }
      private void textBox2_TextChanged(object sender, System.EventArgs e)
      {

      }

      public void setDefaultUsername (String uname)
      {
         textBox1.Text = uname;
      }
      public String getUsername()
      {
         return uname;
      }
      public String getPassword()
      {
         return pwd;
      }
   }
}