improve SD rendering (types and icons on root)
This commit is contained in:
parent
8c4b379806
commit
089f539801
|
@ -2520,7 +2520,7 @@ public class ProfileUtilities extends TranslatingUtilities {
|
||||||
r1.getCells().add(gen.new Cell(null, defFile == null ? "" : defFile+"-definitions.html#extension."+ed.getName(), ((UriType) ued.getFixed()).getValue(), null, null));
|
r1.getCells().add(gen.new Cell(null, defFile == null ? "" : defFile+"-definitions.html#extension."+ed.getName(), ((UriType) ued.getFixed()).getValue(), null, null));
|
||||||
r1.getCells().add(gen.new Cell());
|
r1.getCells().add(gen.new Cell());
|
||||||
r1.getCells().add(gen.new Cell(null, null, describeCardinality(c, null, new UnusedTracker()), null, null));
|
r1.getCells().add(gen.new Cell(null, null, describeCardinality(c, null, new UnusedTracker()), null, null));
|
||||||
genTypes(gen, r1, ved, defFile, ed, corePath, imagePath);
|
genTypes(gen, r1, ved, defFile, ed, corePath, imagePath, false);
|
||||||
Cell cell = gen.new Cell();
|
Cell cell = gen.new Cell();
|
||||||
cell.addMarkdown(c.getDefinition());
|
cell.addMarkdown(c.getDefinition());
|
||||||
r1.getCells().add(cell);
|
r1.getCells().add(cell);
|
||||||
|
@ -2533,7 +2533,7 @@ public class ProfileUtilities extends TranslatingUtilities {
|
||||||
ved = ted;
|
ved = ted;
|
||||||
}
|
}
|
||||||
|
|
||||||
genTypes(gen, r, ved, defFile, ed, corePath, imagePath);
|
genTypes(gen, r, ved, defFile, ed, corePath, imagePath, false);
|
||||||
|
|
||||||
r.setIcon("icon_"+m+"extension_simple.png", HierarchicalTableGenerator.TEXT_ICON_EXTENSION_SIMPLE);
|
r.setIcon("icon_"+m+"extension_simple.png", HierarchicalTableGenerator.TEXT_ICON_EXTENSION_SIMPLE);
|
||||||
}
|
}
|
||||||
|
@ -2588,12 +2588,22 @@ public class ProfileUtilities extends TranslatingUtilities {
|
||||||
private static final int AGG_GR = 2;
|
private static final int AGG_GR = 2;
|
||||||
private static final boolean TABLE_FORMAT_FOR_FIXED_VALUES = false;
|
private static final boolean TABLE_FORMAT_FOR_FIXED_VALUES = false;
|
||||||
|
|
||||||
private Cell genTypes(HierarchicalTableGenerator gen, Row r, ElementDefinition e, String profileBaseFileName, StructureDefinition profile, String corePath, String imagePath) {
|
private Cell genTypes(HierarchicalTableGenerator gen, Row r, ElementDefinition e, String profileBaseFileName, StructureDefinition profile, String corePath, String imagePath, boolean root) {
|
||||||
Cell c = gen.new Cell();
|
Cell c = gen.new Cell();
|
||||||
r.getCells().add(c);
|
r.getCells().add(c);
|
||||||
List<TypeRefComponent> types = e.getType();
|
List<TypeRefComponent> types = e.getType();
|
||||||
if (!e.hasType()) {
|
if (!e.hasType()) {
|
||||||
if (e.hasContentReference()) {
|
if (root) { // we'll use base instead of types then
|
||||||
|
StructureDefinition bsd = context.fetchResource(StructureDefinition.class, profile.getBaseDefinition());
|
||||||
|
if (bsd != null) {
|
||||||
|
if (bsd.hasUserData("path")) {
|
||||||
|
c.getPieces().add(gen.new Piece(bsd.getUserString("path"), bsd.getName(), null));
|
||||||
|
} else {
|
||||||
|
c.getPieces().add(gen.new Piece(null, bsd.getName(), null));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return c;
|
||||||
|
} else if (e.hasContentReference()) {
|
||||||
return c;
|
return c;
|
||||||
} else {
|
} else {
|
||||||
ElementDefinition d = (ElementDefinition) e.getUserData(DERIVATION_POINTER);
|
ElementDefinition d = (ElementDefinition) e.getUserData(DERIVATION_POINTER);
|
||||||
|
@ -2968,9 +2978,13 @@ public class ProfileUtilities extends TranslatingUtilities {
|
||||||
row.setIcon("icon_modifier_extension_complex.png", HierarchicalTableGenerator.TEXT_ICON_EXTENSION_COMPLEX);
|
row.setIcon("icon_modifier_extension_complex.png", HierarchicalTableGenerator.TEXT_ICON_EXTENSION_COMPLEX);
|
||||||
else
|
else
|
||||||
row.setIcon("icon_modifier_extension_simple.png", HierarchicalTableGenerator.TEXT_ICON_EXTENSION_SIMPLE);
|
row.setIcon("icon_modifier_extension_simple.png", HierarchicalTableGenerator.TEXT_ICON_EXTENSION_SIMPLE);
|
||||||
} else if (!hasDef || element.getType().size() == 0)
|
} else if (!hasDef || element.getType().size() == 0) {
|
||||||
|
if (root && context.getResourceNames().contains(profile.getType())) {
|
||||||
|
row.setIcon("icon_resource.png", HierarchicalTableGenerator.TEXT_ICON_RESOURCE);
|
||||||
|
} else {
|
||||||
row.setIcon("icon_element.gif", HierarchicalTableGenerator.TEXT_ICON_ELEMENT);
|
row.setIcon("icon_element.gif", HierarchicalTableGenerator.TEXT_ICON_ELEMENT);
|
||||||
else if (hasDef && element.getType().size() > 1) {
|
}
|
||||||
|
} else if (hasDef && element.getType().size() > 1) {
|
||||||
if (allAreReference(element.getType()))
|
if (allAreReference(element.getType()))
|
||||||
row.setIcon("icon_reference.png", HierarchicalTableGenerator.TEXT_ICON_REFERENCE);
|
row.setIcon("icon_reference.png", HierarchicalTableGenerator.TEXT_ICON_REFERENCE);
|
||||||
else {
|
else {
|
||||||
|
@ -3022,7 +3036,7 @@ public class ProfileUtilities extends TranslatingUtilities {
|
||||||
genCardinality(gen, element, row, hasDef, used, extDefn.getElement());
|
genCardinality(gen, element, row, hasDef, used, extDefn.getElement());
|
||||||
ElementDefinition valueDefn = extDefn.getExtensionValueDefinition();
|
ElementDefinition valueDefn = extDefn.getExtensionValueDefinition();
|
||||||
if (valueDefn != null && !"0".equals(valueDefn.getMax()))
|
if (valueDefn != null && !"0".equals(valueDefn.getMax()))
|
||||||
genTypes(gen, row, valueDefn, profileBaseFileName, profile, corePath, imagePath);
|
genTypes(gen, row, valueDefn, profileBaseFileName, profile, corePath, imagePath, root);
|
||||||
else // if it's complex, we just call it nothing
|
else // if it's complex, we just call it nothing
|
||||||
// genTypes(gen, row, extDefn.getSnapshot().getElement().get(0), profileBaseFileName, profile);
|
// genTypes(gen, row, extDefn.getSnapshot().getElement().get(0), profileBaseFileName, profile);
|
||||||
row.getCells().add(gen.new Cell(null, null, "("+translate("sd.table", "Complex")+")", null, null));
|
row.getCells().add(gen.new Cell(null, null, "("+translate("sd.table", "Complex")+")", null, null));
|
||||||
|
@ -3033,7 +3047,7 @@ public class ProfileUtilities extends TranslatingUtilities {
|
||||||
if ("0".equals(element.getMax()))
|
if ("0".equals(element.getMax()))
|
||||||
row.getCells().add(gen.new Cell());
|
row.getCells().add(gen.new Cell());
|
||||||
else
|
else
|
||||||
genTypes(gen, row, element, profileBaseFileName, profile, corePath, imagePath);
|
genTypes(gen, row, element, profileBaseFileName, profile, corePath, imagePath, root);
|
||||||
generateDescription(gen, row, element, null, used.used, null, null, profile, corePath, imagePath, root, logicalModel, allInvariants, snapshot);
|
generateDescription(gen, row, element, null, used.used, null, null, profile, corePath, imagePath, root, logicalModel, allInvariants, snapshot);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -3041,7 +3055,7 @@ public class ProfileUtilities extends TranslatingUtilities {
|
||||||
if (element.hasSlicing())
|
if (element.hasSlicing())
|
||||||
row.getCells().add(gen.new Cell(null, corePath+"profiling.html#slicing", "(Slice Definition)", null, null));
|
row.getCells().add(gen.new Cell(null, corePath+"profiling.html#slicing", "(Slice Definition)", null, null));
|
||||||
else if (hasDef && !"0".equals(element.getMax()) && typesRow == null)
|
else if (hasDef && !"0".equals(element.getMax()) && typesRow == null)
|
||||||
genTypes(gen, row, element, profileBaseFileName, profile, corePath, imagePath);
|
genTypes(gen, row, element, profileBaseFileName, profile, corePath, imagePath, root);
|
||||||
else
|
else
|
||||||
row.getCells().add(gen.new Cell());
|
row.getCells().add(gen.new Cell());
|
||||||
generateDescription(gen, row, element, null, used.used, null, null, profile, corePath, imagePath, root, logicalModel, allInvariants, snapshot);
|
generateDescription(gen, row, element, null, used.used, null, null, profile, corePath, imagePath, root, logicalModel, allInvariants, snapshot);
|
||||||
|
@ -3251,7 +3265,7 @@ public class ProfileUtilities extends TranslatingUtilities {
|
||||||
ExtensionContext extDefn = null;
|
ExtensionContext extDefn = null;
|
||||||
genCardinality(gen, element, row, hasDef, used, null);
|
genCardinality(gen, element, row, hasDef, used, null);
|
||||||
if (hasDef && !"0".equals(element.getMax()))
|
if (hasDef && !"0".equals(element.getMax()))
|
||||||
genTypes(gen, row, element, profileBaseFileName, profile, corePath, imagePath);
|
genTypes(gen, row, element, profileBaseFileName, profile, corePath, imagePath, root);
|
||||||
else
|
else
|
||||||
row.getCells().add(gen.new Cell());
|
row.getCells().add(gen.new Cell());
|
||||||
generateGridDescription(gen, row, element, null, used.used, null, null, profile, corePath, imagePath, root, null);
|
generateGridDescription(gen, row, element, null, used.used, null, null, profile, corePath, imagePath, root, null);
|
||||||
|
@ -4359,8 +4373,12 @@ public class ProfileUtilities extends TranslatingUtilities {
|
||||||
|
|
||||||
// generate an Excel representation of the structure definition
|
// generate an Excel representation of the structure definition
|
||||||
public void generateXlsx(OutputStream dest, StructureDefinition structure, boolean asXml, boolean hideMustSupportFalse) throws IOException, DefinitionException, Exception {
|
public void generateXlsx(OutputStream dest, StructureDefinition structure, boolean asXml, boolean hideMustSupportFalse) throws IOException, DefinitionException, Exception {
|
||||||
if (!structure.hasSnapshot())
|
if (structure == null) {
|
||||||
|
System.out.println("no structure!");
|
||||||
|
}
|
||||||
|
if (!structure.hasSnapshot()) {
|
||||||
throw new DefinitionException("needs a snapshot");
|
throw new DefinitionException("needs a snapshot");
|
||||||
|
}
|
||||||
|
|
||||||
XLSXWriter xlsx = new XLSXWriter(dest, structure, asXml, hideMustSupportFalse);
|
XLSXWriter xlsx = new XLSXWriter(dest, structure, asXml, hideMustSupportFalse);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue