Holger Knublauch

EPIM log progress

......@@ -196,6 +196,44 @@ app:defaultRange
spin:private "true"^^xsd:boolean ;
spin:returnType rdfs:Resource .
app:globalRange
rdf:type spin:Function ;
rdfs:comment "Gets the global range (rdfs:range) of a property. If none is provided, it will walk up super-properties."^^xsd:string ;
rdfs:label "global range"^^xsd:string ;
rdfs:subClassOf app:Functions ;
spin:body
[ rdf:type sp:Select ;
sp:resultVariables ([ sp:varName "range"^^xsd:string
]) ;
sp:where ([ rdf:type sp:TriplePath ;
sp:object
[ sp:varName "p"^^xsd:string
] ;
sp:path [ rdf:type sp:ModPath ;
sp:modMax -2 ;
sp:modMin 0 ;
sp:subPath rdfs:subPropertyOf
] ;
sp:subject
[ sp:varName "property"^^xsd:string
]
] [ sp:object
[ sp:varName "range"^^xsd:string
] ;
sp:predicate rdfs:range ;
sp:subject
[ sp:varName "p"^^xsd:string
]
])
] ;
spin:constraint
[ rdf:type spl:Argument ;
rdfs:comment "The property to get the range of."^^xsd:string ;
spl:predicate arg:property ;
spl:valueType rdf:Property
] ;
spin:returnType rdfs:Class .
app:googleMapsAPIKey
rdf:type spin:Function ;
rdfs:comment "Gets the currently registered Google Maps API key."^^xsd:string ;
......@@ -744,7 +782,7 @@ app:localRange
sp:where ([ rdf:type sp:Bind ;
sp:expression
[ rdf:type app:resourceType ;
arg:subject
arg:resource
[ sp:varName "subject"^^xsd:string
]
] ;
......@@ -763,11 +801,6 @@ app:localRange
arg:property
[ sp:varName "predicate"^^xsd:string
]
] ;
sp:arg3 [ rdf:type app:defaultRange ;
arg:property
[ sp:varName "predicate"^^xsd:string
]
]
] ;
sp:variable
......@@ -821,7 +854,7 @@ app:localRange
app:localRangeAtClass
rdf:type spin:Function ;
rdfs:comment "Checks (in that order) for declared owl:allValuesFrom restrictions in superclasses, rdfs:range at the property and then spl:valueType in SPIN constraints (spl:Argument and spl:Attribute)."^^xsd:string ;
rdfs:comment "Checks (in that order) for declared owl:allValuesFrom restrictions in superclasses, rdfs:range at the property and then spl:valueType in SPIN constraints (spl:Argument and spl:Attribute). It falls back to app:defaultRange if nothing else is found."^^xsd:string ;
rdfs:label "local range at class"^^xsd:string ;
rdfs:subClassOf app:Functions ;
spin:body
......@@ -835,10 +868,10 @@ app:localRangeAtClass
sp:arg4 [ sp:varName "property"^^xsd:string
]
] ;
sp:arg2 [ rdf:type spl:object ;
sp:arg1 [ sp:varName "property"^^xsd:string
] ;
sp:arg2 rdfs:range
sp:arg2 [ rdf:type app:globalRange ;
arg:property
[ sp:varName "property"^^xsd:string
]
] ;
sp:arg3 [ rdf:type spif:walkObjects ;
sp:arg1 [ sp:varName "class"^^xsd:string
......@@ -847,6 +880,11 @@ app:localRangeAtClass
sp:arg3 app:splValueTypeFunctor ;
sp:arg4 [ sp:varName "property"^^xsd:string
]
] ;
sp:arg4 [ rdf:type app:defaultRange ;
arg:property
[ sp:varName "property"^^xsd:string
]
]
]) ;
sp:where ()
......
......@@ -771,35 +771,8 @@ app:CustomEditForm
ui:child
[ rdf:type ui:setContext ;
ui:child
[ rdf:type ui:group ;
ui:child
[ rdf:type html:Form ;
html:class "appForm"^^xsd:string ;
html:id [ sp:varName "fid"^^xsd:string
] ;
ui:child
[ rdf:type ui:setContext ;
ui:child
[ rdf:type ui:if ;
ui:child
[ rdf:type html:Input ;
html:name "resourceType"^^xsd:string ;
html:type "hidden"^^xsd:string ;
html:value
[ rdf:type app:resourceType
] ;
ui:childIndex 0
] ;
ui:childIndex 0 ;
ui:condition
[ rdf:type sp:not ;
sp:arg1 [ rdf:type sp:bound ;
sp:arg1 [ sp:varName "resource"^^xsd:string
]
]
]
] ;
ui:child
[ rdf:type app:FormHeader ;
arg:label "Edit"^^xsd:string ;
arg:resource
......@@ -835,7 +808,32 @@ app:CustomEditForm
ui:childIndex 0 ;
ui:into "toolBar"^^xsd:string
] ;
ui:childIndex 1
ui:childIndex 0
] ;
ui:child
[ rdf:type html:Form ;
html:class "appForm ui-layout-content"^^xsd:string ;
html:id [ sp:varName "fid"^^xsd:string
] ;
ui:child
[ rdf:type ui:if ;
ui:child
[ rdf:type html:Input ;
html:name "resourceType"^^xsd:string ;
html:type "hidden"^^xsd:string ;
html:value
[ rdf:type app:resourceType
] ;
ui:childIndex 0
] ;
ui:childIndex 0 ;
ui:condition
[ rdf:type sp:not ;
sp:arg1 [ rdf:type sp:bound ;
sp:arg1 [ sp:varName "resource"^^xsd:string
]
]
]
] ;
ui:child
[ rdf:type html:Div ;
......@@ -867,7 +865,7 @@ app:CustomEditForm
] ;
ui:childIndex 1
] ;
ui:childIndex 2
ui:childIndex 1
] ;
ui:child
[ rdf:type html:Div ;
......@@ -901,16 +899,14 @@ app:CustomEditForm
] ;
ui:childIndex 1
] ;
ui:childIndex 3
ui:childIndex 2
] ;
ui:childIndex 1
] ;
ui:childIndex 0 ;
ui:varName "createLinkFunction"^^xsd:string ;
ui:varValue app:createNewTabLink
] ;
ui:childIndex 0
] ;
ui:childIndex 0
] ;
ui:childIndex 0 ;
ui:varName
[ rdf:type sp:if ;
......@@ -1744,12 +1740,6 @@ app:HSplitLayout
rdfs:subClassOf app:LayoutElements ;
spin:constraint
[ rdf:type spl:Argument ;
rdfs:comment "The height of the overall div, e.g. \"300px\""^^xsd:string ;
spl:predicate arg:height ;
spl:valueType xsd:string
] ;
spin:constraint
[ rdf:type spl:Argument ;
rdfs:comment "The width of the left component, e.g. \"30%\"."^^xsd:string ;
spl:optional "true"^^xsd:boolean ;
spl:predicate arg:leftWidth ;
......@@ -1757,35 +1747,56 @@ app:HSplitLayout
] ;
ui:prototype
[ rdf:type ui:group ;
let:A [ rdf:type ui:uniqueId
] ;
let:B [ rdf:type ui:uniqueId
] ;
let:id [ rdf:type ui:uniqueId
] ;
ui:child
[ rdf:type html:Div ;
html:class "appHSplitLayout"^^xsd:string ;
html:id [ sp:varName "id"^^xsd:string
] ;
ui:child
[ rdf:type html:Div ;
html:class "appHSplitLayoutChild"^^xsd:string ;
html:id [ sp:varName "A"^^xsd:string
] ;
html:style
[ rdf:type fn:concat ;
sp:arg1 "height:"^^xsd:string ;
sp:arg2 [ sp:varName "height"^^xsd:string
[ rdf:type ui:concat ;
sp:arg1 "float: left; "^^xsd:string ;
sp:arg2 [ rdf:type sp:if ;
sp:arg1 [ rdf:type sp:bound ;
sp:arg1 [ sp:varName "leftWidth"^^xsd:string
]
] ;
sp:arg2 [ rdf:type fn:concat ;
sp:arg1 "width:" ;
sp:arg2 [ sp:varName "leftWidth"^^xsd:string
]
] ;
sp:arg3 [ sp:varName "none"^^xsd:string
]
]
] ;
ui:child
[ rdf:type html:Div ;
html:class "ui-layout-west"^^xsd:string ;
ui:child
[ rdf:type ui:insertionPoint ;
ui:childIndex 0 ;
ui:pointId "left"^^xsd:string
ui:pointId "1"^^xsd:string
] ;
ui:childIndex 0
] ;
ui:child
[ rdf:type html:Div ;
html:class "ui-layout-center"^^xsd:string ;
html:class "appHSplitLayoutChild"^^xsd:string ;
html:id [ sp:varName "B"^^xsd:string
] ;
html:style "float: right"^^xsd:string ;
ui:child
[ rdf:type ui:insertionPoint ;
ui:childIndex 0 ;
ui:pointId "right"^^xsd:string
ui:pointId "2"^^xsd:string
] ;
ui:childIndex 1
] ;
......@@ -1808,40 +1819,33 @@ app:HSplitLayout
ui:child
[ rdf:type ui:TextNode ;
ui:childIndex 2 ;
ui:text """').layout({
applyDefaultStyles : true,
resizable : true,
slidable : true"""^^xsd:string
ui:text """').splitter({
A:$('#"""^^xsd:string
] ;
ui:child
[ rdf:type ui:if ;
ui:child
[ rdf:type ui:TextNode ;
ui:childIndex 0 ;
ui:text ",west__size:'"^^xsd:string
ui:childIndex 3 ;
ui:text [ sp:varName "A"^^xsd:string
]
] ;
ui:child
[ rdf:type ui:TextNode ;
ui:childIndex 1 ;
ui:text [ sp:varName "leftWidth"^^xsd:string
]
ui:childIndex 4 ;
ui:text """'),
B:$('#"""^^xsd:string
] ;
ui:child
[ rdf:type ui:TextNode ;
ui:childIndex 2 ;
ui:text "'"^^xsd:string
] ;
ui:childIndex 3 ;
ui:condition
[ rdf:type sp:bound ;
sp:arg1 [ sp:varName "leftWidth"^^xsd:string
]
ui:childIndex 5 ;
ui:text [ sp:varName "B"^^xsd:string
]
] ;
ui:child
[ rdf:type ui:TextNode ;
ui:childIndex 4 ;
ui:text """
ui:childIndex 6 ;
ui:text """'),
closeableto:0,
splitVertical: true
});
});"""^^xsd:string
] ;
......@@ -3876,10 +3880,17 @@ app:SearchForm
ui:child
[ rdf:type ui:setContext ;
ui:child
[ rdf:type ui:setContext ;
ui:child
[ rdf:type app:FormHeader ;
arg:label "Search"^^xsd:string ;
ui:childIndex 0
] ;
ui:child
[ rdf:type html:Form ;
html:class
[ rdf:type ui:concat ;
sp:arg1 "appForm "^^xsd:string ;
sp:arg1 "appForm ui-layout-content "^^xsd:string ;
sp:arg2 [ rdf:type sp:if ;
sp:arg1 [ rdf:type sp:or ;
sp:arg1 [ rdf:type sp:not ;
......@@ -3906,13 +3917,6 @@ app:SearchForm
]
] ;
ui:child
[ rdf:type ui:setContext ;
ui:child
[ rdf:type app:FormHeader ;
arg:label "Search"^^xsd:string ;
ui:childIndex 0
] ;
ui:child
[ rdf:type html:Input ;
html:name "type"^^xsd:string ;
html:type "hidden"^^xsd:string ;
......@@ -3923,7 +3927,7 @@ app:SearchForm
] ;
sp:arg3 ">"^^xsd:string
] ;
ui:childIndex 1
ui:childIndex 0
] ;
ui:child
[ rdf:type html:Input ;
......@@ -3942,7 +3946,7 @@ app:SearchForm
]
]
] ;
ui:childIndex 2
ui:childIndex 1
] ;
ui:child
[ rdf:type html:Input ;
......@@ -3953,7 +3957,7 @@ app:SearchForm
sp:arg1 [ rdf:type ui:currentQueryGraph
]
] ;
ui:childIndex 3
ui:childIndex 2
] ;
ui:child
[ rdf:type ui:if ;
......@@ -3994,7 +3998,7 @@ app:SearchForm
])
]
] ;
ui:childIndex 4 ;
ui:childIndex 3 ;
ui:condition
[ rdf:type sp:bound ;
sp:arg1 [ sp:varName "kp"^^xsd:string
......@@ -4011,7 +4015,9 @@ app:SearchForm
[ rdf:type app:resourceType
]
] ;
ui:childIndex 5
ui:childIndex 4
] ;
ui:childIndex 1
] ;
ui:child
[ rdf:type html:Div ;
......@@ -4049,14 +4055,12 @@ app:SearchForm
html:value "Reset"^^xsd:string ;
ui:childIndex 2
] ;
ui:childIndex 6
ui:childIndex 2
] ;
ui:childIndex 0 ;
ui:varName "createLinkFunction"^^xsd:string ;
ui:varValue app:createNewTabLink
] ;
ui:childIndex 0
] ;
ui:childIndex 0 ;
ui:varName "resourceType"^^xsd:string ;
ui:varValue
......@@ -5568,12 +5572,6 @@ app:VSplitLayout
rdfs:subClassOf app:LayoutElements ;
spin:constraint
[ rdf:type spl:Argument ;
rdfs:comment "The height of the overall div, e.g. \"300px\""^^xsd:string ;
spl:predicate arg:height ;
spl:valueType xsd:string
] ;
spin:constraint
[ rdf:type spl:Argument ;
rdfs:comment "The height of the top component, e.g. \"30%\"."^^xsd:string ;
spl:optional "true"^^xsd:boolean ;
spl:predicate arg:topHeight ;
......@@ -5581,21 +5579,37 @@ app:VSplitLayout
] ;
ui:prototype
[ rdf:type ui:group ;
let:A [ rdf:type ui:uniqueId
] ;
let:B [ rdf:type ui:uniqueId
] ;
let:id [ rdf:type ui:uniqueId
] ;
ui:child
[ rdf:type html:Div ;
html:class "appVSplitLayout"^^xsd:string ;
html:id [ sp:varName "id"^^xsd:string
] ;
html:style "height:100%"^^xsd:string ;
ui:child
[ rdf:type html:Div ;
html:class "appVSplitLayoutChild"^^xsd:string ;
html:id [ sp:varName "A"^^xsd:string
] ;
html:style
[ rdf:type fn:concat ;
sp:arg1 "height:"^^xsd:string ;
sp:arg2 [ sp:varName "height"^^xsd:string
[ rdf:type sp:if ;
sp:arg1 [ rdf:type sp:bound ;
sp:arg1 [ sp:varName "topHeight"^^xsd:string
]
] ;
sp:arg2 [ rdf:type fn:concat ;
sp:arg1 "height:" ;
sp:arg2 [ sp:varName "topHeight"^^xsd:string
]
] ;
sp:arg3 [ sp:varName "none"^^xsd:string
]
] ;
ui:child
[ rdf:type html:Div ;
html:class "ui-layout-north"^^xsd:string ;
ui:child
[ rdf:type ui:insertionPoint ;
ui:childIndex 0 ;
......@@ -5605,7 +5619,9 @@ app:VSplitLayout
] ;
ui:child
[ rdf:type html:Div ;
html:class "ui-layout-center"^^xsd:string ;
html:class "appVSplitLayoutChild"^^xsd:string ;
html:id [ sp:varName "B"^^xsd:string
] ;
ui:child
[ rdf:type ui:insertionPoint ;
ui:childIndex 0 ;
......@@ -5632,40 +5648,33 @@ app:VSplitLayout
ui:child
[ rdf:type ui:TextNode ;
ui:childIndex 2 ;
ui:text """').layout({
applyDefaultStyles : true,
resizable : true,
slidable : true"""^^xsd:string
ui:text """').splitter({
A:$('#"""^^xsd:string
] ;
ui:child
[ rdf:type ui:if ;
ui:child
[ rdf:type ui:TextNode ;
ui:childIndex 0 ;
ui:text ",north__size:'"^^xsd:string
ui:childIndex 3 ;
ui:text [ sp:varName "A"^^xsd:string
]
] ;
ui:child
[ rdf:type ui:TextNode ;
ui:childIndex 1 ;
ui:text [ sp:varName "topHeight"^^xsd:string
]
ui:childIndex 4 ;
ui:text """'),
B:$('#"""^^xsd:string
] ;
ui:child
[ rdf:type ui:TextNode ;
ui:childIndex 2 ;
ui:text "'"^^xsd:string
] ;
ui:childIndex 3 ;
ui:condition
[ rdf:type sp:bound ;
sp:arg1 [ sp:varName "topHeight"^^xsd:string
]
ui:childIndex 5 ;
ui:text [ sp:varName "B"^^xsd:string
]
] ;
ui:child
[ rdf:type ui:TextNode ;
ui:childIndex 4 ;
ui:text """
ui:childIndex 6 ;
ui:text """'),
closeableto:0,
splitHorizontal: true
});
});"""^^xsd:string
] ;
......@@ -5690,11 +5699,6 @@ app:ViewForm
[ rdf:type ui:uniqueId
] ;
ui:child
[ rdf:type html:Form ;
html:class "appForm"^^xsd:string ;
html:id [ sp:varName "formId"^^xsd:string
] ;
ui:child
[ rdf:type ui:setContext ;
ui:child
[ rdf:type app:FormHeader ;
......@@ -5731,6 +5735,11 @@ app:ViewForm
ui:childIndex 0
] ;
ui:child
[ rdf:type html:Form ;
html:class "appForm ui-layout-content"^^xsd:string ;
html:id [ sp:varName "formId"^^xsd:string
] ;
ui:child
[ rdf:type html:Div ;
html:class "appFormBody"^^xsd:string ;
ui:child
......@@ -5740,14 +5749,14 @@ app:ViewForm
[ sp:varName "resource"^^xsd:string
]
] ;
ui:childIndex 0
] ;
ui:childIndex 1
] ;
ui:childIndex 0 ;
ui:varName "createLinkFunction"^^xsd:string ;
ui:varValue app:createReplaceViewFormLink
] ;
ui:childIndex 0
] ;
ui:varName "mode"^^xsd:string ;
ui:varValue "view"^^xsd:string
] .
......
@CHARSET "UTF-8";
body {
font-family: sans-serif;
font-family: Arial, Helvetica, sans-serif;
}
.appAddRowButton {
......@@ -18,8 +18,8 @@ body {
.appAutoComplete {
}
.appBaseFont, .appObjectWidget {
font-size: 14px;
.appBaseFont, .appObjectWidget, .appLabeledObjectsLabelTD {
font-size: 12px;
}
.appErrorIndicator {
......@@ -47,7 +47,6 @@ body {
}
.appLabeledObjectsLabelTD {
font-size: 14px;
font-weight: bold;
padding-bottom: 0px;
padding-left: 0px;
......@@ -100,7 +99,6 @@ body {
padding-top: 5px;
}
.appEditorHiddenField {
}
......@@ -120,8 +118,14 @@ body {
}
.appFormFooter {
padding: 4px;
margin-top: 8px;
border-top-width: 1px;
border-top-style: solid;
border-top-color: #b0b0b0;
background-color: #f0f0f0;
padding-top: 2px;
padding-left: 4px;
padding-right: 4px;
padding-bottom: 4px;
}
.appFormHeaderLink {
......@@ -145,8 +149,10 @@ a:active.appFormHeaderLink {
}
.appHeader {
background-color: darkGray;
background-color: #303030;
color: white;
font-size: 15px;
font-weight: bold;
padding-left: 4px;
padding-top: 2px;
padding-bottom: 2px;
......@@ -242,14 +248,15 @@ td.appPropertyWidgetObjectTD {
font-size: 11px;
}
.ui-layout-north {
.ui-layout-content {
padding: 0 !important;
}
.ui-layout-west {
.ui-layout-north, .ui-layout-south, .ui-layout-west, .ui-layout-east, .ui-layout-center {
border: 0px !important;
padding: 0 !important;
}
.ui-layout-center {
padding: 0 !important;
.jstree {
font-size: 12px !important;
}
\ No newline at end of file
......
......@@ -174,8 +174,26 @@ function appLoad(id, args) {
var p = jQuery.param(c);
url = p + "&" + base;
}
url += '&_snippet=true';
appInsertLoadingIndicator(e);
e.load(uispinServlet, url);
// TODO: Error handling may not work yet
e.load(uispinServlet, url, function() {
appLoadPostProcess(e, 'north');
appLoadPostProcess(e, 'east');
appLoadPostProcess(e, 'south');
appLoadPostProcess(e, 'west');
appLoadPostProcess(e, 'center');
});
}
// Private function to make sure that the scrollbars are
// updated if a ui:loadable has been loaded into a layout pane
function appLoadPostProcess(e, pane) {
// TODO: Test if this also works for panes that don't have a ui-layout-content
if(e.hasClass('ui-layout-' + pane)) {
e.parent().layout().initContent(pane);
}
}
......@@ -221,6 +239,13 @@ function appLoadForm(formId, mode, resourceURI, resourceTypeURI, queryGraphURI)
* @param onSelect the value for onSelect of the generated grid
*/
function appLoadSearchResultsGrid(formId, targetId, onSelect) {
// TODO: jQuery's serialize method has problems with attributes such as
// _base="<http://example.org/>" - it will convert those to something
// like _base=<http://example.org></http:>. There may be other problems
// with special characters etc, but the specific bug above can be
// worked around by not having URIs end with '/'.
var params = $('#' + formId).serialize();
var escaped = '&params=' + escape(params);
if(onSelect) {
......
......@@ -53,13 +53,24 @@
{= ?onSelect }
},
</ui:if>
autoWidth: true,
height: '100%',
rowNum: 10,
rowList:[5,10,20],
pager: '#{= ?pagerId }',
viewrecords: true,
sortorder: "asc",
height: "100%",
width: "100%"
}).jqGrid('navGrid', '#{= ?pagerId }', { add:false, edit:false, del:false});
shrinkToFit: false,
sortorder: 'asc',
viewrecords: true
//width: '100%'
}).jqGrid('navGrid', '#{= ?pagerId }', {
add:false,
del:false,
edit:false,
search: false
});
$("#{= ?tableId }").parent().resize(function() {
alert('Resized');
});
</script>
</ui:group>
\ No newline at end of file
......
# baseURI: http://appschema.org/skapp
# imports: http://appschema.org
# imports: http://www.w3.org/2004/02/skos/core
@prefix app: <http://appschema.org/> .
@prefix arg: <http://spinrdf.org/arg#> .
@prefix default: <http://uispin.org/default#> .
@prefix html: <http://uispin.org/html#> .
@prefix let: <http://uispin.org/let#> .
@prefix letrs: <http://uispin.org/letrs#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skapp: <http://appschema.org/skapp#> .
@prefix sp: <http://spinrdf.org/sp#> .
@prefix spin: <http://spinrdf.org/spin#> .
@prefix spl: <http://spinrdf.org/spl#> .
@prefix ui: <http://uispin.org/ui#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
app:skapp
rdf:type owl:Ontology ;
owl:imports <http://appschema.org> , <http://www.w3.org/2004/02/skos/core> ;
owl:versionInfo "0.1.0"^^xsd:string .
skapp:ConceptClassTreeDataProvider
rdf:type app:QueryTreeDataProvider ;
rdfs:label "Concept class tree data provider"^^xsd:string ;
arg:childrenQuery
[ rdf:type sp:Select ;
sp:orderBy ([ sp:varName "label"^^xsd:string
]) ;
sp:resultVariables ([ sp:varName "child"^^xsd:string
] [ sp:varName "label"^^xsd:string
] [ sp:varName "leaf"^^xsd:string
] [ sp:varName "icon"^^xsd:string
] [ sp:varName "type"^^xsd:string
]) ;
sp:where ([ sp:object
[ sp:varName "parent"^^xsd:string
] ;
sp:predicate rdfs:subClassOf ;
sp:subject
[ sp:varName "child"^^xsd:string
]
] [ rdf:type sp:Bind ;
sp:expression
[ rdf:type sp:notExists ;
sp:elements ([ sp:object
[ sp:varName "child"^^xsd:string
] ;
sp:predicate rdfs:subClassOf ;
sp:subject
[ sp:varName "grandChild"^^xsd:string
]
])
] ;
sp:variable
[ sp:varName "leaf"^^xsd:string
]
] [ rdf:type sp:Bind ;
sp:expression
[ rdf:type ui:label ;
sp:arg1 [ sp:varName "child"^^xsd:string
]
] ;
sp:variable
[ sp:varName "label"^^xsd:string
]
] [ rdf:type sp:Bind ;
sp:expression "appIconClass" ;
sp:variable
[ sp:varName "icon"^^xsd:string
]
] [ rdf:type sp:Bind ;
sp:expression
[ rdf:type spl:object ;
sp:arg1 [ sp:varName "child"^^xsd:string
] ;
sp:arg2 rdf:type
] ;
sp:variable
[ sp:varName "type"^^xsd:string
]
])
] ;
arg:id [ sp:varName "id"^^xsd:string
] ;
arg:rootsQuery
[ rdf:type sp:Select ;
sp:resultVariables ([ sp:varName "child"^^xsd:string
] [ sp:varName "label"^^xsd:string
] [ sp:varName "leaf"^^xsd:string
] [ sp:varName "icon"^^xsd:string
]) ;
sp:where ([ rdf:type sp:Bind ;
sp:expression <http://www.w3.org/2004/02/skos/core#Concept> ;
sp:variable
[ sp:varName "child"^^xsd:string
]
] [ rdf:type sp:Bind ;
sp:expression "Any Concept" ;
sp:variable
[ sp:varName "label"^^xsd:string
]
] [ rdf:type sp:Bind ;
sp:expression "false"^^xsd:boolean ;
sp:variable
[ sp:varName "leaf"^^xsd:string
]
] [ rdf:type sp:Bind ;
sp:expression "appIconClass" ;
sp:variable
[ sp:varName "icon"^^xsd:string
]
])
] .
skapp:ConceptSearchView
rdf:type ui:NodeClass ;
rdfs:comment "A vertical split pane with a search form on top and a search results grid at the bottom."^^xsd:string ;
rdfs:label "Concept search view"^^xsd:string ;
rdfs:subClassOf skapp:Elements ;
ui:prototype
[ rdf:type app:VSplitLayout ;
arg:height "500px"^^xsd:string ;
arg:topHeight "30%"^^xsd:string ;
ui:child
[ rdf:type app:VSplitLayout ;
arg:height "300px"^^xsd:string ;
ui:child
[ rdf:type html:Div ;
ui:child
[ rdf:type app:Header ;
arg:label "Concept Type"^^xsd:string ;
ui:childIndex 0
] ;
ui:child
[ rdf:type app:Tree ;
arg:dataProvider skapp:ConceptClassTreeDataProvider ;
arg:id "classTree"^^xsd:string ;
arg:onSelect "appLoadWithResource('searchFormDiv', 'resourceType', resource)"^^xsd:string ;
ui:childIndex 1
] ;
ui:childIndex 0
] ;
ui:child
[ rdf:type ui:loadable ;
ui:child
[ rdf:type app:SearchForm ;
arg:formId "searchForm"^^xsd:string ;
arg:noBorder "true"^^xsd:boolean ;
arg:onSelect "appLoadWithResource('conceptForm', 'concept', resource)"^^xsd:string ;
arg:resourceType
[ rdf:type sp:coalesce ;
sp:arg1 [ sp:varName "resourceType"^^xsd:string
] ;
sp:arg2 <http://www.w3.org/2004/02/skos/core#Concept>
] ;
arg:resultsId "results"^^xsd:string ;
ui:childIndex 0
] ;
ui:childIndex 1 ;
ui:loadId "searchFormDiv"^^xsd:string
] ;
ui:childIndex 0
] ;
ui:child
[ rdf:type html:Div ;
ui:child
[ rdf:type app:Header ;
arg:label "Matching Concepts"^^xsd:string ;
ui:childIndex 0
] ;
ui:child
[ rdf:type html:Div ;
html:id "results"^^xsd:string ;
ui:childIndex 1
] ;
ui:childIndex 1
]
] .
skapp:ConceptTreeBrowser
rdf:type ui:NodeClass ;
rdfs:comment "A horizontal split pane with a Concept tree on the left and a form for the selected concept on the right."^^xsd:string ;
rdfs:label "Concept tree browser"^^xsd:string ;
rdfs:subClassOf skapp:Elements ;
ui:prototype
[ rdf:type app:HSplitLayout ;
arg:height "500px"^^xsd:string ;
arg:leftWidth "30%"^^xsd:string ;
ui:child
[ rdf:type html:Div ;
ui:child
[ rdf:type app:Header ;
arg:label "Concept Hierarchy"^^xsd:string ;
ui:childIndex 0
] ;
ui:child
[ rdf:type app:Tree ;
arg:dataProvider skapp:ConceptTreeDataProvider ;
arg:id "conceptTree"^^xsd:string ;
arg:onSelect "appLoadWithResource('conceptForm', 'concept', resource)"^^xsd:string ;
ui:childIndex 1
] ;
ui:childIndex 0
] ;
ui:child
[ rdf:type html:Div ;
ui:child
[ rdf:type ui:loadable ;
ui:child
[ rdf:type ui:if ;
ui:child
[ rdf:type app:ViewForm ;
arg:resource
[ sp:varName "concept"^^xsd:string
] ;
ui:childIndex 0
] ;
ui:childIndex 0 ;
ui:condition
[ rdf:type sp:bound ;
sp:arg1 [ sp:varName "concept"^^xsd:string
]
]
] ;
ui:child
[ rdf:type ui:else ;
ui:child
[ rdf:type ui:TextNode ;
ui:childIndex 0 ;
ui:text """
Please select a concept in the tree.
"""^^xsd:string
] ;
ui:childIndex 1
] ;
ui:childIndex 0 ;
ui:loadId "conceptForm"^^xsd:string
] ;
ui:childIndex 1
]
] .
skapp:ConceptTreeDataProvider
rdf:type app:QueryTreeDataProvider ;
rdfs:comment "A data provider for a SKOS Concept tree, walking down skos:broader."^^xsd:string ;
rdfs:label "Concept tree data provider"^^xsd:string ;
arg:childrenQuery
[ rdf:type sp:Select ;
sp:orderBy ([ sp:varName "label"^^xsd:string
]) ;
sp:resultVariables ([ sp:varName "child"^^xsd:string
] [ sp:varName "label"^^xsd:string
] [ sp:varName "leaf"^^xsd:string
] [ sp:varName "icon"^^xsd:string
] [ sp:varName "type"^^xsd:string
]) ;
sp:where ([ sp:object
[ sp:varName "parent"^^xsd:string
] ;
sp:predicate <http://www.w3.org/2004/02/skos/core#broader> ;
sp:subject
[ sp:varName "child"^^xsd:string
]
] [ rdf:type sp:Bind ;
sp:expression
[ rdf:type sp:notExists ;
sp:elements ([ sp:object
[ sp:varName "child"^^xsd:string
] ;
sp:predicate <http://www.w3.org/2004/02/skos/core#broader> ;
sp:subject
[ sp:varName "grandChild"^^xsd:string
]
])
] ;
sp:variable
[ sp:varName "leaf"^^xsd:string
]
] [ rdf:type sp:Bind ;
sp:expression
[ rdf:type ui:label ;
sp:arg1 [ sp:varName "child"^^xsd:string
]
] ;
sp:variable
[ sp:varName "label"^^xsd:string
]
] [ rdf:type sp:Bind ;
sp:expression "appIconConcept" ;
sp:variable
[ sp:varName "icon"^^xsd:string
]
] [ rdf:type sp:Bind ;
sp:expression
[ rdf:type spl:object ;
sp:arg1 [ sp:varName "child"^^xsd:string
] ;
sp:arg2 rdf:type
] ;
sp:variable
[ sp:varName "type"^^xsd:string
]
])
] ;
arg:id [ sp:varName "id"^^xsd:string
] ;
arg:rootsQuery
[ rdf:type sp:Select ;
sp:distinct "true"^^xsd:boolean ;
sp:orderBy ([ sp:varName "label"^^xsd:string
]) ;
sp:resultVariables ([ sp:varName "child"^^xsd:string
] [ sp:varName "label"^^xsd:string
] [ sp:varName "leaf"^^xsd:string
] [ sp:varName "icon"^^xsd:string
]) ;
sp:where ([ rdf:type sp:TriplePath ;
sp:object <http://www.w3.org/2004/02/skos/core#Concept> ;
sp:path [ rdf:type sp:ModPath ;
sp:modMax -2 ;
sp:modMin 0 ;
sp:subPath rdfs:subClassOf
] ;
sp:subject
[ sp:varName "type"^^xsd:string
]
] [ sp:object
[ sp:varName "type"^^xsd:string
] ;
sp:predicate rdf:type ;
sp:subject
[ sp:varName "child"^^xsd:string
]
] [ rdf:type sp:Filter ;
sp:expression
[ rdf:type sp:notExists ;
sp:elements ([ sp:object
[ sp:varName "parent"^^xsd:string
] ;
sp:predicate <http://www.w3.org/2004/02/skos/core#broader> ;
sp:subject
[ sp:varName "child"^^xsd:string
]
])
]
] [ rdf:type sp:Bind ;
sp:expression
[ rdf:type sp:notExists ;
sp:elements ([ sp:object
[ sp:varName "child"^^xsd:string
] ;
sp:predicate <http://www.w3.org/2004/02/skos/core#broader> ;
sp:subject
[ sp:varName "grandChild"^^xsd:string
]
])
] ;
sp:variable
[ sp:varName "leaf"^^xsd:string
]
] [ rdf:type sp:Bind ;
sp:expression
[ rdf:type ui:label ;
sp:arg1 [ sp:varName "child"^^xsd:string
]
] ;
sp:variable
[ sp:varName "label"^^xsd:string
]
] [ rdf:type sp:Bind ;
sp:expression "appIconConcept" ;
sp:variable
[ sp:varName "icon"^^xsd:string
]
])
] .
skapp:Elements
rdf:type ui:NodeClass ;
rdfs:comment "Base class of SKOS related SWP elements."^^xsd:string ;
rdfs:label "Elements"^^xsd:string ;
rdfs:subClassOf ui:Element ;
ui:abstract "true"^^xsd:boolean .
skapp:SearchableConceptTreeBrowser
rdf:type ui:NodeClass ;
rdfs:comment "A horizontal split pane with a search view on the left and a ConceptTreeBrowser on the right."^^xsd:string ;
rdfs:label "Searchable concept tree browser"^^xsd:string ;
rdfs:subClassOf skapp:Elements ;
ui:prototype
[ rdf:type app:HSplitLayout ;
arg:height "500px"^^xsd:string ;
ui:child
[ rdf:type skapp:ConceptSearchView ;
ui:childIndex 0
] ;
ui:child
[ rdf:type skapp:ConceptTreeBrowser ;
ui:childIndex 1
]
] .
......@@ -26,34 +26,40 @@ log:LogBrowser
rdfs:subClassOf ui:Element ;
ui:prototype
[ rdf:type html:Div ;
html:style "width:900px"^^xsd:string ;
html:id "logBrowserMainPanel"^^xsd:string ;
html:style "width:880px; height: 500px; border-width: 1px; border-style: solid; border-color: black;"^^xsd:string ;
ui:child
[ rdf:type app:VSplitLayout ;
arg:height "500px"^^xsd:string ;
arg:topHeight "30%"^^xsd:string ;
[ rdf:type html:Div ;
html:class "ui-layout-north"^^xsd:string ;
html:id "logBrowserNorthPanel"^^xsd:string ;
html:style "height: 120px"^^xsd:string ;
ui:child
[ rdf:type ui:setContext ;
ui:child
[ rdf:type app:HSplitLayout ;
arg:height "200px"^^xsd:string ;
ui:child
[ rdf:type html:Div ;
html:class "ui-layout-west"^^xsd:string ;
ui:child
[ rdf:type app:Header ;
arg:label "Event Type"^^xsd:string ;
ui:childIndex 0
] ;
ui:child
[ rdf:type html:Div ;
html:class "ui-layout-content"^^xsd:string ;
ui:child
[ rdf:type app:Tree ;
arg:dataProvider log:LogEventClassTreeDataProvider ;
arg:id "classTree"^^xsd:string ;
arg:onSelect "appLoadWithResource('form', 'resourceType', resource)"^^xsd:string ;
ui:childIndex 0
] ;
ui:childIndex 1
] ;
ui:childIndex 0
] ;
ui:child
[ rdf:type ui:loadable ;
html:class "ui-layout-center"^^xsd:string ;
ui:child
[ rdf:type app:SearchForm ;
arg:formId "searchForm"^^xsd:string ;
......@@ -71,16 +77,18 @@ log:LogBrowser
ui:childIndex 1 ;
ui:loadId "form"^^xsd:string
] ;
ui:childIndex 0
] ;
ui:childIndex 0 ;
ui:queryGraph
[ rdf:type ui:graphWithImports ;
sp:arg1 <http://www.reportinghub.no/system/schema/logging>
]
] ;
ui:childIndex 0
] ;
ui:child
[ rdf:type html:Div ;
html:class "ui-layout-center"^^xsd:string ;
html:style "height: 300px"^^xsd:string ;
ui:child
[ rdf:type app:Header ;
arg:label "Matching Events"^^xsd:string ;
......@@ -88,12 +96,25 @@ log:LogBrowser
] ;
ui:child
[ rdf:type html:Div ;
html:class "ui-layout-content"^^xsd:string ;
html:id "results"^^xsd:string ;
ui:childIndex 1
] ;
ui:childIndex 1
] ;
ui:childIndex 0
ui:child
[ rdf:type html:Script ;
ui:child
[ rdf:type ui:TextNode ;
ui:childIndex 0 ;
ui:text """$('#logBrowserMainPanel').layout({
applyDefaultStyles: true
});
$('#logBrowserNorthPanel').layout({
applyDefaultStyles: true
});"""^^xsd:string
] ;
ui:childIndex 2
]
] .
......