private void OnlineCellToggleDataFunc(Gtk.TreeViewColumn tree_column, Gtk.CellRenderer cell, Gtk.TreeModel tree_model, Gtk.TreeIter iter) { string domainID = (string)tree_model.GetValue(iter, 0); DomainInformation dom = domainController.GetDomain(domainID); IDomainProviderUI provider = domainProviderUI.GetProviderForID(domainID); if (provider != null) { if (dom.Active) { ((CellRendererToggle)cell).Active = true; } else { ((CellRendererToggle)cell).Active = false; } } else { if (dom != null && dom.Authenticated) { ((CellRendererToggle)cell).Active = true; } else { ((CellRendererToggle)cell).Active = false; } } }
/// <summary> /// Update Widget Sensitivity /// </summary> private void UpdateWidgetSensitivity() { TreeSelection tSelect = AccTreeView.Selection; // Nothing is selected AddButton.Sensitive = true; RemoveButton.Sensitive = false; DetailsButton.Sensitive = false; if (tSelect != null) { if (tSelect.CountSelectedRows() == 1) { TreeModel tModel; TreeIter iter; tSelect.GetSelected(out tModel, out iter); string domainID = (string)tModel.GetValue(iter, 0); DomainInformation dom = domainController.GetDomain(domainID); if (dom == null) { return; // Prevent null pointer } IDomainProviderUI provider = domainProviderUI.GetProviderForID(domainID); if (provider != null) { if (provider.CanDelete) { RemoveButton.Sensitive = true; } else { RemoveButton.Sensitive = false; } if (provider.HasDetails) { DetailsButton.Sensitive = true; } else { DetailsButton.Sensitive = false; } } else { RemoveButton.Sensitive = true; DetailsButton.Sensitive = true; } // Set the control states AddButton.Sensitive = true; } } }
/// <summary> /// GetProvider For ID /// </summary> /// <param name="domainID">Domain ID</param> /// <returns>IDomainProviderUI</returns> public IDomainProviderUI GetProviderForID(string domainID) { lock (typeof(DomainProviderUI)) { IDomainProviderUI provider = null; if (registeredProviders.Contains(domainID)) { provider = (IDomainProviderUI)registeredProviders[domainID]; } return(provider); } }
private void OnlineToggled(object o, ToggledArgs args) { // Disable the ability for the user to toggle the checkbox onlineToggleButton.Activatable = false; TreeIter iter; TreePath path = new TreePath(args.Path); if (AccTreeStore.GetIter(out iter, path)) { string domainID = (string)AccTreeStore.GetValue(iter, 0); DomainInformation dom = domainController.GetDomain(domainID); IDomainProviderUI provider = domainProviderUI.GetProviderForID(domainID); if (provider != null) { // FIXME: Add some functionality into the provider interface so we know what to do instead of just inactivating the account if (dom.Active) { domainController.InactivateDomain(dom.ID); } else { domainController.ActivateDomain(dom.ID); } } else { if (dom != null) { if (!dom.Authenticated) { LoginDomain(dom); } else { LogoutDomain(dom); } } } UpdateDomainStatus(dom.ID); } // Reenable the ability for the user to toggle the checkbox onlineToggleButton.Activatable = true; }
/// <summary> /// Event Handler for Details Clicked /// </summary> private void OnDetailsClicked(object o, EventArgs args) { TreeSelection tSelect = AccTreeView.Selection; if (tSelect.CountSelectedRows() == 1) { TreeModel tModel; TreeIter iter; tSelect.GetSelected(out tModel, out iter); string domainID = (string)tModel.GetValue(iter, 0); DomainInformation dom = domainController.GetDomain(domainID); AccountDialog accDialog = null; if (detailsDialogs.ContainsKey(domainID)) { accDialog = (AccountDialog)detailsDialogs[domainID]; accDialog.Present(); } else { IDomainProviderUI provider = domainProviderUI.GetProviderForID(domainID); if (provider != null) { accDialog = provider.CreateAccountDialog(topLevelWindow, dom); } else { accDialog = new EnterpriseAccountDialog(topLevelWindow, dom); } if (accDialog != null) { detailsDialogs[domainID] = accDialog; accDialog.SetPosition(WindowPosition.Center); accDialog.Destroyed += new EventHandler(OnAccountDialogDestroyedEvent); accDialog.ShowAll(); } } } }
/// <summary> /// Attempt to load the specified library and look for all /// classes that implement IDomainProviderUI. Validate each /// IDomainProviderUI using reflection. /// </summary> private ArrayList LoadProviders(string libFile) { lock (typeof(DomainProviderUI)) { ArrayList providers = new ArrayList(); try { Assembly assembly = Assembly.LoadFrom(libFile); if (assembly != null) { foreach (Type type in assembly.GetTypes()) { IDomainProviderUI potentialProvider = null; try { potentialProvider = (IDomainProviderUI)assembly.CreateInstance(type.FullName); } catch {} if (potentialProvider != null && IsProviderValid(potentialProvider)) { providers.Add((IDomainProviderUI)potentialProvider); } } } } catch (Exception e) { Debug.PrintLine(e.Message); Debug.PrintLine(e.StackTrace); } return(providers); } }
public void ToggelDomainState(DomainInformation domainInfo, bool login) { // disable the ability for the user to toggle the checkbox onlineToggleButton.Activatable = false; //TODO: Refere code from function OnlineToggled and add needed code IDomainProviderUI provider = domainProviderUI.GetProviderForID(domainInfo.ID); if (provider != null) { if (domainInfo.Active) { domainController.InactivateDomain(domainInfo.ID); } else { domainController.ActivateDomain(domainInfo.ID); } } else { if (true == login) { LoginDomain(domainInfo); } else { LogoutDomain(domainInfo); } } iFolderWindow ifwin = Util.GetiFolderWindow(); ifwin.UpdateiFolderCount(domainInfo); UpdateDomainStatus(domainInfo.ID); // Reenable the ability for the user to toggle the checkbox onlineToggleButton.Activatable = true; }
private bool IsProviderValid(IDomainProviderUI potentialProvider) { return true; }
/// <summary> /// Make sure that all the expected properties and methods exist /// </summary> private bool IsProviderValid(IDomainProviderUI potentialProvider) { // FIXME: Implement DomainProviderUI.IsProviderValid return(true); }