aboutsummaryrefslogtreecommitdiffstats
path: root/deprecated-workflow-designer/sdc-workflow-designer-ui/src/app/directive/resizable/resizable.directive.ts
diff options
context:
space:
mode:
Diffstat (limited to 'deprecated-workflow-designer/sdc-workflow-designer-ui/src/app/directive/resizable/resizable.directive.ts')
-rw-r--r--deprecated-workflow-designer/sdc-workflow-designer-ui/src/app/directive/resizable/resizable.directive.ts42
1 files changed, 42 insertions, 0 deletions
diff --git a/deprecated-workflow-designer/sdc-workflow-designer-ui/src/app/directive/resizable/resizable.directive.ts b/deprecated-workflow-designer/sdc-workflow-designer-ui/src/app/directive/resizable/resizable.directive.ts
new file mode 100644
index 00000000..9f291bc7
--- /dev/null
+++ b/deprecated-workflow-designer/sdc-workflow-designer-ui/src/app/directive/resizable/resizable.directive.ts
@@ -0,0 +1,42 @@
+/**
+ * Copyright (c) 2017 ZTE Corporation.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and the Apache License 2.0 which both accompany this distribution,
+ * and are available at http://www.eclipse.org/legal/epl-v10.html
+ * and http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Contributors:
+ * ZTE - initial API and implementation and/or initial documentation
+ */
+
+import { AfterViewInit, Directive, ElementRef } from '@angular/core';
+import * as $ from 'jquery';
+
+import { JsPlumbService } from '../../services/jsplumb.service';
+import { ModelService } from '../../services/model.service';
+
+@Directive({ selector: '[wfmResizable]' })
+export class ResizableDirective implements AfterViewInit {
+
+ constructor(private el: ElementRef,
+ private jsPlumbService: JsPlumbService,
+ private planModelService: ModelService) {
+ }
+
+ public ngAfterViewInit() {
+ console.log('init resizble.');
+
+ $(this.el.nativeElement).resizable({
+ handles: 'all',
+ resize: (event, ui) => {
+ const element = ui.helper[0];
+ this.planModelService.updatePosition(element.id,
+ element.offsetLeft, element.offsetTop, element.offsetWidth, element.offsetHeight - 12);
+ this.jsPlumbService.resizeParent(element, element.parentNode);
+ const node = this.planModelService.getNodeMap().get(element.id);
+ this.jsPlumbService.jsplumbInstanceMap.get(node.parentId).revalidate(element.id);
+ },
+ });
+ }
+}