Appendix B
Copy
MyController.cs
using System; using System.Drawing; using MonoTouch.CoreFoundation; using MonoTouch.UIKit; using MonoTouch.Foundation; using Aras.IOM; using System.Threading; namespace MyApp { [Register(“UniversalView”)] public class UniversalView : UIView { public UniversalView() { Initialize(); } public UniversalView(RectangleF bounds) : base(bounds) { Initialize(); } void Initialize() { BackgroundColor = UIColor.Red; } } [Register(“MyController”)] partial class MyController : UIViewController { UITextView textView; public MyController() { } public override void ViewDidLoad() { base.ViewDidLoad(); View.Frame = UIScreen.MainScreen.Bounds; View.BackgroundColor = UIColor.White; View.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight; textView = new UITextView(new RectangleF( 0, 0, View.Frame.Width, View.Frame.Height)); textView.ScrollEnabled = true; ThreadPool.QueueUserWorkItem(async delegate { //create connection to Innovator server HttpServerConnection connection = IomFactory.CreateHttpServerConnection(“http://localhost/InnovatorServer/Server/InnovatorServer.aspx”, “InnovatorSolutions”, “admin”, “innovator”); //login Item user = await connection.LoginAsync(); if (user.isError()) { throw new Exception(user.getErrorString()); } //create innovator to connect to server Innovator innovator = IomFactory.CreateInnovator(connection); Item queryVariable = innovator.newItem(“Variable”, “get”); queryVariable.setProperty(“name”, “IncludedSolutions”); //send query to the server Item variable = await queryVariable.applyAsync(); if (variable.isError()) { throw new Exception(variable.getErrorString()); } this.BeginInvokeOnMainThread(delegate { //display variable’s value property in view textView.Text = variable.getProperty(“value”); }); }); textView.Text = “Test"; View.AddSubview(textView); } } } AppDelegate.cs
using System; using System.Collections.Generic; using System.Linq; using MonoTouch.Foundation; using MonoTouch.UIKit; namespace MyApp { // The UIApplicationDelegate for the application. This class is responsible for launching the // User Interface of the application, as well as listening (and optionally responding) to // application events from iOS. [Register(“AppDelegate”)] public partial class AppDelegate : UIApplicationDelegate { // class-level declarations UIWindow window; MyController viewController; // // This method is invoked when the application has loaded and is ready to run. In this // method you should instantiate the window, load the UI into it and then make the window // visible. // // You have 17 seconds to return from this method, or iOS will terminate your application. // public override bool FinishedLaunching(UIApplication app, NSDictionary options) { // create a new window instance based on the screen size window = new UIWindow(UIScreen.MainScreen.Bounds); // If you have defined a view, add it here: // window.RootViewController = navigationController; viewController = new MyController(); window.RootViewController = viewController; // make the window visible window.MakeKeyAndVisible(); return true; } } }