Commit Graph

837 Commits

Author SHA1 Message Date
Niklas Kiefer 5a7d579d3a fix(import): handle data associations on boundary import
Closes #1170
2019-08-19 08:19:04 +00:00
Maciej Barelkowski 6ed51fc036 fix(rules): allow to create attachments
Related to https://github.com/camunda/camunda-modeler/issues/1462
2019-08-13 08:40:37 +00:00
Niklas Kiefer 715d2cca2e fix(label-editing): prevent direct editing after create
Closes #1164
2019-08-13 06:20:34 +00:00
Maciej Barelkowski bf180321a3 fix(modeling): repair event based gateway target pasting
The incoming connections of an event based gateway
target should not be removed when pasting.

Closes #1163
2019-08-12 12:16:45 +00:00
Philipp Fromme 891e0e044d test(grid-snapping): verify start event mid snapping
Closes #1158
2019-08-09 20:30:48 +02:00
Niklas Kiefer 1470d043ba feat(palette): select start event when creating sub process
* use autoSelect hint to only select start event after create

Related to #1152
2019-08-09 12:40:22 +00:00
Philipp Fromme 969472ec9f fix(rules): always allow copying labels
* basic copy rules are implemented in diagram-js CopyPaste e.g. labels can only be copied when their label target is copied

Closes #1153
2019-08-08 09:33:02 +00:00
Philipp Fromme d6b8acc715 fix(copy-paste): copy name property
Closes #921
2019-08-08 07:50:23 +00:00
Philipp Fromme 194b963959 chore(copy-paste): rework and base upon diagram-js@5
* use <copyPaste.canCopyProperty> event to copy category value when copying group
* add camunda-bpmn-moddle for integration tests

BREAKING CHANGES

* CopyPaste: remove <property.clone>, add <moddleCopy.canCopyProperties>, <moddleCopy.canCopyProperty>, <moddleCopy.canSetCopiedProperty>
* BpmnRules: removed <elements.paste> rule in favor of <elements.create> rule
* BpmnRules: removed <element.paste> rule
* ElementFactory: use <attrs.di> property instead of <attrs.colors> for fill and stroke when creating element through ElementFactory#createBpmnElement
2019-08-07 16:03:55 +00:00
Philipp Fromme 14bf3a32ee feat(create): create multiple elements
* add <elements.create> rule for creating multiple elements
* handle creating multiple elements in CreateParticipantBehavior
* create sub process with start event through palette
2019-08-07 16:03:55 +00:00
Nico Rehwaldt 1f706fd9b8 Merge branch 'master' into develop 2019-08-05 14:14:07 +02:00
Niklas Kiefer 5d5f33c38b fix(create-participant-behavior): ensure available children
* Ensure there are leftover children to calculate createConstraints

Closes #1133
2019-08-05 09:56:18 +00:00
Maciej Barelkowski 4ca0a6c9fb Merge branch 'master' into develop 2019-07-22 15:37:51 +02:00
Nico Rehwaldt e7d66b4461 fix(rules): disallow dropping on labels and groups
* test create
* disallow drop on label
* disallow drop on group
* verify create group everywhere

Required by https://github.com/camunda/camunda-modeler/issues/1431
2019-07-22 15:37:07 +02:00
Philipp Fromme d0044f8313 fix(graphics-factory): add test case verifying fix
Related to #1129
2019-07-18 15:46:08 +02:00
Philipp Fromme ab56fc21ad feat(modeling): prevent accidential dragging of container elements
This implements custom hit areas for participants, lanes and
expanded subprocesses.

Given these changes, users need to grab container elements
on the boarder or the label area to move them.

Closes https://github.com/bpmn-io/bpmn-js/issues/957
2019-07-18 15:42:05 +02:00
Maciej Barelkowski 9ee90ef089 fix(modeling): correctly create connection replacement
Closes https://github.com/bpmn-io/bpmn-js/issues/1072
2019-07-02 12:21:49 +00:00
Maciej Barelkowski 23505a4783 Revert "feat(modeling): prevent accidential dragging of container elements"
This reverts commit 7b0e304062.

