Showing
4 changed files
with
235 additions
and
122 deletions
| ... | @@ -515,36 +515,42 @@ app:ClassFormBody | ... | @@ -515,36 +515,42 @@ app:ClassFormBody |
| 515 | ] | 515 | ] |
| 516 | ] . | 516 | ] . |
| 517 | 517 | ||
| 518 | -app:ClassTreeDataProvider | 518 | +app:ClassTreeChildren |
| 519 | - rdf:type app:QueryTreeDataProvider ; | 519 | + rdf:type spin:SelectTemplate ; |
| 520 | - rdfs:comment "A data provider for a class tree starting at rdfs:Resource."^^xsd:string ; | 520 | + rdfs:comment "A template that delivers all (named) subclasses of a given parent class, using rdfs:subClassOf."^^xsd:string ; |
| 521 | - rdfs:label "Class tree data provider"^^xsd:string ; | 521 | + rdfs:label "Class tree children"^^xsd:string ; |
| 522 | - arg:childrenQuery | 522 | + rdfs:subClassOf app:TreeChildrenTemplates ; |
| 523 | + spin:body | ||
| 523 | [ rdf:type sp:Select ; | 524 | [ rdf:type sp:Select ; |
| 524 | sp:orderBy ([ sp:varName "label"^^xsd:string | 525 | sp:orderBy ([ sp:varName "label"^^xsd:string |
| 525 | ]) ; | 526 | ]) ; |
| 526 | - sp:resultVariables ([ sp:varName "child"^^xsd:string | 527 | + sp:resultVariables ([ sp:varName "node"^^xsd:string |
| 527 | ] [ sp:varName "label"^^xsd:string | 528 | ] [ sp:varName "label"^^xsd:string |
| 528 | ] [ sp:varName "leaf"^^xsd:string | 529 | ] [ sp:varName "leaf"^^xsd:string |
| 529 | ] [ sp:varName "icon"^^xsd:string | 530 | ] [ sp:varName "icon"^^xsd:string |
| 530 | - ] [ sp:varName "type"^^xsd:string | ||
| 531 | ]) ; | 531 | ]) ; |
| 532 | sp:where ([ sp:object | 532 | sp:where ([ sp:object |
| 533 | [ sp:varName "parent"^^xsd:string | 533 | [ sp:varName "parent"^^xsd:string |
| 534 | ] ; | 534 | ] ; |
| 535 | sp:predicate rdfs:subClassOf ; | 535 | sp:predicate rdfs:subClassOf ; |
| 536 | sp:subject | 536 | sp:subject |
| 537 | - [ sp:varName "child"^^xsd:string | 537 | + [ sp:varName "node"^^xsd:string |
| 538 | + ] | ||
| 539 | + ] [ rdf:type sp:Filter ; | ||
| 540 | + sp:expression | ||
| 541 | + [ rdf:type sp:isIRI ; | ||
| 542 | + sp:arg1 [ sp:varName "node"^^xsd:string | ||
| 543 | + ] | ||
| 538 | ] | 544 | ] |
| 539 | ] [ rdf:type sp:Bind ; | 545 | ] [ rdf:type sp:Bind ; |
| 540 | sp:expression | 546 | sp:expression |
| 541 | [ rdf:type sp:notExists ; | 547 | [ rdf:type sp:notExists ; |
| 542 | sp:elements ([ sp:object | 548 | sp:elements ([ sp:object |
| 543 | - [ sp:varName "child"^^xsd:string | 549 | + [ sp:varName "node"^^xsd:string |
| 544 | ] ; | 550 | ] ; |
| 545 | sp:predicate rdfs:subClassOf ; | 551 | sp:predicate rdfs:subClassOf ; |
| 546 | sp:subject | 552 | sp:subject |
| 547 | - [ sp:varName "grandChild"^^xsd:string | 553 | + [ sp:varName "child"^^xsd:string |
| 548 | ] | 554 | ] |
| 549 | ]) | 555 | ]) |
| 550 | ] ; | 556 | ] ; |
| ... | @@ -554,7 +560,7 @@ app:ClassTreeDataProvider | ... | @@ -554,7 +560,7 @@ app:ClassTreeDataProvider |
| 554 | ] [ rdf:type sp:Bind ; | 560 | ] [ rdf:type sp:Bind ; |
| 555 | sp:expression | 561 | sp:expression |
| 556 | [ rdf:type ui:label ; | 562 | [ rdf:type ui:label ; |
| 557 | - sp:arg1 [ sp:varName "child"^^xsd:string | 563 | + sp:arg1 [ sp:varName "node"^^xsd:string |
| 558 | ] | 564 | ] |
| 559 | ] ; | 565 | ] ; |
| 560 | sp:variable | 566 | sp:variable |
| ... | @@ -565,39 +571,60 @@ app:ClassTreeDataProvider | ... | @@ -565,39 +571,60 @@ app:ClassTreeDataProvider |
| 565 | sp:variable | 571 | sp:variable |
| 566 | [ sp:varName "icon"^^xsd:string | 572 | [ sp:varName "icon"^^xsd:string |
| 567 | ] | 573 | ] |
| 568 | - ] [ rdf:type sp:Bind ; | ||
| 569 | - sp:expression | ||
| 570 | - [ rdf:type spl:object ; | ||
| 571 | - sp:arg1 [ sp:varName "child"^^xsd:string | ||
| 572 | - ] ; | ||
| 573 | - sp:arg2 rdf:type | ||
| 574 | - ] ; | ||
| 575 | - sp:variable | ||
| 576 | - [ sp:varName "type"^^xsd:string | ||
| 577 | - ] | ||
| 578 | ]) | 574 | ]) |
| 579 | - ] ; | 575 | + ] . |
| 580 | - arg:id [ sp:varName "id"^^xsd:string | 576 | + |
| 581 | - ] ; | 577 | +app:ClassTreeDataProvider |
| 582 | - arg:rootsQuery | 578 | + rdf:type app:TreeDataProvider ; |
| 579 | + rdfs:comment "A data provider for a class tree starting at rdfs:Resource."^^xsd:string ; | ||
| 580 | + rdfs:label "Class tree data provider"^^xsd:string ; | ||
| 581 | + arg:treeChildrenTemplate | ||
| 582 | + app:ClassTreeChildren ; | ||
| 583 | + arg:treeRootsTemplate | ||
| 584 | + app:ClassTreeRoots . | ||
| 585 | + | ||
| 586 | +app:ClassTreeRoots | ||
| 587 | + rdf:type spin:SelectTemplate ; | ||
| 588 | + rdfs:label "Class tree roots"^^xsd:string ; | ||
| 589 | + rdfs:subClassOf app:TreeRootsTemplates ; | ||
| 590 | + spin:body | ||
| 583 | [ rdf:type sp:Select ; | 591 | [ rdf:type sp:Select ; |
| 584 | - sp:resultVariables ([ sp:varName "child"^^xsd:string | 592 | + sp:resultVariables ([ sp:varName "node"^^xsd:string |
| 585 | ] [ sp:varName "label"^^xsd:string | 593 | ] [ sp:varName "label"^^xsd:string |
| 586 | ] [ sp:varName "leaf"^^xsd:string | 594 | ] [ sp:varName "leaf"^^xsd:string |
| 587 | ] [ sp:varName "icon"^^xsd:string | 595 | ] [ sp:varName "icon"^^xsd:string |
| 588 | ]) ; | 596 | ]) ; |
| 589 | sp:where ([ rdf:type sp:Bind ; | 597 | sp:where ([ rdf:type sp:Bind ; |
| 590 | - sp:expression rdfs:Resource ; | 598 | + sp:expression |
| 599 | + [ rdf:type sp:coalesce ; | ||
| 600 | + sp:arg1 [ sp:varName "root"^^xsd:string | ||
| 601 | + ] ; | ||
| 602 | + sp:arg2 rdfs:Resource | ||
| 603 | + ] ; | ||
| 591 | sp:variable | 604 | sp:variable |
| 592 | - [ sp:varName "child"^^xsd:string | 605 | + [ sp:varName "node"^^xsd:string |
| 593 | ] | 606 | ] |
| 594 | ] [ rdf:type sp:Bind ; | 607 | ] [ rdf:type sp:Bind ; |
| 595 | - sp:expression "Resource" ; | 608 | + sp:expression |
| 609 | + [ rdf:type ui:label ; | ||
| 610 | + sp:arg1 [ sp:varName "node"^^xsd:string | ||
| 611 | + ] | ||
| 612 | + ] ; | ||
| 596 | sp:variable | 613 | sp:variable |
| 597 | [ sp:varName "label"^^xsd:string | 614 | [ sp:varName "label"^^xsd:string |
| 598 | ] | 615 | ] |
| 599 | ] [ rdf:type sp:Bind ; | 616 | ] [ rdf:type sp:Bind ; |
| 600 | - sp:expression "false"^^xsd:boolean ; | 617 | + sp:expression |
| 618 | + [ rdf:type sp:notExists ; | ||
| 619 | + sp:elements ([ sp:object | ||
| 620 | + [ sp:varName "node"^^xsd:string | ||
| 621 | + ] ; | ||
| 622 | + sp:predicate rdfs:subClassOf ; | ||
| 623 | + sp:subject | ||
| 624 | + [ sp:varName "child"^^xsd:string | ||
| 625 | + ] | ||
| 626 | + ]) | ||
| 627 | + ] ; | ||
| 601 | sp:variable | 628 | sp:variable |
| 602 | [ sp:varName "leaf"^^xsd:string | 629 | [ sp:varName "leaf"^^xsd:string |
| 603 | ] | 630 | ] |
| ... | @@ -3619,86 +3646,6 @@ app:PropertyLabel | ... | @@ -3619,86 +3646,6 @@ app:PropertyLabel |
| 3619 | ] | 3646 | ] |
| 3620 | ] . | 3647 | ] . |
| 3621 | 3648 | ||
| 3622 | -app:QueryTreeDataProvider | ||
| 3623 | - rdf:type ui:NodeClass ; | ||
| 3624 | - rdfs:comment "A TreeDataProvider backed by two SELECT queries - one to get the roots, and one to get the children of a given node."^^xsd:string ; | ||
| 3625 | - rdfs:label "Query tree data provider"^^xsd:string ; | ||
| 3626 | - rdfs:subClassOf app:TreeDataProvider ; | ||
| 3627 | - spin:constraint | ||
| 3628 | - [ rdf:type spl:Argument ; | ||
| 3629 | - rdfs:comment "The query to get the children."^^xsd:string ; | ||
| 3630 | - spl:predicate arg:childrenQuery ; | ||
| 3631 | - spl:valueType sp:Select | ||
| 3632 | - ] ; | ||
| 3633 | - spin:constraint | ||
| 3634 | - [ rdf:type spl:Argument ; | ||
| 3635 | - rdfs:comment "The query to get the roots of the tree."^^xsd:string ; | ||
| 3636 | - spl:predicate arg:rootsQuery ; | ||
| 3637 | - spl:valueType sp:Select | ||
| 3638 | - ] ; | ||
| 3639 | - ui:prototype | ||
| 3640 | - [ rdf:type ui:group ; | ||
| 3641 | - ui:child | ||
| 3642 | - [ rdf:type ui:if ; | ||
| 3643 | - ui:child | ||
| 3644 | - [ rdf:type app:QueryTreeDataProviderHelper ; | ||
| 3645 | - ui:childIndex 0 ; | ||
| 3646 | - ui:resultSet | ||
| 3647 | - [ sp:varName "rootsQuery"^^xsd:string | ||
| 3648 | - ] | ||
| 3649 | - ] ; | ||
| 3650 | - ui:childIndex 0 ; | ||
| 3651 | - ui:condition | ||
| 3652 | - [ rdf:type sp:or ; | ||
| 3653 | - sp:arg1 [ rdf:type sp:eq ; | ||
| 3654 | - sp:arg1 [ sp:varName "id"^^xsd:string | ||
| 3655 | - ] ; | ||
| 3656 | - sp:arg2 "1" | ||
| 3657 | - ] ; | ||
| 3658 | - sp:arg2 [ rdf:type sp:not ; | ||
| 3659 | - sp:arg1 [ rdf:type sp:bound ; | ||
| 3660 | - sp:arg1 [ sp:varName "id"^^xsd:string | ||
| 3661 | - ] | ||
| 3662 | - ] | ||
| 3663 | - ] | ||
| 3664 | - ] | ||
| 3665 | - ] ; | ||
| 3666 | - ui:child | ||
| 3667 | - [ rdf:type ui:else ; | ||
| 3668 | - ui:child | ||
| 3669 | - [ rdf:type ui:group ; | ||
| 3670 | - let:parent | ||
| 3671 | - [ rdf:type ui:decodeNode ; | ||
| 3672 | - sp:arg1 [ rdf:type app:removeUniqueId ; | ||
| 3673 | - sp:arg1 [ sp:varName "id"^^xsd:string | ||
| 3674 | - ] | ||
| 3675 | - ] | ||
| 3676 | - ] ; | ||
| 3677 | - ui:child | ||
| 3678 | - [ rdf:type app:QueryTreeDataProviderHelper ; | ||
| 3679 | - ui:childIndex 0 ; | ||
| 3680 | - ui:resultSet | ||
| 3681 | - [ sp:varName "childrenQuery"^^xsd:string | ||
| 3682 | - ] | ||
| 3683 | - ] ; | ||
| 3684 | - ui:childIndex 0 | ||
| 3685 | - ] ; | ||
| 3686 | - ui:childIndex 1 | ||
| 3687 | - ] | ||
| 3688 | - ] . | ||
| 3689 | - | ||
| 3690 | -app:QueryTreeDataProviderHelper | ||
| 3691 | - rdf:type ui:NodeClass ; | ||
| 3692 | - rdfs:label "Query tree data provider helper"^^xsd:string ; | ||
| 3693 | - rdfs:subClassOf app:TreeElements ; | ||
| 3694 | - spin:constraint | ||
| 3695 | - [ rdf:type spl:Argument ; | ||
| 3696 | - rdfs:comment "The query to execute."^^xsd:string ; | ||
| 3697 | - spl:predicate ui:resultSet ; | ||
| 3698 | - spl:valueType sp:Select | ||
| 3699 | - ] ; | ||
| 3700 | - ui:prototype <http://appschema.org/imports/queryTreeDataProviderHelper.uispin.html> . | ||
| 3701 | - | ||
| 3702 | app:ResourceEnumDropDownEditor | 3649 | app:ResourceEnumDropDownEditor |
| 3703 | rdf:type app:ObjectEditorClass ; | 3650 | rdf:type app:ObjectEditorClass ; |
| 3704 | rdfs:label "Resource enum drop down editor"^^xsd:string ; | 3651 | rdfs:label "Resource enum drop down editor"^^xsd:string ; |
| ... | @@ -5509,11 +5456,30 @@ app:Tree | ... | @@ -5509,11 +5456,30 @@ app:Tree |
| 5509 | spl:predicate arg:onSelect ; | 5456 | spl:predicate arg:onSelect ; |
| 5510 | spl:valueType xsd:string | 5457 | spl:valueType xsd:string |
| 5511 | ] ; | 5458 | ] ; |
| 5459 | + spin:constraint | ||
| 5460 | + [ rdf:type spl:Argument ; | ||
| 5461 | + rdfs:comment "A root node that can overload the default root of the data provider. For example, app:ClassTreeDataProvider starts at rdfs:Resource by default - set arg:root to owl:Thing to start there instead."^^xsd:string ; | ||
| 5462 | + spl:optional "true"^^xsd:boolean ; | ||
| 5463 | + spl:predicate arg:root ; | ||
| 5464 | + spl:valueType rdfs:Resource | ||
| 5465 | + ] ; | ||
| 5512 | ui:prototype <http://appschema.org/imports/tree.uispin.html> . | 5466 | ui:prototype <http://appschema.org/imports/tree.uispin.html> . |
| 5513 | 5467 | ||
| 5468 | +app:TreeChildrenTemplates | ||
| 5469 | + rdf:type spin:SelectTemplate ; | ||
| 5470 | + rdfs:label "Tree children templates"^^xsd:string ; | ||
| 5471 | + rdfs:subClassOf app:TreeTemplates ; | ||
| 5472 | + spin:abstract "true"^^xsd:boolean ; | ||
| 5473 | + spin:constraint | ||
| 5474 | + [ rdf:type spl:Argument ; | ||
| 5475 | + rdfs:comment "The parent node to get the children of."^^xsd:string ; | ||
| 5476 | + spl:predicate arg:parent ; | ||
| 5477 | + spl:valueType rdfs:Resource | ||
| 5478 | + ] . | ||
| 5479 | + | ||
| 5514 | app:TreeDataProvider | 5480 | app:TreeDataProvider |
| 5515 | rdf:type ui:NodeClass ; | 5481 | rdf:type ui:NodeClass ; |
| 5516 | - rdfs:comment "Base class for various kinds of data providers implementing Ajax call-backs to app:Tree components."^^xsd:string ; | 5482 | + rdfs:comment "A TreeDataProvider is backed by two SELECT queries - one to get the roots, and one to get the children of a given node."^^xsd:string ; |
| 5517 | rdfs:label "Tree data provider"^^xsd:string ; | 5483 | rdfs:label "Tree data provider"^^xsd:string ; |
| 5518 | rdfs:subClassOf app:TreeElements ; | 5484 | rdfs:subClassOf app:TreeElements ; |
| 5519 | spin:constraint | 5485 | spin:constraint |
| ... | @@ -5522,13 +5488,135 @@ app:TreeDataProvider | ... | @@ -5522,13 +5488,135 @@ app:TreeDataProvider |
| 5522 | spl:predicate arg:id ; | 5488 | spl:predicate arg:id ; |
| 5523 | spl:valueType xsd:string | 5489 | spl:valueType xsd:string |
| 5524 | ] ; | 5490 | ] ; |
| 5525 | - ui:abstract "true"^^xsd:boolean . | 5491 | + spin:constraint |
| 5492 | + [ rdf:type spl:Argument ; | ||
| 5493 | + rdfs:comment "The root resource. If none is specified, then the system will use compute the root(s) from the roots template."^^xsd:string ; | ||
| 5494 | + spl:optional "true"^^xsd:boolean ; | ||
| 5495 | + spl:predicate arg:root ; | ||
| 5496 | + spl:valueType rdfs:Resource | ||
| 5497 | + ] ; | ||
| 5498 | + spin:constraint | ||
| 5499 | + [ rdf:type spl:Argument ; | ||
| 5500 | + rdfs:comment "The subclass of app:TreeChildrenTemplates that delivers the children of a given parent node."^^xsd:string ; | ||
| 5501 | + spl:predicate arg:treeChildrenTemplate ; | ||
| 5502 | + spl:valueType spin:Template | ||
| 5503 | + ] ; | ||
| 5504 | + spin:constraint | ||
| 5505 | + [ rdf:type spl:Argument ; | ||
| 5506 | + rdfs:comment "A subclass of app:TreeRootsTemplates that delivers the roots of the tree. Will be bypassed if the tree itself defined an arg:rootResource."^^xsd:string ; | ||
| 5507 | + spl:optional "true"^^xsd:boolean ; | ||
| 5508 | + spl:predicate arg:treeRootsTemplate ; | ||
| 5509 | + spl:valueType spin:Template | ||
| 5510 | + ] ; | ||
| 5511 | + ui:prototype | ||
| 5512 | + [ rdf:type ui:group ; | ||
| 5513 | + ui:child | ||
| 5514 | + [ rdf:type ui:if ; | ||
| 5515 | + ui:child | ||
| 5516 | + [ rdf:type ui:call ; | ||
| 5517 | + arg:root | ||
| 5518 | + [ sp:varName "root"^^xsd:string | ||
| 5519 | + ] ; | ||
| 5520 | + ui:child | ||
| 5521 | + [ rdf:type app:TreeDataProviderHelper ; | ||
| 5522 | + ui:childIndex 0 ; | ||
| 5523 | + ui:resultSet | ||
| 5524 | + [ sp:varName "rs"^^xsd:string | ||
| 5525 | + ] | ||
| 5526 | + ] ; | ||
| 5527 | + ui:childIndex 0 ; | ||
| 5528 | + ui:template | ||
| 5529 | + [ sp:varName "treeRootsTemplate"^^xsd:string | ||
| 5530 | + ] | ||
| 5531 | + ] ; | ||
| 5532 | + ui:childIndex 0 ; | ||
| 5533 | + ui:condition | ||
| 5534 | + [ rdf:type sp:or ; | ||
| 5535 | + sp:arg1 [ rdf:type sp:eq ; | ||
| 5536 | + sp:arg1 [ sp:varName "id"^^xsd:string | ||
| 5537 | + ] ; | ||
| 5538 | + sp:arg2 "1" | ||
| 5539 | + ] ; | ||
| 5540 | + sp:arg2 [ rdf:type sp:not ; | ||
| 5541 | + sp:arg1 [ rdf:type sp:bound ; | ||
| 5542 | + sp:arg1 [ sp:varName "id"^^xsd:string | ||
| 5543 | + ] | ||
| 5544 | + ] | ||
| 5545 | + ] | ||
| 5546 | + ] | ||
| 5547 | + ] ; | ||
| 5548 | + ui:child | ||
| 5549 | + [ rdf:type ui:else ; | ||
| 5550 | + ui:child | ||
| 5551 | + [ rdf:type ui:call ; | ||
| 5552 | + arg:parent | ||
| 5553 | + [ rdf:type ui:decodeNode ; | ||
| 5554 | + sp:arg1 [ rdf:type app:removeUniqueId ; | ||
| 5555 | + sp:arg1 [ sp:varName "id"^^xsd:string | ||
| 5556 | + ] | ||
| 5557 | + ] | ||
| 5558 | + ] ; | ||
| 5559 | + ui:child | ||
| 5560 | + [ rdf:type app:TreeDataProviderHelper ; | ||
| 5561 | + ui:childIndex 0 ; | ||
| 5562 | + ui:resultSet | ||
| 5563 | + [ sp:varName "rs"^^xsd:string | ||
| 5564 | + ] | ||
| 5565 | + ] ; | ||
| 5566 | + ui:childIndex 0 ; | ||
| 5567 | + ui:template | ||
| 5568 | + [ sp:varName "treeChildrenTemplate"^^xsd:string | ||
| 5569 | + ] | ||
| 5570 | + ] ; | ||
| 5571 | + ui:childIndex 1 | ||
| 5572 | + ] | ||
| 5573 | + ] . | ||
| 5574 | + | ||
| 5575 | +app:TreeDataProviderHelper | ||
| 5576 | + rdf:type ui:NodeClass ; | ||
| 5577 | + rdfs:label "Tree data provider helper"^^xsd:string ; | ||
| 5578 | + rdfs:subClassOf app:TreeElements ; | ||
| 5579 | + spin:constraint | ||
| 5580 | + [ rdf:type spl:Argument ; | ||
| 5581 | + rdfs:comment "The query to execute."^^xsd:string ; | ||
| 5582 | + spl:predicate ui:resultSet ; | ||
| 5583 | + spl:valueType sp:Select | ||
| 5584 | + ] ; | ||
| 5585 | + ui:prototype <http://appschema.org/imports/treeDataProviderHelper.uispin.html> . | ||
| 5526 | 5586 | ||
| 5527 | app:TreeElements | 5587 | app:TreeElements |
| 5528 | rdf:type ui:NodeClass ; | 5588 | rdf:type ui:NodeClass ; |
| 5529 | rdfs:label "Tree elements"^^xsd:string ; | 5589 | rdfs:label "Tree elements"^^xsd:string ; |
| 5530 | rdfs:subClassOf app:Elements . | 5590 | rdfs:subClassOf app:Elements . |
| 5531 | 5591 | ||
| 5592 | +app:TreeRootsTemplates | ||
| 5593 | + rdf:type spin:SelectTemplate ; | ||
| 5594 | + rdfs:comment "Abstract superclass for queries that can deliver the roots of a tree."^^xsd:string ; | ||
| 5595 | + rdfs:label "Tree roots templates"^^xsd:string ; | ||
| 5596 | + rdfs:subClassOf app:TreeTemplates ; | ||
| 5597 | + spin:constraint | ||
| 5598 | + [ rdf:type spl:Argument ; | ||
| 5599 | + rdfs:comment "The node to return as single root - this is bound by the tree if the tree has a dedicated arg:root. Otherwise the node is created by the WHERE clause."^^xsd:string ; | ||
| 5600 | + spl:optional "true"^^xsd:boolean ; | ||
| 5601 | + spl:predicate arg:root ; | ||
| 5602 | + spl:valueType rdfs:Resource | ||
| 5603 | + ] . | ||
| 5604 | + | ||
| 5605 | +app:TreeTemplates | ||
| 5606 | + rdf:type spin:SelectTemplate ; | ||
| 5607 | + rdfs:comment """Base class for SELECT templates that are used to populate trees. There are two kinds of queries: | ||
| 5608 | +a) to find all root nodes | ||
| 5609 | +b) to find the children of a given parent node. | ||
| 5610 | + | ||
| 5611 | +All SELECT queries in subclass of this must return the following result variables: | ||
| 5612 | +SELECT ?node ?label ?leaf ?icon | ||
| 5613 | +- ?node: the resource behind the node, e.g. an owl:Class or skos:Concept | ||
| 5614 | +- ?label (optional): the label for the resource - if not used, the system will call ui:label(?node) | ||
| 5615 | +- ?leaf: true means no children, i.e. the node cannot be expanded | ||
| 5616 | +- ?icon (optional): CSS class for the icon"""^^xsd:string ; | ||
| 5617 | + rdfs:label "Tree templates"^^xsd:string ; | ||
| 5618 | + rdfs:subClassOf spin:SelectTemplates . | ||
| 5619 | + | ||
| 5532 | app:URIResourceEditor | 5620 | app:URIResourceEditor |
| 5533 | rdf:type app:ObjectEditorClass ; | 5621 | rdf:type app:ObjectEditorClass ; |
| 5534 | rdfs:comment "The default Editor for resources, consisting of a combo-box with auto-complete."^^xsd:string ; | 5622 | rdfs:comment "The default Editor for resources, consisting of a combo-box with auto-complete."^^xsd:string ; |
| ... | @@ -7052,6 +7140,11 @@ app:weight | ... | @@ -7052,6 +7140,11 @@ app:weight |
| 7052 | rdfs:range xsd:integer ; | 7140 | rdfs:range xsd:integer ; |
| 7053 | rdfs:subPropertyOf app:systemProperty . | 7141 | rdfs:subPropertyOf app:systemProperty . |
| 7054 | 7142 | ||
| 7143 | +arg:child | ||
| 7144 | + rdf:type rdf:Property ; | ||
| 7145 | + rdfs:label "child"^^xsd:string ; | ||
| 7146 | + rdfs:subPropertyOf sp:arg . | ||
| 7147 | + | ||
| 7055 | arg:childrenQuery | 7148 | arg:childrenQuery |
| 7056 | rdf:type rdf:Property ; | 7149 | rdf:type rdf:Property ; |
| 7057 | rdfs:label "children query"^^xsd:string ; | 7150 | rdfs:label "children query"^^xsd:string ; |
| ... | @@ -7162,6 +7255,11 @@ arg:params | ... | @@ -7162,6 +7255,11 @@ arg:params |
| 7162 | rdfs:label "params"^^xsd:string ; | 7255 | rdfs:label "params"^^xsd:string ; |
| 7163 | rdfs:subPropertyOf sp:arg . | 7256 | rdfs:subPropertyOf sp:arg . |
| 7164 | 7257 | ||
| 7258 | +arg:parent | ||
| 7259 | + rdf:type rdf:Property ; | ||
| 7260 | + rdfs:label "parent"^^xsd:string ; | ||
| 7261 | + rdfs:subPropertyOf sp:arg . | ||
| 7262 | + | ||
| 7165 | arg:predicates | 7263 | arg:predicates |
| 7166 | rdf:type rdf:Property ; | 7264 | rdf:type rdf:Property ; |
| 7167 | rdfs:label "predicates"^^xsd:string ; | 7265 | rdfs:label "predicates"^^xsd:string ; |
| ... | @@ -7192,6 +7290,11 @@ arg:resultsId | ... | @@ -7192,6 +7290,11 @@ arg:resultsId |
| 7192 | rdfs:label "results id"^^xsd:string ; | 7290 | rdfs:label "results id"^^xsd:string ; |
| 7193 | rdfs:subPropertyOf sp:arg . | 7291 | rdfs:subPropertyOf sp:arg . |
| 7194 | 7292 | ||
| 7293 | +arg:root | ||
| 7294 | + rdf:type rdf:Property ; | ||
| 7295 | + rdfs:label "root"^^xsd:string ; | ||
| 7296 | + rdfs:subPropertyOf sp:arg . | ||
| 7297 | + | ||
| 7195 | arg:rootsQuery | 7298 | arg:rootsQuery |
| 7196 | rdf:type rdf:Property ; | 7299 | rdf:type rdf:Property ; |
| 7197 | rdfs:label "roots query"^^xsd:string ; | 7300 | rdfs:label "roots query"^^xsd:string ; |
| ... | @@ -7252,6 +7355,16 @@ arg:topHeight | ... | @@ -7252,6 +7355,16 @@ arg:topHeight |
| 7252 | rdfs:label "top height"^^xsd:string ; | 7355 | rdfs:label "top height"^^xsd:string ; |
| 7253 | rdfs:subPropertyOf sp:arg . | 7356 | rdfs:subPropertyOf sp:arg . |
| 7254 | 7357 | ||
| 7358 | +arg:treeChildrenTemplate | ||
| 7359 | + rdf:type rdf:Property ; | ||
| 7360 | + rdfs:label "tree children template"^^xsd:string ; | ||
| 7361 | + rdfs:subPropertyOf sp:arg . | ||
| 7362 | + | ||
| 7363 | +arg:treeRootsTemplate | ||
| 7364 | + rdf:type rdf:Property ; | ||
| 7365 | + rdfs:label "tree roots template"^^xsd:string ; | ||
| 7366 | + rdfs:subPropertyOf sp:arg . | ||
| 7367 | + | ||
| 7255 | arg:type | 7368 | arg:type |
| 7256 | rdf:type rdf:Property ; | 7369 | rdf:type rdf:Property ; |
| 7257 | rdfs:label "type"^^xsd:string ; | 7370 | rdfs:label "type"^^xsd:string ; | ... | ... |
| ... | @@ -2,7 +2,8 @@ | ... | @@ -2,7 +2,8 @@ |
| 2 | ui:format="json" | 2 | ui:format="json" |
| 3 | ui:sendQueryGraph="true" | 3 | ui:sendQueryGraph="true" |
| 4 | ui:snippet="true" | 4 | ui:snippet="true" |
| 5 | - ui:view="{= ?dataProvider }"> | 5 | + ui:view="{= ?dataProvider }" |
| 6 | + arg:root="{= ?root }"> | ||
| 6 | 7 | ||
| 7 | <!-- The div that will be turned into a jsTree below --> | 8 | <!-- The div that will be turned into a jsTree below --> |
| 8 | <div id="{= ?id }" /> | 9 | <div id="{= ?id }" /> | ... | ... |
| 1 | <ui:group xmlns:ui="http://uispin.org/ui#"> | 1 | <ui:group xmlns:ui="http://uispin.org/ui#"> |
| 2 | [ | 2 | [ |
| 3 | - <ui:if ui:condition="{= spr:rowCount(?resultSet) > 0 }"> | 3 | + <ui:forEach ui:indexVar="index" ui:resultSet="{= ?resultSet }" ui:separator=","> |
| 4 | - <ui:forEach ui:indexVar="index" ui:resultSet="{= ?resultSet }"> | ||
| 5 | - <ui:if ui:condition="{= ?index > 0 }">,</ui:if> | ||
| 6 | { | 4 | { |
| 7 | "data" : { | 5 | "data" : { |
| 8 | - "title" : "{= IF(bound(?label), ?label, ui:label(?child)) }" | 6 | + "title" : "{= COALESCE(?label, ui:label(?node)) }" |
| 9 | <ui:if ui:condition="{= bound(?icon) }">, | 7 | <ui:if ui:condition="{= bound(?icon) }">, |
| 10 | "icon" : "{= ?icon }" | 8 | "icon" : "{= ?icon }" |
| 11 | </ui:if> | 9 | </ui:if> |
| 12 | }, | 10 | }, |
| 13 | "attr" : { | 11 | "attr" : { |
| 14 | - "id": "{= ui:encodeNode(?child) }::{= ui:uniqueId() }", | 12 | + "id": "{= ui:encodeNode(?node) }::{= ui:uniqueId() }", |
| 15 | - "resource" : "{= IRI(?child) }" | 13 | + "resource" : "{= IRI(?node) }" |
| 16 | }, | 14 | }, |
| 17 | <ui:if ui:condition="{= ?leaf }"> | 15 | <ui:if ui:condition="{= ?leaf }"> |
| 18 | "children" : [] | 16 | "children" : [] |
| ... | @@ -20,7 +18,7 @@ | ... | @@ -20,7 +18,7 @@ |
| 20 | <ui:else> | 18 | <ui:else> |
| 21 | "state" : "closed" | 19 | "state" : "closed" |
| 22 | </ui:else> | 20 | </ui:else> |
| 23 | - }</ui:forEach> | 21 | + } |
| 24 | - </ui:if> | 22 | + </ui:forEach> |
| 25 | ] | 23 | ] |
| 26 | </ui:group> | 24 | </ui:group> |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -48,9 +48,10 @@ log:LogBrowser | ... | @@ -48,9 +48,10 @@ log:LogBrowser |
| 48 | html:class "ui-layout-content"^^xsd:string ; | 48 | html:class "ui-layout-content"^^xsd:string ; |
| 49 | ui:child | 49 | ui:child |
| 50 | [ rdf:type app:Tree ; | 50 | [ rdf:type app:Tree ; |
| 51 | - arg:dataProvider log:LogEventClassTreeDataProvider ; | 51 | + arg:dataProvider app:ClassTreeDataProvider ; |
| 52 | arg:id "classTree"^^xsd:string ; | 52 | arg:id "classTree"^^xsd:string ; |
| 53 | arg:onSelect "appLoadWithResource('form', 'resourceType', resource)"^^xsd:string ; | 53 | arg:onSelect "appLoadWithResource('form', 'resourceType', resource)"^^xsd:string ; |
| 54 | + arg:root "log:LogEvent"^^xsd:string ; | ||
| 54 | ui:childIndex 0 | 55 | ui:childIndex 0 |
| 55 | ] ; | 56 | ] ; |
| 56 | ui:childIndex 1 | 57 | ui:childIndex 1 | ... | ... |
-
Please register or login to post a comment