Inheritance: Invert.Core.GraphDesigner.ViewModel, IDataRecordInserted, IDataRecordRemoved, IDataRecordPropertyChanged
    //private ElementsDesigner _designerWindow;

    //public ElementsDesigner DesignerWindow
    //{
    //    get { return _designerWindow ?? (_designerWindow =   EditorWindow.GetWindow<ElementsDesigner>()); }
    //    set { _designerWindow = value; }
    //}

    internal static void ShowWindow(DiagramViewModel diagram)
    {
        var window = GetWindow<ElementDiagramSettingsWindow>();
        window.title = "Settings";
        //window.minSize = window.maxSize = new Vector2(400, 400);
        window.DesignerData = diagram;
        window.Show();
    }
 public override ConnectionViewModel Connect(DiagramViewModel diagramViewModel, ConnectorViewModel a, ConnectorViewModel b)
 {
     var typedItem = a.DataObject as GenericTypedChildItem;
     var clsType = b.DataObject as IClassTypeNode;
     if (clsType != null && typedItem != null)
     {
         if (a.Direction == ConnectorDirection.Output && b.Direction == ConnectorDirection.Input)
             return CreateConnection(diagramViewModel, a, b, Apply);
     }
     return null;
     return base.Connect(diagramViewModel, a, b);
 }
        public ConnectionHandler(DiagramViewModel diagramViewModel, ConnectorViewModel startConnector)
            : base(diagramViewModel)
        {
            StartConnector = startConnector;
            PossibleConnections = new List<ConnectorViewModel>();
            //InvertApplication.Log("YUP YUP YUP");
            var items = diagramViewModel.GraphItems.OfType<ConnectorViewModel>().ToArray();
            foreach (var connector in items)
            {
                foreach (var strategy in InvertGraphEditor.ConnectionStrategies)
                {
                    if (strategy.Connect(diagramViewModel, StartConnector, connector) != null)
                    {
                        PossibleConnections.Add(connector);
                    }
                }
            }
            foreach (var a in PossibleConnections)
            {
                a.IsMouseOver = true;
            }

        }
    private DiagramDrawer DiagramDrawer(GraphNode node)
    {
        var window = InvertGraphEditor.DesignerWindow as ElementsDesigner;

        var diagramViewModel = new DiagramViewModel(node.Graph);
        diagramViewModel.NavigateTo(node.Identifier);


    
        var drawer = new DiagramDrawer(diagramViewModel);
        drawer.Refresh(InvertGraphEditor.PlatformDrawer);

        var screenshotVM = diagramViewModel.AllViewModels.OfType<DiagramNodeViewModel>().FirstOrDefault(p => p.GraphItemObject.Identifier == node.Identifier);


        if (screenshotVM == null)
            return null;
        this.position = new Rect(this.position.x, this.position.y, screenshotVM.Bounds.width + 20f, screenshotVM.Bounds.height + 20f);
        var position = screenshotVM.Position - new Vector2(10f,10f);
        Debug.Log(diagramViewModel.GraphData.CurrentFilter.Name + " " + position.x + ": " + position.y);
        foreach (var item in drawer.Children.OrderBy(p => p.ZOrder))
        {
           
            
            //item.Refresh(InvertGraphEditor.PlatformDrawer, new Vector2(item.Bounds.x - screenshotVM.Bounds.x, item.Bounds.y - screenshotVM.Bounds.y));
            if (item == null) continue;
            if (item.ViewModelObject != null)
            {
                item.IsSelected = false;
                item.ViewModelObject.ShowHelp = true;
            }
            

            item.Bounds = new Rect(item.Bounds.x - position.x, item.Bounds.y - position.y,
                item.Bounds.width, item.Bounds.height);

            foreach (var child in item.Children)
            {
                if (child == null) continue;
                child.Bounds = new Rect(child.Bounds.x - position.x, child.Bounds.y - position.y,
                    child.Bounds.width, child.Bounds.height);
                if (child.ViewModelObject != null)
                {
                    var cb = child.ViewModelObject.ConnectorBounds;

                    child.ViewModelObject.ConnectorBounds = new Rect(cb.x - position.x, cb.y - position.y,
                        cb.width, cb.height);
                }

                //child.Refresh(InvertGraphEditor.PlatformDrawer, new Vector2(item.Bounds.x - screenshotVM.Bounds.x, item.Bounds.y - screenshotVM.Bounds.y));
            }
        }
        return drawer;
    }
 public void Show(DiagramViewModel diagramViewModel,ConnectorViewModel startConnector, Vector2 position)
 {
     var selectionMenu = new SelectionMenu();
     Signal<IQueryPossibleConnections>(_ => _.QueryPossibleConnections(selectionMenu, diagramViewModel, startConnector, position));
     Signal((IShowSelectionMenu _) => _.ShowSelectionMenu(selectionMenu, position));
 }
 public void CreateConnectionMenu(ConnectionHandler viewModel, DiagramViewModel diagramViewModel, MouseEvent mouseEvent)
 {
     
 }
