private void InitializeNavigator(List <Node> pages)
        {
            var brushes = new SolidColorBrush[] {
                new SolidColorBrush(Color.FromRgb(250, 250, 250)),
                new SolidColorBrush(Color.FromRgb(251, 192, 45)),
                new SolidColorBrush(Color.FromRgb(126, 87, 194)),
                new SolidColorBrush(Color.FromRgb(33, 150, 243)),
                new SolidColorBrush(Color.FromRgb(244, 81, 30))
            };

            for (int i = 0; i < pages.Count; i++)
            {
                var page = pages[i];
                // 홈페이지 처리
                if (page.PageName.ToLower() == "homepage")
                {
                    Logo.MouseDown += delegate {
                        Controller.Navigate(page.PageUrl);
                    };
                    continue;
                }

                var view = new NavigatorView(page);
                view.Navigate += delegate(string url) {
                    Controller.Navigate(url);
                };
                view.Margin = new Thickness(5, 5, 5, 0);
                view.SetBrush(brushes[i % brushes.Length]);
                Navigator.Children.Add(view);
            }

            LoadFoldState();
        }
Beispiel #2
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            string staticId = request.GetString();
            string query    = request.GetString();

            NavigatorView view;

            if (!NavigatorView.TryParse(staticId, out view))
            {
                return;
            }

            // TODO Create SearchResult class instead of Dictionary
            IDictionary <NavigatorCategory, IList <RoomData> > categories = view.GetCategories(query, session.Info);

            router.GetComposer <SearchResultSetComposer>().Compose(session, staticId, query, categories);
        }
        private void GetcollapseStyle(NavigatorView nav, AttributeParser foldState, int deep = 0)
        {
            var prefix = "";

            for (int i = 0; i < deep; i++)
            {
                prefix += '\t';
            }
            var expended = nav.SubPagesContainer.Visibility == Visibility.Visible;

            foldState.SetAttribute(prefix + nav.Name.Content.ToString(), expended.ToString());
            foreach (var subNav in nav.SubPagesContainer.Children)
            {
                if (subNav is NavigatorView)
                {
                    GetcollapseStyle((NavigatorView)subNav, foldState, deep + 1);
                }
            }
        }
        public override void Compose(Yupi.Protocol.ISender session)
        {
            using (ServerMessage message = Pool.GetMessageBuffer(Id))
            {
                NavigatorView[] views = NavigatorView.GetSorted();

                message.AppendInteger(views.Length);

                foreach (NavigatorView view in views)
                {
                    message.AppendString(view.DisplayName);
                    // TODO Could not find out where this is being used in client?!
                    message.AppendInteger(1); // Count Saved Searches
                    message.AppendInteger(1); // Saved Search Id
                    message.AppendString("query");
                    message.AppendString("filter");
                    message.AppendString("localization");
                }
                session.Send(message);
            }
        }
        private void SetCollapseStyle(NavigatorView nav, AttributeParser.Attribute attr, int deep = 0)
        {
            var prefix = "";

            for (int i = 0; i < deep; i++)
            {
                prefix += '\t';
            }
            if (prefix + nav.Name.Content.ToString() == attr.Name)
            {
                var visibility = attr.Value == true.ToString() ? Visibility.Visible : Visibility.Collapsed;
                nav.SubPagesContainer.Visibility = visibility;
            }
            else
            {
                foreach (var subNav in nav.SubPagesContainer.Children)
                {
                    if (subNav is NavigatorView)
                    {
                        SetCollapseStyle((NavigatorView)subNav, attr, deep + 1);
                    }
                }
            }
        }
        private void OnGetRelatedNodesByIdCompleted(object sender, ReturnedNodesEventArgs e)
        {
            int count  = 0;
            int length = e.Nodes.Length - 1;

            if (Views.ContainsKey(FocalNodeId))
            {
                CurrentView = Views[FocalNodeId];
            }
            else
            {
                CurrentView = new NavigatorView();

                Views.Add(FocalNodeId, CurrentView);

                SingleDepthNodeRenderer focalNodeRenderer = null;

                foreach (INodeProxy nodeProxy in e.Nodes)
                {
                    if (nodeProxy.Id == FocalNodeId)
                    {
                        if (FocalNode == null)
                        {
                            FocalNode = nodeProxy;

                            focalNodeRenderer = new SingleDepthNodeRenderer(CurrentView, FocalNode, ThemeManagementObject, "Focal");

                            CurrentView.NodeRenderers.Add(focalNodeRenderer.Node.Id, focalNodeRenderer);

                            focalNodeRenderer.NodePositionUpdating += new EventHandler(OnNodePositionUpdating);
                            focalNodeRenderer.NodeDoubleClicked    += new EventHandler <NodeClickedArgs>(OnNodeDoubleClicked);
                        }
                    }
                    else
                    {
                        SingleDepthNodeRenderer nodeRenderer = new SingleDepthNodeRenderer(CurrentView, nodeProxy, ThemeManagementObject, "Default");

                        nodeRenderer.NodeIndex = count;
                        nodeRenderer.NodeCount = length;

                        CurrentView.NodeRenderers.Add(nodeRenderer.Node.Id, nodeRenderer);

                        nodeRenderer.NodePositionUpdating += new EventHandler(OnNodePositionUpdating);
                        nodeRenderer.NodeDoubleClicked    += new EventHandler <NodeClickedArgs>(OnNodeDoubleClicked);

                        count++;
                    }
                }

                if (focalNodeRenderer == null)
                {
                    return;
                }

                foreach (INodeRenderer nodeRenderer in CurrentView.NodeRenderers.Values)
                {
                    foreach (IDescriptorProxy descriptor in nodeRenderer.Node.Descriptors)
                    {
                        if (!CurrentView.RelationshipRenderers.ContainsKey(descriptor.Relationship.Id))
                        {
                            bool relationshipIsPresent = true;

                            foreach (IDescriptorProxy alternateDescriptor in descriptor.Relationship.Descriptors)
                            {
                                if (!CurrentView.NodeRenderers.ContainsKey(alternateDescriptor.Node.Id))
                                {
                                    relationshipIsPresent = false;
                                    break;
                                }
                            }

                            if (relationshipIsPresent)
                            {
                                ImprovedArrow arrow = new ImprovedArrow(CurrentView, descriptor.Relationship);

                                CurrentView.RelationshipRenderers.Add(descriptor.Relationship.Id, arrow);
                            }
                        }
                    }
                }
            }

            RendererNodesEventArgs rendererNodesEventArgs = new RendererNodesEventArgs(CurrentView);

            if (GetCurrentNodesCompleted != null)
            {
                GetCurrentNodesCompleted.Invoke(sender, rendererNodesEventArgs);
            }
        }
 public MapDepthNodeRenderer(NavigatorView parentNavigatorView, INodeProxy nodeProxy, ThemeManager themeManager, string skinName)
     : base(parentNavigatorView, nodeProxy, themeManager, skinName)
 {
 }
