コード例 #1
0
        public void Click(int xmouse, int ymouse)
        {
            if (state == State.Desktop)
            {
                var element = desktop.Contains(xmouse, ymouse);
                if (element != null && restriction[element.Type])
                {
                    if (GraphReader.Element(Kernel.getElement(element.Id)).info.shortcut != "")
                    {
                        string shortcut = GraphReader.Element(Kernel.getElement(element.Id)).info.shortcut;
                        element = desktop.First(shortcut);
                        //then in middle
                        if (element == null)
                        {
                            bool search = false;
                            foreach (var result in middle.FileElements)
                            {
                                foreach (var req in result.Value.elements)
                                {
                                    if (req.Id == shortcut)
                                    {
                                        element = req;
                                        search  = true;
                                    }
                                    break;
                                }
                                if (search == true)
                                {
                                    break;
                                }
                            }
                        }
                    }
                    if (rename != null)
                    {
                        canvas.Children.Remove(rename);
                    }
                    desktop.Hide();
                    state = State.Middle;
                    if (!task.ContainsKey(element.Id))
                    {
                        task.addTask(element);
                    }

                    var elementData = Kernel.getElement(element.Id);
                    var son         = Kernel.getSon(elementData);
                    this.middle.setCurrent(element.Id);
                    this.middle.GenerateGraph(element.Id, son);
                    this.middle.OnMiddle(4);
                    middle.setTitle(element.Id);
                }
            }
            else
            {
                int type    = -1;
                var element = middle.Contains(xmouse, ymouse, ref type);
                if (element != null && type > -1)
                {
                    if (type == 0) // close
                    {
                    }
                    else if (type == 1)
                    {
                        middle.hideMiddle();
                        middle.setCurrent("");
                        state = State.Desktop;
                        desktop.Generate();
                    }
                    else if (type == 2 && restriction[element.Type])
                    {
                        if (rename != null)
                        {
                            canvas.Children.Remove(rename);
                        }
                        if (GraphReader.Element(Kernel.getElement(element.Id)).info.shortcut != "")
                        {
                            string shortcut = GraphReader.Element(Kernel.getElement(element.Id)).info.shortcut;
                            element = middle.First(shortcut);
                            //then in dekstop
                            if (element == null)
                            {
                                bool search = false;
                                foreach (var result in middle.FileElements)
                                {
                                    foreach (var req in result.Value.elements)
                                    {
                                        if (req.Id == shortcut)
                                        {
                                            element = req;
                                            search  = true;
                                        }
                                        break;
                                    }
                                    if (search == true)
                                    {
                                        break;
                                    }
                                }
                            }
                        }
                        current        = null;
                        middle.current = null;
                        var elementData = Kernel.getElement(element.Id);
                        var son         = Kernel.getSon(elementData);
                        middle.hideCurrent();
                        if (task.ContainsKey(middle.getCurrent()))
                        {
                            task.setKey(middle.getCurrent(), element.Id);
                        }
                        this.middle.setCurrent(element.Id);
                        this.middle.GenerateGraph(element.Id, son);
                        middle.setTitle(element.Id);
                    }
                }
            }
        }