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); } } } }