Пример #1
0
        public virtual void Initialize(AbstractNode node, EdgeConnectorListener connectorListener)
        {
            viewDataKey = node.guid;
            target      = node;

            styleSheets.Add(Resources.Load <StyleSheet>("Styles/NodeView"));
            AddToClassList("nodeView");

            SetPosition(new Rect(node.graphPosition, Vector2.one));
            m_ConnectorListener = connectorListener;
            title = node.name;

            m_SerializedNode = new SerializedObject(node);

            // Custom OnDestroy() handler via https://forum.unity.com/threads/request-for-visualelement-ondestroy-or-onremoved-event.718814/
            RegisterCallback <DetachFromPanelEvent>((e) => OnDestroy());
            RegisterCallback <TooltipEvent>(OnTooltip);

            UpdatePorts();

            // TODO: Don't do it this way.
            if (node is FuncNode func)
            {
                func.Awake();
            }
        }
Пример #2
0
        public CanvasView(EditorWindow window)
        {
            m_EditorWindow = window;

            styleSheets.Add(Resources.Load <StyleSheet>("Styles/CanvasView"));
            AddToClassList("canvasView");

            m_EdgeListener          = new EdgeConnectorListener(this);
            m_SearchProvider        = ScriptableObject.CreateInstance <SearchProvider>();
            m_SearchProvider.target = this;

            SetupZoom(0.05f, ContentZoomer.DefaultMaxScale);

            this.AddManipulator(new ContentDragger());
            this.AddManipulator(new SelectionDragger());
            this.AddManipulator(new RectangleSelector());
            this.AddManipulator(new ClickSelector());

            // Add event handlers for shortcuts and changes
            RegisterCallback <KeyDownEvent>(OnGraphKeydown);
            RegisterCallback <MouseMoveEvent>(OnGraphMouseMove);
            graphViewChanged = OnGraphViewChanged;

            nodeCreationRequest = (ctx) => OpenSearch(ctx.screenMousePosition);

            // Add handlers for (de)serialization
            serializeGraphElements = OnSerializeGraphElements;
            canPasteSerializedData = OnTryPasteSerializedData;
            unserializeAndPaste    = OnUnserializeAndPaste;

            RegisterCallback <GeometryChangedEvent>(OnFirstResize);

            title      = new Label();
            title.text = "BLUEGRAPH";
            title.AddToClassList("canvasViewTitle");

            Add(title);

            // Add a grid renderer *behind* content containers
            Insert(0, new GridBackground());
        }