_onEnter: function()

in source/html/js/app/ui/diagram_statemachine_factory.js [65:171]


                            _onEnter: function() {
                                my_diagram.nodes.on("*", (function() {
                                    return function(event, properties, senderId) {
                                        // take a copy of the one-shots in case more get added during event handling
                                        var one_time = Array.from(my_diagram.node_dataset_callbacks_once);
                                        my_diagram.node_dataset_callbacks_once = [];
                                        for (let callback of one_time) {
                                            callback(event, properties, senderId);
                                        }
                                        for (let callback of my_diagram.node_dataset_callbacks) {
                                            callback(event, properties, senderId);
                                        }
                                    };
                                })());
                                my_diagram.network.on("click", (function() {
                                    return function(event) {
                                        // console.log(my_diagram.name + " diagram click");
                                        if (event.nodes.length > 0) {
                                            alert.show(event.nodes.length + " selected");
                                        }
                                        // take a copy of the one-shots in case more get added during event handling
                                        var one_time = Array.from(my_diagram.click_callbacks_once);
                                        my_diagram.click_callbacks_once = [];
                                        for (let callback of one_time) {
                                            callback(my_diagram, event);
                                        }
                                        for (let callback of my_diagram.click_callbacks) {
                                            callback(my_diagram, event);
                                        }
                                    };
                                })());
                                my_diagram.network.on("doubleClick", (function() {
                                    return function(event) {
                                        console.log(my_diagram.name + " diagram doubleClick");
                                        // take a copy of the one-shots in case more get added during event handling
                                        var one_time = Array.from(my_diagram.doubleclick_callbacks_once);
                                        my_diagram.doubleclick_callbacks_once = [];
                                        for (let callback of one_time) {
                                            callback(my_diagram, event);
                                        }
                                        for (let callback of my_diagram.doubleclick_callbacks) {
                                            callback(my_diagram, event);
                                        }
                                        // zoom
                                        if (event.nodes.length > 0) {
                                            my_diagram.fit_to_nodes([event.nodes]);
                                        } else if (event.nodes.length == 0 && event.edges.length == 0) {
                                            var click_x = event.pointer.canvas.x;
                                            var click_y = event.pointer.canvas.y;
                                            my_diagram.fit_to_nearest(click_x, click_y);
                                        }
                                    };
                                })());
                                my_diagram.network.on("dragEnd", function(event) {
                                    if (event.nodes.length) {
                                        layout.save_layout(my_diagram, event.nodes);
                                    }
                                });

                                $("#" + my_diagram.tab_id).on("show.bs.tab", (function() {
                                    return function(event) {
                                        console.log(my_diagram.name + " diagram show.bs.tab");
                                    };
                                })());
                                my_diagram.drag_container.on("mousemove", function(e) {
                                    // console.log("mousemove");
                                    if (my_diagram.drag) {
                                        my_diagram.restore_drawing_surface();
                                        my_diagram.drag_rect.w = (e.pageX - this.offsetLeft) - my_diagram.drag_rect.startX;
                                        my_diagram.drag_rect.h = (e.pageY - this.offsetTop) - my_diagram.drag_rect.startY;
                                        my_diagram.drag_ctx.setLineDash([5]);
                                        my_diagram.drag_ctx.strokeStyle = "rgb(0, 102, 0)";
                                        my_diagram.drag_ctx.strokeRect(my_diagram.drag_rect.startX, my_diagram.drag_rect.startY, my_diagram.drag_rect.w, my_diagram.drag_rect.h);
                                        my_diagram.drag_ctx.setLineDash([]);
                                        my_diagram.drag_ctx.fillStyle = "rgba(0, 255, 0, 0.2)";
                                        my_diagram.drag_ctx.fillRect(my_diagram.drag_rect.startX, my_diagram.drag_rect.startY, my_diagram.drag_rect.w, my_diagram.drag_rect.h);
                                    }
                                    if (e.pageX < 100) {
                                        $("#inventory-drawer-div").animate({
                                            width: "25%",
                                        }, 500, function() {
                                            // Animation complete.
                                        });
                                    }
                                });
                                my_diagram.drag_container.on("mousedown", function(e) {
                                    // console.log("mousedown");
                                    if (e.button == 2) {
                                        selectedNodes = e.ctrlKey ? my_diagram.network.getSelectedNodes() : null;
                                        my_diagram.save_drawing_surface();
                                        my_diagram.drag_rect.startX = e.pageX - this.offsetLeft;
                                        my_diagram.drag_rect.startY = e.pageY - this.offsetTop;
                                        my_diagram.drag = true;
                                        my_diagram.drag_container[0].style.cursor = "crosshair";
                                    }
                                });
                                my_diagram.drag_container.on("mouseup", function(e) {
                                    // console.log("mouseup");
                                    if (e.button == 2) {
                                        my_diagram.restore_drawing_surface();
                                        my_diagram.drag = false;
                                        my_diagram.drag_container[0].style.cursor = "default";
                                        my_diagram.select_nodes_from_highlight();
                                    }
                                });
                                this.transition("restore-nodes");
                            }