namespace org.kadreg.coincoin { public class CoinCoinForm : System.Windows.Forms.Form { private string title; private const string backendURL = "http://www.woof.lu/board/remote.xml"; // objets IHM private System.Windows.Forms.TextBox txtMessage; private System.Windows.Forms.TextBox pinnipede; private System.Windows.Forms.Button boutonRetrieve; private System.Windows.Forms.Button boutonPostMessage; // objets recuperation private System.Threading.Thread retrieveThread; private System.Threading.Thread postThread; public CoinCoinForm (string version) { title = "coincoin.net " + version; this.Text = title; InitializeLayout (); } private void InitializeLayout () { // creations txtMessage = new System.Windows.Forms.TextBox (); pinnipede = new System.Windows.Forms.TextBox (); boutonRetrieve = new System.Windows.Forms.Button (); boutonPostMessage = new System.Windows.Forms.Button (); // Tailles et options txtMessage.Location = new System.Drawing.Point (10,300); txtMessage.Size = new System.Drawing.Size (300, 24); txtMessage.Multiline = false; txtMessage.Name = "txtMessage"; txtMessage.TabIndex = 2; txtMessage.Text = "coin ! coin !"; pinnipede.Location = new System.Drawing.Point (10,10); pinnipede.Size = new System.Drawing.Size (300, 250); pinnipede.Multiline = true; pinnipede.Name = "pinnipede"; pinnipede.TabIndex = 1; pinnipede.Text = ""; pinnipede.Enabled = false; boutonRetrieve.Location = new System.Drawing.Point (10,350); boutonRetrieve.Size = new System.Drawing.Size (120, 50); boutonRetrieve.TabIndex = 3; boutonRetrieve.Text = "&get new plops"; boutonRetrieve.Click += new System.EventHandler (this.getNewMessages); boutonPostMessage.Location = new System.Drawing.Point (150,350); boutonPostMessage.Size = new System.Drawing.Size (120, 50); boutonPostMessage.TabIndex = 4; boutonPostMessage.Text = "&post a plop"; boutonPostMessage.Click += new System.EventHandler (this.postMessage); // Ajout dans la form this.Controls.Add (txtMessage); this.Controls.Add (pinnipede); this.Controls.Add (boutonRetrieve); this.Controls.Add (boutonPostMessage); // Options de la boite this.ClientSize = new System.Drawing.Size (330, 400); } /// Callback bouton post messages private void postMessage (object sender, System.EventArgs e) { if ((postThread != null) && postThread.IsAlive) { postThread.Abort (); } postThread = new System.Threading.Thread (new System.Threading.ThreadStart (postMessage)); postThread.Start (); } /// Callback bouton get new messages private void getNewMessages (object sender, System.EventArgs e) { if ((retrieveThread != null) && retrieveThread.IsAlive) { retrieveThread.Abort (); } retrieveThread = new System.Threading.Thread (new System.Threading.ThreadStart (retrieveMessages)); retrieveThread.Start (); } private void postMessage () { string postAddr = "http://www.woof.lu/board/add.php3"; string messageToPost = txtMessage.Text; System.Console.WriteLine ("Message to post : {0}", messageToPost); System.Net.WebClient myWebClient = new System.Net.WebClient (); System.Collections.Specialized.NameValueCollection postValues = new System.Collections.Specialized.NameValueCollection (); /* les options de post */ postValues.Add ("board_section", "1"); postValues.Add ("message", messageToPost); /* les headers en bonus */ myWebClient.Headers.Add ("user-agent", title); byte [] responseArray = myWebClient.UploadValues (postAddr, "POST", postValues); System.Console.WriteLine ("Response received : {0}", System.Text.Encoding.ASCII.GetString (responseArray)); } private void retrieveMessages () { System.Console.WriteLine ("StartMessageRetrieving"); System.Net.WebRequest requete = System.Net.WebRequest.Create (backendURL); System.Net.WebResponse reponse = requete.GetResponse (); System.IO.Stream mStream = reponse.GetResponseStream (); System.IO.StreamReader mReader = new System.IO.StreamReader (mStream); string s = mReader.ReadToEnd (); System.Console.WriteLine (s); pinnipede.Text = s; System.Console.WriteLine ("EndMessageRetrieving"); } } public class CoinCoin { const string version = "0.0.1"; static private CoinCoinForm form; public static void Main (string [] args) { System.Console.WriteLine ("Running coincoin version {0}", version); form = new CoinCoinForm (version); System.Windows.Forms.Application.Run (form); } } }