Project

General

Profile

Bug #2245

TRACKING: Batik SVG Rendering - remaining tasks

Added by Matthew Brooke about 13 years ago. Updated over 9 years ago.

Status:
In Progress
Priority:
Immediate
Category:
interface
Target version:
Start date:
11/04/2005
Due date:
% Done:

0%

Estimated time:
Bugzilla-Id:
2245

Description

tasks remaining before Batik SVG rendering is ready for primetime:

1) ASSIGNING ICONS
Icons can be assigned in actor moml, or can be assigned in the actor's java
code. Assigning in moml means icons will show up for newly-created workflows,
but not for old workflows. [Note that some actors can't be set via moml (eg
EML200 datasource), so would need to add some to java code anyway]

Adding icon paths directly to the actors' java code (note that existing svg
icons are currently defined in java code) means icons show up for all actors, in
new and old workflows. Could move actual actor->svg icon mappings into a
separate settings file? Or would this cause too much indirection and add
complication?

2) MEMORY USAGE
Currently, if Batik has to display more than about 150 SVG icons, it causes a
JVM crash with an OutOfMemoryError. This is also an issue when showing actor
thumbnail icons in the actor library, since these are also rendered using Batik.
So for example doing a search for a very common term that returns many actors
(eg "a") causes an OutOfMemoryError.

Have looked for obvious places to save memory, but now i think we're just
limited by what batik can do. Obvious solution is to start caching icons, since
many of them may be the same, yet they all get rendered from scratch

3) BACKWARD-COMPATIBILITY
- Need to add code so old SVG icons are translated to have their origin at the
top-left corner. They are currently cropped when displayed in batik, because
Ptolemy's default origin for svg components is at the center of each actor icon,
whereas the svg/batik standard is to have the origin at top-left.

4) TEXT WRAP:
In EML simple example plot, text at bottom is rendered using SVG, and it
does not wrap, but extends off the screen. (text did wrap in the old-style svg
handling). Note, however, that if annotation actor is re-created and text is
pasted in again, it does wrap in the new instance, so this is really just a
backwards-compatibility issue

5) SMALL ICON:
getIcon() method in XMLIcon works, but its success seems to be linked to the odd
tree refreshing behavior described in bug #1843. When 1843 gets fixed, we may be
able to make getIcon() more efficient/intuitive, and this may in turn save some
memory usage (see item (2) above)


Related issues

Blocks Kepler - Bug #2324: SVG - old-style icon still displayed for certain actorsIn Progress2005-12-16

Blocks Kepler - Bug #2323: Remove text added with "Attribute" actor from older workflowsResolved2005-12-16

Blocks Kepler - Bug #2322: SVG - Assigning Icons to the Correct Actors in Properties FilesResolved2005-12-16

Blocks Kepler - Bug #2286: SVG - reduce svg file sizeResolved2005-11-22

Blocks Kepler - Bug #2269: SVG - Small Icon (Actor Library Thumbnail)Resolved2005-11-11

Blocks Kepler - Bug #2268: SVG - Backward CompatibilityResolved2005-11-11

Blocks Kepler - Bug #2267: SVG - Memory UsageResolved2005-11-11

Blocks Kepler - Bug #2266: SVG - Assigning IconsResolved2005-11-11

Blocks Kepler - Bug #2374: SVG - Improve inital rendering timesResolved2006-02-28

History

#1 Updated by Matthew Brooke about 13 years ago

Have assigned the above to separate bugs, as follows:

1) ASSIGNING ICONS - Bug #2266
2) MEMORY USAGE - Bug #2267
3 & 4) BACKWARD-COMPATIBILITY & TEXT WRAP - Bug #2268
5) SMALL ICON - Bug #2269

- now using this as a tracking mechanism for those bugs

#2 Updated by Redmine Admin over 5 years ago

Original Bugzilla ID was 2245

Also available in: Atom PDF