Holger Knublauch

UI progress

...@@ -325,6 +325,46 @@ app:isDatatypeEnumeration ...@@ -325,6 +325,46 @@ app:isDatatypeEnumeration
325 spin:private "true"^^xsd:boolean ; 325 spin:private "true"^^xsd:boolean ;
326 spin:returnType xsd:boolean . 326 spin:returnType xsd:boolean .
327 327
328 +app:isDatatypeRange
329 + rdf:type spin:Function ;
330 + rdfs:comment "Checks whether a given resource (typically the range of a property) is a datatype. It must either be equal to rdfs:Literal or an instance of rdfs:Datatype."^^xsd:string ;
331 + rdfs:label "is datatype range"^^xsd:string ;
332 + rdfs:subClassOf app:Functions ;
333 + spin:body
334 + [ rdf:type sp:Ask ;
335 + sp:where ([ rdf:type sp:Filter ;
336 + sp:expression
337 + [ rdf:type sp:bound ;
338 + sp:arg1 [ sp:varName "range"^^xsd:string
339 + ]
340 + ]
341 + ] [ rdf:type sp:Filter ;
342 + sp:expression
343 + [ rdf:type sp:or ;
344 + sp:arg1 [ rdf:type sp:eq ;
345 + sp:arg1 [ sp:varName "range"^^xsd:string
346 + ] ;
347 + sp:arg2 rdfs:Literal
348 + ] ;
349 + sp:arg2 [ rdf:type sp:exists ;
350 + sp:elements ([ sp:object rdfs:Datatype ;
351 + sp:predicate rdf:type ;
352 + sp:subject
353 + [ sp:varName "range"^^xsd:string
354 + ]
355 + ])
356 + ]
357 + ]
358 + ])
359 + ] ;
360 + spin:constraint
361 + [ rdf:type spl:Argument ;
362 + rdfs:comment "The range to check."^^xsd:string ;
363 + spl:predicate arg:range ;
364 + spl:valueType rdfs:Resource
365 + ] ;
366 + spin:returnType xsd:boolean .
367 +
328 app:isImageURL 368 app:isImageURL
329 rdf:type spin:Function ; 369 rdf:type spin:Function ;
330 rdfs:comment "Checks whether a given URL represents an image based on its suffix (.jpg, .gif or .png are recognized by default, but others can be added by putting an imageURLSuffix triple into a SWP file)."^^xsd:string ; 370 rdfs:comment "Checks whether a given URL represents an image based on its suffix (.jpg, .gif or .png are recognized by default, but others can be added by putting an imageURLSuffix triple into a SWP file)."^^xsd:string ;
...@@ -1208,6 +1248,11 @@ arg:property ...@@ -1208,6 +1248,11 @@ arg:property
1208 rdfs:label "property"^^xsd:string ; 1248 rdfs:label "property"^^xsd:string ;
1209 rdfs:subPropertyOf sp:arg . 1249 rdfs:subPropertyOf sp:arg .
1210 1250
1251 +arg:range
1252 + rdf:type rdf:Property ;
1253 + rdfs:label "range"^^xsd:string ;
1254 + rdfs:subPropertyOf sp:arg .
1255 +
1211 arg:resource 1256 arg:resource
1212 rdf:type rdf:Property ; 1257 rdf:type rdf:Property ;
1213 rdfs:label "resource"^^xsd:string ; 1258 rdfs:label "resource"^^xsd:string ;
......
...@@ -126,6 +126,13 @@ app:AbstractObject ...@@ -126,6 +126,13 @@ app:AbstractObject
126 rdfs:subClassOf app:ObjectElements ; 126 rdfs:subClassOf app:ObjectElements ;
127 spin:constraint 127 spin:constraint
128 [ rdf:type spl:Argument ; 128 [ rdf:type spl:Argument ;
129 + rdfs:comment "True to suppress this if the given subject has no value for the given predicate. Has no effect if we are not in view mode."^^xsd:string ;
130 + spl:optional "true"^^xsd:boolean ;
131 + spl:predicate arg:hideIfEmpty ;
132 + spl:valueType xsd:boolean
133 + ] ;
134 + spin:constraint
135 + [ rdf:type spl:Argument ;
129 rdfs:comment "A label, overriding the default label."^^xsd:string ; 136 rdfs:comment "A label, overriding the default label."^^xsd:string ;
130 spl:optional "true"^^xsd:boolean ; 137 spl:optional "true"^^xsd:boolean ;
131 spl:predicate arg:label ; 138 spl:predicate arg:label ;
...@@ -139,6 +146,13 @@ app:AbstractObject ...@@ -139,6 +146,13 @@ app:AbstractObject
139 spl:predicate arg:labelWidth ; 146 spl:predicate arg:labelWidth ;
140 spl:valueType xsd:string 147 spl:valueType xsd:string
141 ] ; 148 ] ;
149 + spin:constraint
150 + [ rdf:type spl:Argument ;
151 + rdfs:comment "True to use a fixed labelWidth so that all objects show up in a tabular alignment."^^xsd:string ;
152 + spl:optional "true"^^xsd:boolean ;
153 + spl:predicate arg:tabular ;
154 + spl:valueType xsd:boolean
155 + ] ;
142 ui:abstract "true"^^xsd:boolean . 156 ui:abstract "true"^^xsd:boolean .
143 157
144 app:AbstractRadioButtonsEditor 158 app:AbstractRadioButtonsEditor
...@@ -248,6 +262,13 @@ app:AbstractSubject ...@@ -248,6 +262,13 @@ app:AbstractSubject
248 spl:optional "true"^^xsd:boolean ; 262 spl:optional "true"^^xsd:boolean ;
249 spl:predicate arg:labelWidth ; 263 spl:predicate arg:labelWidth ;
250 spl:valueType xsd:string 264 spl:valueType xsd:string
265 + ] ;
266 + spin:constraint
267 + [ rdf:type spl:Argument ;
268 + rdfs:comment "True to set labels to a fixed width so that all subjects appear in a tabular layout."^^xsd:string ;
269 + spl:optional "true"^^xsd:boolean ;
270 + spl:predicate arg:tabular ;
271 + spl:valueType xsd:boolean
251 ] . 272 ] .
252 273
253 app:AutoComplete 274 app:AutoComplete
...@@ -1950,81 +1971,131 @@ app:LabeledObjects ...@@ -1950,81 +1971,131 @@ app:LabeledObjects
1950 ] ; 1971 ] ;
1951 ui:private "true"^^xsd:boolean ; 1972 ui:private "true"^^xsd:boolean ;
1952 ui:prototype 1973 ui:prototype
1953 - [ rdf:type html:Table ; 1974 + [ rdf:type ui:if ;
1954 - html:class "appLabeledObjectsTable"^^xsd:string ;
1955 ui:child 1975 ui:child
1956 - [ rdf:type html:Tr ; 1976 + [ rdf:type html:Table ;
1957 - html:class "appLabeledObjectsTR"^^xsd:string ; 1977 + html:class "appLabeledObjectsTable"^^xsd:string ;
1958 ui:child 1978 ui:child
1959 - [ rdf:type html:Td ; 1979 + [ rdf:type html:Tr ;
1960 - html:class "appLabeledObjectsLabelTD"^^xsd:string ; 1980 + html:class "appLabeledObjectsTR"^^xsd:string ;
1961 - html:style 1981 + ui:child
1962 - [ rdf:type sp:if ; 1982 + [ rdf:type html:Td ;
1963 - sp:arg1 [ rdf:type sp:bound ; 1983 + html:class
1964 - sp:arg1 [ sp:varName "labelWidth"^^xsd:string 1984 + [ rdf:type ui:concat ;
1985 + sp:arg1 "appLabeledObjectsLabelTD "^^xsd:string ;
1986 + sp:arg2 [ rdf:type sp:if ;
1987 + sp:arg1 [ sp:varName "tabular"^^xsd:string
1988 + ] ;
1989 + sp:arg2 "appLabeledObjectsTabularLabel" ;
1990 + sp:arg3 [ sp:varName "none"^^xsd:string
1991 + ]
1965 ] 1992 ]
1966 ] ; 1993 ] ;
1967 - sp:arg2 [ rdf:type fn:concat ; 1994 + html:style
1968 - sp:arg1 "width: " ; 1995 + [ rdf:type sp:if ;
1969 - sp:arg2 [ sp:varName "labelWidth"^^xsd:string 1996 + sp:arg1 [ rdf:type sp:bound ;
1997 + sp:arg1 [ sp:varName "labelWidth"^^xsd:string
1998 + ]
1999 + ] ;
2000 + sp:arg2 [ rdf:type fn:concat ;
2001 + sp:arg1 "width: " ;
2002 + sp:arg2 [ sp:varName "labelWidth"^^xsd:string
2003 + ]
2004 + ] ;
2005 + sp:arg3 [ sp:varName "none"^^xsd:string
1970 ] 2006 ]
1971 ] ; 2007 ] ;
1972 - sp:arg3 [ sp:varName "none"^^xsd:string
1973 - ]
1974 - ] ;
1975 - ui:child
1976 - [ rdf:type html:Div ;
1977 - html:class "appShiftedLabel"^^xsd:string ;
1978 ui:child 2008 ui:child
1979 - [ rdf:type app:PropertyLabel ; 2009 + [ rdf:type html:Div ;
1980 - arg:label 2010 + html:class "appShiftedLabel"^^xsd:string ;
1981 - [ rdf:type sp:if ; 2011 + ui:child
1982 - sp:arg1 [ rdf:type sp:bound ; 2012 + [ rdf:type app:PropertyLabel ;
1983 - sp:arg1 [ sp:varName "label"^^xsd:string 2013 + arg:label
2014 + [ rdf:type sp:if ;
2015 + sp:arg1 [ rdf:type sp:bound ;
2016 + sp:arg1 [ sp:varName "label"^^xsd:string
2017 + ]
2018 + ] ;
2019 + sp:arg2 [ sp:varName "label"^^xsd:string
2020 + ] ;
2021 + sp:arg3 [ rdf:type ui:label ;
2022 + sp:arg1 [ sp:varName "predicate"^^xsd:string
2023 + ]
1984 ] 2024 ]
1985 ] ; 2025 ] ;
1986 - sp:arg2 [ sp:varName "label"^^xsd:string 2026 + arg:property
2027 + [ sp:varName "predicate"^^xsd:string
1987 ] ; 2028 ] ;
1988 - sp:arg3 [ rdf:type ui:label ; 2029 + ui:childIndex 0
1989 - sp:arg1 [ sp:varName "predicate"^^xsd:string
1990 - ]
1991 - ]
1992 - ] ;
1993 - arg:property
1994 - [ sp:varName "predicate"^^xsd:string
1995 ] ; 2030 ] ;
1996 ui:childIndex 0 2031 ui:childIndex 0
1997 ] ; 2032 ] ;
1998 ui:childIndex 0 2033 ui:childIndex 0
1999 ] ; 2034 ] ;
2000 - ui:childIndex 0
2001 - ] ;
2002 - ui:child
2003 - [ rdf:type html:Td ;
2004 - html:class "appLabeledObjectsIconsTD"^^xsd:string ;
2005 ui:child 2035 ui:child
2006 - [ rdf:type html:Span ; 2036 + [ rdf:type html:Td ;
2007 - html:class "appErrorIndicator appIcon"^^xsd:string ; 2037 + html:class "appLabeledObjectsIconsTD"^^xsd:string ;
2008 - html:id [ rdf:type fn:concat ; 2038 + ui:child
2009 - sp:arg1 "error-"^^xsd:string ; 2039 + [ rdf:type html:Span ;
2010 - sp:arg2 [ sp:varName "predicate"^^xsd:string 2040 + html:class "appErrorIndicator appIcon"^^xsd:string ;
2011 - ] 2041 + html:id [ rdf:type ui:concat ;
2042 + sp:arg1 "error-"^^xsd:string ;
2043 + sp:arg2 [ sp:varName "predicate"^^xsd:string
2044 + ]
2045 + ] ;
2046 + ui:childIndex 0
2012 ] ; 2047 ] ;
2013 - ui:childIndex 0 2048 + ui:childIndex 1
2014 ] ; 2049 ] ;
2015 - ui:childIndex 1
2016 - ] ;
2017 - ui:child
2018 - [ rdf:type html:Td ;
2019 - html:class "appLabeledObjectsBodyTD"^^xsd:string ;
2020 ui:child 2050 ui:child
2021 - [ rdf:type app:ObjectsBody ; 2051 + [ rdf:type html:Td ;
2022 - ui:args "*"^^xsd:string ; 2052 + html:class "appLabeledObjectsBodyTD"^^xsd:string ;
2023 - ui:childIndex 0 2053 + ui:child
2054 + [ rdf:type app:ObjectsBody ;
2055 + ui:args "*"^^xsd:string ;
2056 + ui:childIndex 0
2057 + ] ;
2058 + ui:childIndex 2
2024 ] ; 2059 ] ;
2025 - ui:childIndex 2 2060 + ui:childIndex 0
2026 ] ; 2061 ] ;
2027 ui:childIndex 0 2062 ui:childIndex 0
2063 + ] ;
2064 + ui:condition
2065 + [ rdf:type sp:or ;
2066 + sp:arg1 [ rdf:type sp:or ;
2067 + sp:arg1 [ rdf:type sp:or ;
2068 + sp:arg1 [ rdf:type sp:not ;
2069 + sp:arg1 [ rdf:type sp:bound ;
2070 + sp:arg1 [ sp:varName "hideIfEmpty"^^xsd:string
2071 + ]
2072 + ]
2073 + ] ;
2074 + sp:arg2 [ rdf:type sp:ne ;
2075 + sp:arg1 [ sp:varName "hideIfEmpty"^^xsd:string
2076 + ] ;
2077 + sp:arg2 "true"^^xsd:boolean
2078 + ]
2079 + ] ;
2080 + sp:arg2 [ rdf:type sp:ne ;
2081 + sp:arg1 [ rdf:type app:mode
2082 + ] ;
2083 + sp:arg2 [ rdf:type app:ViewMode
2084 + ]
2085 + ]
2086 + ] ;
2087 + sp:arg2 [ rdf:type sp:exists ;
2088 + sp:elements ([ sp:object
2089 + [ sp:varName "anyObject"^^xsd:string
2090 + ] ;
2091 + sp:predicate
2092 + [ sp:varName "predicate"^^xsd:string
2093 + ] ;
2094 + sp:subject
2095 + [ sp:varName "subject"^^xsd:string
2096 + ]
2097 + ])
2098 + ]
2028 ] 2099 ]
2029 ] . 2100 ] .
2030 2101
...@@ -2040,7 +2111,17 @@ app:LabeledSubjects ...@@ -2040,7 +2111,17 @@ app:LabeledSubjects
2040 html:class "appLabeledObjectsTR"^^xsd:string ; 2111 html:class "appLabeledObjectsTR"^^xsd:string ;
2041 ui:child 2112 ui:child
2042 [ rdf:type html:Td ; 2113 [ rdf:type html:Td ;
2043 - html:class "appLabeledObjectsLabelTD"^^xsd:string ; 2114 + html:class
2115 + [ rdf:type ui:concat ;
2116 + sp:arg1 "appLabeledObjectsLabelTD "^^xsd:string ;
2117 + sp:arg2 [ rdf:type sp:if ;
2118 + sp:arg1 [ sp:varName "tabular"^^xsd:string
2119 + ] ;
2120 + sp:arg2 "appLabeledObjectsTabularLabel" ;
2121 + sp:arg3 [ sp:varName "none"^^xsd:string
2122 + ]
2123 + ]
2124 + ] ;
2044 html:style 2125 html:style
2045 [ rdf:type sp:if ; 2126 [ rdf:type sp:if ;
2046 sp:arg1 [ rdf:type sp:bound ; 2127 sp:arg1 [ rdf:type sp:bound ;
...@@ -2795,20 +2876,77 @@ app:ObjectViewer ...@@ -2795,20 +2876,77 @@ app:ObjectViewer
2795 ] 2876 ]
2796 ] ; 2877 ] ;
2797 ui:child 2878 ui:child
2798 - [ rdf:type ui:dynamicView ; 2879 + [ rdf:type ui:if ;
2799 - arg:object 2880 + ui:child
2800 - [ sp:varName "object"^^xsd:string 2881 + [ rdf:type ui:dynamicView ;
2801 - ] ; 2882 + arg:object
2802 - arg:predicate 2883 + [ sp:varName "object"^^xsd:string
2803 - [ sp:varName "predicate"^^xsd:string 2884 + ] ;
2804 - ] ; 2885 + arg:predicate
2805 - arg:subject 2886 + [ sp:varName "predicate"^^xsd:string
2806 - [ sp:varName "subject"^^xsd:string 2887 + ] ;
2888 + arg:subject
2889 + [ sp:varName "subject"^^xsd:string
2890 + ] ;
2891 + ui:childIndex 0 ;
2892 + ui:class
2893 + [ sp:varName "class"^^xsd:string
2894 + ]
2807 ] ; 2895 ] ;
2808 ui:childIndex 0 ; 2896 ui:childIndex 0 ;
2809 - ui:class 2897 + ui:condition
2810 - [ sp:varName "class"^^xsd:string 2898 + [ rdf:type sp:bound ;
2899 + sp:arg1 [ sp:varName "class"^^xsd:string
2900 + ]
2811 ] 2901 ]
2902 + ] ;
2903 + ui:child
2904 + [ rdf:type ui:else ;
2905 + ui:child
2906 + [ rdf:type ui:TextNode ;
2907 + ui:childIndex 0 ;
2908 + ui:text "[Error: no ObjectViewer found for "^^xsd:string
2909 + ] ;
2910 + ui:child
2911 + [ rdf:type ui:TextNode ;
2912 + ui:childIndex 1 ;
2913 + ui:text [ rdf:type ui:label ;
2914 + sp:arg1 [ sp:varName "subject"^^xsd:string
2915 + ]
2916 + ]
2917 + ] ;
2918 + ui:child
2919 + [ rdf:type ui:TextNode ;
2920 + ui:childIndex 2 ;
2921 + ui:text ", "^^xsd:string
2922 + ] ;
2923 + ui:child
2924 + [ rdf:type ui:TextNode ;
2925 + ui:childIndex 3 ;
2926 + ui:text [ rdf:type ui:label ;
2927 + sp:arg1 [ sp:varName "predicate"^^xsd:string
2928 + ]
2929 + ]
2930 + ] ;
2931 + ui:child
2932 + [ rdf:type ui:TextNode ;
2933 + ui:childIndex 4 ;
2934 + ui:text ", "^^xsd:string
2935 + ] ;
2936 + ui:child
2937 + [ rdf:type ui:TextNode ;
2938 + ui:childIndex 5 ;
2939 + ui:text [ rdf:type ui:label ;
2940 + sp:arg1 [ sp:varName "object"^^xsd:string
2941 + ]
2942 + ]
2943 + ] ;
2944 + ui:child
2945 + [ rdf:type ui:TextNode ;
2946 + ui:childIndex 6 ;
2947 + ui:text "]"^^xsd:string
2948 + ] ;
2949 + ui:childIndex 1
2812 ] 2950 ]
2813 ] . 2951 ] .
2814 2952
...@@ -3316,13 +3454,13 @@ app:ObjectsGroup ...@@ -3316,13 +3454,13 @@ app:ObjectsGroup
3316 [ rdf:type ui:forEach ; 3454 [ rdf:type ui:forEach ;
3317 ui:child 3455 ui:child
3318 [ rdf:type app:Objects ; 3456 [ rdf:type app:Objects ;
3319 - arg:labelWidth "160px"^^xsd:string ;
3320 arg:predicate 3457 arg:predicate
3321 [ sp:varName "predicate"^^xsd:string 3458 [ sp:varName "predicate"^^xsd:string
3322 ] ; 3459 ] ;
3323 arg:subject 3460 arg:subject
3324 [ sp:varName "subject"^^xsd:string 3461 [ sp:varName "subject"^^xsd:string
3325 ] ; 3462 ] ;
3463 + arg:tabular "true"^^xsd:boolean ;
3326 ui:childIndex 0 3464 ui:childIndex 0
3327 ] ; 3465 ] ;
3328 ui:childIndex 1 ; 3466 ui:childIndex 1 ;
...@@ -3624,10 +3762,10 @@ app:ResourceFacet ...@@ -3624,10 +3762,10 @@ app:ResourceFacet
3624 ] 3762 ]
3625 ] ; 3763 ] ;
3626 sp:arg2 [ rdf:type sp:not ; 3764 sp:arg2 [ rdf:type sp:not ;
3627 - sp:arg1 [ rdf:type spl:instanceOf ; 3765 + sp:arg1 [ rdf:type app:isDatatypeRange ;
3628 - sp:arg1 [ sp:varName "range"^^xsd:string 3766 + arg:range
3629 - ] ; 3767 + [ sp:varName "range"^^xsd:string
3630 - sp:arg2 rdfs:Datatype 3768 + ]
3631 ] 3769 ]
3632 ] 3770 ]
3633 ] 3771 ]
...@@ -4254,52 +4392,35 @@ app:StringFacet ...@@ -4254,52 +4392,35 @@ app:StringFacet
4254 [ rdf:type app:WeightedExpression ; 4392 [ rdf:type app:WeightedExpression ;
4255 app:expression 4393 app:expression
4256 [ rdf:type sp:or ; 4394 [ rdf:type sp:or ;
4257 - sp:arg1 [ rdf:type sp:or ; 4395 + sp:arg1 [ rdf:type sp:not ;
4258 - sp:arg1 [ rdf:type sp:not ; 4396 + sp:arg1 [ rdf:type sp:bound ;
4259 - sp:arg1 [ rdf:type sp:bound ;
4260 - sp:arg1 [ sp:varName "range"^^xsd:string
4261 - ]
4262 - ]
4263 - ] ;
4264 - sp:arg2 [ rdf:type spl:instanceOf ;
4265 sp:arg1 [ sp:varName "range"^^xsd:string 4397 sp:arg1 [ sp:varName "range"^^xsd:string
4266 - ] ; 4398 + ]
4267 - sp:arg2 rdfs:Datatype
4268 ] 4399 ]
4269 ] ; 4400 ] ;
4270 - sp:arg2 [ rdf:type sp:eq ; 4401 + sp:arg2 [ rdf:type app:isDatatypeRange ;
4271 - sp:arg1 [ sp:varName "range"^^xsd:string 4402 + arg:range
4272 - ] ; 4403 + [ sp:varName "range"^^xsd:string
4273 - sp:arg2 rdfs:Literal 4404 + ]
4274 ] 4405 ]
4275 ] 4406 ]
4276 ] ; 4407 ] ;
4277 ui:prototype 4408 ui:prototype
4278 [ rdf:type ui:group ; 4409 [ rdf:type ui:group ;
4279 let:datatype 4410 let:datatype
4280 - [ rdf:type sp:if ; 4411 + [ rdf:type app:localRange ;
4281 - sp:arg1 [ rdf:type sp:bound ; 4412 + arg:predicate
4282 - sp:arg1 [ sp:varName "node"^^xsd:string 4413 + [ sp:varName "predicate"^^xsd:string
4283 - ]
4284 - ] ;
4285 - sp:arg2 [ rdf:type sp:datatype ;
4286 - sp:arg1 [ sp:varName "node"^^xsd:string
4287 - ]
4288 ] ; 4414 ] ;
4289 - sp:arg3 [ rdf:type app:localRange ; 4415 + arg:subject
4290 - arg:predicate 4416 + [ sp:varName "subject"^^xsd:string
4291 - [ sp:varName "predicate"^^xsd:string
4292 - ] ;
4293 - arg:subject
4294 - [ sp:varName "subject"^^xsd:string
4295 - ]
4296 ] 4417 ]
4297 ] ; 4418 ] ;
4298 ui:child 4419 ui:child
4299 [ rdf:type html:Input ; 4420 [ rdf:type html:Input ;
4300 html:name 4421 html:name
4301 - [ rdf:type fn:concat ; 4422 + [ rdf:type ui:concat ;
4302 - sp:arg1 "regex" ; 4423 + sp:arg1 "regex"^^xsd:string ;
4303 sp:arg2 [ sp:varName "uid"^^xsd:string 4424 sp:arg2 [ sp:varName "uid"^^xsd:string
4304 ] 4425 ]
4305 ] ; 4426 ] ;
...@@ -5195,13 +5316,13 @@ app:SubjectsGroup ...@@ -5195,13 +5316,13 @@ app:SubjectsGroup
5195 [ rdf:type ui:forEach ; 5316 [ rdf:type ui:forEach ;
5196 ui:child 5317 ui:child
5197 [ rdf:type app:Subjects ; 5318 [ rdf:type app:Subjects ;
5198 - arg:labelWidth "160px"^^xsd:string ;
5199 arg:object 5319 arg:object
5200 [ sp:varName "object"^^xsd:string 5320 [ sp:varName "object"^^xsd:string
5201 ] ; 5321 ] ;
5202 arg:predicate 5322 arg:predicate
5203 [ sp:varName "predicate"^^xsd:string 5323 [ sp:varName "predicate"^^xsd:string
5204 ] ; 5324 ] ;
5325 + arg:tabular "true"^^xsd:string ;
5205 ui:childIndex 0 5326 ui:childIndex 0
5206 ] ; 5327 ] ;
5207 ui:childIndex 1 ; 5328 ui:childIndex 1 ;
...@@ -5705,33 +5826,6 @@ app:ViewForm ...@@ -5705,33 +5826,6 @@ app:ViewForm
5705 arg:resource 5826 arg:resource
5706 [ sp:varName "resource"^^xsd:string 5827 [ sp:varName "resource"^^xsd:string
5707 ] ; 5828 ] ;
5708 - ui:child
5709 - [ rdf:type ui:insert ;
5710 - ui:child
5711 - [ rdf:type ui:if ;
5712 - ui:child
5713 - [ rdf:type app:FormToggleButton ;
5714 - arg:formId
5715 - [ sp:varName "formId"^^xsd:string
5716 - ] ;
5717 - arg:label "Edit"^^xsd:string ;
5718 - arg:modeName "edit"^^xsd:string ;
5719 - arg:resource
5720 - [ sp:varName "resource"^^xsd:string
5721 - ] ;
5722 - ui:childIndex 0
5723 - ] ;
5724 - ui:childIndex 0 ;
5725 - ui:condition
5726 - [ rdf:type app:canEditResource ;
5727 - arg:resource
5728 - [ sp:varName "resource"^^xsd:string
5729 - ]
5730 - ]
5731 - ] ;
5732 - ui:childIndex 0 ;
5733 - ui:into "toolBar"^^xsd:string
5734 - ] ;
5735 ui:childIndex 0 5829 ui:childIndex 0
5736 ] ; 5830 ] ;
5737 ui:child 5831 ui:child
...@@ -7003,6 +7097,11 @@ arg:height ...@@ -7003,6 +7097,11 @@ arg:height
7003 rdfs:label "height"^^xsd:string ; 7097 rdfs:label "height"^^xsd:string ;
7004 rdfs:subPropertyOf sp:arg . 7098 rdfs:subPropertyOf sp:arg .
7005 7099
7100 +arg:hideIfEmpty
7101 + rdf:type rdf:Property ;
7102 + rdfs:label "hide if empty"^^xsd:string ;
7103 + rdfs:subPropertyOf sp:arg .
7104 +
7006 arg:id 7105 arg:id
7007 rdf:type rdf:Property ; 7106 rdf:type rdf:Property ;
7008 rdfs:label "id"^^xsd:string ; 7107 rdfs:label "id"^^xsd:string ;
...@@ -7133,6 +7232,11 @@ arg:switchable ...@@ -7133,6 +7232,11 @@ arg:switchable
7133 rdfs:label "switchable"^^xsd:string ; 7232 rdfs:label "switchable"^^xsd:string ;
7134 rdfs:subPropertyOf sp:arg . 7233 rdfs:subPropertyOf sp:arg .
7135 7234
7235 +arg:tabular
7236 + rdf:type rdf:Property ;
7237 + rdfs:label "tabular"^^xsd:string ;
7238 + rdfs:subPropertyOf sp:arg .
7239 +
7136 arg:targetId 7240 arg:targetId
7137 rdf:type rdf:Property ; 7241 rdf:type rdf:Property ;
7138 rdfs:label "target id"^^xsd:string ; 7242 rdfs:label "target id"^^xsd:string ;
......
...@@ -18,7 +18,7 @@ body { ...@@ -18,7 +18,7 @@ body {
18 .appAutoComplete { 18 .appAutoComplete {
19 } 19 }
20 20
21 -.appBaseFont, .appObjectWidget, .appLabeledObjectsLabelTD { 21 +.appBaseFont, .appObjectWidget, .appLabeledObjectsTable {
22 font-size: 12px; 22 font-size: 12px;
23 } 23 }
24 24
...@@ -30,7 +30,11 @@ body { ...@@ -30,7 +30,11 @@ body {
30 } 30 }
31 31
32 .appLabeledObjectsBodyTD { 32 .appLabeledObjectsBodyTD {
33 - padding: 0px; 33 + padding: 0px 0px 1px 0px;
34 +}
35 +
36 +.appLabeledObjectsTabularLabel {
37 + width: 160px;
34 } 38 }
35 39
36 .appLabeledObjectsTable { 40 .appLabeledObjectsTable {
...@@ -228,14 +232,14 @@ td.appPropertyWidgetObjectTD { ...@@ -228,14 +232,14 @@ td.appPropertyWidgetObjectTD {
228 232
229 .appSubTitle { 233 .appSubTitle {
230 color: gray; 234 color: gray;
231 - font-size: 18px; 235 + font-size: 15px;
232 font-weight: bold; 236 font-weight: bold;
233 margin-bottom: 6px; 237 margin-bottom: 6px;
234 } 238 }
235 239
236 .appTitle { 240 .appTitle {
237 color: gray; 241 color: gray;
238 - font-size: 22px; 242 + font-size: 18px;
239 font-weight: bold; 243 font-weight: bold;
240 margin-bottom: 14px; 244 margin-bottom: 14px;
241 } 245 }
......
...@@ -44,7 +44,8 @@ ...@@ -44,7 +44,8 @@
44 </ui:if> 44 </ui:if>
45 <ui:else> 45 <ui:else>
46 { 46 {
47 - name : 'label' 47 + name : 'label',
48 + width: 400
48 } 49 }
49 </ui:else> 50 </ui:else>
50 ], 51 ],
......