]> err.no Git - sope/commitdiff
Formal API specifications and fixes for the otherTagAttribute attribute rendering
authorznek <znek@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Sat, 6 Nov 2004 19:56:34 +0000 (19:56 +0000)
committerznek <znek@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Sat, 6 Nov 2004 19:56:34 +0000 (19:56 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@345 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

49 files changed:
sope-appserver/WEExtensions/ChangeLog
sope-appserver/WEExtensions/JSClipboard.api [new file with mode: 0644]
sope-appserver/WEExtensions/JSMenu.api [new file with mode: 0644]
sope-appserver/WEExtensions/JSMenuItem.api [new file with mode: 0644]
sope-appserver/WEExtensions/JSShiftClick.api [new file with mode: 0644]
sope-appserver/WEExtensions/Version
sope-appserver/WEExtensions/WEBrowser.api [new file with mode: 0644]
sope-appserver/WEExtensions/WECalendarField.api [new file with mode: 0644]
sope-appserver/WEExtensions/WECase.api [new file with mode: 0644]
sope-appserver/WEExtensions/WECollapsibleComponentContent.api [new file with mode: 0644]
sope-appserver/WEExtensions/WEComponentValue.api [new file with mode: 0644]
sope-appserver/WEExtensions/WEContextConditional.api [new file with mode: 0644]
sope-appserver/WEExtensions/WEContextKey.api [new file with mode: 0644]
sope-appserver/WEExtensions/WEDateField.api [new file with mode: 0644]
sope-appserver/WEExtensions/WEDragContainer.api [new file with mode: 0644]
sope-appserver/WEExtensions/WEDropContainer.api [new file with mode: 0644]
sope-appserver/WEExtensions/WEEpozEditor.api [new file with mode: 0644]
sope-appserver/WEExtensions/WEEpozEditor.m
sope-appserver/WEExtensions/WEExtensions.xcode/project.pbxproj
sope-appserver/WEExtensions/WEHSpanTableMatrix.api [new file with mode: 0644]
sope-appserver/WEExtensions/WEMonthLabel.api [new file with mode: 0644]
sope-appserver/WEExtensions/WEMonthOverview.api [new file with mode: 0644]
sope-appserver/WEExtensions/WEPageItem.api [new file with mode: 0644]
sope-appserver/WEExtensions/WEPageLink.api [new file with mode: 0644]
sope-appserver/WEExtensions/WEPageLink.m
sope-appserver/WEExtensions/WEPageView.api [new file with mode: 0644]
sope-appserver/WEExtensions/WEQualifierConditional.api [new file with mode: 0644]
sope-appserver/WEExtensions/WERedirect.api [new file with mode: 0644]
sope-appserver/WEExtensions/WERichString.api [new file with mode: 0644]
sope-appserver/WEExtensions/WESwitch.api [new file with mode: 0644]
sope-appserver/WEExtensions/WETabItem.api [new file with mode: 0644]
sope-appserver/WEExtensions/WETabView.api [new file with mode: 0644]
sope-appserver/WEExtensions/WETableMatrix.api [new file with mode: 0644]
sope-appserver/WEExtensions/WETableMatrixContent.api [new file with mode: 0644]
sope-appserver/WEExtensions/WETableMatrixLabel.api [new file with mode: 0644]
sope-appserver/WEExtensions/WETableView/WETableData.api [new file with mode: 0644]
sope-appserver/WEExtensions/WETableView/WETableHeader.api [new file with mode: 0644]
sope-appserver/WEExtensions/WETableView/WETableHeader.m
sope-appserver/WEExtensions/WETableView/WETableView.api [new file with mode: 0644]
sope-appserver/WEExtensions/WETimeField.api [new file with mode: 0644]
sope-appserver/WEExtensions/WETreeData.api [new file with mode: 0644]
sope-appserver/WEExtensions/WETreeData.m
sope-appserver/WEExtensions/WETreeHeader.api [new file with mode: 0644]
sope-appserver/WEExtensions/WETreeHeader.m
sope-appserver/WEExtensions/WETreeView.api [new file with mode: 0644]
sope-appserver/WEExtensions/WETreeView.m
sope-appserver/WEExtensions/WEVSpanTableMatrix.api [new file with mode: 0644]
sope-appserver/WEExtensions/WEWeekColumnView.api [new file with mode: 0644]
sope-appserver/WEExtensions/WEWeekOverview.api [new file with mode: 0644]

index c5b59975da559a4f9eb4d7ba48a4d5ffd86e6a85..43ddd9c7f6578905225be4323a39e855b1fedef3 100644 (file)
@@ -1,3 +1,16 @@
+2004-11-06  Marcus Mueller  <znek@mulle-kybernetik.com>
+
+       * v4.3.62
+
+       * WETreeView.m, WETreeHeader.m, WEEpozEditor.m, WETreeData.m,
+         WEPageLink.m, WETableView/WETableHeader.m: fixes for incorrect
+         rendering of otherTagString attribute.
+
+       * *.api: new formal definitions for WOElements defined in this
+         framework
+
+       * WEExtensions.xcode: added .api files
+
 2004-11-04  Helge Hess  <helge.hess@skyrix.com>
 
        * use Version file for install directory location
diff --git a/sope-appserver/WEExtensions/JSClipboard.api b/sope-appserver/WEExtensions/JSClipboard.api
new file mode 100644 (file)
index 0000000..09ac6fe
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="JSClipboard">
+  <binding name="filename" passthrough="NO" defaults="Resources" />
+  <binding name="imgURL" passthrough="NO" />
+  <binding name="string" passthrough="NO" />
+  <binding name="toolTip" passthrough="NO" />
+  <binding name="value" passthrough="NO" />
+
+  <validation message="either one of &apos;filename&apos;, &apos;imgURL&apos; or &apos;imgURL&apos; may be bound">
+    <count test="!=1">
+      <bound name="filename"/>
+      <bound name="imgURL"/>
+      <bound name="string"/>
+    </count>
+  </validation>
+</wo>
diff --git a/sope-appserver/WEExtensions/JSMenu.api b/sope-appserver/WEExtensions/JSMenu.api
new file mode 100644 (file)
index 0000000..542063f
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="JSMenu">
+  <binding name="fgColor" />
+  <binding name="bgColor" />
+  <binding name="fgColorHigh" />
+  <binding name="bgColorHigh" />
+  <binding name="borderColor" />
+  <binding name="borderWidth" />
+  <binding name="fontSize" />
+  <binding name="width" />
+  <binding name="leftPadding" />
+  <binding name="string" />
+  <binding name="bindAtId" />
+  <binding name="align" />
+  <binding name="tag" />
+</wo>
diff --git a/sope-appserver/WEExtensions/JSMenuItem.api b/sope-appserver/WEExtensions/JSMenuItem.api
new file mode 100644 (file)
index 0000000..f5f34ff
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="JSMenuItem">
+  <binding name="action" defaults="Actions"/>
+  <binding name="href" />
+
+  <binding name="string" required="YES" />
+
+  <validation message="either one of &apos;action&apos;, or &apos;href&apos; may be bound">
+    <count test="!=1">
+      <bound name="action"/>
+      <bound name="href"/>
+    </count>
+  </validation>
+</wo>
diff --git a/sope-appserver/WEExtensions/JSShiftClick.api b/sope-appserver/WEExtensions/JSShiftClick.api
new file mode 100644 (file)
index 0000000..ef11cbd
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="JSShiftClick">
+  <binding name="identifier" />
+  <binding name="prefix" />
+  <binding name="scriptName" required="YES" settable="YES" />
+</wo>
index 9846aa8db05721ef7bf9a4da045b7975d2286ffb..3fea82c731bd0ba8206616e89526d2b254f05cf4 100644 (file)
@@ -1,3 +1,3 @@
 # version file
 
-SUBMINOR_VERSION:=61
+SUBMINOR_VERSION:=62
diff --git a/sope-appserver/WEExtensions/WEBrowser.api b/sope-appserver/WEExtensions/WEBrowser.api
new file mode 100644 (file)
index 0000000..6514fe6
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WEBrowser">
+  <binding name="list" passthrough="NO" required="YES"/>
+  <binding name="item" passthrough="NO" required="YES" settable="YES" />
+  <binding name="sublist" passthrough="NO"/>
+  <binding name="currentPath" passthrough="NO" required="YES" settable="YES" />
+
+  <binding name="bgColor"/>
+  <binding name="height"/>
+  <binding name="columnWidth"/>
+</wo>
diff --git a/sope-appserver/WEExtensions/WECalendarField.api b/sope-appserver/WEExtensions/WECalendarField.api
new file mode 100644 (file)
index 0000000..bedf5c6
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WECalendarField">
+  <binding name="name" />
+
+  <binding name="date" />
+
+  <binding name="hour" />
+  <binding name="minute" />
+  <binding name="second" />
+  <binding name="day" />
+  <binding name="month" />
+  <binding name="year" />
+
+  <binding name="useTextField" />
+  <binding name="hourInterval" />
+  <binding name="minuteInterval" />
+  <binding name="secondInterval" />
+  <binding name="format" defaults="Date Format Strings" />
+
+  <validation message="either &apos;date&apos; or any of &apos;hour&apos;, &apos;minute&apos;, &apos;second&apos;, &apos;day&apos;, &apos;month&apos; and &apos;year&apos; may be bound">
+    <count test="!=1">
+      <bound name="date"/>
+      <or>
+        <bound name="hour"/>
+        <bound name="minute"/>
+        <bound name="second"/>
+        <bound name="day"/>
+        <bound name="month"/>
+        <bound name="year"/>
+      </or>
+    </count>
+  </validation>
+</wo>
diff --git a/sope-appserver/WEExtensions/WECase.api b/sope-appserver/WEExtensions/WECase.api
new file mode 100644 (file)
index 0000000..d83172a
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WECase">
+  <binding name="key" />
+  <binding name="keys" />
+  
+  <validation message="either &apos;key&apos; or &apos;keys&apos; may be bound">
+    <count test="!=1">
+      <bound name="key" />
+      <bound name="keys" />
+    </count>
+  </validation>
+</wo>
diff --git a/sope-appserver/WEExtensions/WECollapsibleComponentContent.api b/sope-appserver/WEExtensions/WECollapsibleComponentContent.api
new file mode 100644 (file)
index 0000000..e292bc9
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WECollapsibleComponentContent">
+  <binding name="condition"   required="YES" />
+  <binding name="visibility"  required="YES" settable="YES" />
+  <binding name="allowScript" defaults="YES/NO" />
+</wo>
diff --git a/sope-appserver/WEExtensions/WEComponentValue.api b/sope-appserver/WEExtensions/WEComponentValue.api
new file mode 100644 (file)
index 0000000..6a2ce6f
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WEComponentValue">
+  <binding name="value" />
+  <binding name="boolValue" />
+  <binding name="stringValue" />
+  <binding name="intValue" />
+  <binding name="unsignedIntValue" />
+  <binding name="key" required="YES" />
+
+  <validation message="only one of &apos;value&apos;, &apos;boolValue&apos;, &apos;stringValue&apos;, &apos;intValue&apos; or &apos;unsignedIntValue&apos; may be bound">
+    <count test="!=1">
+      <bound name="value"/>
+      <bound name="boolValue"/>
+      <bound name="stringValue"/>
+      <bound name="intValue"/>
+      <bound name="unsignedIntValue"/>
+    </count>
+  </validation>
+</wo>
diff --git a/sope-appserver/WEExtensions/WEContextConditional.api b/sope-appserver/WEExtensions/WEContextConditional.api
new file mode 100644 (file)
index 0000000..249b36a
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WEContextConditional">
+  <binding name="negate" defaults="YES/NO" />
+  <binding name="contextKey" required="YES" />
+  <binding name="didMatch" />
+</wo>
diff --git a/sope-appserver/WEExtensions/WEContextKey.api b/sope-appserver/WEExtensions/WEContextKey.api
new file mode 100644 (file)
index 0000000..47373c9
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WEContextKey">
+  <binding name="key" required="YES" />
+  <binding name="value" />
+</wo>
diff --git a/sope-appserver/WEExtensions/WEDateField.api b/sope-appserver/WEExtensions/WEDateField.api
new file mode 100644 (file)
index 0000000..651f491
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WEDateField">
+  <binding name="name" />
+
+  <binding name="date" />
+
+  <binding name="hour" />
+  <binding name="minute" />
+  <binding name="second" />
+  <binding name="day" />
+  <binding name="month" />
+  <binding name="year" />
+
+  <binding name="useTextField" />
+  <binding name="hourInterval" />
+  <binding name="minuteInterval" />
+  <binding name="secondInterval" />
+  <binding name="format" defaults="Date Format Strings" />
+
+  <validation message="either &apos;date&apos; or any of &apos;hour&apos;, &apos;minute&apos;, &apos;second&apos;, &apos;day&apos;, &apos;month&apos; and &apos;year&apos; may be bound">
+    <count test="!=1">
+      <bound name="date"/>
+      <or>
+        <bound name="hour"/>
+        <bound name="minute"/>
+        <bound name="second"/>
+        <bound name="day"/>
+        <bound name="month"/>
+        <bound name="year"/>
+      </or>
+    </count>
+  </validation>
+</wo>
diff --git a/sope-appserver/WEExtensions/WEDragContainer.api b/sope-appserver/WEExtensions/WEDragContainer.api
new file mode 100644 (file)
index 0000000..c420ffb
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WEDragContainer">
+  <binding name="tag" required="YES" />
+  <binding name="effectsAllowed" />
+  <binding name="elementName" />
+  <binding name="isDraggable" defaults="YES/NO" />
+  <binding name="object" required="YES" />
+  <binding name="droppedObject" required="YES" />
+</wo>
diff --git a/sope-appserver/WEExtensions/WEDropContainer.api b/sope-appserver/WEExtensions/WEDropContainer.api
new file mode 100644 (file)
index 0000000..7de29fd
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WEDropContainer">
+  <binding name="tags" required="YES" />
+  <binding name="elementName" />
+  <binding name="isAttached" defaults="YES/NO" />
+  <binding name="effect"  />
+  <binding name="swapColor"  />
+  <binding name="action" required="YES" defaults="Actions"/>
+  <binding name="droppedObject" required="YES" />
+</wo>
diff --git a/sope-appserver/WEExtensions/WEEpozEditor.api b/sope-appserver/WEExtensions/WEEpozEditor.api
new file mode 100644 (file)
index 0000000..7a899a9
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WEEpozEditor">
+  <binding name="name" />
+  <binding name="value" required="YES" settable="YES" />
+  <binding name="disabled" defaults="YES/NO" />
+  <binding name="rows" />
+  <binding name="cols" />
+  <binding name="epozCharset" />
+  <binding name="epozButtonStyle" />
+  <binding name="epozStyle" />
+  <binding name="otherTagString" />
+</wo>
index 29f8f96877a5eb2e7df476d573817a1489a76782..83e139a7e8985a2dd100306698132f312631fd54 100644 (file)
@@ -227,10 +227,9 @@ static NSString *OWFormElementName(WEEpozEditor *self, WOContext *_ctx) {
   
   [self appendExtraAttributesToResponse:_response inContext:_ctx];
   if (self->otherTagString) {
-    NSString *str;
-    
-    str = [self->otherTagString stringValueInComponent:sComponent];
-    [_response appendContentString:str];
+    [_response appendContentCharacter:' '];
+    [_response appendContentString:
+      [self->otherTagString stringValueInComponent:sComponent]];
   }
   [_response appendContentString:@">"];
   
index dc48173b0e2c1e1658044d55f8927008b4eb7a23..1258643161f634ccdfd89feff2d5c2725b740339 100644 (file)
                        refType = 0;
                        sourceTree = "<absolute>";
                };
+               AD3EB2CC073D56C20038A3E6 = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WECase.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               AD3EB2CD073D56C20038A3E6 = {
+                       fileRef = AD3EB2CC073D56C20038A3E6;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               AD3EB2CE073D59E10038A3E6 = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WEHSpanTableMatrix.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               AD3EB2CF073D59E10038A3E6 = {
+                       fileRef = AD3EB2CE073D59E10038A3E6;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               AD3EB2D0073D5A080038A3E6 = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WEVSpanTableMatrix.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               AD3EB2D1073D5A080038A3E6 = {
+                       fileRef = AD3EB2D0073D5A080038A3E6;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               AD3EB2D4073D5F570038A3E6 = {
+                       children = (
+                               AD3EB2D5073D5F830038A3E6,
+                               AD3EB2D9073D5FB30038A3E6,
+                               AD3EB2D7073D5FA90038A3E6,
+                       );
+                       isa = PBXGroup;
+                       name = Definitions;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               AD3EB2D5073D5F830038A3E6 = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WETableView.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               AD3EB2D6073D5F830038A3E6 = {
+                       fileRef = AD3EB2D5073D5F830038A3E6;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               AD3EB2D7073D5FA90038A3E6 = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WETableData.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               AD3EB2D8073D5FA90038A3E6 = {
+                       fileRef = AD3EB2D7073D5FA90038A3E6;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               AD3EB2D9073D5FB30038A3E6 = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WETableHeader.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               AD3EB2DA073D5FB30038A3E6 = {
+                       fileRef = AD3EB2D9073D5FB30038A3E6;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
                AD51824006FF7FD1006397CD = {
                        fileRef = ADD65FE506DA3CDE007161CA;
                        isa = PBXBuildFile;
                                ADD65C6F06DA343C007161CA,
                                ADD65C8B06DA343C007161CA,
                                ADD65C8E06DA344C007161CA,
+                               ADF4C9B0073A9CA40050AAEF,
                                AD013C1806E20C17000910D8,
                                ADD65C9406DA34FF007161CA,
                                ADFE762906E2918F006628C4,
                                ADFE767D06E29190006628C4,
                                ADFE766A06E2918F006628C4,
                                ADFE765306E2918F006628C4,
+                               ADF4C9B2073A9CC30050AAEF,
+                               ADF4C9B4073A9CD70050AAEF,
+                               ADF4C9B6073A9CEB0050AAEF,
+                               ADF4C9B8073A9CFE0050AAEF,
+                               ADF4C9BA073A9D130050AAEF,
+                               ADF4C9BC073A9D250050AAEF,
+                               ADF4C9BE073A9D360050AAEF,
+                               ADF4C9C0073A9D470050AAEF,
+                               ADF4C9C2073A9D580050AAEF,
+                               ADF4C9C4073A9D700050AAEF,
+                               ADF4C9C6073A9D7D0050AAEF,
+                               ADF4C9C8073A9D9F0050AAEF,
+                               ADF4C9CA073A9DAD0050AAEF,
+                               ADF4C9CC073A9DD70050AAEF,
+                               ADF4CA20073A9E8A0050AAEF,
+                               ADF4CA21073A9E8A0050AAEF,
+                               ADF4CA22073A9E8A0050AAEF,
+                               ADF4CA23073A9E8A0050AAEF,
+                               ADF4CA24073A9E8A0050AAEF,
+                               ADF4CA25073A9E8A0050AAEF,
+                               ADF4CA26073A9E8A0050AAEF,
+                               ADF4CA27073A9E8A0050AAEF,
+                               ADF4CA29073A9E8A0050AAEF,
+                               ADF4CA2A073A9E8A0050AAEF,
+                               ADF4CA2B073A9E8A0050AAEF,
+                               ADF4CA2C073A9E8A0050AAEF,
+                               ADF4CA2D073A9E8A0050AAEF,
+                               ADF4CA2E073A9E8A0050AAEF,
+                               ADF4CA2F073A9E8A0050AAEF,
+                               ADF4CA31073A9E8A0050AAEF,
+                               ADF4CA32073A9E8A0050AAEF,
+                               ADF4CA33073A9E8A0050AAEF,
+                               ADF4CAFA073AC15F0050AAEF,
+                               ADF4CAFE073AC4BF0050AAEF,
+                               AD3EB2CD073D56C20038A3E6,
+                               AD3EB2CF073D59E10038A3E6,
+                               AD3EB2D1073D5A080038A3E6,
+                               AD3EB2D6073D5F830038A3E6,
+                               AD3EB2D8073D5FA90038A3E6,
+                               AD3EB2DA073D5FB30038A3E6,
                        );
                        isa = PBXResourcesBuildPhase;
                        runOnlyForDeploymentPostprocessing = 0;
                        refType = 0;
                        sourceTree = "<absolute>";
                };
+               ADF4C9B0073A9CA40050AAEF = {
+                       children = (
+                               ADF4C9B1073A9CC30050AAEF,
+                               ADF4C9B3073A9CD70050AAEF,
+                               ADF4C9B5073A9CEB0050AAEF,
+                               ADF4C9B7073A9CFE0050AAEF,
+                               ADF4C9B9073A9D130050AAEF,
+                               ADF4C9BB073A9D250050AAEF,
+                               ADF4C9BD073A9D360050AAEF,
+                               ADF4C9BF073A9D470050AAEF,
+                               ADF4C9C1073A9D580050AAEF,
+                               ADF4C9C3073A9D700050AAEF,
+                               ADF4C9C5073A9D7D0050AAEF,
+                               ADF4C9C7073A9D9F0050AAEF,
+                               ADF4C9C9073A9DAD0050AAEF,
+                               ADF4C9CB073A9DD70050AAEF,
+                               ADF4CA08073A9E8A0050AAEF,
+                               ADF4CAF9073AC15F0050AAEF,
+                               ADF4CA09073A9E8A0050AAEF,
+                               ADF4CA0A073A9E8A0050AAEF,
+                               ADF4CAFD073AC4BF0050AAEF,
+                               ADF4CA0B073A9E8A0050AAEF,
+                               ADF4CA0C073A9E8A0050AAEF,
+                               ADF4CA0D073A9E8A0050AAEF,
+                               ADF4CA0E073A9E8A0050AAEF,
+                               AD3EB2CC073D56C20038A3E6,
+                               ADF4CA0F073A9E8A0050AAEF,
+                               ADF4CA11073A9E8A0050AAEF,
+                               AD3EB2CE073D59E10038A3E6,
+                               AD3EB2D0073D5A080038A3E6,
+                               ADF4CA12073A9E8A0050AAEF,
+                               ADF4CA13073A9E8A0050AAEF,
+                               ADF4CA14073A9E8A0050AAEF,
+                               ADF4CA15073A9E8A0050AAEF,
+                               ADF4CA16073A9E8A0050AAEF,
+                               ADF4CA17073A9E8A0050AAEF,
+                               ADF4CA19073A9E8A0050AAEF,
+                               ADF4CA1A073A9E8A0050AAEF,
+                               ADF4CA1B073A9E8A0050AAEF,
+                       );
+                       isa = PBXGroup;
+                       name = Definitions;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4C9B1073A9CC30050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = JSClipboard.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4C9B2073A9CC30050AAEF = {
+                       fileRef = ADF4C9B1073A9CC30050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4C9B3073A9CD70050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = JSMenu.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4C9B4073A9CD70050AAEF = {
+                       fileRef = ADF4C9B3073A9CD70050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4C9B5073A9CEB0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = JSMenuItem.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4C9B6073A9CEB0050AAEF = {
+                       fileRef = ADF4C9B5073A9CEB0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4C9B7073A9CFE0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = JSShiftClick.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4C9B8073A9CFE0050AAEF = {
+                       fileRef = ADF4C9B7073A9CFE0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4C9B9073A9D130050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WEBrowser.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4C9BA073A9D130050AAEF = {
+                       fileRef = ADF4C9B9073A9D130050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4C9BB073A9D250050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WECalendarField.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4C9BC073A9D250050AAEF = {
+                       fileRef = ADF4C9BB073A9D250050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4C9BD073A9D360050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WECollapsibleComponentContent.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4C9BE073A9D360050AAEF = {
+                       fileRef = ADF4C9BD073A9D360050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4C9BF073A9D470050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WEComponentValue.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4C9C0073A9D470050AAEF = {
+                       fileRef = ADF4C9BF073A9D470050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4C9C1073A9D580050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WEContextConditional.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4C9C2073A9D580050AAEF = {
+                       fileRef = ADF4C9C1073A9D580050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4C9C3073A9D700050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WEContextKey.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4C9C4073A9D700050AAEF = {
+                       fileRef = ADF4C9C3073A9D700050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4C9C5073A9D7D0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WEDateField.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4C9C6073A9D7D0050AAEF = {
+                       fileRef = ADF4C9C5073A9D7D0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4C9C7073A9D9F0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WEDragContainer.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4C9C8073A9D9F0050AAEF = {
+                       fileRef = ADF4C9C7073A9D9F0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4C9C9073A9DAD0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WEDropContainer.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4C9CA073A9DAD0050AAEF = {
+                       fileRef = ADF4C9C9073A9DAD0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4C9CB073A9DD70050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WEEpozEditor.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4C9CC073A9DD70050AAEF = {
+                       fileRef = ADF4C9CB073A9DD70050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4CA08073A9E8A0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 5;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WEMonthOverview.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4CA09073A9E8A0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 5;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WEPageLink.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4CA0A073A9E8A0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 5;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WEPageView.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4CA0B073A9E8A0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 5;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WEQualifierConditional.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4CA0C073A9E8A0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 5;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WERedirect.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4CA0D073A9E8A0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 5;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WERichString.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4CA0E073A9E8A0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 5;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WESwitch.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4CA0F073A9E8A0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 5;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WETabItem.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4CA11073A9E8A0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 5;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WETableMatrix.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4CA12073A9E8A0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 5;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WETableMatrixContent.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4CA13073A9E8A0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 5;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WETableMatrixLabel.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4CA14073A9E8A0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 5;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WETabView.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4CA15073A9E8A0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 5;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WETimeField.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4CA16073A9E8A0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 5;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WETreeData.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4CA17073A9E8A0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 5;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WETreeHeader.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4CA19073A9E8A0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 5;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WETreeView.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4CA1A073A9E8A0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 5;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WEWeekColumnView.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4CA1B073A9E8A0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 5;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WEWeekOverview.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4CA20073A9E8A0050AAEF = {
+                       fileRef = ADF4CA08073A9E8A0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4CA21073A9E8A0050AAEF = {
+                       fileRef = ADF4CA09073A9E8A0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4CA22073A9E8A0050AAEF = {
+                       fileRef = ADF4CA0A073A9E8A0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4CA23073A9E8A0050AAEF = {
+                       fileRef = ADF4CA0B073A9E8A0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4CA24073A9E8A0050AAEF = {
+                       fileRef = ADF4CA0C073A9E8A0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4CA25073A9E8A0050AAEF = {
+                       fileRef = ADF4CA0D073A9E8A0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4CA26073A9E8A0050AAEF = {
+                       fileRef = ADF4CA0E073A9E8A0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4CA27073A9E8A0050AAEF = {
+                       fileRef = ADF4CA0F073A9E8A0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4CA29073A9E8A0050AAEF = {
+                       fileRef = ADF4CA11073A9E8A0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4CA2A073A9E8A0050AAEF = {
+                       fileRef = ADF4CA12073A9E8A0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4CA2B073A9E8A0050AAEF = {
+                       fileRef = ADF4CA13073A9E8A0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4CA2C073A9E8A0050AAEF = {
+                       fileRef = ADF4CA14073A9E8A0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4CA2D073A9E8A0050AAEF = {
+                       fileRef = ADF4CA15073A9E8A0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4CA2E073A9E8A0050AAEF = {
+                       fileRef = ADF4CA16073A9E8A0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4CA2F073A9E8A0050AAEF = {
+                       fileRef = ADF4CA17073A9E8A0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4CA31073A9E8A0050AAEF = {
+                       fileRef = ADF4CA19073A9E8A0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4CA32073A9E8A0050AAEF = {
+                       fileRef = ADF4CA1A073A9E8A0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4CA33073A9E8A0050AAEF = {
+                       fileRef = ADF4CA1B073A9E8A0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4CAF9073AC15F0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WEMonthLabel.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4CAFA073AC15F0050AAEF = {
+                       fileRef = ADF4CAF9073AC15F0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               ADF4CAFD073AC4BF0050AAEF = {
+                       explicitFileType = text.xml;
+                       fileEncoding = 4;
+                       indentWidth = 2;
+                       isa = PBXFileReference;
+                       path = WEPageItem.api;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               ADF4CAFE073AC4BF0050AAEF = {
+                       fileRef = ADF4CAFD073AC4BF0050AAEF;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
                ADFE760106E2918E006628C4 = {
                        explicitFileType = sourcecode.javascript;
                        fileEncoding = 5;
                };
                ADFE762906E2918F006628C4 = {
                        children = (
+                               AD3EB2D4073D5F570038A3E6,
                                ADFE762C06E2918F006628C4,
                                ADFE76B906E294DE006628C4,
                                ADFE76C906E296D3006628C4,
diff --git a/sope-appserver/WEExtensions/WEHSpanTableMatrix.api b/sope-appserver/WEExtensions/WEHSpanTableMatrix.api
new file mode 100644 (file)
index 0000000..46a001d
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WEHSpanTableMatrix">
+  <binding name="list" required="YES" />
+  <binding name="item" required="YES" />
+
+  <binding name="rows" />
+  <binding name="columns" />
+  <binding name="row" />
+  <binding name="column" />
+
+  <binding name="itemActive" defaults="YES/NO" />
+  <binding name="isRowActive" defaults="YES/NO" />
+  <binding name="isColumnActive" defaults="YES/NO" />
+</wo>
diff --git a/sope-appserver/WEExtensions/WEMonthLabel.api b/sope-appserver/WEExtensions/WEMonthLabel.api
new file mode 100644 (file)
index 0000000..bbe4d66
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WEMonthLabel">
+  <binding name="orientation" />
+  <binding name="dayOfWeek" settable="YES" />
+  <binding name="weekOfYear" settable="YES" />
+  <binding name="colspan" />
+</wo>
diff --git a/sope-appserver/WEExtensions/WEMonthOverview.api b/sope-appserver/WEExtensions/WEMonthOverview.api
new file mode 100644 (file)
index 0000000..c92aed1
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WEMonthOverview">
+  <binding name="list" required="YES" />
+  <binding name="item" settable="YES" />
+  <binding name="index" settable="YES" />
+  <binding name="identifier" />
+  <binding name="currentDay" settable="YES" />
+  <binding name="year" />
+  <binding name="month" />
+  <binding name="timeZone" />
+  <binding name="firstDay" />
+  <binding name="tableTags" />
+  <binding name="startDateKey" />
+  <binding name="endDateKey" />
+  <binding name="labelStyle" />
+  <binding name="contentStyle" />
+  <binding name="labelColor" />
+  <binding name="contentColor" />
+</wo>
diff --git a/sope-appserver/WEExtensions/WEPageItem.api b/sope-appserver/WEExtensions/WEPageItem.api
new file mode 100644 (file)
index 0000000..61c019e
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" standalone="yes"?>
+
+<!-- TODO: properly set rules (required etc.) -->
+<wo class="WEPageView">
+  <binding name="key" />
+  <binding name="title" />
+  <binding name="action" defaults="Actions" />
+</wo>
diff --git a/sope-appserver/WEExtensions/WEPageLink.api b/sope-appserver/WEExtensions/WEPageLink.api
new file mode 100644 (file)
index 0000000..22aa6dc
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WEPageLink">
+  <binding name="pageName" required="YES" defaults="Page Names" />
+  <binding name="sync" required="YES" />
+</wo>
index 4d8fc40a1bc589785d271a29793a2ef8e04ea57b..620f8ca966de7abc47c4151cc392f24a34004571 100644 (file)
   [_response appendContentCharacter:'"'];
   
   if (self->otherTagString) {
-    NSString *s;
-    
-    s = [self->otherTagString stringValueInComponent:[_ctx component]];
-    [_response appendContentString:s];
+    [_response appendContentCharacter:' '];
+    [_response appendContentString:
+      [self->otherTagString stringValueInComponent:[_ctx component]]];
   }
   [_response appendContentCharacter:'>'];
   
diff --git a/sope-appserver/WEExtensions/WEPageView.api b/sope-appserver/WEExtensions/WEPageView.api
new file mode 100644 (file)
index 0000000..4c01bbe
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" standalone="yes"?>
+
+<!-- TODO: properly set rules (required etc.) -->
+<wo class="WEPageView">
+  <binding name="titleColor" />
+  <binding name="contentColor" />
+
+  <binding name="fontColor" />
+  <binding name="fontFace" />
+  <binding name="fontSize" />
+
+  <binding name="firstIcon" />
+  <binding name="firstBlindIcon" />
+  <binding name="previousIcon" />
+  <binding name="previousBlindIcon" />
+  <binding name="nextIcon" />
+  <binding name="nextBlindIcon" />
+  <binding name="lastIcon" />
+  <binding name="lastBlindIcon" />
+
+  <binding name="firstLabel" />
+  <binding name="previousLabel" />
+  <binding name="nextLabel" />
+  <binding name="lastLabel" />
+
+</wo>
diff --git a/sope-appserver/WEExtensions/WEQualifierConditional.api b/sope-appserver/WEExtensions/WEQualifierConditional.api
new file mode 100644 (file)
index 0000000..05e1744
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WEQualifierConditional">
+  <binding name="condition" required="YES" />
+  <binding name="object" />
+  <binding name="negate" defaults="YES/NO" />
+  <binding name="bindings" />
+  <binding name="requiresAllVariables" defaults="YES/NO" />
+</wo>
diff --git a/sope-appserver/WEExtensions/WERedirect.api b/sope-appserver/WEExtensions/WERedirect.api
new file mode 100644 (file)
index 0000000..d385d61
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WERedirect">
+  <binding name="setURL" required="YES" />
+</wo>
diff --git a/sope-appserver/WEExtensions/WERichString.api b/sope-appserver/WEExtensions/WERichString.api
new file mode 100644 (file)
index 0000000..490b134
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WERichString">
+  <binding name="isBold" defaults="YES/NO" />
+  <binding name="isItalic" defaults="YES/NO" />
+  <binding name="isUnderlined" defaults="YES/NO" />
+  <binding name="isSmall" defaults="YES/NO" />
+  <binding name="color" />
+  <binding name="face" />
+  <binding name="size" />
+  <binding name="insertBR" defaults="YES/NO" />
+  <binding name="condition" defaults="YES/NO" />
+  <binding name="negate" defaults="YES/NO" />
+  <binding name="formatter" />
+  <binding name="value" />
+</wo>
diff --git a/sope-appserver/WEExtensions/WESwitch.api b/sope-appserver/WEExtensions/WESwitch.api
new file mode 100644 (file)
index 0000000..8c197de
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WESwitch">
+  <binding name="selection" />
+  <binding name="selections" />
+
+  <validation message="either &apos;selection&apos; or &apos;selections&apos; may be bound">
+    <count test="!=1">
+      <bound name="selection" />
+      <bound name="selections" />
+    </count>
+  </validation>
+</wo>
diff --git a/sope-appserver/WEExtensions/WETabItem.api b/sope-appserver/WEExtensions/WETabItem.api
new file mode 100644 (file)
index 0000000..b687230
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WETabItem">
+  <binding name="key" required="YES" />
+  <binding name="icon" />
+  <binding name="label" />
+  <binding name="action" />
+  <binding name="isScript" defaults="YES/NO" />
+
+  <binding name="tabIcon" />
+  <binding name="leftTabIcon" />
+  <binding name="selectedTabIcon" />
+
+  <binding name="asBackground" />
+  <binding name="width" />
+  <binding name="height" />
+  <binding name="activeBgColor" />
+  <binding name="inactiveBgColor" />
+</wo>
diff --git a/sope-appserver/WEExtensions/WETabView.api b/sope-appserver/WEExtensions/WETabView.api
new file mode 100644 (file)
index 0000000..96b41a9
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WETabView">
+  <binding name="selection" required="YES" />
+
+  <binding name="bgColor" />
+  <binding name="nonSelectedBgColor" />
+  <binding name="leftCornerIcon" />
+  <binding name="rightCornerIcon" />
+
+  <binding name="tabIcon" />
+  <binding name="leftTabIcon" />
+  <binding name="selectedTabIcon" />
+
+  <binding name="asBackground" defaults="YES/NO" />
+  <binding name="width" />
+  <binding name="height" />
+  <binding name="activeBgColor" />
+  <binding name="inactiveBgColor" />
+
+  <binding name="fontColor" />
+  <binding name="fontSize" />
+  <binding name="fontFace" />
+</wo>
diff --git a/sope-appserver/WEExtensions/WETableMatrix.api b/sope-appserver/WEExtensions/WETableMatrix.api
new file mode 100644 (file)
index 0000000..e8e75d7
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WETableMatrix">
+  <binding name="list" required="YES" />
+  <binding name="item" required="YES" />
+
+  <binding name="rows" />
+  <binding name="columns" />
+  <binding name="row" />
+  <binding name="column" />
+
+  <binding name="itemActive" defaults="YES/NO" />
+  <binding name="isRowActive" defaults="YES/NO" />
+  <binding name="isColumnActive" defaults="YES/NO" />
+</wo>
diff --git a/sope-appserver/WEExtensions/WETableMatrixContent.api b/sope-appserver/WEExtensions/WETableMatrixContent.api
new file mode 100644 (file)
index 0000000..cb64dbd
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WETableMatrixContent">
+  <binding name="elementName" />
+  <binding name="rowspan" settable="YES" />
+  <binding name="colspan" settable="YES" />
+</wo>
diff --git a/sope-appserver/WEExtensions/WETableMatrixLabel.api b/sope-appserver/WEExtensions/WETableMatrixLabel.api
new file mode 100644 (file)
index 0000000..5a1e3d4
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WETableMatrixLabel">
+  <binding name="position" />
+  <binding name="elementName" />
+  <binding name="span" />
+  <binding name="string" />
+</wo>
diff --git a/sope-appserver/WEExtensions/WETableView/WETableData.api b/sope-appserver/WEExtensions/WETableView/WETableData.api
new file mode 100644 (file)
index 0000000..c403a0c
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WETableData">
+  <binding name="sortKey" />
+  <binding name="negateSortDir" defaults="YES/NO" />
+
+  <binding name="bgColor" />
+  <binding name="upwardSortIcon" />
+  <binding name="downwardSortIcon" />
+  <binding name="nonSortIcon" />
+  <binding name="sortLabel" />
+
+  <binding name="title" />
+  <binding name="align" />
+  <binding name="valign" />
+  <binding name="isGroup" defaults="YES/NO" />
+  <binding name="otherTagString" />
+</wo>
diff --git a/sope-appserver/WEExtensions/WETableView/WETableHeader.api b/sope-appserver/WEExtensions/WETableView/WETableHeader.api
new file mode 100644 (file)
index 0000000..b572ada
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WETableHeader">
+  <binding name="sortKey" />
+  <binding name="negateSortDir" defaults="YES/NO" />
+
+  <binding name="bgColor" />
+  <binding name="upwardSortIcon" />
+  <binding name="downwardSortIcon" />
+  <binding name="nonSortIcon" />
+  <binding name="sortLabel" />
+  <binding name="otherTagString" />
+</wo>
index 325fc6db36fe7c3c26d7947f5ca04fed9c2e4cdd..746842c07fc7ddb04d56d0e3afe7fe3abd45da3a 100644 (file)
@@ -56,6 +56,7 @@
     }
     [self appendExtraAttributesToResponse:_response inContext:_ctx];
     if (self->otherTagString) {
+      [_response appendContentCharacter:' '];
       [_response appendContentString:
             [self->otherTagString stringValueInComponent:[_ctx component]]];
     }
diff --git a/sope-appserver/WEExtensions/WETableView/WETableView.api b/sope-appserver/WEExtensions/WETableView/WETableView.api
new file mode 100644 (file)
index 0000000..798cb2e
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WETableView">
+  <binding name="list" required="YES" />
+  <binding name="batchSize" />
+  <binding name="currentBatch" />
+
+  <binding name="item" required="YES" />
+  <binding name="index" />
+  <binding name="identifier" />
+  <binding name="previousItem" />
+  <binding name="previousIndex" />
+
+  <binding name="indexOfFirst" />
+  <binding name="indexOfLast" />
+
+  <binding name="sortedKey" />
+  <binding name="isDescending" />
+  <binding name="groups" />
+  <binding name="showGroup" />
+
+  <binding name="selection" />
+
+  <binding name="collapseOnClient" />
+  <binding name="scrollOnClient" />
+  <binding name="autoScroll" />
+  <binding name="showBatchResizeButtons" />
+
+  <binding name="sortAction" defaults="Actions" />
+  <binding name="firstAction" defaults="Actions"  />
+  <binding name="previousAction" defaults="Actions" />
+  <binding name="nextAction" defaults="Actions" />
+  <binding name="lastAction" defaults="Actions" />
+
+  <binding name="groupColor" />
+  <binding name="fontColor" />
+  <binding name="fontFace" />
+  <binding name="fontSize" />
+
+  <binding name="groupOpenedIcon" />
+  <binding name="groupClosedIcon" />
+
+  <binding name="border" />
+  <binding name="cellspacing" />
+  <binding name="cellpadding" />
+  <binding name="showGroupTitle" />
+</wo>
diff --git a/sope-appserver/WEExtensions/WETimeField.api b/sope-appserver/WEExtensions/WETimeField.api
new file mode 100644 (file)
index 0000000..9c6370d
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WETimeField">
+  <binding name="name" />
+
+  <binding name="date" />
+
+  <binding name="hour" />
+  <binding name="minute" />
+  <binding name="second" />
+  <binding name="day" />
+  <binding name="month" />
+  <binding name="year" />
+
+  <binding name="useTextField" />
+  <binding name="hourInterval" />
+  <binding name="minuteInterval" />
+  <binding name="secondInterval" />
+  <binding name="format" defaults="Date Format Strings" />
+
+  <validation message="either &apos;date&apos; or any of &apos;hour&apos;, &apos;minute&apos;, &apos;second&apos;, &apos;day&apos;, &apos;month&apos; and &apos;year&apos; may be bound">
+    <count test="!=1">
+      <bound name="date"/>
+      <or>
+        <bound name="hour"/>
+        <bound name="minute"/>
+        <bound name="second"/>
+        <bound name="day"/>
+        <bound name="month"/>
+        <bound name="year"/>
+      </or>
+    </count>
+  </validation>
+</wo>
diff --git a/sope-appserver/WEExtensions/WETreeData.api b/sope-appserver/WEExtensions/WETreeData.api
new file mode 100644 (file)
index 0000000..8a044c0
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WETreeData">
+  <binding name="isTreeElement" defaults="YES/NO" />
+  <binding name="title" />
+  <binding name="string" />
+  <binding name="icon" />
+  <binding name="cornerIcon" />
+  <binding name="treeLink" />
+
+  <binding name="otherTagString" />
+</wo>
index 72f8c3f316b639b4f52d20012310140d6b5bb838..a93fa902461a2056671bd15a35b90c086a2e8924 100644 (file)
@@ -258,7 +258,8 @@ static Class StrClass = Nil;
     [_response appendContentString:@"<td"];
     [self appendExtraAttributesToResponse:_response inContext:_ctx];
     if (self->otherTagString) {
-        [_response appendContentString:
+      [_response appendContentCharacter:' '];
+      [_response appendContentString:
                    [self->otherTagString stringValueInComponent:
                         [_ctx component]]];
     }
@@ -359,6 +360,7 @@ static Class StrClass = Nil;
       [_response appendContentString:@"<td"];
       [self appendExtraAttributesToResponse:_response inContext:_ctx];
       if (self->otherTagString) {
+        [_response appendContentCharacter:' '];
         [_response appendContentString:
                    [self->otherTagString stringValueInComponent:
                         [_ctx component]]];
diff --git a/sope-appserver/WEExtensions/WETreeHeader.api b/sope-appserver/WEExtensions/WETreeHeader.api
new file mode 100644 (file)
index 0000000..0ffe663
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WETreeHeader">
+  <binding name="isTreeElement" defaults="YES/NO" />
+  <binding name="string" />
+
+  <binding name="otherTagString" />
+</wo>
index 65a2be6489bc50b1995bd39f2d446a1e65703a4f..f099d266531d2d2126d5a6d2a979e974eeb90036 100644 (file)
     [_response appendContentString:@"<td"];
     [self appendExtraAttributesToResponse:_response inContext:_ctx];
     if (self->otherTagString) {
+      [_response appendContentCharacter:' '];
       [_response appendContentString:
                  [self->otherTagString stringValueInComponent:
                       [_ctx component]]];
diff --git a/sope-appserver/WEExtensions/WETreeView.api b/sope-appserver/WEExtensions/WETreeView.api
new file mode 100644 (file)
index 0000000..5c8958d
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WETreeView">
+  <binding name="list" required="YES" />
+  <binding name="item" required="YES" />
+  <binding name="sublist" />
+  <binding name="itemIsLeaf" defaults="YES/NO" />
+  <binding name="index" />
+  <binding name="zoom" defaults="YES/NO" />
+  <binding name="currentPath" />
+  <binding name="showItem" defaults="YES/NO" />
+
+  <binding name="noTable" defaults="YES/NO" />
+
+  <binding name="plusIcon" />
+  <binding name="minusIcon" />
+  <binding name="leafIcon" />
+  <binding name="junctionIcon" />
+  <binding name="cornerIcon" />
+  <binding name="cornerPlusIcon" />
+  <binding name="cornerMinusIcon" />
+  <binding name="leafCornerIcon" />
+  <binding name="lineIcon" />
+  <binding name="spaceIcon" />
+  <binding name="iconWidth" />
+
+  <binding name="otherTagString" />
+
+</wo>
index 965fd3b83e32b9b875a3423de5dc5cf80cb1192b..076a4a0ad2aa8ca11916fcd224409edbf1a9cc6b 100644 (file)
@@ -695,6 +695,7 @@ NSString *WETreeView_Space          = @"WETreeView_Space";
 
     [self appendExtraAttributesToResponse:_response inContext:_ctx];
     if (self->otherTagString) {
+      [_response appendContentCharacter:' '];
       [_response appendContentString:
                  [self->otherTagString stringValueInComponent:
                       [_ctx component]]];
diff --git a/sope-appserver/WEExtensions/WEVSpanTableMatrix.api b/sope-appserver/WEExtensions/WEVSpanTableMatrix.api
new file mode 100644 (file)
index 0000000..f4aceaa
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WEVSpanTableMatrix">
+  <binding name="list" required="YES" />
+  <binding name="item" required="YES" />
+
+  <binding name="rows" />
+  <binding name="columns" />
+  <binding name="row" />
+  <binding name="column" />
+
+  <binding name="itemActive" defaults="YES/NO" />
+  <binding name="isRowActive" defaults="YES/NO" />
+  <binding name="isColumnActive" defaults="YES/NO" />
+
+  <binding name="rowHeight" />
+  <binding name="noSpanInEmptyCells" defaults="YES/NO" />
+</wo>
diff --git a/sope-appserver/WEExtensions/WEWeekColumnView.api b/sope-appserver/WEExtensions/WEWeekColumnView.api
new file mode 100644 (file)
index 0000000..1b3d741
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WEWeekColumnView">
+  <binding name="list" required="YES" />
+  <binding name="item" required="YES" />
+  <binding name="index" />
+  <binding name="identifier" />
+
+  <binding name="dayIndex" />
+  <binding name="weekStart" />
+
+  <binding name="startDateKey" />
+  <binding name="endDateKey" />
+
+  <binding name="titleColor" />
+  <binding name="contentColor" />
+
+  <binding name="isInfoItem" defaults="YES/NO" />
+  <binding name="infoItems" />
+
+  <binding name="hideWeekend" defaults="YES/NO" />
+</wo>
diff --git a/sope-appserver/WEExtensions/WEWeekOverview.api b/sope-appserver/WEExtensions/WEWeekOverview.api
new file mode 100644 (file)
index 0000000..dde6ca6
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" standalone="yes"?>
+
+<wo class="WEWeekOverview">
+  <binding name="list" required="YES" />
+  <binding name="item" required="YES" />
+  <binding name="index" />
+  <binding name="identifier" />
+
+  <binding name="dayIndex" />
+  <binding name="weekStart" />
+
+  <binding name="startDateKey" />
+  <binding name="endDateKey" />
+
+  <binding name="titleStyle" />
+  <binding name="contentStyle" />
+
+  <binding name="footerRows" />
+  <binding name="footerRow" />
+  <binding name="headerRows" />
+  <binding name="headerRow" />
+  <binding name="colIndex" />
+
+  <binding name="isInfoItem" defaults="YES/NO" />
+  <binding name="infoItems" />
+
+  <binding name="hideWeekend" defaults="YES/NO" />
+</wo>