Related to https://github.com/camunda/camunda-modeler/issues/1416
Opens https://github.com/bpmn-io/bpmn-js/issues/957
2019-07-02 08:12:41 +00:00
Niklas Kiefer 9e52e4ee3e feat(group-behavior): set copied name value to pasted group elements
Closes camunda/camunda-modeler#1417
2019-07-02 07:42:22 +00:00
Niklas Kiefer e31c4d13ed chore(copy-paste): ensure pasted group has new category value
Relates to camunda/camunda-modeler#1417
2019-07-02 07:42:22 +00:00
Niklas Kiefer b7d6d62184 feat(label-behavior): correctly retrieve label from element
Relates to camunda/camunda-modeler#1417
2019-07-02 07:42:22 +00:00
Maciej Barelkowski 9c063f867b feat(Viewer): restore Viewer#importDefinitions
This was removed in f8f9334, but it occurred that
the method is used productively  by some of the clients.
This commit restores the method as part of public API.

Use `Viewer#importDefinitions` to import previously
parsed definitions. Now it is also possible to pass
the diagram or diagram id to be rendered during
graphical import.
2019-06-28 10:26:58 +02:00
Maciej Barelkowski ff45cab7c1 test(Viewer): correctly call done 2019-06-28 10:26:58 +02:00
Nico Rehwaldt 3b4251967d feat(snapping): add TRBL snapping against containers
Adds TRBL snapping with containers only.

Closes #1104
2019-06-27 13:09:22 +00:00
Sergio Rossi 92bdcb83eb feat(bpmn-renderer): correctly render all parallel and multiple events
Closes #1090
2019-06-27 10:41:27 +00:00
Nico Rehwaldt fdb299dc88 feat(modeling): allow to drag participant via nested lane
Related to https://github.com/bpmn-io/bpmn-js/issues/957
2019-06-25 18:01:40 +02:00
Philipp Fromme 7b0e304062 feat(modeling): prevent accidential dragging of container elements
This implements custom hit areas for participants, lanes and
expanded subprocesses.

Given these changes, users need to grab container elements
on the boarder or the label area to move them.

Closes https://github.com/bpmn-io/bpmn-js/issues/957
2019-06-25 18:01:40 +02:00
Maciej Barelkowski 890e466161 fix(bpmn-rules): allow to drop Boundary Events only on containers
Closes https://github.com/bpmn-io/bpmn-js/issues/1095
2019-06-24 13:47:08 +00:00
Niklas Kiefer 827df52e4b test(modeling): add test for center-to-center connection
Relates to #1087
2019-06-19 13:26:17 +00:00
Niklas Kiefer 9b9ff934d2 feat(snapping): snap to task mid on center interaction
Closes #1086
2019-06-19 13:26:17 +00:00
Niklas Kiefer cfad2f49aa feat(snapping): restore center snapping for Gateways and Events
Closes #1079
2019-06-19 13:26:17 +00:00
Nico Rehwaldt ca64b1b353 test(draw): fix broken test diagram 2019-06-18 11:31:15 +00:00
Nico Rehwaldt 19be51abc7 feat(modeling): ignore lanes when connecting message flows
Closes #950

Related to camunda/camunda-modeler#1213
2019-06-18 07:07:03 +00:00
Nico Rehwaldt 055fdf75e1 feat(modeling): allow label and group movement everywhere, round two
This partially reverts 0c0932d4c6f54181d7f06a626ef109ae7c00dccb.

