Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EPIC - Continuous improvements for the DMN Editor (1H2025 iteration) #1759

Open
79 tasks
tiagobento opened this issue Jan 17, 2025 · 0 comments
Open
79 tasks
Labels
area:dmn Related to DMN area:tools Issues affecting Apache KIE tooling projects

Comments

@tiagobento
Copy link

Prev: #1419

Decision Services & multiple DRDs (see #870)

Q1

Q2


Roll-over section (to be moved to the next iteration)

⚪️ --- STRUCTURAL --- ⤵️⤵️⤵️

⚪️ --- DECISION SERVICES --- ⤵️⤵️⤵️

⚪️ --- EDGES --- ⤵️⤵️⤵️

  • On the DMN Editor, enable the "Edit" button (with "View" label) for external Decisions and BKMs. When clicking it, the Boxed Expression Editor should be open in "readonly" mode, with a link to the file that contains that Decision/BKM. See Support readonly mode on DMN Editor's Boxed Expression Editor #182
  • On the DMN Editor, when an edge is hovered, "phantom" Waypoints are rendered. Allow them to be dragged to create a new Waypoint without having to Double-click the edge.
  • On the DMN Editor, add an interaction width to Edge Updaters and Waypoints to make it easier to interact with them.

⚪️ --- BOXED-EXPRESSIONS --- ⤵️⤵️⤵️

⚪️ --- VALIDATION --- ⤵️⤵️⤵️

  • xml-parser-ts shoud validate the DMN being parsed. There's good validation information on the XSD, but not everything... E.g., For DMN, Decision Services need to have at least one Output Decision to be valid, although the XSD says outputDecision can be an array with zero elements.

⚪️ --- UX --- ⤵️⤵️⤵️

  • [DMN Editor] Selection of data type by using keystrokes only  #504
  • On the DMN Editor, add a nice "hint panel" with GIFs and nice text for each element of the Palette. Needs to expand once the cursor sits on top of Palette buttons, like waiting for a tooltip
  • On the DMN Editor, allow resizing nodes while pressing Alt for pivot point at the center of the node, rather than the top-left.
  • On the DMN Editor, allow horizontal/vertical lock when resizing a node while pressing Shift
  • On the DMN Editor, allow horizontal/vertical locking when moving the selected nodes while pressing Shift
  • New options for selection on the DMN Editor: Add all connected edges / Remove edges from selection / Remove nodes from selection / Group / Grow selection (BFS)
  • Double-clicking on DMN Editor nodes resizer handle to adjust Decision Service / Group size to its containments. Leave a nice padding.
  • On the DMN Editor, selecting all diagram elements with Cmd + A is only working when letting go of both keys, but ideally users should be able to keep pressing Cmd and only let go of A to re-trigger it.
  • Ctrl + F: Find nodes on the diagram or lines on Boxed Expressions. Jump right to where the "Find match" is. Move the Diagram to show where the node is.
  • Allow creating nodes by clicking on the Palette icons, not only by dragging. Make sure the new nodes are always visible on the screen, independent of the coordinates visible on screen.
  • Clicking on "Edit" for an imported Decision/BKM doesn't work.. The label should actually be "View" and the BEE should open in "Read-only mode". Editing an imported Decision should be done on the file it's defined. We can add a link to allow jumping to the file, at the correct place.
  • On the DMN Editor Data Types tab, expanding a property of a Struct item definition while pressing Alt should expand it recursively.
  • Slightly offset nodes if position clash with existing nodes when pasting nodes on the DMN Editor diagram.
  • Transform the title of the Boxed Expression Editor into a dropdown, where users can select which node's Boxed Expression they'll be editing.

⚪️ --- CLIPBOARD --- ⤵️⤵️⤵️

  • On the DMN Editor, make sure the pasted content on the Diagram is always shown at the screen, independent of the coordinates of the copied DMNShapes and the coordinates that are visible on the screen at the moment paste was executed.
  • On the DMN Editor, when pasting content (Diagram nodes / Data Types / Boxed Expressions ), suggest to import missing models that will make the pasted content valid. For example, a node might be pasted with a Data Type that doesn't exist on the target DMN. We should suggest including the DMN where that Data Type is declared.
  • On the DMN Editor, allow cut/copy/paste to work with External Nodes. See above.

⚪️ --- UI --- ⤵️⤵️⤵️

  • When creating new nodes from the DMN Editor Palette, we should see a placeholder for the node name that's gonna be created, like "New decision". This needs to be a feature of the "Node SVG" components.
  • When dragging nodes from the DMN Editor Palette to the diagram, we should have a live preview of node shapes before putting them on the diagram
  • Moving nodes with the keyboard arrows is glitching the edge updaters. Note that you need to have the mouse hovering a selected edge to be able to see it.
  • Stuff with long names on the UI should have a good strategy for rendering. Truncating, line breaks, scroll etc. Nodes should never let their contents overflow. Truncate text with ... etc. Patternfly has a nice component for that called "Truncate"

⚪️ --- INCLUDED MODELS & EXTERNAL NODES --- ⤵️⤵️⤵️

  • Allow Copy/cut/paste operations for External nodes on the DMN Editor.
  • Included model card should show the included model SVG, and some more information. Kebab menu at the top-right with option to delete, instead of inline button.
  • Draw edges between external nodes that are connected on the included model.
  • Add the names of external nodes to allFeelVariableUniqueNames that come from imports namespaced with "". Inlcude all names, or only what is referenced into thisDmn? What about named imports?
  • The DMN Editor must allow adding an external Decision to a local Decision Service. Search the dmn-editor package for #${. Decisions required by external Decisions that are in the OUTPUT section are all treated as Encapsulated Decisions. Making the inputData list of the Decision Service contain all InputData nodes required on the external Decision's sub-graph.

⚪️ --- DATA TYPES --- ⤵️⤵️⤵️

  • The DMN Editor's Data Type selector's UX is not good. Use keyboard, enter/focus etc. DataType selector should be the same on DMN Editor and BEE. I think we need to extract it to a new package? dmn-data-types?
  • On the DMN Editor, implement the side-panel for "View usages" of Data Types. It should contain mentions to DRG elements, other Data Types, or even elements of Boxed Expressions.
  • On the DMN Editor, implement the "Back" and "Forward" navigation mechanisms for the Data Types tab
  • On the DMN Editor, make it possible to reorder Properties on struct Data Types by dragging them around.
  • Searching for data types should be easier with the same algorithm being applied to the "Filter" input on the Data Types tab, and the TypeRef selector. Nested properties should be matched against, and visual indications of where the match is should be shown.

⚪️ --- MISC --- ⤵️⤵️⤵️

@tiagobento tiagobento added area:dmn Related to DMN area:tools Issues affecting Apache KIE tooling projects labels Jan 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:dmn Related to DMN area:tools Issues affecting Apache KIE tooling projects
Projects
None yet
Development

No branches or pull requests

1 participant