public void DisplayForm(AvailableForms form, IFormBacking backingObject) { Form window = null; switch (form) { case AvailableForms.MainWindow: window = new Main((IMainFormBacking)backingObject); break; case AvailableForms.SiteProperties: window = new DialogSiteProperties((ISitePropertiesBacking)backingObject); break; case AvailableForms.Polling: window = new DialogPolling((IPollingBacking)backingObject); break; case AvailableForms.AgwEngine: window = new DialogAGWEngine((IAGWEngineBacking)backingObject); break; default: throw new ArgumentException(string.Format("Invalid form: {0}", form)); } if (form == AvailableForms.MainWindow) { window.Show(); } else { window.ShowDialog(); } }
public static void RegisterInternal <T>() where T : Form { var type = typeof(T); SandboxExtensionAttribute attr; if (type.TryGetAttribute(out attr)) { AvailableForms.Add(new FormInfo { Type = type, Data = attr }); } else { throw new Exception(string.Format("The internal Sandbox extension of type {0} has no SandboxExtensionAttribute.", type.Name)); } }