Closes #1076
2019-06-18 07:07:03 +00:00
Nico Rehwaldt 5a69f9c0bc chore(modeling/behavior): rename Create -> FixHover behavior 2019-06-18 07:07:03 +00:00
Philipp Fromme bef75b2435 fix(snapping): snap to docking points
Closes #1081
2019-06-17 18:54:28 +00:00
Nico Rehwaldt 06cd481146 fix(grid-snapping): correctly update snapped waypoints
* make side-effect free
* use Modeling#updateWaypoints for actual update
2019-06-17 12:34:09 +00:00
Niklas Kiefer 405669e376 feat(bpmn-rules): ignore labels movement visually
* Set canMove to null if external label

Closes #1054
2019-06-13 08:44:41 +00:00
Maciej Barelkowski a09e0a3bed feat(bpmn-snapping): snap boundary event loop when close to source
Closes #903
2019-06-12 20:46:39 +02:00
Maciej Barelkowski 085cedfda1 feat(layout): correctly lay out Boundary Event loops
Loops will now be laid out with respect to minimum
second segment width.
2019-06-12 20:46:39 +02:00
Maciej Barelkowski d80076a034 feat(bpmn-snapping): snap inside the target instead of target center 2019-06-12 20:46:39 +02:00
Maciej Barelkowski eadc1fb159 test(layout): remove awesome test 2019-06-12 20:46:39 +02:00
Maciej Barelkowski 6eba64d666 test(layout): extract boundary event loop tests 2019-06-12 20:46:39 +02:00
Niklas Kiefer 144157f9eb feat(label-behavior): move external label after resizing
* Generate reference point for external label 
* Adjust label position after resizing due to reference point delta

Closes #1051
2019-06-11 22:15:18 +00:00
Niklas Kiefer 4777b42f63 chore(label-behavior): move test file
* Adjust to fit the existing behavior test file structure
2019-06-11 22:15:18 +00:00
Maciej Barelkowski debb96f49d test(modeling): ensure reconnecting data association works
Closes #1008
2019-06-06 17:42:48 +00:00
Maciej Barelkowski dd3d7e9c64 fix(modeling): fix selection during reconnection with replacement
Closes #896
2019-06-06 09:10:56 +00:00
Maciej Barelkowski 4c10420017 feat(modeling): replace connection with correct type if rules allow
As a side effect, this corrects also the layout of the replacement.

Closes #1049
2019-06-06 09:10:56 +00:00
Philipp Fromme 8815b73599 feat(grid-snapping): snap width and height on create first participant
Closes #1061
2019-06-05 15:50:47 +02:00
Philipp Fromme a98c8e3bc8 chore(bpmn-snapping): seperate snapping into create/move and connect
* move create/move snapping to BpmnCreateMoveSnapping
* move connect snapping to BpmnConnectSnapping
* refactor tests

Related camunda/camunda-modeler#1290
2019-06-05 14:36:39 +02:00
Philipp Fromme a4e160c48b chore(bpmn-snapping): move create behavior to seperate behavior 2019-06-05 14:36:39 +02:00
Philipp Fromme d42d5e3448 chore(resize-behavior): move resize behavior to seperate behavior
* setting minimum bounds and resize constraints moved to ResizeBehavior

Related to #1290
2019-06-05 14:36:39 +02:00
Philipp Fromme ca12ac91a4 chore(bpmn-snapping): move participant fitting to participant behavior
Related to #1290
2019-06-05 14:36:39 +02:00
Niklas Kiefer 8862865e2a feat(modeling): improve label positioning for boundary events
* Do not allow placing label onto host

