예제 #1
0
        /// <summary>
        /// Shows/hides the join, and leave buttons.
        /// </summary>
        void SetJoinLeaveButtonVisibility()
        {
            GroupBindingWrapper wrapper = (GroupBindingWrapper)DataContext;

            wrapper.JoinButtonVisibility  = Visibility.Collapsed;
            wrapper.LeaveButtonVisibility = Visibility.Collapsed;

            ObservableCollection <string> users = (ObservableCollection <string>)UsersOfGroupListBox.ItemsSource;

            User currentUser = ArcGISOnlineEnvironment.ArcGISOnline.User.Current;

            if (currentUser != null && currentUser.Username != OwnerTextBlock.Text)
            {
                foreach (string user in users)
                {
                    if (user == currentUser.Username) //current user is already member of group
                    {
                        wrapper.LeaveButtonVisibility = Visibility.Visible;
                        break;
                    }
                }

                if (wrapper.Content.IsInvitationOnly)
                {
                    wrapper.JoinButtonVisibility = Visibility.Collapsed; //don't show join button if group is set for joining by invitation only
                }
                else
                {
                    wrapper.JoinButtonVisibility = wrapper.LeaveButtonVisibility == Visibility.Collapsed ? Visibility.Visible : Visibility.Collapsed;
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Activates the control.
        /// </summary>
        public void Activate(Group group)
        {
            if (MapDetailsControl == null)
            {
                pendingActivation = group;
                return;
            }
            pendingActivation = null;
            GroupBindingWrapper wrapper = new GroupBindingWrapper()
            {
                EditButtonVisibility = Visibility.Collapsed
            };

            DataContext     = wrapper;
            wrapper.Content = group;
            wrapper.EditButtonVisibility = CanEdit ? Visibility.Visible : Visibility.Collapsed;

            if (Tab.SelectedIndex == 0 || Tab.SelectedIndex == 3)
            {
                MapDetailsControl.Visibility = Visibility.Collapsed;
            }
            else
            {
                MapDetailsControl.DataContext = null;
            }

            //initializes the tab control
            //
            Tab_SelectionChanged(null, null);

            //get the members of the group
            //
            ArcGISOnlineEnvironment.ArcGISOnline.Group.GetMembers(group.Id, GetGroupMembersCompleted);
        }
예제 #3
0
        /// <summary>
        /// Refreshes the page.
        /// </summary>
        void Refresh()
        {
            GroupBindingWrapper wrapper = (GroupBindingWrapper)DataContext;

            ArcGISOnlineEnvironment.ArcGISOnline.Group.GetGroup(wrapper.Content.Id, (object sender, GroupEventArgs e) =>
            {
                wrapper.Content = e.Group;

                //initializes the tab control
                Tab_SelectionChanged(null, null);

                //raise event
                RaiseGroupDetailsChanged(e.Group);
            });
        }
예제 #4
0
        /// <summary>
        /// Occurs when the user signs in or out from AGOL.
        /// </summary>
        void ArcGISOnline_SignedInOut(object sender, EventArgs e)
        {
            GroupBindingWrapper wrapper = DataContext as GroupBindingWrapper;

            if (wrapper == null)
            {
                return;
            }

            //show/hide edit icons
            //
            wrapper.EditButtonVisibility = CanEdit ? Visibility.Visible : Visibility.Collapsed;

            //show/hide join, invite and leave button
            //
            SetJoinLeaveButtonVisibility();

            //reinitialize tab
            //
            Tab_SelectionChanged(null, null);
        }