Jump to content
Alexander Sviridenkov

Unit dependency viwer

Recommended Posts

Works now for me. I loaded our historically grown monster project and it was parsed quickly and without obvious errors. 😉

  • Like 1

Share this post


Link to post
2 minutes ago, Alexander Sviridenkov said:

It will be included to HTML Library demos with source code.

Great! Any timeline?

 

I don't have the library, yet, so I don't know how controllable the HTML control is, but will this be possible:

- custom Context menu on selected unit?

- select and add Context menu on dependency line?

- select multiple units? and get info on all selected units?

- control drawing objects, bg color, font, size?

- control selection from code, not just mouse?

 

 

 

 

 

 

Share this post


Link to post
3 minutes ago, Mike Torrettinni said:

Great! Any timeline?

 

I don't have the library, yet, so I don't know how controllable the HTML control is, but will this be possible:

- custom Context menu on selected unit?

- select and add Context menu on dependency line?

- select multiple units? and get info on all selected units?

- control drawing objects, bg color, font, size?

- control selection from code, not just mouse?

 

 

 

 

 

 

Maybe next month.

For other questions answer is - yes.

  • Thanks 1

Share this post


Link to post
52 minutes ago, Alexander Sviridenkov said:

Links have direction marks (on source unit)

 

Nice! I showed this to another developer who is looking for simple drawing control that would do all this. Not for Delphi source dependencies, but custom relationship data and it would simplify his current very cumbersome drawing solution that achieves similar result - I helped with some small improvements, but I'm not expert in drawings.

He is excited to try your control when this is implemented.

Share this post


Link to post
7 minutes ago, Mike Torrettinni said:

Nice! I showed this to another developer who is looking for simple drawing control that would do all this. Not for Delphi source dependencies, but custom relationship data and it would simplify his current very cumbersome drawing solution that achieves similar result - I helped with some small improvements, but I'm not expert in drawings.

He is excited to try your control when this is implemented.

This is not a separate control, all UI of this application is just two THtPanel-s. Program generates SVG from units graph and put it into HtPanel, that's all. No direct drawing.
F.e. this is how looks CSS for main panel:

 