Beispiel #8
0
 public SingleDepthNodeRenderer(NavigatorView parentNavigatorView, INodeProxy nodeProxy, ThemeManager themeManager, string skinName)
     : base(parentNavigatorView, nodeProxy, themeManager, skinName)
 {
 }
        private void OnGetRelatedNodesByIdCompleted(object sender, ReturnedNodesEventArgs e)
        {
            int count = 0;
            int length = e.Nodes.Length - 1;

            if (Views.ContainsKey(FocalNodeId))
            {
                CurrentView = Views[FocalNodeId];
            }
            else
            {
                CurrentView = new NavigatorView();

                Views.Add(FocalNodeId, CurrentView);

                SingleDepthNodeRenderer focalNodeRenderer = null;

                foreach (INodeProxy nodeProxy in e.Nodes)
                {
                    if (nodeProxy.Id == FocalNodeId)
                    {
                        if (FocalNode == null)
                        {
                            FocalNode = nodeProxy;

                            focalNodeRenderer = new SingleDepthNodeRenderer(CurrentView, FocalNode, ThemeManagementObject, "Focal");

                            CurrentView.NodeRenderers.Add(focalNodeRenderer.Node.Id, focalNodeRenderer);

                            focalNodeRenderer.NodePositionUpdating += new EventHandler(OnNodePositionUpdating);
                            focalNodeRenderer.NodeDoubleClicked += new EventHandler<NodeClickedArgs>(OnNodeDoubleClicked);
                        }
                    }
                    else
                    {
                        SingleDepthNodeRenderer nodeRenderer = new SingleDepthNodeRenderer(CurrentView, nodeProxy, ThemeManagementObject, "Default");

                            nodeRenderer.NodeIndex = count;
                            nodeRenderer.NodeCount = length;

                            CurrentView.NodeRenderers.Add(nodeRenderer.Node.Id, nodeRenderer);

                            nodeRenderer.NodePositionUpdating += new EventHandler(OnNodePositionUpdating);
                            nodeRenderer.NodeDoubleClicked += new EventHandler<NodeClickedArgs>(OnNodeDoubleClicked);

                            count++;
                    }
                }

                if (focalNodeRenderer == null)
                {
                    return;
                }

                foreach (INodeRenderer nodeRenderer in CurrentView.NodeRenderers.Values)
                {
                    foreach (IDescriptorProxy descriptor in nodeRenderer.Node.Descriptors)
                    {
                        if (!CurrentView.RelationshipRenderers.ContainsKey(descriptor.Relationship.Id))
                        {
                            bool relationshipIsPresent = true;

                            foreach (IDescriptorProxy alternateDescriptor in descriptor.Relationship.Descriptors)
                            {
                                if (!CurrentView.NodeRenderers.ContainsKey(alternateDescriptor.Node.Id))
                                {
                                    relationshipIsPresent = false;
                                    break;
                                }
                            }

                            if (relationshipIsPresent)
                            {
                                ImprovedArrow arrow = new ImprovedArrow(CurrentView, descriptor.Relationship);

                                CurrentView.RelationshipRenderers.Add(descriptor.Relationship.Id, arrow);
                            }
                        }
                    }
                }
            }

            RendererNodesEventArgs rendererNodesEventArgs = new RendererNodesEventArgs(CurrentView);

            if (GetCurrentNodesCompleted != null)
            {
                GetCurrentNodesCompleted.Invoke(sender, rendererNodesEventArgs);
            }
        }