Skip to content

Commit 5cbf2f6

Browse files
committed
Add new features to logic editor
1 parent 90b5a83 commit 5cbf2f6

File tree

4 files changed

+26
-8
lines changed

4 files changed

+26
-8
lines changed

app/angular/logic/logic.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ <h2 class="h4 pull-left">{{ 'Logical model of:' | translate }} {{$ctrl.model.nam
4747
<li class="divider"><a data-ng-click="$ctrl.print()" title="{{ 'Print (CTRL P)' | translate }}"><i class="fa fa-print"></i></a></li>
4848
</ul>
4949
<aside class="feedback">
50-
<div class="alert" role="alert" data-ng-class="{'hide': !$ctrl.feedback.showing, 'alert-danger': $ctrl.feedback.type=='error', 'alert-success': $ctrl.feedback.type=='success'}">
50+
<div class="alert" role="alert" data-ng-class="{'hide': !$ctrl.feedback.showing, 'alert-danger': $ctrl.feedback.type=='error', 'alert-success': $ctrl.feedback.type=='success', 'alert-warning': $ctrl.feedback.type=='warning'}">
5151
<p>{{ $ctrl.feedback.message }}</p>
5252
</div>
5353
</aside>

app/angular/logic/logic.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,12 @@ const controller = function (
154154
}
155155
});
156156

157+
$rootScope.$on("model:warning-copy", function () {
158+
$timeout(() => {
159+
ctrl.showFeedback("Copy is not allowed on this module when element has references.", true, "warning");
160+
});
161+
});
162+
157163
ctrl.updateCardA = function (card) {
158164
LogicService.editCardinalityA(card);
159165
}

app/angular/logic/sidebarControl.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
</div><!-- End .form-group -->
1414
</div>
1515

16-
<div class="properties-content" ng-if="$ctrl.selectedElement != null && $ctrl.selectedType === 'uml.Class'">
16+
<div class="properties-content" ng-if="$ctrl.selectedElement != null && $ctrl.selectedType === 'uml.Class' && $ctrl.visible">
1717
<section class="sidebar-panel">
1818
<header class="panel-header" ng-click="$ctrl.toggleSection('tableProperties')">
1919
<h3>{{ 'Table properties' | translate }}</h3>

app/angular/service/logicService.js

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import uml from "../../joint/table";
99
joint.shapes.erd = erd;
1010
joint.shapes.uml = uml;
1111
import "jointjs/dist/joint.min.css";
12-
1312
import "../editor/editorManager"
1413
import "../editor/editorScroller"
1514
import "../editor/editorActions"
@@ -185,7 +184,7 @@ const logicService = ($rootScope, ModelAPI, LogicFactory, LogicConversorService)
185184
ls.editorScroller.startPanning(evt);
186185
}
187186

188-
ls.editorActions.setCopyContext(evt);
187+
ls.elementSelector.setCopyContext(evt);
189188
});
190189

191190
ls.getConnectionType = link => {
@@ -352,6 +351,7 @@ const logicService = ($rootScope, ModelAPI, LogicFactory, LogicConversorService)
352351
var name = "";
353352
if (ls.selectedElement.model != null) ls.selectedElement.unhighlight();
354353
if (cellView.model.attributes.name != null) {
354+
ls.elementSelector.cancel();
355355
ls.selectedElement = cellView;
356356
name = ls.selectedElement.model.attributes.name;
357357
ls.selectedElement.highlight();
@@ -473,6 +473,18 @@ const logicService = ($rootScope, ModelAPI, LogicFactory, LogicConversorService)
473473
ls.editorScroller.zoom();
474474
}
475475

476+
ls.copySelectedElements = function () {
477+
const elements = ls.elementSelector.getSelectedElements();
478+
const hasConnections = elements.some(element => {
479+
return element.attributes.objects.some(attr => attr.FK);
480+
});
481+
if(hasConnections) {
482+
$rootScope.$broadcast('model:warning-copy');
483+
} else {
484+
ls.elementSelector.copyAll();
485+
}
486+
}
487+
476488
ls.registerShortcuts = () => {
477489
ls.keyboardController.registerHandler(types.UNDO, () => ls.undo());
478490
ls.keyboardController.registerHandler(types.REDO, () => ls.redo());
@@ -482,11 +494,11 @@ const logicService = ($rootScope, ModelAPI, LogicFactory, LogicConversorService)
482494
ls.keyboardController.registerHandler(types.ESC, () => ls.clearSelectedElement());
483495
ls.keyboardController.registerHandler(types.SAVE, () => {
484496
ls.updateModel();
485-
$rootScope.$broadcast('model:saved')
497+
$rootScope.$broadcast('model:saved');
486498
});
487-
ls.keyboardController.registerHandler(types.COPY, () => ls.editorActions.copyElement(ls.selectedElement));
488-
ls.keyboardController.registerHandler(types.PASTE, () => ls.editorActions.pasteElement());
489-
ls.keyboardController.registerHandler(types.DELETE, () => ls.selectedActions?.removeElement() );
499+
ls.keyboardController.registerHandler(types.COPY, () => ls.copySelectedElements());
500+
ls.keyboardController.registerHandler(types.PASTE, () => ls.elementSelector.pasteAll());
501+
ls.keyboardController.registerHandler(types.DELETE, () => ls.elementSelector.deleteAll());
490502
}
491503

492504
ls.getTablesMap = function () {

0 commit comments

Comments
 (0)