Example #7
0
 public CommandNodeViewModel(CommandNode graphItemObject, Invert.Core.GraphDesigner.DiagramViewModel diagramViewModel) :
     base(graphItemObject, diagramViewModel)
 {
 }
Example #8
0
 public PropertyChangedNodeViewModel(PropertyChangedNode graphItemObject, Invert.Core.GraphDesigner.DiagramViewModel diagramViewModel) :
     base(graphItemObject, diagramViewModel)
 {
 }
Example #9
0
 public SequenceItemNodeViewModel(SequenceItemNode graphItemObject, Invert.Core.GraphDesigner.DiagramViewModel diagramViewModel) :
     base(graphItemObject, diagramViewModel)
 {
 }
Example #10
0
        public void QueryPossibleConnections(SelectionMenu menu, DiagramViewModel diagramViewModel,
                                             ConnectorViewModel startConnector,
                                             Vector2 mousePosition)
        {
            var currentGraph       = InvertApplication.Container.Resolve <WorkspaceService>().CurrentWorkspace.CurrentGraph;
            var allowedFilterNodes = FilterExtensions.AllowedFilterNodes[currentGraph.CurrentFilter.GetType()];

            foreach (var item in allowedFilterNodes)
            {
                if (item.IsInterface)
                {
                    continue;
                }
                if (item.IsAbstract)
                {
                    continue;
                }

                var node = Activator.CreateInstance(item) as IDiagramNode;
                node.Repository = diagramViewModel.CurrentRepository;
                node.GraphId    = currentGraph.Identifier;

                var vm = InvertGraphEditor.Container.GetNodeViewModel(node, diagramViewModel) as DiagramNodeViewModel;


                if (vm == null)
                {
                    continue;
                }
                vm.IsCollapsed = false;
                var connectors = new List <ConnectorViewModel>();
                vm.GetConnectors(connectors);

                var config = InvertGraphEditor.Container.Resolve <NodeConfigBase>(item.Name);
                var name   = config == null ? item.Name : config.Name;
                foreach (var connector in connectors)
                {
                    foreach (var strategy in InvertGraphEditor.ConnectionStrategies)
                    {
                        var connection = strategy.Connect(diagramViewModel, startConnector, connector);
                        if (connection == null)
                        {
                            continue;
                        }
                        var node1   = node;
                        var message = string.Format("Create {0}", name);
                        //if (!string.IsNullOrEmpty(connector.Name))
                        //{
                        //    message += string.Format(" and connect to {0}", connector.Name);
                        //}
                        var value = new KeyValuePair <IDiagramNode, ConnectionViewModel>(node1, connection);

                        var qaItem = new SelectionMenuItem("Connect", message, () =>
                        {
                            diagramViewModel.AddNode(value.Key, mousePosition);
                            connection.Apply(value.Value as ConnectionViewModel);
                            value.Key.IsSelected = true;
                            value.Key.IsEditing  = true;
                            value.Key.Name       = "";
                        });
                        menu.AddItem(qaItem);
                    }
                }
            }
        }
Example #11
0
 public ConnectionViewModel(DiagramViewModel diagramViewModel)
 {
     DiagramViewModel = diagramViewModel;
 }
 public TypeReferenceNodeViewModel(TypeReferenceNode graphItemObject, DiagramViewModel diagramViewModel) : base(graphItemObject, diagramViewModel)
 {
 }
Example #13
0
 public DiagramInputHander(DiagramViewModel diagramViewModel)
 {
     DiagramViewModel = diagramViewModel;
 }
Example #14
0
 public ConnectorInfo(ConnectorViewModel[] allConnectors, DiagramViewModel viewModel)
 {
     AllConnectors    = allConnectors;
     DiagramData      = viewModel.GraphData;
     DiagramViewModel = viewModel;
 }
 public ConnectionViewModel(DiagramViewModel diagramViewModel)
 {
     DiagramViewModel = diagramViewModel;
 }
Example #16
0
        public static GraphItemViewModel GetNodeViewModel(this IUFrameContainer container, IGraphItem item, DiagramViewModel diagram)
        {
            var vm = InvertApplication.Container.ResolveRelation <ViewModel>(item.GetType(), item, diagram) as
                     GraphItemViewModel;

            return(vm);
        }
 public StateMachineNodeViewModel(StateMachineNode graphItemObject, Invert.Core.GraphDesigner.DiagramViewModel diagramViewModel) :
     base(graphItemObject, diagramViewModel)
 {
 }
