An entity that has no icon of its own still renders its frame, so Browse shows an empty frame next to the
label. That reads as an icon that failed to load rather than an element that legitimately has nothing to
draw. It should say something instead - generic No Icon text is enough.
What it looks like now
/Common/symbol/entity/UNSPECIFIED?trim=true returns a well-formed 200 with the frame ellipse and no icon
content:
<svg:svg ... viewBox="156.50 246.50 299.00 299.00">
<svg:title>Unspecified</svg:title>
<svg:g id="frame_1_">
<svg:ellipse id="Group" cx="306.0" cy="396.0" rx="144.0" ry="144.0" fill="#80E0FF" .../>
</svg:g>
</svg:svg>
Nothing is broken - there is simply no icon layer. Compare UNKNOWN, which carries the ?.
How to detect it
These elements are marked GraphicType.NA in the model, e.g. in CommonEntity:
UNSPECIFIED("00", "Unspecified", GraphicType.NA),
UNKNOWN("01", "Unknown Symbol", GraphicType.MAIN),
There are 109 GraphicType.NA elements across the generated jmsfx-standard, spread over most symbol
sets, so this is not an edge case. Many are grouping nodes whose children carry the actual icons, which is
precisely where an empty frame is most confusing.
MainElement already has isFreeCanvas() / isFullFrameIcon() predicates in this shape, so a matching
isNoIcon() (or similar) would be the natural place to expose it to the template, rather than having
entity-list.html compare the enum directly.
Scope
Browse (entity-list.html) is where it was noticed. Worth checking whether Generate shows the same empty
frame for these elements and wants the same treatment.
An entity that has no icon of its own still renders its frame, so Browse shows an empty frame next to the
label. That reads as an icon that failed to load rather than an element that legitimately has nothing to
draw. It should say something instead - generic
No Icontext is enough.What it looks like now
/Common/symbol/entity/UNSPECIFIED?trim=truereturns a well-formed 200 with the frame ellipse and no iconcontent:
Nothing is broken - there is simply no icon layer. Compare
UNKNOWN, which carries the?.How to detect it
These elements are marked
GraphicType.NAin the model, e.g. inCommonEntity:There are 109
GraphicType.NAelements across the generatedjmsfx-standard, spread over most symbolsets, so this is not an edge case. Many are grouping nodes whose children carry the actual icons, which is
precisely where an empty frame is most confusing.
MainElementalready hasisFreeCanvas()/isFullFrameIcon()predicates in this shape, so a matchingisNoIcon()(or similar) would be the natural place to expose it to the template, rather than havingentity-list.htmlcompare the enum directly.Scope
Browse (
entity-list.html) is where it was noticed. Worth checking whether Generate shows the same emptyframe for these elements and wants the same treatment.