svg {font-size: 8px}
.node rect {fill: white; stroke: gray; stroke-width: 1px}
.node:hover rect {fill: lightblue}
.node.circ rect {fill: #ffdddd}
.link {stroke: white; fill: white; opacity: 0.1}
.link.selected {stroke: green; fill:green;opacity: 1}
.link.imp.selected {stroke: blue; fill:blue}
.link.selected.circ {stroke:red!important}
.link ellipse {stroke:none!important}
.selected rect {fill: #ccfab4}
.node.main rect {fill: lightblue!important; stroke: #456c87!important}
.node.selected.circ rect {fill: #ffbbbb}
.project rect {stroke: black; stroke-width: 2px}
.project text {font-weight: bold}
.search text {fill: #b84f04}

 

Share this post


Link to post

Holy cow, can you enable saving the html?

 

 

a part of the FlexCel library o.O

 

image.thumb.png.acec0030dedbc4abb17ff611e39a8c70.png

 

Sagittarius in the FlexCel universe.

image.thumb.png.10959acd04d02520d1703904a9dab320.png

Edited by Attila Kovacs

Share this post


Link to post

image.png.b3150ca7ad57e6efeab025f5735f4ca6.png

For some reason lot of units show on top of each other.

Even if fixed, would be handy to have some hint, to give some info on the unit while hovering over, with maybe bigger font (Normal UI font), if zoomed to very small, then could check colored ones.... etc...

Also this island at top left is bit strange.

image.thumb.png.3493e8df4383ba7700a1224f83e1b2fa.png

Share this post


Link to post
10 hours ago, Alexander Sviridenkov said:

New build 1.0.0.10

Great, now it seems to find also all units in upper and sibling folders 👍
That is a very useful tool and blazingly fast.

I'm a little unsure, how to make use of the "circular reference" feature.
Is there a maximal zoom factor, I cannot really get everything on one page ( nevertheless, its too small to make sense anyway).

Edited by Rollo62

Share this post


Link to post
1 minute ago, Alexander Sviridenkov said:

You can find and remove circular references where they should not be.

Well, now I tried to enforce one, I thought it would automatically find and mark them all somehow.
Nevertheless, it's working well, when clicking on such circular part.

Share this post


Link to post
14 minutes ago, Rollo62 said:

Well, now I tried to enforce one, I thought it would automatically find and mark them all somehow.
Nevertheless, it's working well, when clicking on such circular part.

I tried to show all, but usually there are too many circular references so cheking unit by unit is more convenient.

  • Like 1

Share this post


Link to post

Nice idea. But of course I have got something to complain about some suggestions

  1. I find it rather difficult to see those light gray lines on a dark gray background. Maybe I'm just getting old and it's my eyes not the tool, but anyway. Why not use black lines on a white background? I know that "dark mode" is all the rage, but readability shouldn't be thrown out of the window for that.
  2. It would be nice if the input line for the project file supported
    1. autocomplete
    2. dropping a file from explorer
  3. Dropping a .dpr file from explorer onto the main window to load it would also be nice.

I'm sure I will think of some more possible improvements.

 

What are your plans for this tool? Are you going to release the source code? Or make it a commercial tool?

  • Like 2

Share this post


Link to post

Suggestion for improvement. I have two disks mapped in the tree on the right: C and D.
I am not interested in disk C at all. I click on it. Its contents disappear from the graph. That would be good:
Root Node C changes color (probably red)
collapses. It just hangs there
-----
Every node should be able to collapse and expand.

Maybe it's there. Unfortunately, we don't have any instructions available.

  • Thanks 1

Share this post


Link to post
18 minutes ago, dummzeuch said:

What are your plans for this tool? Are you going to release the source code? Or make it a commercial tool?

He already mentioned before:

11 hours ago, Alexander Sviridenkov said:

This is not a separate control, all UI of this application is just two THtPanel-s. Program generates SVG from units graph and put it into HtPanel, that's all. No direct drawing.
F.e. this is how looks CSS for main panel:

 


svg {font-size: 8px}
.node rect {fill: white; stroke: gray; stroke-width: 1px}
.node:hover rect {fill: lightblue}
.node.circ rect {fill: #ffdddd}
.link {stroke: white; fill: white; opacity: 0.1}
.link.selected {stroke: green; fill:green;opacity: 1}
.link.imp.selected {stroke: blue; fill:blue}
.link.selected.circ {stroke:red!important}
.link ellipse {stroke:none!important}
.selected rect {fill: #ccfab4}
.node.main rect {fill: lightblue!important; stroke: #456c87!important}
.node.selected.circ rect {fill: #ffbbbb}
.project rect {stroke: black; stroke-width: 2px}
.project text {font-weight: bold}
.search text {fill: #b84f04}

 

As I already own a license for HTML Components there is a good chance that it may be included as an extension to the Unit Dependency Analyzer in MMX.

  • Like 4
  • Thanks 1

Share this post


Link to post
20 minutes ago, dummzeuch said:

What are your plans for this tool? Are you going to release the source code? Or make it a commercial tool?

As far as I understood, this is a new demo in the HtmlComponents Library, right?
That means, when purchasing it, you can refine all colors as you wish :classic_cool:

  • Thanks 1

Share this post


Link to post
51 minutes ago, dummzeuch said:

Nice idea. But of course I have got something to complain about some suggestions

  1. I find it rather difficult to see those light gray lines on a dark gray background. Maybe I'm just getting old and it's my eyes not the tool, but anyway. Why not use black lines on a white background? I know that "dark mode" is all the rage, but readability shouldn't be thrown out of the window for that.
  2. It would be nice if the input line for the project file supported
    1. autocomplete
    2. dropping a file from explorer
  3. Dropping a .dpr file from explorer onto the main window to load it would also be nice.

I'm sure I will think of some more possible improvements.

 

What are your plans for this tool? Are you going to release the source code? Or make it a commercial tool?

Thank you.

1. Gray lines are there just to see overall amount of links for node. They should not be too contrast otherwise selected links will be lost.

2. Project input has Open button at right, you cal select file from standard dialog. Dropping file to this window is good idea, I will implement it.

3. Unfortunately this is not possible because application should also know Delphi version, not just project file.

 

As mentioned above, it will be free, source code will be available to HTML Library customers,

  • Thanks 1

Share this post


Link to post
2 hours ago, Alexander Sviridenkov said:

3. Unfortunately this is not possible because application should also know Delphi version, not just project file.

It's possible to determine the Delphi version from the .dproj/.bdsproj/.dof file, with some limitations.

  • Thanks 1

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×