public override void ViewDidLoad() { base.ViewDidLoad(); Title = NSBundle.MainBundle.LocalizedString("Menu", "Form Sections"); if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) { //PreferredContentSize = new CGSize(320f, 600f); ClearsSelectionOnViewWillAppear = false; } DetailViewController = (DetailViewController)((UINavigationController)SplitViewController.ViewControllers[1]).TopViewController; DetailViewController.Style = UITableViewStyle.Plain; // TODO pull to refresh: (problem scrolling with it..) //DetailViewController.RefreshRequested += delegate //{ // DetailViewController.ReloadComplete(); //}; var dds = new DynaPadService.DynaPadService(); var menu = dds.BuildDynaMenu("123"); var menuObj = JsonConvert.DeserializeObject <Menu>(dds.BuildDynaMenu("123")); Menu myDynaMenu = JsonConvert.DeserializeObject <Menu>(dds.BuildDynaMenu("123")); var rootMainMenu = new RootElement(myDynaMenu.MenuCaption); var sectionMainMenu = new Section(); sectionMainMenu.HeaderView = null; BuildMenu(myDynaMenu, sectionMainMenu); rootMainMenu.Add(sectionMainMenu); Root = rootMainMenu; }
void SaveButtonAction(object sender, EventArgs e) { try { loadingOverlay = new LoadingOverlay(contentView.Bounds); contentView.Add(loadingOverlay); UIImage im = AsImage(contentView); if (CrossConnectivity.Current.IsConnected) { var bw = new BackgroundWorker(); // this allows our worker to report progress during work bw.WorkerReportsProgress = true; // what to do in the background thread bw.DoWork += delegate(object o, DoWorkEventArgs argss) { var b = o as BackgroundWorker; byte[] editArr = im.AsJPEG(0.5f).ToArray(); var saveType = MREditing ? "DynaPad Edit" : "DynaPad Note"; var dps = new DynaPadService.DynaPadService(); //byte[] saveArr = MREditType == "jpg" ? editArr : dps.ConvertToType(CommonFunctions.GetUserConfig(), editArr, MREditType); byte[] saveArr = editArr; var savefile = dps.SaveFile(CommonFunctions.GetUserConfig(), apptId, patientId, doctorId, locationId, filename, saveType, "DynaPad", "", "", saveArr, IsDoctorForm, false); }; // what to do when worker completes its task (notify the user) bw.RunWorkerCompleted += delegate { var savestring = MREditing ? "Edited File Saved" : "New Note Saved"; PresentViewController(CommonFunctions.AlertPrompt(savestring, "A new edit has been saved to medical records", true, null, false, null), true, null); }; bw.RunWorkerAsync(); //byte[] editArr = im.AsJPEG(0.5f).ToArray(); //var dps = new DynaPadService.DynaPadService(); ////byte[] saveArr = MREditType == "jpg" ? editArr : dps.ConvertToType(CommonFunctions.GetUserConfig(), editArr, MREditType); //byte[] saveArr = editArr; //var savefile = dps.SaveFile(CommonFunctions.GetUserConfig(), apptId, patientId, doctorId, locationId, filename, "DynaPad Edit", "DynaPad", "", saveArr, IsDoctorForm, false); } else { PresentViewController(CommonFunctions.InternetAlertPrompt(), true, null); } } catch (Exception ex) { CommonFunctions.sendErrorEmail(ex); PresentViewController(CommonFunctions.ExceptionAlertPrompt(), true, null); } finally { loadingOverlay.Hide(); } }
public UIViewController GetReportService(RootElement rElement) { if (DetailViewController.QuestionsView != null) { DetailViewController.Title = ""; DetailViewController.QuestionsView.Clear(); } var dfElemet = (DynaFormRootElement)rElement; //var ShortForm = SelectedAppointment.ApptShortForms.Find((QShortForm obj) => obj.FormId == dfElemet.MenuValue); var dds = new DynaPadService.DynaPadService(); string origJson = dds.GetShortForms(dfElemet.FormID, dfElemet.DoctorID, false); JsonHandler.OriginalFormJsonString = origJson; var rootReports = new RootElement(dfElemet.FormName); var sectionReports = new Section(); foreach (Report esf in SelectedAppointment.ApptReports) { sectionReports.Add(new StringElement(esf.ReportName, delegate { LoadSectionView(esf.ReportId, "Report", null, false); })); } rootReports.Add(sectionReports); var formDVC = new DialogViewController(rootReports, true); return(formDVC); }
void SavePreset(string presetName) { // doctorid = 123 / 321 // locationid = 321 / 123 string presetJson = JsonConvert.SerializeObject(SelectedAppointment.SelectedQForm); var dds = new DynaPadService.DynaPadService(); dds.SaveAnswerPreset(SelectedAppointment.SelectedQForm.FormId, null, SelectedAppointment.ApptDoctorId, true, presetName, presetJson, SelectedAppointment.ApptLocationId); }
void SaveButtonAction(object sender, EventArgs e) { var ass = cgView; var ass2 = cgView.StrokeCollection; var hole = strokeCollection; cgView.StrokeCollection = strokeCollection; UIImage im = AsImage(canvasContainerView); if (CrossConnectivity.Current.IsConnected) { //var bw = new BackgroundWorker(); //// this allows our worker to report progress during work //bw.WorkerReportsProgress = true; //// what to do in the background thread //bw.DoWork += delegate (object o, DoWorkEventArgs argss) //{ // var b = o as BackgroundWorker; // var dps = new DynaPadService.DynaPadService(); // var savefile = dps.SaveFile(CommonFunctions.GetUserConfig(), apptId, patientId, doctorId, locationId, filename, "DynaPad Photo", "DynaPad", "", im.AsJPEG(0.5f).ToArray(), IsDoctorForm, false); //}; //// what to do when worker completes its task (notify the user) //bw.RunWorkerCompleted += delegate (object o, RunWorkerCompletedEventArgs argsss) //{ // PresentViewController(CommonFunctions.AlertPrompt("Edited File Saved", "A new edit has been saved to medical records", true, null, false, null), true, null); //}; //bw.RunWorkerAsync(); byte[] editArr = im.AsJPEG(0.5f).ToArray(); var dps = new DynaPadService.DynaPadService(); //byte[] saveArr = MREditType == "jpg" ? editArr : dps.ConvertToType(CommonFunctions.GetUserConfig(), editArr, MREditType); byte[] saveArr = editArr; var savefile = dps.SaveFile(CommonFunctions.GetUserConfig(), apptId, patientId, doctorId, locationId, filename, "DynaPad Edit", "DynaPad", "", "", saveArr, IsDoctorForm, false); } else { PresentViewController(CommonFunctions.InternetAlertPrompt(), true, null); } }
public UIViewController GetFormService(RootElement rElement) { //if (DetailViewController.QuestionsView != null) //{ // DetailViewController.Title = ""; // DetailViewController.QuestionsView.Clear(); //} var bounds = UIScreen.MainScreen.Bounds; // show the loading overlay on the UI thread using the correct orientation sizing loadingOverlay = new LoadingOverlay(bounds); mvc = (DialogViewController)((UINavigationController)SplitViewController.ViewControllers[0]).TopViewController; mvc.Add(loadingOverlay); var dds = new DynaPadService.DynaPadService(); var dfElemet = (DynaFormRootElement)rElement; string origJson = dds.GetFormQuestions(dfElemet.FormID, dfElemet.PatientID, dfElemet.ApptID, dfElemet.IsDoctorForm); JsonHandler.OriginalFormJsonString = origJson; SelectedAppointment.SelectedQForm = JsonConvert.DeserializeObject <QForm>(origJson); var rootFormSections = new RootElement(SelectedAppointment.SelectedQForm.FormName); var sectionFormSections = new Section(); bool IsDoctorForm = dfElemet.IsDoctorForm; if (IsDoctorForm) { /* * TODO: make presets password protected (maybe not, since for doctors only?)! (maybe component: Passcode) */ var FormPresetNames = dds.GetAnswerPresets(SelectedAppointment.ApptFormId, null, SelectedAppointment.ApptPatientId, true, SelectedAppointment.ApptLocationId); var formPresetSection = new DynaSection("Form Preset Answers"); formPresetSection.Enabled = true; var formPresetGroup = new RadioGroup("FormPresetAnswers", SelectedAppointment.SelectedQForm.FormSelectedTemplateId); var formPresetsRoot = new DynaRootElement("Preset Answers", formPresetGroup); formPresetsRoot.IsPreset = true; foreach (string[] arrPreset in FormPresetNames) { var radioPreset = new MyRadioElement(arrPreset[1], "FormPresetAnswers"); radioPreset.OnSelected += delegate(object sender, EventArgs e) { string presetJson = arrPreset[2]; JsonHandler.OriginalFormJsonString = presetJson; SelectedAppointment.SelectedQForm = JsonConvert.DeserializeObject <QForm>(presetJson); LoadSectionView(SelectedAppointment.SelectedQForm.FormSections[0].SectionId, SelectedAppointment.SelectedQForm.FormSections[0].SectionName, SelectedAppointment.SelectedQForm.FormSections[0], IsDoctorForm); }; formPresetSection.Add(radioPreset); } var btnNewFormPreset = new GlassButton(new RectangleF(0, 0, (float)View.Frame.Width, 50)); btnNewFormPreset.Font = UIFont.BoldSystemFontOfSize(17); btnNewFormPreset.SetTitleColor(UIColor.Black, UIControlState.Normal); btnNewFormPreset.NormalColor = UIColor.FromRGB(224, 238, 240); btnNewFormPreset.SetTitle("Save New Form Preset", UIControlState.Normal); btnNewFormPreset.TouchUpInside += (sender, e) => { /* * TODO: popup to enter preset name (DONE?) */ //Create Alert var SavePresetPrompt = UIAlertController.Create("New Form Preset", "Necesito name", UIAlertControllerStyle.Alert); SavePresetPrompt.AddTextField((field) => { field.Placeholder = "Preset Name"; }); //Add Actions SavePresetPrompt.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, action => SavePreset(SavePresetPrompt.TextFields[0].Text))); SavePresetPrompt.AddAction(UIAlertAction.Create("Cancel", UIAlertActionStyle.Cancel, null)); //Present Alert PresentViewController(SavePresetPrompt, true, null); }; formPresetSection.Add(btnNewFormPreset); formPresetsRoot.Add(formPresetSection); formPresetsRoot.Enabled = true; sectionFormSections.Add(formPresetsRoot); } foreach (FormSection fSection in SelectedAppointment.SelectedQForm.FormSections) { sectionFormSections.Add(new StringElement(fSection.SectionName, delegate { LoadSectionView(fSection.SectionId, fSection.SectionName, fSection, IsDoctorForm); })); } sectionFormSections.Add(new StringElement("Finalize", delegate { LoadSectionView("Finalize", "Finalize", null, IsDoctorForm); })); rootFormSections.Add(sectionFormSections); var formDVC = new DialogViewController(rootFormSections, true); // TODO pull to refresh: (problamatic scrolling with it) //formDVC.RefreshRequested += delegate //{ // formDVC.ReloadComplete(); //}; if (!IsDoctorForm) { messageLabel = new UILabel(); formDVC.NavigationItem.LeftBarButtonItem = new UIBarButtonItem(UIImage.FromBundle("Lock"), UIBarButtonItemStyle.Bordered, delegate(object sender, EventArgs e) { //Create Alert var BackPrompt = UIAlertController.Create("Exit Form", "Administrative use only. Please enter password to continue or tap Cancel", UIAlertControllerStyle.Alert); BackPrompt.AddTextField((field) => { field.SecureTextEntry = true; field.Placeholder = "Password"; }); BackPrompt.Add(messageLabel); BackPrompt.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, action => PopBack(BackPrompt.TextFields[0].Text))); BackPrompt.AddAction(UIAlertAction.Create("Cancel", UIAlertActionStyle.Cancel, null)); //Present Alert PresentViewController(BackPrompt, true, null); }); //formDVC.NavigationItem.LeftBarButtonItem.Title = "Back"; } loadingOverlay.Hide(); return(formDVC); }
public override void ViewDidLoad() { base.ViewDidLoad(); var bounds = View.Bounds; //var bounds = new CGRect(0, 0, View.Bounds.Width, View.Bounds.Height); //var bounds = fingsize; var screenBounds = UIScreen.MainScreen.Bounds; //var maxScreenDimension = NMath.Max (screenBounds.Width, screenBounds.Height); var maxScreenDimension = NMath.Max(screenBounds.Width, screenBounds.Height); UIViewAutoresizing flexibleDimensions = FlexibleWidth | FlexibleHeight; scrollView = new UIScrollView(bounds) { AutoresizingMask = flexibleDimensions, //BackgroundColor = UIColor.Red }; View.AddSubview(scrollView); var frame = new CGRect(CGPoint.Empty, new CGSize(maxScreenDimension, maxScreenDimension)); //var frame = new CGRect(CGPoint.Empty, new CGSize(800, 800)); //var frame = bounds; cgView = new StrokeCGView(frame) { AutoresizingMask = flexibleDimensions, editing = MREditing }; View.BackgroundColor = UIColor.White; //View.BackgroundColor = UIColor.Clear; //View.BackgroundColor = UIColor.FromWhiteAlpha(1.0f, 0.4f); //View.Alpha = 1.0f; canvasContainerView = CanvasContainerView.FromCanvasSize(cgView.Frame.Size); canvasContainerView.DocumentView = cgView; scrollView.ContentSize = canvasContainerView.Frame.Size; scrollView.ContentOffset = new CGPoint((canvasContainerView.Frame.Width - scrollView.Bounds.Width) / 2, (canvasContainerView.Frame.Height - scrollView.Bounds.Height) / 2); //scrollView.ContentOffset = new CGPoint(0, 0); scrollView.AddSubview(canvasContainerView); scrollView.BackgroundColor = canvasContainerView.BackgroundColor; //scrollView.BackgroundColor = UIColor.Clear; //scrollView.BackgroundColor = UIColor.FromWhiteAlpha(1.0f, 0.4f); //scrollView.Alpha = 1.0f; scrollView.MaximumZoomScale = 3; scrollView.MinimumZoomScale = 0.5f; scrollView.PanGestureRecognizer.AllowedTouchTypes = TouchTypes(UITouchType.Direct); scrollView.PinchGestureRecognizer.AllowedTouchTypes = TouchTypes(UITouchType.Direct); scrollView.Delegate = this; if (MREditing) { filename = MREditName + "_" + "edit" + "_" + DateTime.Now.ToString("s").Replace(":", "_") + ".jpg"; //var img = UIImage.FromFile("dynapadscreenshot.png"); UIImage img = new UIImage(); switch (MREditType) { case "jpg": case "gif": case "png": img = FromUrl(MREditPath); break; case "pdf": case "doc": case "docx": var dps = new DynaPadService.DynaPadService(); //img = dps.ConvertToJPG(CommonFunctions.GetUserConfig(), MREditPath); break; default: img = FromUrl(MREditPath); break; } var imgView = new UIImageView(bounds); imgView.Image = img; imgView.ContentMode = UIViewContentMode.ScaleAspectFit; // or ScaleAspectFill //imgView.BackgroundColor = UIColor.Green; //imgView.Opaque = false; //canvasContainerView.BackgroundColor = UIColor.Clear; //canvasContainerView.Opaque = false; canvasContainerView.AddSubview(imgView); canvasContainerView.SendSubviewToBack(imgView); //imgView.Alpha = 0.5f; //scrollView.AddSubview(imgView); //scrollView.SendSubviewToBack(imgView); //View.AddSubview(imgView); //View.SendSubviewToBack(imgView); } // We put our UI elements on top of the scroll view, so we don't want any of the // delay or cancel machinery in place. scrollView.DelaysContentTouches = false; fingerStrokeRecognizer = new StrokeGestureRecognizer(StrokeUpdated) { Delegate = this, CancelsTouchesInView = false, IsForPencil = false, CoordinateSpaceView = cgView }; scrollView.AddGestureRecognizer(fingerStrokeRecognizer); pencilStrokeRecognizer = new StrokeGestureRecognizer(StrokeUpdated) { Delegate = this, CancelsTouchesInView = false, CoordinateSpaceView = cgView, IsForPencil = true }; scrollView.AddGestureRecognizer(pencilStrokeRecognizer); SetupConfigurations(); var onPhone = UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Phone; var ringDiameter = onPhone ? 66f : 74f; var ringImageInset = onPhone ? 12f : 14f; var borderWidth = 1f; var ringOutset = ringDiameter / 2 - (NMath.Floor(NMath.Sqrt((ringDiameter * ringDiameter) / 8) - borderWidth)); //var ringFrame = new CGRect (-ringOutset, View.Bounds.Height - ringDiameter + ringOutset, ringDiameter, ringDiameter); //var ringFrame = new CGRect(ringOutset, 800 - ringDiameter - ringOutset, ringDiameter, ringDiameter); var ringFrame = new CGRect(ringOutset, View.Bounds.Height - ringDiameter + ringOutset - 50, ringDiameter, ringDiameter); var ringControl = new RingControl(ringFrame, configurations.Length); ringControl.AutoresizingMask = FlexibleRightMargin | FlexibleTopMargin; View.AddSubview(ringControl); leftRingControl = ringControl; string [] imageNames = { "Calligraphy", "Ink", "Debug" }; for (int index = 0; index < leftRingControl.RingViews.Count; index++) { var ringView = leftRingControl.RingViews [index]; ringView.ActionClosure = configurations [index]; var imageView = new UIImageView(ringView.Bounds.Inset(ringImageInset, ringImageInset)); imageView.Image = UIImage.FromBundle(imageNames [index]); imageView.AutoresizingMask = FlexibleLeftMargin | FlexibleRightMargin | FlexibleTopMargin | FlexibleBottomMargin; ringView.AddSubview(imageView); } closeButton = AddButton("close", CloseButtonAction); clearButton = AddButton("clear", ClearButtonAction); saveButton = AddButton("save", SaveButtonAction); SetupPencilUI(); //cgView.SetNeedsDisplay(); //scrollView.SetNeedsDisplay(); //canvasContainerView.SetNeedsDisplay(); //cgView. //new UIAlertView("Touched", "ass", null, "OK", null).Show (); //PresentViewController(CommonFunctions.AlertPrompt("File Edit", "Saving this edit will not overwrite the original file", true, null, false, null), true, null); }