public void Perform(Document document)
        {
            ToolManager.Deactivate(true);

            document.Selection.SwitchToFaceSelection();

            ToolManager.Activate(_toolType, true);

            Mediator.Publish(EditorMediator.DocumentTreeSelectedFacesChanged, document.Selection.GetSelectedFaces());
            Mediator.Publish(EditorMediator.SelectionChanged);
        }
        public void Perform(Document document)
        {
            ToolManager.Deactivate(true);

            document.Selection.SwitchToObjectSelection();

            ToolManager.Activate(HotkeyTool.Selection, true);

            Mediator.Publish(EditorMediator.DocumentTreeSelectedFacesChanged, _selection);
            Mediator.Publish(EditorMediator.SelectionChanged);
        }
        public void Reverse(Document document)
        {
            ToolManager.Deactivate(true);

            document.Selection.SwitchToObjectSelection();
            document.Selection.Clear();

            var sel = _selection.Select(x => document.Map.WorldSpawn.FindByID(x)).Where(x => x != null && x.BoundingBox != null).ToList();

            document.Selection.Select(sel);

            ToolManager.Activate(HotkeyTool.Selection, true);

            Mediator.Publish(EditorMediator.DocumentTreeSelectedObjectsChanged, sel.Union(document.Selection.GetSelectedObjects()));
            Mediator.Publish(EditorMediator.SelectionChanged);
        }
        public void Reverse(Document document)
        {
            ToolManager.Deactivate(true);

            document.Selection.SwitchToFaceSelection();
            var seln = document.Selection.GetSelectedFaces();

            document.Selection.Clear();

            var sel = _selection.Select(x => FindFace(document, x.Key, x.Value)).Where(x => x != null).ToList();

            document.Selection.Select(sel);

            ToolManager.Activate(_toolType, true);

            Mediator.Publish(EditorMediator.DocumentTreeSelectedFacesChanged, sel.Union(seln));
            Mediator.Publish(EditorMediator.SelectionChanged);
        }