UNPKG

@kieler/klighd-core

Version:

Core KLighD diagram visualization with Sprotty

233 lines 9.05 kB
"use strict"; /* * KIELER - Kiel Integrated Environment for Layout Eclipse RichClient * * http://rtsys.informatik.uni-kiel.de/kieler * * Copyright 2021 by * + Kiel University * + Department of Computer Science * + Real-Time and Embedded Systems Group * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License 2.0 which is available at * http://www.eclipse.org/legal/epl-2.0. * * SPDX-License-Identifier: EPL-2.0 */ // We follow Sprotty's way of redeclaring the interface and its create function, so disable this lint check for this file. /* eslint-disable no-redeclare */ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SetInitialBookmarkAction = exports.GoToBookmarkCommand = exports.GoToBookmarkAction = exports.RenameBookmarkAction = exports.DeleteBookmarkAction = exports.AddBookmarkAction = exports.CreateBookmarkCommand = exports.CreateBookmarkAction = exports.Bookmark = void 0; const inversify_1 = require("inversify"); const sprotty_1 = require("sprotty"); const sprotty_protocol_1 = require("sprotty-protocol"); /** * A Bookmark */ class Bookmark { constructor(place, name) { this.place = place; this.name = name; } static isBookmark(value) { if ('zoom' in value.place && 'scroll' in value.place && 'x' in value.place.scroll && 'y' in value.place.scroll) { return true; } return false; } clone() { const place = { zoom: this.place.zoom, scroll: { x: this.place.scroll.x, y: this.place.scroll.y }, }; return new Bookmark(place, this.name); } get saveId() { return `bookmark-save-${this.bookmarkIndex}`; } get editId() { return `bookmark-edit-${this.bookmarkIndex}`; } } exports.Bookmark = Bookmark; var CreateBookmarkAction; (function (CreateBookmarkAction) { CreateBookmarkAction.KIND = 'create-bookmark'; function create() { return { kind: CreateBookmarkAction.KIND, }; } CreateBookmarkAction.create = create; /** Type predicate to narrow an action to this action. */ function isThisAction(action) { return action.kind === CreateBookmarkAction.KIND; } CreateBookmarkAction.isThisAction = isThisAction; })(CreateBookmarkAction || (exports.CreateBookmarkAction = CreateBookmarkAction = {})); /** * The Command corresponding to the CreateBookmarkAction, * this is what actually causes the Bookmark to be added to the {@link BookmarkRegistry} */ let CreateBookmarkCommand = class CreateBookmarkCommand extends sprotty_1.Command { constructor(action) { super(); this.action = action; } execute(context) { const model = context.root; if ((0, sprotty_1.isViewport)(model)) { // copy the viewport as we do want the Bookmark to stay where we are now this.bookmark = new Bookmark({ scroll: model.scroll, zoom: model.zoom }); this.actionDispatcher.dispatch(AddBookmarkAction.create(this.bookmark)); } return model; } undo(context) { var _a; if ((_a = this.bookmark) === null || _a === void 0 ? void 0 : _a.bookmarkIndex) { this.actionDispatcher.dispatch(DeleteBookmarkAction.create(this.bookmark.bookmarkIndex)); } return context.root; } redo(context) { if (this.bookmark) { this.actionDispatcher.dispatch(AddBookmarkAction.create(this.bookmark)); } return context.root; } }; exports.CreateBookmarkCommand = CreateBookmarkCommand; CreateBookmarkCommand.KIND = CreateBookmarkAction.KIND; __decorate([ (0, inversify_1.inject)(sprotty_1.TYPES.IActionDispatcher), __metadata("design:type", sprotty_1.ActionDispatcher // the created bookmark for us to be able to perform the undo/redo // undo relies on the fact that this is the same object that is stored in the registry // and we are able to observe the assigned id through this reference ) ], CreateBookmarkCommand.prototype, "actionDispatcher", void 0); exports.CreateBookmarkCommand = CreateBookmarkCommand = __decorate([ (0, inversify_1.injectable)(), __param(0, (0, inversify_1.inject)(sprotty_1.TYPES.Action)), __metadata("design:paramtypes", [Object]) ], CreateBookmarkCommand); var AddBookmarkAction; (function (AddBookmarkAction) { AddBookmarkAction.KIND = 'add-bookmark'; function create(bookmark) { return { kind: AddBookmarkAction.KIND, bookmark, }; } AddBookmarkAction.create = create; /** Type predicate to narrow an action to this action. */ function isThisAction(action) { return action.kind === AddBookmarkAction.KIND; } AddBookmarkAction.isThisAction = isThisAction; })(AddBookmarkAction || (exports.AddBookmarkAction = AddBookmarkAction = {})); var DeleteBookmarkAction; (function (DeleteBookmarkAction) { DeleteBookmarkAction.KIND = 'delete-bookmark'; function create(bookmarkIndex) { return { kind: DeleteBookmarkAction.KIND, bookmarkIndex, }; } DeleteBookmarkAction.create = create; /** Type predicate to narrow an action to this action. */ function isThisAction(action) { return action.kind === DeleteBookmarkAction.KIND; } DeleteBookmarkAction.isThisAction = isThisAction; })(DeleteBookmarkAction || (exports.DeleteBookmarkAction = DeleteBookmarkAction = {})); var RenameBookmarkAction; (function (RenameBookmarkAction) { RenameBookmarkAction.KIND = 'rename-bookmark'; function create(bookmarkIndex, newName) { return { kind: RenameBookmarkAction.KIND, bookmarkIndex, newName, }; } RenameBookmarkAction.create = create; /** Type predicate to narrow an action to this action. */ function isThisAction(action) { return action.kind === RenameBookmarkAction.KIND; } RenameBookmarkAction.isThisAction = isThisAction; })(RenameBookmarkAction || (exports.RenameBookmarkAction = RenameBookmarkAction = {})); var GoToBookmarkAction; (function (GoToBookmarkAction) { GoToBookmarkAction.KIND = 'get-bookmark'; function create(bookmark) { return { kind: GoToBookmarkAction.KIND, bookmark, }; } GoToBookmarkAction.create = create; /** Type predicate to narrow an action to this action. */ function isThisAction(action) { return action.kind === GoToBookmarkAction.KIND; } GoToBookmarkAction.isThisAction = isThisAction; })(GoToBookmarkAction || (exports.GoToBookmarkAction = GoToBookmarkAction = {})); class GoToBookmarkCommand { constructor(action, animate) { this.action = action; this.animate = animate; } execute(context) { const viewAction = sprotty_protocol_1.SetViewportAction.create(context.root.id, this.action.bookmark.place, { animate: this.animate, }); this.setCommand = new sprotty_1.SetViewportCommand(viewAction); return this.setCommand.execute(context); } undo(context) { return this.setCommand.undo(context); } redo(context) { return this.setCommand.redo(context); } } exports.GoToBookmarkCommand = GoToBookmarkCommand; GoToBookmarkCommand.KIND = GoToBookmarkAction.KIND; var SetInitialBookmarkAction; (function (SetInitialBookmarkAction) { SetInitialBookmarkAction.KIND = 'init-bookmark'; function create(bookmark) { return { kind: SetInitialBookmarkAction.KIND, bookmark, }; } SetInitialBookmarkAction.create = create; /** Type predicate to narrow an action to this action. */ function isThisAction(action) { return action.kind === SetInitialBookmarkAction.KIND; } SetInitialBookmarkAction.isThisAction = isThisAction; })(SetInitialBookmarkAction || (exports.SetInitialBookmarkAction = SetInitialBookmarkAction = {})); //# sourceMappingURL=bookmark.js.map