solid-panes
Version:
Solid-compatible Panes: applets and views for the mashlib and databrowser
54 lines (47 loc) • 1.73 kB
JavaScript
;
// Format an array of RDF statements as an HTML table.
//
// This can operate in one of three modes: when the class of object is given
// or when the source document from which data is taken is given,
// or if a prepared query object is given.
// (In principle it could operate with neither class nor document
// given but typically
// there would be too much data.)
// When the tableClass is not given, it looks for common classes in the data,
// and gives the user the option.
//
// 2008 Written, Ilaria Liccardi
// 2014 core functionality now in common/table.js -timbl
// ///////////////////////////////////////////////////////////////////
// Table view pane -- view of a class/
var UI = require('solid-ui');
module.exports = {
icon: UI.icons.originalIconBase + 'table.png',
name: 'tableOfClass',
label: function label(subject, context) {
var store = context.session.store; // if (!store.holds(subject, UI.ns.rdf('type'),UI.ns.rdfs('Class'))) return null
if (!store.any(undefined, UI.ns.rdf('type'), subject)) {
return null;
}
var n = store.statementsMatching(undefined, UI.ns.rdf('type'), subject).length;
if (n === 0) {
// None, suppress pane
return null;
}
if (n > 15) {
// @@ At the moment this pane can be slow with too many @@ fixme by using limits
return null;
}
return UI.utils.label(subject) + ' table';
},
render: function render(subject, context) {
var myDocument = context.dom;
var div = myDocument.createElement('div');
div.setAttribute('class', 'tablePane');
div.appendChild(UI.table(myDocument, {
tableClass: subject
}));
return div;
}
};
//# sourceMappingURL=tableViewPane.js.map