Relates to camunda/camunda-modeler#1206
2019-06-05 06:04:42 +00:00
Maciej Barelkowski 2804e559e9 test(layout): skip connection preview test for create 2019-06-04 19:46:05 +02:00
Nico Rehwaldt 0a6cecc609 feat(modeling): lay out connection once per event attachment 2019-06-04 17:44:47 +00:00
Maciej Barelkowski d14e3735a4 test(layout): verify attached event connection layout 2019-06-04 17:44:47 +00:00
Maciej Barelkowski 9dbc3c88df feat(modeling): allow to attach intermediate event with connections
Closes #478
2019-06-04 17:44:47 +00:00
Maciej Barelkowski 33f9e7be6e feat(modeling): allow to attach events with event definition
This feature is allowed only for events which have their boundary
counteparts, i.e. intermediate throw, message catch, timer catch,
signal catch and conditional catch events.
2019-06-04 17:44:47 +00:00
Maciej Barelkowski 1e9aceecd7 feat(modeling): create boundary event via moving intermediate event 2019-06-04 17:44:47 +00:00
Maciej Barelkowski c1052383da feat(modeling): layout connection once per detachment 2019-06-04 16:07:13 +02:00
Maciej Barelkowski 4d6c8586e4 feat(modeling): allow to detach Boundary Events
Closes #1045
2019-06-04 16:07:13 +02:00
Maciej Barelkowski ecf9118a09 style(bpmn-replace): lint tests 2019-06-04 16:07:13 +02:00
Maciej Barelkowski 66bc72d5e3 test(modeling): remove doubled module in test setup 2019-06-04 16:07:13 +02:00
Maciej Barelkowski ba5bf31e42 fix(bpmn-rules): correctly evaluate waypoints update rule
Closes #1048
2019-06-03 09:56:39 +00:00
Gustavo E. Jimenez Folta 3a0f044d9e feat(modeling): add subprocess with start event included
When:

1. Creating expanded subprocess from palette.
2. Replacing task with expanded subprocess.
2019-05-29 16:05:22 +02:00
Philipp Fromme 9e5a5f4944 fix(layout-connection-behavior): do NOT snap on reconnect start and end
Closes #1056
2019-05-29 09:46:30 +00:00
Gustavo E. Jimenez Folta bc5a3f803e revert: feat(modeling): prevent expanded subprocess overlap of previous content
This reverts commit 05fea05834.
2019-05-29 11:23:41 +02:00
Gustavo E. Jimenez Folta 68635fcb33 revert: test(modeling/behavior): remove unnecessary sinon usage
This reverts commit 82dbcc9451.
2019-05-29 11:23:29 +02:00
Niklas Kiefer 643ca2193c fix(snapping): prevent participants snap to group bounds 2019-05-29 06:42:54 +00:00
Niklas Kiefer 46c5a8cb36 fix(ordering): render group elements on collaboration level
Closes #1043
2019-05-29 06:42:54 +00:00
Niklas Kiefer 93a4a579dd feat(label-editing): create categoryValue if not exist
Relates to #955
2019-05-28 06:46:53 +00:00
Niklas Kiefer fb3398fa39 feat(label-editing): enable direct editing for group labels
* Adds external label for Groups
* Modifies referenced categoryValue

Closes #955
2019-05-28 06:46:53 +00:00
Niklas Kiefer f6f9ac29f2 chore(draw): remove internal label for groups 2019-05-28 06:46:53 +00:00
Philipp Fromme bc4b6cbfd8 fix(tests): fix custom elements tests
* in the context of bpmn-js returning true when asked wether two elements can be connected is not sufficient
* remove BpmnConnectionPreview since it's not needed after tests are fixed

Closes #1034
2019-05-23 18:26:12 +02:00
Niklas Kiefer 92640b9c06 test(group-behavior): add test for existing categoryValueRef 2019-05-23 15:12:38 +02:00
Niklas Kiefer a7e3980059 feat(modeling/behaviors): add GroupBehavior
* Create new Category + Value for every new Group
* Cleanup on Group deletion
2019-05-23 15:12:38 +02:00
Niklas Kiefer 20f6d9ab03 feat(palette): add group-entry
Closes #954
2019-05-23 15:12:38 +02:00
Niklas Kiefer 1575b5b26f fix(copy-paste): adjust categoryValueRef when group is copied
Closes #958
2019-05-20 07:56:27 +00:00
Nico Rehwaldt 576a3dec15 fix(rules): do not allow message flows to outside diagram shapes
Closes #1033
2019-05-17 11:01:29 +00:00
Maciej Barelkowski 87bfe23ff8 feat(connection-preview): support general connection preview
Closes #744
2019-05-17 11:15:06 +02:00
Maciej Barelkowski 654fa067d4 test(modeling): verify re-connect preview layout 2019-05-17 11:15:06 +02:00
Gustavo E. Jimenez Folta 82dbcc9451 test(modeling/behavior): remove unnecessary sinon usage 2019-05-16 15:25:15 +02:00
Philipp Fromme 05fea05834 feat(modeling): prevent expanded subprocess overlap of previous content
This covers two scenarios:

1. When a shape is replaced with an expanded subprocess
2. When a subprocess is toggled from collapsed to expanded

Only when:

1. There are incoming sequence flows (previous content)
2. There are no outgoing sequence flows (following content)
2019-05-15 16:57:32 +02:00
Philipp Fromme 62d7746e81 feat(bpmn-snapping): snap shape to itself
Closes #993
2019-05-13 07:25:26 +00:00
Philipp Fromme 8b4ddd53c0 chore(bpmn-auto-resize): add test 2019-05-10 07:22:51 +00:00
Maciej Barelkowski 2bdb36919d test(modeling): verify connection preview layout 2019-05-09 14:12:37 +00:00
Philipp Fromme 2335282a82 fix(bpmn-create-connect-preview): override #getConnection 2019-05-09 14:12:37 +00:00
Maciej Barelkowski 48fcececbf test(layout): add integration test for connection preview 2019-05-08 12:59:27 +00:00
Niklas Kiefer 883d6c8ad3 test(ResizeShape): add test coverage
* Restructure tests to make them more clear
* Add tests for businessObject updates (especially groups)
2019-05-07 14:36:32 +02:00
Philipp Fromme 175e395768 feat(ordering): always render groups on top
Closes #979
2019-05-07 14:36:32 +02:00
Niklas Kiefer bf2dfe4338 feat(rules): add resizing of groups
Closes #956
2019-05-07 14:36:32 +02:00
Niklas Kiefer 89886d7c12 feat(ElementFactory): add #isFrame property on group creation
This allows basic support for diagram-js frame elements.

Closes #959
Closes #960
2019-05-07 14:36:32 +02:00
Philipp Fromme 13f1e05ee7 feat(grid-snapping): integrate with connection layout
Closes #1010
Related to #973
2019-05-07 10:08:35 +02:00
Gustavo E. Jimenez Folta 424a05a18a feat(modeling): correctly handle event based gateway connections
Handles two new scenarios:

1. A user wants to connect an event-based gateway to an event-based
gateway target with existing incoming sequence flows. The existing
sequence flows are removed before connecting the new one.

2. A user wants to replace a gateway, that is already connected to
event-based gateway targets, with an event-based gateway. The existing
incoming sequence flows of the targets, which do not belong to the
newly replaced event-based gateway, are removed before the replacement
operation finishes.

This is because target elements in an event gateway configuration
must not have any additional incoming sequence flows other than
that from the event gateway.
2019-05-06 12:41:11 +02:00
Gustavo E. Jimenez Folta b6e9c2186a fix(BpmnRules): update canConnectSequenceFlow()
This prevents multiple incoming sequence flows to target events of an
event-based gateway when the connection source is not an event-based
gateway.
2019-05-06 12:41:11 +02:00
Philipp Fromme 867b41c04f feat(grid-snapping): integrate grid snapping with auto place feature
Closes #1003
2019-04-30 09:32:42 +00:00
Nico Rehwaldt d73ffd5991 style(tests): adopt cleaner pattern 2019-04-29 12:04:01 +00:00
Nico Rehwaldt 5affe25705 feat(modeling): adjust default collapsed participant height to 60px
This better aligns our collapse behavior with other tools.
2019-04-29 12:04:01 +00:00
Nico Rehwaldt 02848564cf test(grid-snapping): use bound matcher 2019-04-26 18:31:36 +00:00