Example #18
0
 public void Save()
 {
     DiagramViewModel.Save();
 }
Example #19
0
 public void CreateConnectionMenu(ConnectionHandler viewModel, DiagramViewModel diagramViewModel, MouseEvent mouseEvent)
 {
 }
Example #20
0
 public GroupNodeViewModel(GroupNode graphItemObject, Invert.Core.GraphDesigner.DiagramViewModel diagramViewModel) :
     base(graphItemObject, diagramViewModel)
 {
 }
    public void OnGUI()
    {
        try
        {
            if (DesignerData == null)
            {

                if (InvertGraphEditor.DesignerWindow.DiagramViewModel != null)
                {
                    DesignerData = InvertGraphEditor.DesignerWindow.DiagramViewModel;
                }
                else
                {
                    EditorGUILayout.HelpBox("Reopen this window.", MessageType.Info);
                    return;
                }
            }

            DrawTitleBar(DesignerData.Title);
            GUILayout.BeginArea(new Rect(5, 50, position.width - 10, this.position.height - 55), GUI.skin.box);


            _ChangeLogScrollPosition = GUILayout.BeginScrollView(_ChangeLogScrollPosition, false, false,
                GUILayout.Width(position.width - 15), GUILayout.Height(this.position.height - 15));

            //GUILayout.Label(_ChangeLog.text, EditorStyles.wordWrappedLabel);
            var s = DesignerData.Settings;
            
            
          
      
            //s.AssociationLinkColor = EditorGUILayout.ColorField("Association Link Color", s.AssociationLinkColor);
            //s.GridLinesColor = EditorGUILayout.ColorField("Grid Lines Color", s.GridLinesColor);
            //s.GridLinesColorSecondary = EditorGUILayout.ColorField("Grid Lines Secondary Color", s.GridLinesColorSecondary);
            //s.DefinitionLinkColor = EditorGUILayout.ColorField("Definition Link Color", s.DefinitionLinkColor);
            //s.InheritanceLinkColor = EditorGUILayout.ColorField("Inheritance Link Color", s.InheritanceLinkColor);
            //s.SceneManagerLinkColor = EditorGUILayout.ColorField("SceneManager Link Color", s.SceneManagerLinkColor);
            //s.SubSystemLinkColor = EditorGUILayout.ColorField("SubSystem Link Color", s.SubSystemLinkColor);
            //s.TransitionLinkColor = EditorGUILayout.ColorField("Transition Link Color", s.TransitionLinkColor);
            //s.ViewLinkColor = EditorGUILayout.ColorField("View Link Color", s.ViewLinkColor);
            s.CodeGenDisabled = EditorGUILayout.Toggle("Disable Code Generation", s.CodeGenDisabled);
            s.SnapSize = Math.Max(1, EditorGUILayout.IntField("Snap Size", s.SnapSize));
            s.Snap = EditorGUILayout.Toggle("Snap",s.Snap);
         
            //var pathStrategies = 
            //    InvertApplication.Container.Mappings.Where(p => p.Key.Item1 == typeof (ICodePathStrategy)).ToArray();
            //var names = pathStrategies.Select(p => p.Name).ToArray();
            //var selected = Array.IndexOf(names, s.CodePathStrategyName);
            //var types = pathStrategies.Select(p => p.to);
            //EditorGUI.BeginChangeCheck();
            //var newIndex = EditorGUILayout.Popup("Generator Path Strategy", Math.Max(0, selected), names);
            //if (EditorGUI.EndChangeCheck())
            //{
            //    if (newIndex >= 0 && DesignerData.RefactorCount < 1)
            //    {
            //        if (names[newIndex] != s.CodePathStrategyName)
            //        {
            //            DesignerData.Settings.CodePathStrategyName = names[newIndex];
            //            EditorApplication.SaveAssets();
                        
            //            //var newStrategy = uFrameEditor.Container.Resolve<ICodePathStrategy>(names[newIndex]);
            //            //DesignerData.DiagramData.CodePathStrategy.MoveTo(DesignerData.CurrentRepository.GeneratorSettings, newStrategy, names[newIndex], this.DesignerWindow);
            //        }

            //    }
            //    else
            //    {
            //        EditorUtility.DisplayDialog("Save First",
            //            "Save your diagram first before changing the path strategy.", "OK");
            //    }
            //}
            
            GUILayout.EndScrollView();

            GUILayout.EndArea();
        }
        catch(Exception ex)
        {
            //UnityEngine.Debug.LogException(ex);
        }
    }
