use of org.hl7.fhir.utilities.xhtml.HierarchicalTableGenerator in project kindling by HL7.
the class PageProcessor method generateToc.
private String generateToc() throws Exception {
// return breadCrumbManager.makeToc();
List<String> entries = new ArrayList<String>();
entries.addAll(toc.keySet());
Collections.sort(entries, new SectionSorter());
Set<String> pages = new HashSet<String>();
HierarchicalTableGenerator gen = new HierarchicalTableGenerator(folders.dstDir, false, true);
TableModel model = gen.new TableModel("toc", true);
model.getTitles().add(gen.new Title(null, model.getDocoRef(), "Table of Contents", "Table of Contents", null, 0));
Deque<TocItem> stack = new ArrayDeque<TocItem>();
for (String s : entries) {
TocEntry t = toc.get(s);
if (!t.isIg() && !s.startsWith("?")) {
String nd = s;
while (nd.endsWith(".0")) nd = nd.substring(0, nd.length() - 2);
int d = Utilities.charCount(nd, '.');
if (d < 4 && !pages.contains(t.getLink())) {
String np = getNormativePackageForPage(t.getLink());
pages.add(t.getLink());
while (!stack.isEmpty() && stack.getFirst().depth >= d) stack.pop();
Row row = gen.new Row();
row.setIcon("icon_page.gif", null);
String td = t.getText();
if (!stack.isEmpty()) {
if (td.startsWith(stack.getFirst().entry.getText() + " - "))
td = td.substring(stack.getFirst().entry.getText().length() + 3);
else if (td.startsWith(stack.getFirst().entry.getText()))
td = td.substring(stack.getFirst().entry.getText().length());
}
Cell cell = gen.new Cell(null, t.getLink(), nd + " " + td, t.getText() + " ", null);
row.getCells().add(cell);
if (np != null) {
cell.addPiece(gen.new Piece(null, " ", null));
cell.addPiece(gen.new Piece("versions.html#std-process", "basic".equals(np) ? "(Normative)" : "(Normative / " + Utilities.capitalize(np) + ")", null).addStyle("color: #008000"));
if (np.equals("infrastructure"))
row.setIcon("icon_page_n_i.gif", null);
else if (np.equals("conformance"))
row.setIcon("icon_page_n_c.gif", null);
else if (np.equals("patient"))
row.setIcon("icon_page_n_p.gif", null);
else if (np.equals("observation"))
row.setIcon("icon_page_n_o.gif", null);
else
row.setIcon("icon_page_n.gif", null);
} else {
cell.addPiece(gen.new Piece(null, " ", null));
cell.addPiece(gen.new Piece("versions.html#std-process", "(Trial Use)", null).addStyle("color: #b3b3b3"));
}
if (stack.isEmpty())
model.getRows().add(row);
else
stack.getFirst().row.getSubRows().add(row);
stack.push(new TocItem(t, row, d));
}
}
}
return new XhtmlComposer(XhtmlComposer.HTML).compose(gen.generate(model, "", 0, null));
}
use of org.hl7.fhir.utilities.xhtml.HierarchicalTableGenerator in project kindling by HL7.
the class ImplementationGuideDefn method addPage.
private void addPage(HierarchicalTableGenerator gen, List<Row> rows, ImplementationGuideDefinitionPageComponent page) throws FHIRException {
Row row = gen.new Row();
rows.add(row);
row.setIcon(getIcon(IgParser.getKind(page)), IgParser.getKind(page).getDisplay());
String ndx = page.getUserString(ToolResourceUtilities.NAME_PAGE_INDEX);
if (ndx == null)
ndx = "";
else
ndx = ndx + " ";
row.getCells().add(gen.new Cell("", page.getNameUrlType().getValue(), ndx + page.getTitle(), null, null));
for (ImplementationGuideDefinitionPageComponent p : page.getPage()) {
addPage(gen, row.getSubRows(), p);
}
}
use of org.hl7.fhir.utilities.xhtml.HierarchicalTableGenerator in project kindling by HL7.
the class ImplementationGuideDefn method genToc.
public TableModel genToc(HierarchicalTableGenerator gen, String id) throws FHIRException {
TableModel model = gen.new TableModel(id, true);
model.getTitles().add(gen.new Title(null, model.getDocoRef(), "Table Of Contents", null, null, 0));
addPage(gen, model.getRows(), ig.getDefinition().getPage());
return model;
}
use of org.hl7.fhir.utilities.xhtml.HierarchicalTableGenerator in project kindling by HL7.
the class ResourceDependencyGenerator method addBindingToAnalysis.
private void addBindingToAnalysis(HierarchicalTableGenerator gen, Row row, Cell dc, boolean req, StandardsStatus elementStatus, BindingSpecification binding) throws FHIRException {
String tgtFMM = null;
StandardsStatus tgtSS = null;
ValueSet vs = binding.getValueSet();
if (vs != null) {
tgtFMM = ToolingExtensions.readStringExtension(vs, ToolingExtensions.EXT_FMM_LEVEL);
tgtSS = ToolingExtensions.getStandardsStatus(vs);
} else if (Utilities.existsInList(binding.getReference(), "http://www.rfc-editor.org/bcp/bcp13.txt")) {
tgtFMM = "5";
tgtSS = StandardsStatus.EXTERNAL;
}
if (elementStatus == null)
elementStatus = sstatus;
if (tgtFMM == null)
addError(gen, row, dc, "Binding Error: Unable to resolve vs '" + binding.getReference() + "' to check dependencies", null);
else {
boolean ok = elementStatus.canDependOn(tgtSS);
if (ok)
ok = fmm.compareTo(tgtFMM) <= 0;
if (ok)
// addInfo(gen, row, dc, "Binding OK (ValueSet = FMM"+tgtFMM+"-"+tgtSS.toDisplay()+" vs. Element = FMM"+fmm+"-"+elementStatus.toDisplay()+")", null);
;
else
addError(gen, row, dc, "Binding Error: (ValueSet = FMM" + tgtFMM + "-" + tgtSS.toDisplay() + " vs. Element = FMM" + fmm + "-" + elementStatus.toDisplay() + ")", vs.getUserString("path"));
}
}
use of org.hl7.fhir.utilities.xhtml.HierarchicalTableGenerator in project kindling by HL7.
the class ResourceDependencyGenerator method generate.
public XhtmlNode generate(ElementDefn e, String prefix) throws Exception {
HierarchicalTableGenerator gen = new HierarchicalTableGenerator(dest, inlineGraphics, true);
RenderMode mode = RenderMode.RESOURCE;
TableModel model = initTable(gen, prefix, mode == RenderMode.LOGICAL, e.getName());
model.getRows().add(genElement(e, gen, true, e.getName(), false, prefix, mode, true));
return gen.generate(model, prefix, 0, null);
}
Aggregations