Пример #1
0
        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;
                }
            }
        }
Пример #2
0
        /// <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;
                }
            }
        }
Пример #3
0
        /// <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);
            }
        }
Пример #4
0
        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;
        }
Пример #5
0
        /// <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();
                    }
                }
            }
        }
Пример #6
0
        /// <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);
            }
        }
Пример #7
0
        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;
        }
Пример #8
0
 private bool IsProviderValid(IDomainProviderUI potentialProvider)
 {
     return true;
 }
Пример #9
0
 /// <summary>
 /// Make sure that all the expected properties and methods exist
 /// </summary>
 private bool IsProviderValid(IDomainProviderUI potentialProvider)
 {
     // FIXME: Implement DomainProviderUI.IsProviderValid
     return(true);
 }