Example #22
0
 public ImageNodeViewModel(ImageNode graphItemObject, DiagramViewModel diagramViewModel) : base(graphItemObject, diagramViewModel)
 {
 }
Example #23
0
 public CollectionModifiedHandlerNodeViewModel(CollectionModifiedHandlerNode graphItemObject, Invert.Core.GraphDesigner.DiagramViewModel diagramViewModel) :
     base(graphItemObject, diagramViewModel)
 {
 }
 public GenericNodeViewModel(TData graphItemObject, DiagramViewModel diagramViewModel)
     : base(graphItemObject, diagramViewModel)
 {
 }
Example #25
0
 public SetVariableNodeViewModel(SetVariableNode graphItemObject, Invert.Core.GraphDesigner.DiagramViewModel diagramViewModel) :
     base(graphItemObject, diagramViewModel)
 {
 }
Example #26
0
 protected DiagramNodeViewModel(TData graphItemObject, DiagramViewModel diagramViewModel)
     : base(graphItemObject, diagramViewModel)
 {
 }
Example #27
0
 public ScreenshotNodeViewModel(ScreenshotNode graphItemObject, DiagramViewModel diagramViewModel) : base(graphItemObject, diagramViewModel)
 {
 }
 public CustomActionNodeViewModel(CustomActionNode graphItemObject, Invert.Core.GraphDesigner.DiagramViewModel diagramViewModel) :
     base(graphItemObject, diagramViewModel)
 {
 }
 public DiagramDrawer(DiagramViewModel viewModel)
 {
     DiagramViewModel = viewModel;
 }
        public void QueryPossibleConnections(SelectionMenu menu,DiagramViewModel diagramViewModel,
            ConnectorViewModel startConnector,
            Vector2 mousePosition)
        {
    

            var currentGraph = InvertApplication.Container.Resolve<WorkspaceService>().CurrentWorkspace.CurrentGraph;
            var allowedFilterNodes = FilterExtensions.AllowedFilterNodes[currentGraph.CurrentFilter.GetType()];
            foreach (var item in allowedFilterNodes)
            {
                if (item.IsInterface) continue;
                if (item.IsAbstract) continue;

                var node = Activator.CreateInstance(item) as IDiagramNode;
                node.Repository = diagramViewModel.CurrentRepository;
                node.GraphId = currentGraph.Identifier;

                var vm = InvertGraphEditor.Container.GetNodeViewModel(node, diagramViewModel) as DiagramNodeViewModel;


                if (vm == null) continue;
                vm.IsCollapsed = false;
                var connectors = new List<ConnectorViewModel>();
                vm.GetConnectors(connectors);

                var config = InvertGraphEditor.Container.Resolve<NodeConfigBase>(item.Name);
                var name = config == null ? item.Name : config.Name;
                foreach (var connector in connectors)
                {
                    foreach (var strategy in InvertGraphEditor.ConnectionStrategies)
                    {
                        var connection = strategy.Connect(diagramViewModel, startConnector, connector);
                        if (connection == null) continue;
                        var node1 = node;
                        var message = string.Format("Create {0}", name);
                        //if (!string.IsNullOrEmpty(connector.Name))
                        //{
                        //    message += string.Format(" and connect to {0}", connector.Name);
                        //}
                        var value = new KeyValuePair<IDiagramNode, ConnectionViewModel>(node1, connection);

                        var qaItem = new SelectionMenuItem("Connect", message,() =>
                        {
                            diagramViewModel.AddNode(value.Key, mousePosition);
                            connection.Apply(value.Value as ConnectionViewModel);
                            value.Key.IsSelected = true;
                            value.Key.IsEditing = true;
                            value.Key.Name = "";
                        });
                        menu.AddItem(qaItem);
                    }
                }
            }
        }
Example #31
0
 public NoteNodeViewModel(NoteNode graphItemObject, DiagramViewModel diagramViewModel) : base(graphItemObject, diagramViewModel)
 {
 }
 public SelectionRectHandler(DiagramViewModel diagram)
 {
     ViewModel = diagram;
 }
Example #33
0
 public DiagramDrawer(DiagramViewModel viewModel)
 {
     DiagramViewModel = viewModel;
 }
 public DiagramInputHander(DiagramViewModel diagramViewModel)
 {
     DiagramViewModel = diagramViewModel;
 }
Example #35
0
 public EnumValueNodeViewModel(EnumValueNode graphItemObject, Invert.Core.GraphDesigner.DiagramViewModel diagramViewModel) :
     base(graphItemObject, diagramViewModel)
 {
 }