Comments (16)
One patch I received that implements the originally mentioned solution came
from Jan Wielemaker:
http://gollem.science.uva.nl/git/ClioPatria.git?a=commitdiff;h=6a0343575222c99aa
3caafcc63f244d4df7dd59a
And there is an incomplete follow-up patch that has to do with multiple
hyperlinks in an HTML-like table:
http://gollem.science.uva.nl/git/ClioPatria.git?a=commitdiff;h=96da2f5f131e4b225
b705c1fff939387def40f04
Another patch was from Ben Guthro (this patch also includes some unrelated
changes to the image handling):
http://groups.google.com/group/canviz/browse_thread/thread/6b03905ea97f978b
Original comment by [email protected]
on 6 Oct 2008 at 4:14
from canviz.
The situation with multiple hyperlinks in an HTML-like label makes me believe I
cannot reliably support clickable
objects in Canviz (at least not in HTML-like labels) without a change to
Graphviz, which I have requested here:
https://mailman.research.att.com/pipermail/graphviz-interest/2008q4/005684.html
Original comment by [email protected]
on 11 Oct 2008 at 8:16
from canviz.
I think that rudimentary support for url attributes is better than no support
while
we wait for the perfect solution. I would like to request that you include the
basic
support patch you mentioned.
How far a leap is it form URL support to having arbitrary javascript code
attached to
the nodes/edges? I want to enable mini-window popups for mouseovers, tooltips,
and such.
Original comment by [email protected]
on 15 Nov 2008 at 1:43
from canviz.
Agreed. I committed very basic click support in r212. If a graph entity has an
href or url attribute, its text label
will now be clickable. The target attribute is also respected.
Shapes are not yet clickable, only the text (so if you want an edge to be
clickable, you have to give it a label). \N
and \E expansion is not yet supported. Hrefs embedded into HTML-like labels are
not supported (I still think this
needs changes in Graphviz, as discussed above).
Original comment by [email protected]
on 17 Nov 2008 at 8:35
from canviz.
Escape sequences (\N, \E, \T, \H, \G, \L) are now handled properly as of r214
via a new second parameter to
Entity.getAttr(). Pass true in this parameter if the attribute you're asking
about is an escString. (See http://graphviz.org/doc/info/attrs.html )
Original comment by [email protected]
on 17 Nov 2008 at 9:57
from canviz.
Standard browser tooltips are now supported via the tooltip attribute, as of
r218.
Original comment by [email protected]
on 18 Nov 2008 at 2:24
from canviz.
Oops, the attributes are case-sensitive and it's "URL" not "url". Fixed in r219.
Original comment by [email protected]
on 18 Nov 2008 at 2:40
from canviz.
As of r220, check URL first, then href. Docs say href is a synonym of URL, not
the other way around.
Original comment by [email protected]
on 18 Nov 2008 at 3:14
from canviz.
r221: Mouse events (onclick, onmousedown, onmouseup, onmouseover, onmousemove,
onmouseout) are now
supported. Just put them in your dot file and Graphviz will pass them through
to the xdot file and Canviz will use
them. If you want to implement custom JavaScript tooltips, this is how you'd do
it.
Original comment by [email protected]
on 18 Nov 2008 at 4:14
from canviz.
For the more-complicated point-in-path detection idea, the approximate plan is:
* Add a method to get a path's bounding box (r161)
* Compute the bounding box of each entity (r196)
* Make divs the size of each bounding box (r223)
* Add a method to determine if a point is within a path (pending)
* Keep each entity's paths around in the graph object after they're drawn (pending)
* Observe each of the mouse events on each of the bounding box divs, calling a method which figures out if the
cursor is in any of the entity's paths, and if so, calling the entity's mouse
event handlers (pending)
* Add something in the onmousemove handler to set the cursor correctly (pending)
Original comment by [email protected]
on 18 Nov 2008 at 9:01
from canviz.
r228: Added new method Path.isPointOnPath() and necessary helpers, which will
be used to detect if the pointer
is on an edge. We'll also need another method, Path.isPointInPath(), to
determine if the pointer is in a node
shape or in an arrow head.
Original comment by [email protected]
on 24 Nov 2008 at 11:23
from canviz.
Original comment by [email protected]
on 8 Jan 2009 at 1:33
- Added labels: Milestone-Release1.0
from canviz.
Re: comment 9, supporting mouse events, I propose that onload also be supported
so
that drag and drop can be done in Firefox. This is because standards-compliant
browsers like Firefox will not notice an onmouseup event without having an event
listener instantiated. And an onload allows you to instantiate individual
listeners
for each div, and what the div IDs are.
This presupposes that onload fires when the DOM is updated by Prototype with
new xdot
data.
Original comment by ron.newman
on 8 Jan 2009 at 9:01
from canviz.
I can ask Prototype to fire an event if necessary.
But let's let this issue be for the feature of making the node/edge shapes
clickable.
If you find you need an onload event fired later, we can address that in
another ticket.
Original comment by [email protected]
on 26 Jan 2009 at 9:54
from canviz.
I filed issue #56 to explore a new idea for handling mouse events: use an image
map.
Original comment by [email protected]
on 26 Aug 2009 at 11:29
from canviz.
It seems to be the more simple solution. Graphviz is already able to generate
an image map file from a dot file (cmap option in Graphviz). It works well
applied on graph displayed as an image.
It's also possible to add javascript event on map area to trigger on click and
other events to display menu or to catch "node to node" link creation.
But, I don't know if it is possible to make the same with canvas...
Have you an idea for the implementation of this feature ?
Thanks a lot (and sorry for my english)
Original comment by [email protected]
on 6 Aug 2010 at 1:57
from canviz.
Related Issues (20)
- subgraph render fail HOT 1
- Makefile fails if "dot" is not found in the $PATH HOT 1
- Separate parsing from rendering HOT 6
- Project missing resources HOT 2
- Hello World example shows canviz div doesn't properly unclear itself HOT 3
- Links not working properly on large garphs HOT 2
- I think the BB is computing wrong HOT 3
- allow response to graph loaded
- Don't require Prototype; allow using jQuery or other libraries HOT 21
- Error 127 when compiling when dot is not in the path HOT 1
- Use Prototype from Google APIs HOT 2
- edges div-tag overlaps nodes a-tag HOT 2
- Remove global debug function from library
- Canviz does not compile in debian sid HOT 1
- I cannot make Canviz work on IE (9 or 10) and Chrome
- Support for xdot1.5? HOT 1
- Move to GitHub? HOT 3
- Feedback from first time user HOT 1
- Suggest drawing nodes after edges in class CanvizGraph
- Clearly indicate which files are required HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from canviz.