//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) { }
public CommandNodeViewModel(CommandNode graphItemObject, Invert.Core.GraphDesigner.DiagramViewModel diagramViewModel) : base(graphItemObject, diagramViewModel) { }
public PropertyChangedNodeViewModel(PropertyChangedNode graphItemObject, Invert.Core.GraphDesigner.DiagramViewModel diagramViewModel) : base(graphItemObject, diagramViewModel) { }
public SequenceItemNodeViewModel(SequenceItemNode graphItemObject, Invert.Core.GraphDesigner.DiagramViewModel diagramViewModel) : base(graphItemObject, diagramViewModel) { }
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); } } } }
public ConnectionViewModel(DiagramViewModel diagramViewModel) { DiagramViewModel = diagramViewModel; }
public TypeReferenceNodeViewModel(TypeReferenceNode graphItemObject, DiagramViewModel diagramViewModel) : base(graphItemObject, diagramViewModel) { }
public DiagramInputHander(DiagramViewModel diagramViewModel) { DiagramViewModel = diagramViewModel; }
public ConnectorInfo(ConnectorViewModel[] allConnectors, DiagramViewModel viewModel) { AllConnectors = allConnectors; DiagramData = viewModel.GraphData; DiagramViewModel = viewModel; }
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) { }
public void Save() { DiagramViewModel.Save(); }
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); } }
public ImageNodeViewModel(ImageNode graphItemObject, DiagramViewModel diagramViewModel) : base(graphItemObject, diagramViewModel) { }
public CollectionModifiedHandlerNodeViewModel(CollectionModifiedHandlerNode graphItemObject, Invert.Core.GraphDesigner.DiagramViewModel diagramViewModel) : base(graphItemObject, diagramViewModel) { }
public GenericNodeViewModel(TData graphItemObject, DiagramViewModel diagramViewModel) : base(graphItemObject, diagramViewModel) { }
public SetVariableNodeViewModel(SetVariableNode graphItemObject, Invert.Core.GraphDesigner.DiagramViewModel diagramViewModel) : base(graphItemObject, diagramViewModel) { }
protected DiagramNodeViewModel(TData graphItemObject, DiagramViewModel diagramViewModel) : base(graphItemObject, diagramViewModel) { }
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); } } } }
public NoteNodeViewModel(NoteNode graphItemObject, DiagramViewModel diagramViewModel) : base(graphItemObject, diagramViewModel) { }
public SelectionRectHandler(DiagramViewModel diagram) { ViewModel = diagram; }
public EnumValueNodeViewModel(EnumValueNode graphItemObject, Invert.Core.GraphDesigner.DiagramViewModel diagramViewModel) : base(graphItemObject, diagramViewModel) { }