public void MarkForUpdate(UpdateFlags flag, IGTFGraphElementModel model = null) { EditorDataModel?.SetUpdateFlag(flag); if (model != null) { EditorDataModel?.AddModelToUpdate(model); } }
public void Setup(IGTFGraphElementModel portModel, IStore store, GraphView graphView) { PortModel = portModel as IGTFPortModel; Store = store; GraphView = graphView; BuildUI(); UpdateFromModel(); }
public static T CreateUI <T>(GraphView graphView, IStore store, IGTFGraphElementModel model) where T : class, IGraphElement { if (model == null) { Debug.LogError("GraphElementFactory could not create element because model is null."); return(null); } if (graphView == null) { Debug.LogError("GraphElementFactory could not create element because graphView is null."); return(null); } var ext = ExtensionMethodCache <ElementBuilder> .GetExtensionMethod( model.GetType(), ElementBuilder.FilterMethods, ElementBuilder.KeySelector ); T newElem = null; if (ext != null) { var nodeBuilder = new ElementBuilder { GraphView = graphView }; newElem = ext.Invoke(null, new object[] { nodeBuilder, store, model }) as T; } if (newElem == null) { Debug.LogError($"GraphElementFactory doesn't know how to create a UI for element of type: {model.GetType()}"); return(null); } s_UIForModel[new ValueTuple <GraphView, IGTFGraphElementModel>(graphView, model)] = newElem; return(newElem); }
public static T CreateUI <T>(this IGTFGraphElementModel model, GraphView graphView, IStore store) where T : class, IGraphElement { return(CreateUI <T>(graphView, store, model)); }
public static T GetUI <T>(this IGTFGraphElementModel model, GraphView graphView) where T : class, IGraphElement { return(s_UIForModel.TryGetValue(new ValueTuple <GraphView, IGTFGraphElementModel>(graphView, model), out var ui) ? ui as T : null); }