From 5b2257497907a84e62fed0985783d51d5576cfd9 Mon Sep 17 00:00:00 2001 From: Johnny Miller Date: Fri, 16 Nov 2012 14:28:39 -1000 Subject: [PATCH] new file: Examples/Ajax/MooToolsExample/Components/MTAjaxAutoCompleteTestPage.wo/MTAjaxAutoCompleteTestPage.html new file: Examples/Ajax/MooToolsExample/Components/MTAjaxAutoCompleteTestPage.wo/MTAjaxAutoCompleteTestPage.wod new file: Examples/Ajax/MooToolsExample/Components/MTAjaxAutoCompleteTestPage.wo/MTAjaxAutoCompleteTestPage.woo new file: Examples/Ajax/MooToolsExample/Components/MTAjaxExpansionTestPage.wo/MTAjaxExpansionTestPage.html new file: Examples/Ajax/MooToolsExample/Components/MTAjaxExpansionTestPage.wo/MTAjaxExpansionTestPage.wod new file: Examples/Ajax/MooToolsExample/Components/MTAjaxExpansionTestPage.wo/MTAjaxExpansionTestPage.woo new file: Examples/Ajax/MooToolsExample/Components/MTStyledPopUpButtonTestPage.wo/MTStyledPopUpButtonTestPage.html new file: Examples/Ajax/MooToolsExample/Components/MTStyledPopUpButtonTestPage.wo/MTStyledPopUpButtonTestPage.wod new file: Examples/Ajax/MooToolsExample/Components/MTStyledPopUpButtonTestPage.wo/MTStyledPopUpButtonTestPage.woo new file: Examples/Ajax/MooToolsExample/Sources/er/ajax/mootools/example/components/MTAjaxAutoCompleteTestPage.java new file: Examples/Ajax/MooToolsExample/Sources/er/ajax/mootools/example/components/MTAjaxExpansionTestPage.java new file: Examples/Ajax/MooToolsExample/Sources/er/ajax/mootools/example/components/MTStyledPopUpButtonTestPage.java new file: Examples/Ajax/MooToolsExample/WebServerResources/css/ToggleDetails.css new file: Examples/Ajax/MooToolsExample/WebServerResources/img/avatar.png new file: Examples/Ajax/MooToolsExample/WebServerResources/img/avatar2.png new file: Examples/Ajax/MooToolsExample/WebServerResources/img/triangleDown.gif new file: Examples/Ajax/MooToolsExample/WebServerResources/img/triangleRight.gif new file: Frameworks/Ajax/MooTools/Components/MTAjaxAutoComplete.api new file: Frameworks/Ajax/MooTools/Components/MTAjaxExpansion.api new file: Frameworks/Ajax/MooTools/Components/MTERAttachmentFlexibleUpload.api new file: Frameworks/Ajax/MooTools/Components/MTStyledPopUpButton.api new file: Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxAutoComplete.wo/MTAjaxAutoComplete.html new file: Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxAutoComplete.wo/MTAjaxAutoComplete.wod new file: Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxAutoComplete.wo/MTAjaxAutoComplete.woo new file: Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxExpansion.wo/MTAjaxExpansion.html new file: Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxExpansion.wo/MTAjaxExpansion.wod new file: Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxExpansion.wo/MTAjaxExpansion.woo new file: Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTERAttachmentFlexibleUpload.wo/MTERAttachmentFlexibleUpload.html new file: Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTERAttachmentFlexibleUpload.wo/MTERAttachmentFlexibleUpload.wod new file: Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTERAttachmentFlexibleUpload.wo/MTERAttachmentFlexibleUpload.woo new file: Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTStyledPopUpButton.wo/MTStyledPopUpButton.html new file: Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTStyledPopUpButton.wo/MTStyledPopUpButton.wod new file: Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTStyledPopUpButton.wo/MTStyledPopUpButton.woo new file: Frameworks/Ajax/MooTools/Sources/er/ajax/mootools/MTAjaxAutoComplete.java new file: Frameworks/Ajax/MooTools/Sources/er/ajax/mootools/MTAjaxExpansion.java new file: Frameworks/Ajax/MooTools/Sources/er/ajax/mootools/MTERAttachmentFlexibleUpload.java new file: Frameworks/Ajax/MooTools/Sources/er/ajax/mootools/MTStyledPopUpButton.java new file: Frameworks/Ajax/MooTools/WebServerResources/scripts/core/mootools-core-1.4.5-full-compat-yc.js new file: Frameworks/Ajax/MooTools/WebServerResources/scripts/core/mootools-core-1.4.5-full-compat.js new file: Frameworks/Ajax/MooTools/WebServerResources/scripts/plugins/autocomplete/AutoCompleter.js new file: Frameworks/Ajax/MooTools/WebServerResources/scripts/plugins/fancyselect/FancySelect.css new file: Frameworks/Ajax/MooTools/WebServerResources/scripts/plugins/fancyselect/FancySelect.js --- .../MTAjaxAutoCompleteTestPage.html | 102 + .../MTAjaxAutoCompleteTestPage.wod | 32 + .../MTAjaxAutoCompleteTestPage.woo | 4 + .../MTAjaxExpansionTestPage.html | 64 + .../MTAjaxExpansionTestPage.wod | 0 .../MTAjaxExpansionTestPage.woo | 4 + .../MTStyledPopUpButtonTestPage.html | 22 + .../MTStyledPopUpButtonTestPage.wod | 27 + .../MTStyledPopUpButtonTestPage.woo | 4 + .../MTAjaxAutoCompleteTestPage.java | 54 + .../components/MTAjaxExpansionTestPage.java | 27 + .../MTStyledPopUpButtonTestPage.java | 30 + .../WebServerResources/css/ToggleDetails.css | 57 + .../WebServerResources/img/avatar.png | Bin 0 -> 7668 bytes .../WebServerResources/img/avatar2.png | Bin 0 -> 6689 bytes .../WebServerResources/img/triangleDown.gif | Bin 0 -> 597 bytes .../WebServerResources/img/triangleRight.gif | Bin 0 -> 596 bytes .../Components/MTAjaxAutoComplete.api | 40 + .../MooTools/Components/MTAjaxExpansion.api | 21 + .../MTERAttachmentFlexibleUpload.api | 8 + .../Components/MTStyledPopUpButton.api | 33 + .../MTAjaxAutoComplete.html | 28 + .../MTAjaxAutoComplete.wod | 79 + .../MTAjaxAutoComplete.woo | 4 + .../MTAjaxExpansion.wo/MTAjaxExpansion.html | 8 + .../MTAjaxExpansion.wo/MTAjaxExpansion.wod | 55 + .../MTAjaxExpansion.wo/MTAjaxExpansion.woo | 4 + .../MTERAttachmentFlexibleUpload.html | 1 + .../MTERAttachmentFlexibleUpload.wod | 27 + .../MTERAttachmentFlexibleUpload.woo | 4 + .../MTStyledPopUpButton.html | 9 + .../MTStyledPopUpButton.wod | 45 + .../MTStyledPopUpButton.woo | 4 + .../er/ajax/mootools/MTAjaxAutoComplete.java | 288 + .../er/ajax/mootools/MTAjaxExpansion.java | 19 + .../MTERAttachmentFlexibleUpload.java | 10 + .../er/ajax/mootools/MTStyledPopUpButton.java | 145 + .../mootools-core-1.4.5-full-compat-yc.js | 527 ++ .../core/mootools-core-1.4.5-full-compat.js | 6447 +++++++++++++++++ .../plugins/autocomplete/AutoCompleter.js | 530 ++ .../plugins/fancyselect/FancySelect.css | 112 + .../plugins/fancyselect/FancySelect.js | 233 + fork | 1 + 43 files changed, 9109 insertions(+) create mode 100644 Examples/Ajax/MooToolsExample/Components/MTAjaxAutoCompleteTestPage.wo/MTAjaxAutoCompleteTestPage.html create mode 100644 Examples/Ajax/MooToolsExample/Components/MTAjaxAutoCompleteTestPage.wo/MTAjaxAutoCompleteTestPage.wod create mode 100644 Examples/Ajax/MooToolsExample/Components/MTAjaxAutoCompleteTestPage.wo/MTAjaxAutoCompleteTestPage.woo create mode 100644 Examples/Ajax/MooToolsExample/Components/MTAjaxExpansionTestPage.wo/MTAjaxExpansionTestPage.html create mode 100644 Examples/Ajax/MooToolsExample/Components/MTAjaxExpansionTestPage.wo/MTAjaxExpansionTestPage.wod create mode 100644 Examples/Ajax/MooToolsExample/Components/MTAjaxExpansionTestPage.wo/MTAjaxExpansionTestPage.woo create mode 100644 Examples/Ajax/MooToolsExample/Components/MTStyledPopUpButtonTestPage.wo/MTStyledPopUpButtonTestPage.html create mode 100644 Examples/Ajax/MooToolsExample/Components/MTStyledPopUpButtonTestPage.wo/MTStyledPopUpButtonTestPage.wod create mode 100644 Examples/Ajax/MooToolsExample/Components/MTStyledPopUpButtonTestPage.wo/MTStyledPopUpButtonTestPage.woo create mode 100644 Examples/Ajax/MooToolsExample/Sources/er/ajax/mootools/example/components/MTAjaxAutoCompleteTestPage.java create mode 100644 Examples/Ajax/MooToolsExample/Sources/er/ajax/mootools/example/components/MTAjaxExpansionTestPage.java create mode 100644 Examples/Ajax/MooToolsExample/Sources/er/ajax/mootools/example/components/MTStyledPopUpButtonTestPage.java create mode 100644 Examples/Ajax/MooToolsExample/WebServerResources/css/ToggleDetails.css create mode 100644 Examples/Ajax/MooToolsExample/WebServerResources/img/avatar.png create mode 100644 Examples/Ajax/MooToolsExample/WebServerResources/img/avatar2.png create mode 100644 Examples/Ajax/MooToolsExample/WebServerResources/img/triangleDown.gif create mode 100644 Examples/Ajax/MooToolsExample/WebServerResources/img/triangleRight.gif create mode 100644 Frameworks/Ajax/MooTools/Components/MTAjaxAutoComplete.api create mode 100644 Frameworks/Ajax/MooTools/Components/MTAjaxExpansion.api create mode 100644 Frameworks/Ajax/MooTools/Components/MTERAttachmentFlexibleUpload.api create mode 100644 Frameworks/Ajax/MooTools/Components/MTStyledPopUpButton.api create mode 100644 Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxAutoComplete.wo/MTAjaxAutoComplete.html create mode 100644 Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxAutoComplete.wo/MTAjaxAutoComplete.wod create mode 100644 Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxAutoComplete.wo/MTAjaxAutoComplete.woo create mode 100644 Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxExpansion.wo/MTAjaxExpansion.html create mode 100644 Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxExpansion.wo/MTAjaxExpansion.wod create mode 100644 Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxExpansion.wo/MTAjaxExpansion.woo create mode 100644 Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTERAttachmentFlexibleUpload.wo/MTERAttachmentFlexibleUpload.html create mode 100644 Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTERAttachmentFlexibleUpload.wo/MTERAttachmentFlexibleUpload.wod create mode 100644 Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTERAttachmentFlexibleUpload.wo/MTERAttachmentFlexibleUpload.woo create mode 100644 Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTStyledPopUpButton.wo/MTStyledPopUpButton.html create mode 100644 Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTStyledPopUpButton.wo/MTStyledPopUpButton.wod create mode 100644 Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTStyledPopUpButton.wo/MTStyledPopUpButton.woo create mode 100644 Frameworks/Ajax/MooTools/Sources/er/ajax/mootools/MTAjaxAutoComplete.java create mode 100644 Frameworks/Ajax/MooTools/Sources/er/ajax/mootools/MTAjaxExpansion.java create mode 100644 Frameworks/Ajax/MooTools/Sources/er/ajax/mootools/MTERAttachmentFlexibleUpload.java create mode 100644 Frameworks/Ajax/MooTools/Sources/er/ajax/mootools/MTStyledPopUpButton.java create mode 100644 Frameworks/Ajax/MooTools/WebServerResources/scripts/core/mootools-core-1.4.5-full-compat-yc.js create mode 100644 Frameworks/Ajax/MooTools/WebServerResources/scripts/core/mootools-core-1.4.5-full-compat.js create mode 100644 Frameworks/Ajax/MooTools/WebServerResources/scripts/plugins/autocomplete/AutoCompleter.js create mode 100644 Frameworks/Ajax/MooTools/WebServerResources/scripts/plugins/fancyselect/FancySelect.css create mode 100644 Frameworks/Ajax/MooTools/WebServerResources/scripts/plugins/fancyselect/FancySelect.js create mode 120000 fork diff --git a/Examples/Ajax/MooToolsExample/Components/MTAjaxAutoCompleteTestPage.wo/MTAjaxAutoCompleteTestPage.html b/Examples/Ajax/MooToolsExample/Components/MTAjaxAutoCompleteTestPage.wo/MTAjaxAutoCompleteTestPage.html new file mode 100644 index 00000000000..7c0cfa7bbea --- /dev/null +++ b/Examples/Ajax/MooToolsExample/Components/MTAjaxAutoCompleteTestPage.wo/MTAjaxAutoCompleteTestPage.html @@ -0,0 +1,102 @@ + + + +

Auto Compelte Test Page

+
+

I created a MooTools version of AutoCompleter.Base, Ajax.Autocompleter and Autocompleter.Local check out AutoCompleter.js

+ + + + +
+ + + + + + + ( chars) + + + + + + + +
\ No newline at end of file diff --git a/Examples/Ajax/MooToolsExample/Components/MTAjaxAutoCompleteTestPage.wo/MTAjaxAutoCompleteTestPage.wod b/Examples/Ajax/MooToolsExample/Components/MTAjaxAutoCompleteTestPage.wo/MTAjaxAutoCompleteTestPage.wod new file mode 100644 index 00000000000..5b64722a509 --- /dev/null +++ b/Examples/Ajax/MooToolsExample/Components/MTAjaxAutoCompleteTestPage.wo/MTAjaxAutoCompleteTestPage.wod @@ -0,0 +1,32 @@ +ComplexAjaxAutoComplete: MTAjaxAutoComplete { + list = currentValues; + value = value; + item = currentValue; + selection = selectedValue; +} + +Item : WOString { + value = currentValue.name; +} + +ItemLength : WOString { + value = currentValue.value; +} + +SimpleAjaxAutoComplete: MTAjaxAutoComplete { + list = currentValues2; + value = value2; + item = currentValue; + displayString = currentValue.name; + selection = selectedValue2; +} + +SubmitButton : WOSubmitButton { + action = submitted; +} + +WOForm : WOForm { + class = "well"; +} + + diff --git a/Examples/Ajax/MooToolsExample/Components/MTAjaxAutoCompleteTestPage.wo/MTAjaxAutoCompleteTestPage.woo b/Examples/Ajax/MooToolsExample/Components/MTAjaxAutoCompleteTestPage.wo/MTAjaxAutoCompleteTestPage.woo new file mode 100644 index 00000000000..a076a051a7e --- /dev/null +++ b/Examples/Ajax/MooToolsExample/Components/MTAjaxAutoCompleteTestPage.wo/MTAjaxAutoCompleteTestPage.woo @@ -0,0 +1,4 @@ +{ + "WebObjects Release" = "WebObjects 5.0"; + encoding = "UTF-8"; +} \ No newline at end of file diff --git a/Examples/Ajax/MooToolsExample/Components/MTAjaxExpansionTestPage.wo/MTAjaxExpansionTestPage.html b/Examples/Ajax/MooToolsExample/Components/MTAjaxExpansionTestPage.wo/MTAjaxExpansionTestPage.html new file mode 100644 index 00000000000..a2eddf86118 --- /dev/null +++ b/Examples/Ajax/MooToolsExample/Components/MTAjaxExpansionTestPage.wo/MTAjaxExpansionTestPage.html @@ -0,0 +1,64 @@ + +

Ajax Expansion...

+
+

+ AjaxExpansion provides an easy way to make expansion areas that appear and disappear by clicking a link (for instance, expandable options areas). +

+

+ Should work like the original. +

+

+ TODO: Work on the effects. +

+
+
+

Brazil Nut

+ + + profile +
+
Phone Number
+
+ 808.EAT.BRDS +
+ +
Address
+
+ 123 MaccaDangDang Hwy.
+ Maui, HI 96761 +
+ +
URL
+
+ http://kahalawai.com/ +
+
+
+ + profile + +
+
+
+

Coco Nut

+ +
+
Phone Number
+
+ 808.EAT.BRDS +
+ +
Address
+
+ 123 MaccaDangDang Hwy.
+ Maui, HI 96761 +
+ +
URL
+
+ http://kahalawai.com/ +
+
+
+
+
\ No newline at end of file diff --git a/Examples/Ajax/MooToolsExample/Components/MTAjaxExpansionTestPage.wo/MTAjaxExpansionTestPage.wod b/Examples/Ajax/MooToolsExample/Components/MTAjaxExpansionTestPage.wo/MTAjaxExpansionTestPage.wod new file mode 100644 index 00000000000..e69de29bb2d diff --git a/Examples/Ajax/MooToolsExample/Components/MTAjaxExpansionTestPage.wo/MTAjaxExpansionTestPage.woo b/Examples/Ajax/MooToolsExample/Components/MTAjaxExpansionTestPage.wo/MTAjaxExpansionTestPage.woo new file mode 100644 index 00000000000..a076a051a7e --- /dev/null +++ b/Examples/Ajax/MooToolsExample/Components/MTAjaxExpansionTestPage.wo/MTAjaxExpansionTestPage.woo @@ -0,0 +1,4 @@ +{ + "WebObjects Release" = "WebObjects 5.0"; + encoding = "UTF-8"; +} \ No newline at end of file diff --git a/Examples/Ajax/MooToolsExample/Components/MTStyledPopUpButtonTestPage.wo/MTStyledPopUpButtonTestPage.html b/Examples/Ajax/MooToolsExample/Components/MTStyledPopUpButtonTestPage.wo/MTStyledPopUpButtonTestPage.html new file mode 100644 index 00000000000..4256f7a21e7 --- /dev/null +++ b/Examples/Ajax/MooToolsExample/Components/MTStyledPopUpButtonTestPage.wo/MTStyledPopUpButtonTestPage.html @@ -0,0 +1,22 @@ + +

MTStyledPopUpButton

+
+

MTStyledPopUpButton is a non-obtrusive image dropdown menu that extends and replaces a standard HTML Select control. Based upon "FancySelect" @ https://github.com/lorenzos/FancySelect/wiki

+
+

Sample using a component action.

+ + + + + +

Sample using a direct action.

+ + + + + + +
+

Your favorite fruit is:

+
+
\ No newline at end of file diff --git a/Examples/Ajax/MooToolsExample/Components/MTStyledPopUpButtonTestPage.wo/MTStyledPopUpButtonTestPage.wod b/Examples/Ajax/MooToolsExample/Components/MTStyledPopUpButtonTestPage.wo/MTStyledPopUpButtonTestPage.wod new file mode 100644 index 00000000000..3146e1dd5f9 --- /dev/null +++ b/Examples/Ajax/MooToolsExample/Components/MTStyledPopUpButtonTestPage.wo/MTStyledPopUpButtonTestPage.wod @@ -0,0 +1,27 @@ +DirectActionSubmitButton : WOSubmitButton { + class = "btn btn-primary"; + directActionName = "PageAction/MTStyledPopUpButtonTestPage"; +} + +MTStyledPopUpButton : MTStyledPopUpButton { + item = item; + list = list; + selection = selectedItem; + showImages = false; + onShow = "function() { console.log('showing popup options...') }"; +} + +MTStyledSelectedValuePopUpButton : MTStyledPopUpButton { + item = item; + list = list; + name = "FavFruit"; + selectedValue = selectedItem; + showImages = false; + onShow = "function() { console.log('showing popup options...') }"; + value = item; +} + +SubmitButton : WOSubmitButton { + action = selectFruit; + class = "btn btn-primary"; +} \ No newline at end of file diff --git a/Examples/Ajax/MooToolsExample/Components/MTStyledPopUpButtonTestPage.wo/MTStyledPopUpButtonTestPage.woo b/Examples/Ajax/MooToolsExample/Components/MTStyledPopUpButtonTestPage.wo/MTStyledPopUpButtonTestPage.woo new file mode 100644 index 00000000000..a076a051a7e --- /dev/null +++ b/Examples/Ajax/MooToolsExample/Components/MTStyledPopUpButtonTestPage.wo/MTStyledPopUpButtonTestPage.woo @@ -0,0 +1,4 @@ +{ + "WebObjects Release" = "WebObjects 5.0"; + encoding = "UTF-8"; +} \ No newline at end of file diff --git a/Examples/Ajax/MooToolsExample/Sources/er/ajax/mootools/example/components/MTAjaxAutoCompleteTestPage.java b/Examples/Ajax/MooToolsExample/Sources/er/ajax/mootools/example/components/MTAjaxAutoCompleteTestPage.java new file mode 100644 index 00000000000..92344252ac8 --- /dev/null +++ b/Examples/Ajax/MooToolsExample/Sources/er/ajax/mootools/example/components/MTAjaxAutoCompleteTestPage.java @@ -0,0 +1,54 @@ +package er.ajax.mootools.example.components; + +import java.util.Enumeration; + +import com.webobjects.appserver.WOActionResults; +import com.webobjects.appserver.WOContext; +import com.webobjects.foundation.NSArray; +import com.webobjects.foundation.NSMutableArray; + +public class MTAjaxAutoCompleteTestPage extends Main { + + public String value; + public String value2; + + public NSArray allValues; + public Word currentValue; + public Word selectedValue; + public Word selectedValue2; + + public MTAjaxAutoCompleteTestPage(WOContext context) { + super(context); + allValues = ExampleDataFactory.allWords(); + } + + /** + * This method gets called after every keystroke, we check the value variable and return the 10 entries + * in allValues that contain this value. + */ + public NSArray currentValues(String v) { + NSMutableArray result = new NSMutableArray(); + for(Enumeration e = allValues.objectEnumerator(); e.hasMoreElements() && result.count() < 10;) { + Word c = (Word) e.nextElement(); + if(v == null || c.name.toLowerCase().indexOf(v.toLowerCase()) >= 0) { + result.addObject(c); + } + } + return result; + } + + public NSArray currentValues() { + return currentValues(value); + } + + public NSArray currentValues2() { + return currentValues(value2); + } + + public WOActionResults submitted() { + System.out.println("AutoCompleteExample.submitted: " + value + ", " + selectedValue); + System.out.println("AutoCompleteExample.submitted: " + value2 + ", " + selectedValue2); + return null; + } + +} \ No newline at end of file diff --git a/Examples/Ajax/MooToolsExample/Sources/er/ajax/mootools/example/components/MTAjaxExpansionTestPage.java b/Examples/Ajax/MooToolsExample/Sources/er/ajax/mootools/example/components/MTAjaxExpansionTestPage.java new file mode 100644 index 00000000000..e82a006d0f8 --- /dev/null +++ b/Examples/Ajax/MooToolsExample/Sources/er/ajax/mootools/example/components/MTAjaxExpansionTestPage.java @@ -0,0 +1,27 @@ +package er.ajax.mootools.example.components; + +import com.webobjects.appserver.WOActionResults; +import com.webobjects.appserver.WOContext; +import com.webobjects.appserver.WOResponse; + +import er.ajax.mootools.MTAjaxUtils; + +public class MTAjaxExpansionTestPage extends Main { + + public boolean _optionsVisible; + + public MTAjaxExpansionTestPage(WOContext context) { + super(context); + } + + public void appendToResponse(WOResponse response, WOContext context) { + super.appendToResponse(response, context); + MTAjaxUtils.addStylesheetResourceInHead(context, response, "app", "css/ToggleDetails.css"); + } + + public WOActionResults toggleOptions() { + _optionsVisible = !_optionsVisible; + return null; + } + +} \ No newline at end of file diff --git a/Examples/Ajax/MooToolsExample/Sources/er/ajax/mootools/example/components/MTStyledPopUpButtonTestPage.java b/Examples/Ajax/MooToolsExample/Sources/er/ajax/mootools/example/components/MTStyledPopUpButtonTestPage.java new file mode 100644 index 00000000000..98d66c8636f --- /dev/null +++ b/Examples/Ajax/MooToolsExample/Sources/er/ajax/mootools/example/components/MTStyledPopUpButtonTestPage.java @@ -0,0 +1,30 @@ +package er.ajax.mootools.example.components; + +import com.webobjects.appserver.WOContext; +import com.webobjects.foundation.NSArray; +import com.webobjects.appserver.WOActionResults; + +import er.extensions.foundation.ERXStringUtilities; + +public class MTStyledPopUpButtonTestPage extends Main { + + public String _item; + public String _selectedItem; + + public MTStyledPopUpButtonTestPage(WOContext context) { + super(context); + String favFruit = context.request().stringFormValueForKey("FavFruit"); + if(ERXStringUtilities.stringIsNullOrEmpty(favFruit) == false && list().containsObject(favFruit)) { + _selectedItem = favFruit; + } + } + + public NSArray list() { + return new NSArray(new String[] {"Apple", "Banana", "Mango", "Orange", "Pineapple" }); + } + + public WOActionResults selectFruit() { + return null; + } + +} \ No newline at end of file diff --git a/Examples/Ajax/MooToolsExample/WebServerResources/css/ToggleDetails.css b/Examples/Ajax/MooToolsExample/WebServerResources/css/ToggleDetails.css new file mode 100644 index 00000000000..303864ee3c2 --- /dev/null +++ b/Examples/Ajax/MooToolsExample/WebServerResources/css/ToggleDetails.css @@ -0,0 +1,57 @@ +div.personInfo { + padding: 1em; + border: 3px solid rgb(220, 220, 220); + background-color: rgb(240, 240, 240); + -webkit-border-radius: 1em; + margin-bottom: 1em; +} + +h1 { + margin-bottom: 0.1em; + margin-top: 0em; +} + +h1 img { + margin-right: 8px; + border: 1px solid rgb(180, 180, 180); +} + +div.profile { + margin-left: 62px; +} + +div.profile > a { + text-decoration: none; + vertical-align: top; + color: rgb(140, 140, 140); +} + +div.profile > a img { + border: none; +} + +div.profile dl { + margin-left: 19px; +} + +div.profile dt { + text-transform: lowercase; + color: rgb(140, 140, 140); +} + +div.profile dd { + margin-bottom: 0.75em; +} + +a#profile2Link { + background-image: url(../img/triangleRight.gif); + background-repeat: no-repeat; + padding-left: 20px; + margin-left: 62px; + color: rgb(140, 140, 140); + text-decoration: none; +} + +a#profile2Link.expanded { + background-image: url(../img/triangleDown.gif); +} \ No newline at end of file diff --git a/Examples/Ajax/MooToolsExample/WebServerResources/img/avatar.png b/Examples/Ajax/MooToolsExample/WebServerResources/img/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..aaac8468d8eb4891ff56f5330f336dfb05604311 GIT binary patch literal 7668 zcmaKRcQ~Bi*7oSkXwkb-gD|@2b%+{_5;Y7)2{WVjI(nC=LDWPiqKy(QYDkob5~2$c zC88v{PtJRO=l%Zp&i7o;^X$FXweEY}Yp?akzOEf_@bCc{kO>F?0LZj7p|IOg>GqQ# z#=ZSFocrnA4vgOFX5L0O2>h=P#2@K?iv|GXmHge|_O1wTupPq51*O3Gv!k06?Bbxn`AAYvM9*Cf;q0Or z=!q~2d}wSR=xQ(Hz^SANmiL#vB|sv);b4EH8_G-8UxD*qyt23Rzh+@h@V{KVT@^V0 zN0gbK0ay*~i2zGN#D(ldL`A_;QV>xINhv8&L9m#JsF<+G?JFfDDj_Q=B`bCx{O^bJ zHkzk{qbv-n@$Xo-D+NwxZ*O;5VPQW%KZu_=1nuc0EGi=-^Or+ROz74_$SVNl4fhv9 zd2#*207ZD&d%C!LyP#3vzl?A@w2!v}=dIHJNdf8pA6k^xzqjdj!-W0e?!uxFk-sVZ z2y-xki1>u)G`Sv5}t+#Bs_j7Gct zvx^4KXm7NaGuj=jW+VmX(}UZ)p#B>8|Ao-glhs0bdBaim2rZ}r=Pd`s#l=BZ^uC0e zsECG?ikP~JsHnQAii(stR8mb$QbJNxL`GWtA1oAY?}J33y#K*E{4e(Yf5rZ72BiCK zWGKSZ#TVhA;fY3q|CO|?%YWA*@n8A=jdl3%S|tA~R`^zo@ZZw@U#0%XblX3Fr~hf( z+r@ucAA!2c1e2r#&+g0Ep$SYpDd0~ zn)9XYTYb|5<4Ne0EC^2JlXz4>Us9u50+oOr!gzUdOh+EnCYb*4e4f2g15_xsOe&sZ zXIU?ZX=o2>y=b#Z$5wX8z1-lwOWJ+N!8>>}6m}zCx$VfST?_IpD9ceb$T zWwGSl(sin)X;7tj$jfnD)9h`7xTYyz@#P_WVybhDt&6GT8Ta7 z;i2lN7*Qxi9769#>%^chCcUi zPgZ*=@621RO$*yOtPd0PUR`w9{r=`_z;m<{gyCip&78Uqp8KP|cJ2;P|kG3OSKlIo!>)K5oywA`6dUZjT7ceS3tv?pJOc9t9qY8%qv$o(Mkc%P>! zLL=ecP1P+E8!A33R)Dhch^KLhixA~Bz^9YW7KJr3Bn|D?KT?ms|Js*r%Of|YZ{Hmo z^m4BEJHu+2Z7tT-$eIF+G`G4ELMGtuHtME$~3jALFG?;_@0W$ zS9rqDUH(QO7zp7mj|T4KtJZu@*-@qbFp#@jQOP9$K@IAWWcIflRy<4A(tHKvD5YQ! zkx5;6=u@Q_xFpNIWjm368osbSowANyzFvdh_-8X^xA@PEciNQoqAK}LkA`BehS1c% zdy0T;M^%&0O}^00eXv-yu@97cY*x=Rm|;RLzQ)N!oZOUL{fVVHae}&mw67JtxOi>Z zRGvrw0i1c~qdH>y?4r|4@x+X&CH{5HgLNxgNGpxH5p9Y{BD~Ty$NK%vQP^oyb&6iJj%3Fb+xqtz{!_(Q zWNOIECpC>K_L30jak#nDx{&ObAlc*{vM}ol%?V1C5}^Yu_ZUjl{{z=15l>zVS%@3% zb~!Cp0)?_d8fK~EJU46vDRmW~N9iglzw?h|Lhd)}9yxr~mF{=&c6|3$JmuWbyvPZ5 zs1tGLN;vGS`daLZ&q58oyt@R7#hZ@BitK2#d>RJht6Rlq=;EFzN+Ev1#|jBK_B=Qa=`Y6?Lj& zo5;yb24_2B#ZG=OyZQiK(~fV5pQGfJxK>iXW)Hi$!|B->Isj^($TgyS#KG7r98X-S z8($jnOPi^9k-VK>=Y^ff)CkLQGKt9$G;p}KFPYGATl1OZy?nh10YXM8id9WqxuFl6 zU~gRZQqHY3mOtZRm-b=pt4;=N#FD!2c={Nm?v6jIZ|V(SrC`hHr)_-)Vw^fqq&f?` zsr zYf=b}Fckpe2ZnoLlR==YC{CFgV&24)sS?OSUr2EtQgX>{L0-mbGL*78L-&~amuvLL z7&tN#1RCTQ8He^*0ga2@N>?t!uCdEHpy zVGdO@62y_K@iYYIc!)}Q$kc7_on&=PP?<<6CTvVD$?>>K56O0XoD0aqi~W;OwXJG9 zCDNNMof|bsvW8iN=daUG*u4At!(Au`C}9yP^@BX&VGr?J$nn#g^03m;5<5|yXOR!> z#o_sE$>UTl0#9~%M;s09A86|4yG8^=`B@52&d-!Q*l8z;`atK`yM^c=oqGH3bzVbI zLJe6>zomjHmxy}>A~%aIEB@m%=xM;@K?>$4+kP*Tf&LcDAca(loCkN5CI&|=T6Glx z6=@&q3zW$mh`71qEkkDR>^~hJYoguWhdKa^<_KIy4l}5ha!=7=V`Ci`5 zNU0HEL8(1GGgnOH?A$a|p9{CNfov&tz71i`LPV#R&eOK&N~H;>7-IfNd{Y7TgwO8@ zoNhQf<)jO`ZhhGEjfo-roCl(4?;*tq1IY;2s{j`2PVSMHudnxnF(Ss$Q5wZ8| zHcr~-MVI@5ugquSLQd){H0kjIL6n9&Byo}F8~I@h-Bu8K94T#w{wU2(STpQ;#-=-e zEPLl9IFwb2NXMejajGmMu(cyhHZ*@|QkToDxGr(MPp#P4(l1jGoLY`Ga+Eh5ZA{=!>Sw*1^2%T-XCT*7X}OG1mY|*cz3uL^ z=Gu7^ZT(RLmpN3a3f%zC4<$zG2q6pMQGA)T&o)@N$lB1a5{bQ$^VP171*~2~@`3nQ z`)w_A`+4`atysBZ37IB)OPbGD2WRENqlG`NsP!c$ag9MffK-nGj^IBg@53$E&fT=#Gq2^ zG*$YQk84v77mr_417i@22vMLY-#Pj8=jtSBjnHb+(xjqpFZ}D5fh|#pPVLDe>Op02 zfXs`b2=_faGvRST=O6-9k8}Gz1kt|WYsG+7kJ0EkEvJo=98WNEdSg{vJyf<=PIw{OyMiEy1<@WG=$f z(f)6hg6C#CFe>pJLW|ZHZ^NRxa1+Ylp&=b^F<+ZwJFak?qYRq++Y0r4tZ6e6*h9}N z4QMy(FznG}y3ePH!6LXjIFIKZ=z}j+mzBbdmRW7OuBC+^KKkZ(F<_U0ATB5>P`z-L ziF{oA3)`^GhsH@=aRjhO>CnYCJR4KFp!_UvTfJ7~dEPq9{)ZEJpLA$(zw3+S3if&@ zT;=@ooGEIz-P)vB;bf|u$S~3l?bu4yz&}|$+xdq6_|E_%0BX|AA6eq7g6Of5(qbJ3 zx%0#_EBBt$>H!AT8nrc(1w@H=J~1C48&lI@IDCW-0mNgDdvrC*A244_*-&F46mkug z<}Q@1{w1(3)0QVAfyXGc3**$W>M_T8N|mFc+jDg3N)M#t7@1b|rr%JK&! ztrDqU99K8cuhArbCc+~;->UIim*TAe3Mg4wpkoZ=W(P8l+5t?%q}zMh zG)JC$s&A&0NlJW5)84m9_~Hc(Ffc_wZm$0rV)D7i`jRDwuCFCYD{9IoX!|uW6quXi z)~K{=!DoPzX<5f?R5#p4l-$=}T+!nYo>d3wOcg#3?yT*Tssa}0B1s>vCAu zk34;EHO`3fJ5q9>0cMd>oG>+hCn%_ghZMBkI7~tn!fE8zQ*b4_LbtFuwHGY5ko1fb zzoe66qe#~w4)<(S=-GDJT&V+*y1*(yNmtCl%h~LR{ZaO%LCY};6YGqU2nI=Ih_SDE zOFc&ca;dhEt)S~>x|SghPbV4A_kJTQ$-%&2+#<-J$FkC#GQ-V5$ zrNz|h)A(}v5VWQmDw^Lw z4Fy|1p4Z#I;J>dZI{7VDcgQ;MzdR6(h;tod^#RvCw}>LpK-Gv*eIzwVm^ut%z60y zq21DK0AEh=#_H-iMt(Wo-&7T=bFLId|D3I9EuWdn)DOxDDO?AdhuJ!Rf(b8XY?#kWb! z;%SP4G_02UREh!5UpE441JiyIbv71i;89jGJ|bo%Ycf~bG_oY&+c|jLN-J1;V3~^> z$a^ugx!w*D?X$wH-0kk+_|brSuf*kPGf#2VLx`h#^6!Y6I>VTZ0l@ur=iU z>fHavoh^p0v0>qXgIyYD|!QzKwC{ap1gbL8Zjpw~6olU%o|Y zx_6<5yyjVF0_do8e~Q!gb=s?rD6=E01dSEnXrvlgWQe2$v&FZ>o3~6H5R7g;EqX8V z+af!KM4aPOl5Hht_Ir4ewCxYi^NX;{;GJ6KnyI%XHOLcm=t+{^#rdJ{{v%Ug{yz$g zgP_x=_d>SEb*ION9-y%cXPG#(KQ1;_M$_+meZ(RaJ41e55NZtG#}aeXWFMxJGYE~W zUSa%Ht4A7|;us3_kD|Fyhvfe0jUGiiPgd3@6f4L^oPxWANcn>qC5TEaUi7`~IU?E# z`@OSxd&X@gUJ0F@HZdtcp*hZ3s@#_MlyuLADOBnADTV?P(OdV;4j22zVW+EKZPF{Y z_ITz$Yno;bG<{Rs3t$FG7NVW5ukOY_B%uteES0vX$e!tq|Ibou86lq)%yL?Sq&wz1sJUjit!)wiYd|9G`WV%neczkI?lw|9Uho#SGtQE`D zDe-b*s_3lAKonQoQmOv>xoUy{g`uqmMc88vL(=uLmNrE$T}7-)MM6Y7S!6wD0lnl0 z{7D;@KSOnOM*;O-T*fbV!$VWY3s3(nD|p7+rp)!Q918Gc!UzKAH+=C}#Gotr3wUu* zZ4$tnCHu_^KkJ3BejTxDJP6}w*l7>8t?Q;tg0O4%?-o%~$+jpYAauPGVFVu;n#`I; zc@2B*x`qWX!)F{o4g~iOg9nLD)a+vI0>zv47P35BgQYfGa6q_bM2^-1{Ef_^fmMtp z<)f)py5UhnS9Pc+HxTMYA&%>p3zk>khv~r%Br{;wH$iBxn75)teD8r zGR^s(`3pN4+?5Y#$Pu-=(_O0hM{(>3A4+}3FyUvImCzYbZR;B)=_ltR@-HwNT*3CNyP9H}VfcT0l_54xiRZy!<;&{r7VOml? zg3UfcznD0$K@SRJVrPC~GrEaj4J+&(TNy%%6eK$r7#vt^YG!|I^BS9N6t-}=G539Y zYhkZ^M^<^AbM>cF!%TWGm_wY}sKPUJo~~#BQr=G57%=OMvRaqwSKxU%Yx`27P>0=5 z*P%|hn1R?|2;8K+9_67Na3?=JlO`X|YKqZ6793Q?YP)_A(g0ZF>)LEZR}vN-NRi)c z9gWU+4hdCw*pis$|=@#zI))ArO$9^WbaJ|Wnc$AB2a#I*@G86 zx)R!eDiV3eoA}K^q=Y;fwZ(GP&$c?<4y^+a;hSc#swHu2pCt(5=%~L}{u4DDF!I)^ zV*8L5llsK+^Sx9@%=+aikR4!TpU>s|Gad9N&Ky$MFT`8m=)|{~urZt=loD7YdLHu* z^3A~!9He*!i|%L=z-Rm-1=&GpW^7HOC&Ez;9O1 zd@k?+Ag;O3vg&owkB64*VNVN{ha*%rr5y;$nE0fGKMhbxRh4Xe5*%^iEqHXOTkJD-5%+4(FoT;szSc3<-U8%-pDRf^k z&h|;CE)tKXXK)DCgoi?->I8u_iA2{Og(^0OrI}SOO{TiGjzw*)hHR?;Zwr|=TOW@WGnEg{o1Uk}6C_mF6<4dEq+ok;G|_;B4R zpfwO^nQ|@`cjx`*7Zm=%OKuV*hvu<^qg5{o`?}bjgcJ)K(n3G>E*Rl{x~Rn8Bo$RrR0*F{d-TO1~G$Zaf!Je^8XWuzWLp7;HsmPwJ|*clDTOxx>X^Dc`sB&N8hL)7fl zpKnv-)o~Y>@u&789{N{Rw%{5{dB1S0qjeQn#aa)gy97i;5YL2%g}#-?MNk=C^x5Tj z>r14QJfP>OY-D_ryF!m2PoGdP??!mzdFY|S#3eCvN`cS|%2t3Xr7pdaa>ok6Le>d~ zoF$4j_4yrT&aYhVd6^2~t^*lV;aeW%X;X;nYyBv~z%4$>vwO;~RL6(n!r%Qq@WySSpO-? z7^(wQLb}6%Vge%kHbNi}P+VL9Bq}B@4&nm}3xR|Mh3;-~evl|wOdKpM0sPm+dRNWe z)()(vtopB7cOw~A2NcQ`EGX#Z!xL0Nh8yLhnu z&7chPuyKdGqTomu;2%aSYa|*a!+NLmpHpyl{WqqP%y;B17+o61A{2bu-@`8K|8}-P=8}>{}-$BU$KA8;Ou%=SsCUI z_k`K1x+9%||Clrw{vWh}Bt(@!LaLGq!YT^?S<64Mw*Os=(tp(=cqc~i&({8*t^PZ7 z=bt~_e;fC1@NetGT<-kterN0xhdgxvfI1nXtYF|h%a^&GO5g1h;kZZAM$9uaSrwPe z+>p2?aQtM7X|v}QM@AOb@O;gN&;3;Hs4Td_GyncCeqyJsHyAlh-m-O=N!CH&?d4+2 z^=XB~ARXrBbbZg)xvW0bT)X8N(&?aUc39J6(r!$@V$#Ra{NVjWrpChW7rV74UYvoH zX};Pu#m^ljUcV%{jW8{*nmFHhPLdpLCC2f4zkK`aC653`RBF{7QcJ_!H1NLG*0k>} z74<>WqSF+8ZVjIpn%P{USW6nQ=flw72tGI%n%}Herq2=)!vxrCI`+OyAbxUqk>Kcb zeJ&X*!bel=UHmCt-*i#q@ugd8-=fT>V}|}AXecKO6A@428DNZzjA0XayJ-=U+wtw? zmmDPjg?v2%GuY+%^Y>H8g!I8;2=7GQ{__fss+I>k{%~{@=#a)n6WKiJJntfRHH=A& zzjVuKU{2%@OQ?WCxzf)(c!Nm<9kcxU_zyab=(Ewa^v9~Q(|m!j-8lR=Rk72Fb#28P z)85)FGR;%tDMS4`8%!~VZRPg73_an_8STHW0_2JI+4dPYoxvv@8(=zBw% za65wEgm2z9q(hvGwYWgIukgK;{fm!Uk)Z0;N#V{FO8(Oo$Ik~Wn!5~Ao{ms_$)>lD zBxU1=(mvDdxGw4+?veix?w*!}0U9{Ex9&Bga%ch*sQTFB+Kw}I!P-}{~Ua^sH` zJ0-eBEx8=JzD@DgB@h#%mqh`k+Y5yt`VSR$_pPEabL+k)lRk6P7q{1^yWK5jb5f%@ zGmSSR3p`pK*y3kQ2w8r&z0@EvaCfcx)FUJ!<6O<78E=K-;kLNWi?>sg@u>7Iu53e@ zjB`y5rv%pH6z~!rHUTpNpVBE>pKoBWR`*~&*68hwQ^|U<%cjf1#&)fi+=5FQ8nhte zZpsz7STk1~HS9SNYQQ;nn&a{CG!Mv-XCb7{(OFp&%XHGY^*T5r3cFydnExV$`%IHj zyq31O|LR6_F&FNIpm6Q|tP}pq0J%Kx7ezv2p|#{qc&O;+Yh{eII7olz)9Nhee_eeh ziB`zs5vXlciR-5O`JrMjm`RqbP%N(g(L@<(LsoYNfeRLPWYX$60l_d)L<_KG5D)9o zcHU#-@NZA4G|K1CVLoO|L-AKd`KE#%^*SN%zFlyA1u7#b)4xq@Qs|H+P0|@_?M+TO zEKZ)S!WstjpJ+why3VyM1fR=oNlAwj)* zjwH9?z9|7UYRH~irwuyvB7NIb{`F)gy&&j%uaWWm{0JaFJ-58w*0<541&2N=`oP2$ zt9FwL3mHEnmsd1c{BX1>=Qq#I*ONY&m352x8 z-CpafmgA{v1~U*G;56)?ta`L9yIL6@_ESu=*wlV$O4RaGI)j5>M*g~EY~(6=~ooy2WNvsjh&pq zgM~$!-`Xhq8b?;iL@UDEzi&}tYe~S+Zq&`B1t2Gse3Drk-!4XXC+C?ZM-(#nzHz)e zcLP7gfHdvMlu1hYj(WydHsn;~s9u}Vke8!M?~DKsmVcu-PGaSI*%p3`v&k9jxB})Y zV&ptC?BCn5HKjp3H#* zqMZEMjv($j7N8r~YgZ68VC;LLQjNu!<#@cy?FhHpC z(yr=J*y;@s>e?%rL-tmePY)NUzUVkd*c8w0sPyyw84&^54@w9gE^8K(RvS~K{VoTw z)E1UOLawJxwlX*qLa9(Px6{Dp#XG|Bqb6H^j&kNBkzH{X@mf%p2cYyK`m9aYmgT^~ z$ud^!S=Y!@d5U=6t{(5teCGX=TG*PL(L)2y(mrd+gQ4im`br3*VELQr=icSz0OTZM zcnoWv_9t*9ydbs-e-@t%TKOs}u~BcnXmo63-<~4xc)6EfPIDI>JbZRanVQ0lPRO+W zoE`AJ^iL+{#_4Wd}T=<@2msX4@+^g>tUP(-6~SsiXAcnmPQ0LD5stV3)yci zf58C2*38on8A;?V>UfZd?_16mb+WkzV0^Lf95`-+>}K&c554~>ndQEC356Scpy@!` zl{NQ}{ftNL4TT<|=qx8GRrx{mO8y&2kP6U~#6Z&oT_(WU2jp+NdmYbCt06eqiY z>bI`eX26-V-ifyl1^II>Eb_+yR%IeqyoZ*T#4ZHJ@*=(Zsl>@DkzE5;1Jn!S;F5Cv zT$)HY+s~d_8oe=F0SzmuuOFSXi0{uuiab&fHa)Kol+B}wTr3ZzJ14}rLtf7Z=H%I0 zY5>v<)4+J+Bpu(L_9#E%N{*fgBp+rKUIDFzjfUuk9LX^)+K=10a@)zu{WUUrsy_eA zv#-ZNcS68qXkC(AtnEc&(yuqfba*28h6bcy00TsZWxWTxuR~2pZ_D5jEJR9n_93ot zRf=E0`O_8-RPt!`QW!YxnYu+7WLACOPPE5$S~w@23x^<6X+Quw|J6fansd4J@mJsU z!kPTeGyT9B^!cF)`vi%6+ZnR`Uz1epUkp#|N$cp+Qa$-JeLjHONUI zOxV`NNos1M_tSbu3cPn1T=K^BFDFVkuyaVA6wWC$9pt5Ka$U?+c$pw|KLyka3~Kbp zrA~z6)c2Hdg(EDnQ0-}Lmej#pQMko?5xfK%1|49L$gp`Z-d`-?>KLi!6h&QuX`;&q)x$m8k9%DV zKO|+f6J-<&&~|kM5PgykCS#fOlBUvYTnzlO zNMVS7VGVD)WL1#Aj*p#CAW}7suA1zhnD^hpBYX5}S6GaJV3IvI)m`B)%{OyPXgY~{ ztAdF{ZQ5y8b= z#*N$4&~zWzc19lH>KC4_u-*rD{mtBV>Tv@9L!vl#*tm{Pah`mwWZ0x`O^+x)ARHB$ zw1l$7IgU}F#7-zWXUoow_qW)5-Z?z}T1dWt`8VTaKc0dt62pz-`{i_mPJD1E#n`T8 zzPLg9_syB~X^HAz{;b`ijB{-nsuc#>DT33cY_%^h1XVg%6atGfbg-605p&_`MS6{| zgA&Y{CoLv~DB?zzk^<>MNtzgwV+5r1dhxW4#G#?Var(~-OT7i{<@R7-h6UZ|;&LUb z<(Lr;b?dx(;(?2Mo6TUQP()j*mQ|A>UGOIXkq4Zf#@Pts%&?=0$mbn_ArUr2J%xmk z!W5gT^Z5qNcK1=u6ecJVp9JoJ-6Cy~?Ac>1fi65I0J*s+x&sZNvpQ-w6GgKOH|*z5cy?rX3M;Z20n`tgzdd3!E7{uK;b|fO z%;Bw2`Y4vZ8IA8Q*d^vod~t zV41HGtghh&RkpCtI0F?D9=(r||sqP>s8zG~gL@8DG9^Lt__Y^HUQTK3H6 zw&~zxZbYYZFYq_~MDF&yVxor}Yig!0Gwo9p-Lv6Uk*V98^*Q7%0P*8wCGg_tqGJw^ zB5VOPTE8hX=EW7nb?k;Hpg6ocvQ6wp6qeg^=#X^L9_D2{(SVfO1PCR)`y8s(3Udbzy;xh2MH~z>R z$IntoJUYIV=gBK5Zf**`Pw2W}bSvLjt%Eo^=S$JIHSZ4zCW2VG!v^NoGnPXZ#KlF3 zzO^5V0oQvUTJKInm(4p@^ZB8>Z`;+}n`sp}{7$b@PD)fx?g$gN!+;iU17CFbsSrcxAr&^-}%SRS#UwC=lE~my1@WV9WV?$b% z0%&A%C7d>96rUw|aR|wkUk^|xD!lfcTUclz_@ViwDKJA_Ytey7D#jW zBX?;~Tl`dbLDvTH${-u2ep@jeswmC73k|mKISq0m~TSpyWPjqG3eMk$C!(8N)c?=Va|rzydtPE z0?+q$#37R345!|`&-@MRuv+*{I$!NDP3l&8MXTN^_)_l28c+N+%oEEIH#ahkid)gz zRgre|;839(RlqHO?2AzAk%&Nd1{ndUzH$$lD6f*%Ci7Ob(ZOT%IF|QHL=)-Tbpz9v za#wwrY8l_^wwcf|367(s#6Dk~)eZKqtpkcG9CUb33s1SM<@Sl~*4}shu)R&-Vrvwe zC0M@q#I6IXZr&UWo(StvfB8Z}b-kJ#M&O^KJv)Ku+h(VYWl#IEWg3vLRzx9I#hwOE zta(8jTI`~AUCb*((z+DmXZkgj!G>O`0EYFj;ELG^oPd+f_N5uTtO0p^3LB-;QGZdF zekEYSG6ieA7xqvv0m}_N?ldg^S|{?2YEkJLVdjJ%f1j#}aOT?Esft#YB-StHdVgNR+dd}ViUf@j;-daLOtuX-b|OOkf!o|af5E0H_nk)Nfl#a z3EtG|V2KF{|V=B}0h!lx!Ch_aY9nQg+Lg^konuL{#BV`QY&bva!THco!r!<0#Wcv>s_X8 zJxJbf9-kzGU2>_dk$LPNn#0^iHtTmu~w@KBy{I3qbc1QAs_vP%b1no8etIs00R>k#PC)9m1rkKJq5T$RgTDg2@>Zu4ow`}L@}pCW*RRcjiO&v4Mf!HE>A&qwqD z`BChU$5ZT&&tl8)<-hL=kNIzJK?WkoKu_D_tQB&iG|g5NRq}s)x@yj3S~OWyQOS!_t8Fji%&XY~vJd6a5KojWU}Yegcj={QYzW-^nS; zZE7oWDS<6Q0C(_jHgqZ{S8`Rq^h*v|(g{GfMHRH4p2c)zFM#pM1_rR17{meAr^#vFl^JY|q6j0>vom zgX&fXi}}`FYs1bd{41z?@-a~#>5cj7h()|xg$8dnYr2qXN#l{jhVI}s8`7`yKewdC-nCo=5WlI30ObSN}!nhT7vL zlV`0)&L?HeQaU@L>S-IxpDy4e<}2_oO?AyFew014!tFxSeod}FNY;)%Nk(TN+%8K- z%+`gvIby&8&#`Or3GU_1e0B6yqIZ379jTgN8qR@OIx3`Hb9e3myNBe|(6cP5<=hsO`b2bM6*XOiFFp$z7Ut?D z-WpiNnArbTs%S4`?>Un`CV7@=Bmagylgu1Dhv7_qID3VL?JcAx<8Utr_2jtGZ)^e& zN~)tniVLx8ELY`7UnV^lkFw3f3$|u1>1vS-#7QS4?%K-@2$6SFkt#jM1Q8C@y9MZe zW$J@GGojmzp6?#`Y#S-*X0V-ZY$~$7-zGT6mu;vFG*TG9GE>~Re3^pQFN;b1au47z zTYXZ9cyuj{kA5EF9d!M(v3a#H6Zn9gis&R*t6W~{)u)h__5?C{OrucY;`pw^jHGlS zLq2#kmifL}fk6HCC5w9(;a`vDMQajE_2^BA`M3R;GKW95-`*DjXtC8q=7EM;|NOLp MsAwryDq4p85BTa|{r~^~ literal 0 HcmV?d00001 diff --git a/Examples/Ajax/MooToolsExample/WebServerResources/img/triangleDown.gif b/Examples/Ajax/MooToolsExample/WebServerResources/img/triangleDown.gif new file mode 100644 index 0000000000000000000000000000000000000000..89af7776b4ef543bdd45891760ecb6c6f2e413b7 GIT binary patch literal 597 zcmZ?wbhEHb_K_wV1!moMMEd2{2&jqBI1KXKy3`}gmkJ$trw>(*1JPAMoT zeEIU_$dMzbPoLhrdGnz|ht8ir|MlzF-Me>h+qUiBzkhGvzTLik`|sbs4ji7cN{lcI+4v6VtbE-;N(Y ze(l<|bLY-ozkdDV#fv+4?p(KST|q%XM@Ps0{rhj-y0vT9t_KeuaB*?{`0?ZA%a=E9 z+_-=L{+&B_WMpK@%F5i_+~nlsZr{GWVZ(;d&`=Q(k$wC2UA=ns;lqcKk&(H%xgS4% zWME+U4+cQS-~@_4Sr{1@d>C{<&I82>1N){1pC%tqV@^e0Yr*DbDH%sG9yJMJJ|>Z7 zah_>P-t)K_nYCy52=H0VTRG2-naPJuU)Ebx&U2d_oA*Ku850HucYChGHU{2;9J2hJ z^TfQ)d#MY|<5zZ3UFmeeW2Gi5KkrIQGcRZMl@iLjLQ*Sjy$n|>2|FmTn66~E+c{5% zncGK7fnj2n<31i&mRf~IhvTgw<}4{13<($7d0A9cZUh`)ZDbIYG+Zgr(AXoOHOYXB Hg~1vC3Afu& literal 0 HcmV?d00001 diff --git a/Examples/Ajax/MooToolsExample/WebServerResources/img/triangleRight.gif b/Examples/Ajax/MooToolsExample/WebServerResources/img/triangleRight.gif new file mode 100644 index 0000000000000000000000000000000000000000..5213d3d3ed1b435091c7e4ed4dfa9a2188ec66fe GIT binary patch literal 596 zcmZ?wbhEHbeQ*|=;$3gc5K_W?bWMS-@ku9eE9I6KYuP>ym<2D$-R5` zZr!@|=g*)2{{8#>`SZJX@BaS%`|H=Q-Me?6K7IPop+moa|2}czL}X;-g$ozV4`SRt`rAznk-+%Dn!Lw)2 z#KgpA&YU@U^5o5%H($Pd`P;W|2M!##ckkYwJ$pWV`t}FJHdAef#!?4I3UleE9tN^Xu2IZ{NPXxVU)BmMw4Iyg7RGXjWDh2M5Rc_3IfJ z82*C+kTGb1;!hSv1_o~i9gqt_al*j9vBA5^o6m+pkyD1RxmlFMgPBc1k=a8+uvt(< z*G$xFzNx&k2v3tRH;WhR{53AzV&2vshVw1mR<5!0u$SdxpU>#2WuZD>K#GCOYRy4U zPjhW!FAgClhcoBSsW5rTFd0eQ@N{?DafLxjV7|DgxcnMk12Ihx<@q{y)_6(VN_#6X z%e_ceRq~j~=FOE7QSj*ca%K%SjS9n#gDfg?LM0v#7&#l5dRS}=5*3;mg-s+_nHa1A D*~;Ik literal 0 HcmV?d00001 diff --git a/Frameworks/Ajax/MooTools/Components/MTAjaxAutoComplete.api b/Frameworks/Ajax/MooTools/Components/MTAjaxAutoComplete.api new file mode 100644 index 00000000000..ee10314e66c --- /dev/null +++ b/Frameworks/Ajax/MooTools/Components/MTAjaxAutoComplete.api @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Frameworks/Ajax/MooTools/Components/MTAjaxExpansion.api b/Frameworks/Ajax/MooTools/Components/MTAjaxExpansion.api new file mode 100644 index 00000000000..46096021d35 --- /dev/null +++ b/Frameworks/Ajax/MooTools/Components/MTAjaxExpansion.api @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Frameworks/Ajax/MooTools/Components/MTERAttachmentFlexibleUpload.api b/Frameworks/Ajax/MooTools/Components/MTERAttachmentFlexibleUpload.api new file mode 100644 index 00000000000..32740a12b9b --- /dev/null +++ b/Frameworks/Ajax/MooTools/Components/MTERAttachmentFlexibleUpload.api @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Frameworks/Ajax/MooTools/Components/MTStyledPopUpButton.api b/Frameworks/Ajax/MooTools/Components/MTStyledPopUpButton.api new file mode 100644 index 00000000000..70f673b75bc --- /dev/null +++ b/Frameworks/Ajax/MooTools/Components/MTStyledPopUpButton.api @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxAutoComplete.wo/MTAjaxAutoComplete.html b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxAutoComplete.wo/MTAjaxAutoComplete.html new file mode 100644 index 00000000000..60f39bdb958 --- /dev/null +++ b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxAutoComplete.wo/MTAjaxAutoComplete.html @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + window.addEvent('domready', function() { + var div = $(''); + + document.getElementById('').appendChild(div); + + + document.getElementsByTagName('body')[0].appendChild(div); + + }); + + + + + + \ No newline at end of file diff --git a/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxAutoComplete.wo/MTAjaxAutoComplete.wod b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxAutoComplete.wo/MTAjaxAutoComplete.wod new file mode 100644 index 00000000000..d3b3099703f --- /dev/null +++ b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxAutoComplete.wo/MTAjaxAutoComplete.wod @@ -0,0 +1,79 @@ +NotDisabled: WOConditional { + condition = ^disabled; + negate = true; +} + +Disabled: WOConditional { + condition = ^disabled; +} + +Content: WOComponentContent { +} + +ShowItem: WOConditional { + condition = true; +} + +ShowList : WOConditional { + condition = false; +} + +TextField: WOTextField { + autocomplete = "off"; + class = ^class; + id = fieldName; + disabled = ^disabled; + name = fieldName; + value = stringValue; + size= ^size; + onblur = ^onblur; + onchange = ^onchange; + onfocus = ^onfocus; + accesskey = ^accesskey; + tabindex = ^tabindex; + default = ^default; + style = ^style; + type = ^type; + results = ^results; +} + +HasIndicator : WOConditional { + condition = ^indicatorFilename; +} + +Indicator : WOImage { + id = indicatorName; + class = "autocomplete_indicator"; + framework = ^indicatorFramework; + filename = ^indicatorFilename; + style = "display: none"; +} + +ZIndexContainer : WOGenericContainer { + elementName = "div"; + id = zcontainerName; + style = "position: absolute; top: 0px; left: 0px; z-index: 1000;"; +} + +AutoCompleteContainer : WOGenericContainer { + elementName = "div"; + class = "auto_complete"; + id = divName; +} + +ZIndexContainerName: WOString { + value = zcontainerName; +} + +hasContainerId : WOConditional { + condition = ^containerId; +} + +containerId : WOString { + value = ^containerId; +} + +else : WOConditional { + condition = ^containerId; + negate = true; +} \ No newline at end of file diff --git a/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxAutoComplete.wo/MTAjaxAutoComplete.woo b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxAutoComplete.wo/MTAjaxAutoComplete.woo new file mode 100644 index 00000000000..a076a051a7e --- /dev/null +++ b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxAutoComplete.wo/MTAjaxAutoComplete.woo @@ -0,0 +1,4 @@ +{ + "WebObjects Release" = "WebObjects 5.0"; + encoding = "UTF-8"; +} \ No newline at end of file diff --git a/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxExpansion.wo/MTAjaxExpansion.html b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxExpansion.wo/MTAjaxExpansion.html new file mode 100644 index 00000000000..86c3e8b2402 --- /dev/null +++ b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxExpansion.wo/MTAjaxExpansion.html @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxExpansion.wo/MTAjaxExpansion.wod b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxExpansion.wo/MTAjaxExpansion.wod new file mode 100644 index 00000000000..57490141221 --- /dev/null +++ b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxExpansion.wo/MTAjaxExpansion.wod @@ -0,0 +1,55 @@ +AjaxUpdateContainer : MTAjaxUpdateContainer { + class = ^class; + id = id; + onRefreshComplete = onExpansionComplete; +} + +Content : ERXWOComponentContent { + +} + +EscapedLinkString : WOString { + value = jsEscapedString; +} + +Expanded : WOConditional { + condition = expanded; +} + +ExpandedValue : WOString { + value = expanded; +} + +HasEscapedLinkString : WOConditional { + condition = jsEscapedString.length; +} + +IsAjaxRequest : WOConditional { + condition = isAjaxRequest; +} + +LabelContent : ERXWOComponentContent { + templateName = "label"; +} + +LinkID : WOString { + value = linkID; +} + +ToggleLink : MTAjaxUpdateLink { + accesskey = ^accesskey; + action = toggle; + class = linkClass; + elementName = ^elementName; + id = linkID; + onComplete = ^onComplete; + onFailure = ^onFailure; + onLoading = ^onLoading; + onSuccess = ^onSuccess; + updateContainerID = id; +} + +ToggleLinkString : WOString { + escapeHTML = false; + value = string; +} \ No newline at end of file diff --git a/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxExpansion.wo/MTAjaxExpansion.woo b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxExpansion.wo/MTAjaxExpansion.woo new file mode 100644 index 00000000000..a076a051a7e --- /dev/null +++ b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTAjaxExpansion.wo/MTAjaxExpansion.woo @@ -0,0 +1,4 @@ +{ + "WebObjects Release" = "WebObjects 5.0"; + encoding = "UTF-8"; +} \ No newline at end of file diff --git a/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTERAttachmentFlexibleUpload.wo/MTERAttachmentFlexibleUpload.html b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTERAttachmentFlexibleUpload.wo/MTERAttachmentFlexibleUpload.html new file mode 100644 index 00000000000..3171b4d3249 --- /dev/null +++ b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTERAttachmentFlexibleUpload.wo/MTERAttachmentFlexibleUpload.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTERAttachmentFlexibleUpload.wo/MTERAttachmentFlexibleUpload.wod b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTERAttachmentFlexibleUpload.wo/MTERAttachmentFlexibleUpload.wod new file mode 100644 index 00000000000..bae7d112afd --- /dev/null +++ b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTERAttachmentFlexibleUpload.wo/MTERAttachmentFlexibleUpload.wod @@ -0,0 +1,27 @@ +AjaxFlexibleFileUpload : WOSwitchComponent { + WOComponentName = "MTAjaxFileUpload"; + filePath = filePath; + finalFilePath = finalFilePath; + keepTempFile = true; + succeededAction = uploadSucceeded; + allowCancel = ^allowCancel; + cancelLabel = ^cancelLabel; + canceledAction = ^canceledAction; + canceledFunction = ^canceledFunction; + cancelingText = ^cancelingText; + failedAction = ^failedAction; + failedFunction = ^failedFunction; + finishedAction = ^finishedAction; + finishedFunction = ^finishedFunction; + refreshTime = ^refreshTime; + startedFunction = ^startedFunction; + succeededFunction = ^succeededFunction; + autoSubmit = ^autoSubmit; + injectDefaultCSS = ^injectDefaultCSS; + selectFileButtonClass = ^selectFileButtonClass; + selectFileLabel = ^selectFileLabel; + cancelButtonClass = ^cancelButtonClass; + clearButtonClass = ^clearButtonClass; + id = ^id; + clearUploadProgressOnSuccess = ^clearUploadProgressOnSuccess; +} \ No newline at end of file diff --git a/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTERAttachmentFlexibleUpload.wo/MTERAttachmentFlexibleUpload.woo b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTERAttachmentFlexibleUpload.wo/MTERAttachmentFlexibleUpload.woo new file mode 100644 index 00000000000..a076a051a7e --- /dev/null +++ b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTERAttachmentFlexibleUpload.wo/MTERAttachmentFlexibleUpload.woo @@ -0,0 +1,4 @@ +{ + "WebObjects Release" = "WebObjects 5.0"; + encoding = "UTF-8"; +} \ No newline at end of file diff --git a/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTStyledPopUpButton.wo/MTStyledPopUpButton.html b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTStyledPopUpButton.wo/MTStyledPopUpButton.html new file mode 100644 index 00000000000..34c5a41fcc2 --- /dev/null +++ b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTStyledPopUpButton.wo/MTStyledPopUpButton.html @@ -0,0 +1,9 @@ + + + + + + + + var = new FancySelect('', ); + \ No newline at end of file diff --git a/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTStyledPopUpButton.wo/MTStyledPopUpButton.wod b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTStyledPopUpButton.wo/MTStyledPopUpButton.wod new file mode 100644 index 00000000000..dd9a948b898 --- /dev/null +++ b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTStyledPopUpButton.wo/MTStyledPopUpButton.wod @@ -0,0 +1,45 @@ +ID : WOString { + value = id; +} + +Options : AjaxOptions { + options = createAjaxOptions; +} + +SelectionPopUpButton : WOPopUpButton { + disabled = ^disabled; + displayString = ^displayString; + escapeHTML = ^escapeHTML; + id = id; + item = ^item; + list = ^list; + name = ^name; + noSelectionString = ^noSelectionString; + selection = ^selection; +} + +SelectionNonNullConditional : WOConditional { + condition = selectionIsDefined; +} + +SelectedValuePopUpButton : WOPopUpButton { + disabled = ^disabled; + displayString = ^displayString; + escapeHTML = ^escapeHTML; + id = id; + item = ^item; + list = ^list; + name = ^name; + noSelectionString = ^noSelectionString; + selectedValue = ^selectedValue; + value = ^value; +} + +SelectedValueNonNullConditional : WOConditional { + condition = selectedValueIsDefined; +} + +ScriptContainer : WOGenericContainer { + elementName = "script"; + type = "text/javascript"; +} \ No newline at end of file diff --git a/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTStyledPopUpButton.wo/MTStyledPopUpButton.woo b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTStyledPopUpButton.wo/MTStyledPopUpButton.woo new file mode 100644 index 00000000000..a076a051a7e --- /dev/null +++ b/Frameworks/Ajax/MooTools/Components/Nonlocalized.lproj/MTStyledPopUpButton.wo/MTStyledPopUpButton.woo @@ -0,0 +1,4 @@ +{ + "WebObjects Release" = "WebObjects 5.0"; + encoding = "UTF-8"; +} \ No newline at end of file diff --git a/Frameworks/Ajax/MooTools/Sources/er/ajax/mootools/MTAjaxAutoComplete.java b/Frameworks/Ajax/MooTools/Sources/er/ajax/mootools/MTAjaxAutoComplete.java new file mode 100644 index 00000000000..62699cf6603 --- /dev/null +++ b/Frameworks/Ajax/MooTools/Sources/er/ajax/mootools/MTAjaxAutoComplete.java @@ -0,0 +1,288 @@ +package er.ajax.mootools; + +import java.util.Enumeration; +import java.util.Iterator; +import java.util.List; + +import com.webobjects.appserver.WOActionResults; +import com.webobjects.appserver.WOContext; +import com.webobjects.appserver.WOElement; +import com.webobjects.appserver.WORequest; +import com.webobjects.appserver.WOResponse; +import com.webobjects.foundation.NSArray; +import com.webobjects.foundation.NSDictionary; +import com.webobjects.foundation.NSMutableArray; +import com.webobjects.foundation.NSMutableDictionary; + +import er.ajax.AjaxComponent; +import er.ajax.AjaxOption; +import er.ajax.AjaxOptions; +import er.ajax.AjaxUtils; +import er.extensions.foundation.ERXStringUtilities; +import er.extensions.foundation.ERXValueUtilities; + +public class MTAjaxAutoComplete extends AjaxComponent { + + public String divName; + public String fieldName; + public String indicatorName; + + public MTAjaxAutoComplete(WOContext context) { + super(context); + } + + @Override + protected void addRequiredWebResources(WOResponse res) { + // TODO Auto-generated method stub + MTAjaxUtils.addScriptResourceInHead(context(), res, "MooTools", MTAjaxUtils.MOOTOOLS_CORE_JS); + MTAjaxUtils.addScriptResourceInHead(context(), res, "MooTools", "scripts/plugins/autocomplete/AutoCompleter.js"); + } + + /** + * Overridden to set the IDs for the field and the div tag. + */ + public void awake() { + super.awake(); + divName = safeElementID() + "_div"; + fieldName = safeElementID() + "_field"; + indicatorName = safeElementID() + "_indicator"; + } + + public void sleep() { + divName = null; + fieldName = null; + indicatorName = null; + super.sleep(); + } + + /** + * Overridden because the component is stateless + */ + public boolean isStateless() { + return true; + } + + /** + * Overridden because the component does not synch with the bindings. + */ + public boolean synchronizesVariablesWithBindings() { + return false; + } + + public String indicator() { + String indicator = (String)valueForBinding("indicator"); + if (indicator == null && valueForBinding("indicatorFilename") != null) { + indicator = "'" + indicatorName + "'"; + } + return indicator; + } + + protected NSDictionary createAjaxOptions() { + NSMutableArray ajaxOptionsArray = new NSMutableArray(); + ajaxOptionsArray.addObject(new AjaxOption("tokens", AjaxOption.STRING_ARRAY)); + ajaxOptionsArray.addObject(new AjaxOption("frequency", AjaxOption.NUMBER)); + ajaxOptionsArray.addObject(new AjaxOption("minChars", AjaxOption.NUMBER)); + ajaxOptionsArray.addObject(new AjaxOption("indicator", indicator(), AjaxOption.SCRIPT)); + ajaxOptionsArray.addObject(new AjaxOption("updateElement", AjaxOption.SCRIPT)); + ajaxOptionsArray.addObject(new AjaxOption("afterUpdateElement", AjaxOption.SCRIPT)); + ajaxOptionsArray.addObject(new AjaxOption("onShow", AjaxOption.SCRIPT)); + ajaxOptionsArray.addObject(new AjaxOption("fullSearch", AjaxOption.BOOLEAN)); + ajaxOptionsArray.addObject(new AjaxOption("partialSearch", AjaxOption.BOOLEAN)); + ajaxOptionsArray.addObject(new AjaxOption("defaultValue", AjaxOption.STRING)); + ajaxOptionsArray.addObject(new AjaxOption("select", AjaxOption.STRING)); + ajaxOptionsArray.addObject(new AjaxOption("autoSelect", AjaxOption.BOOLEAN)); + ajaxOptionsArray.addObject(new AjaxOption("choices", AjaxOption.NUMBER)); + ajaxOptionsArray.addObject(new AjaxOption("partialChars", AjaxOption.NUMBER)); + ajaxOptionsArray.addObject(new AjaxOption("ignoreCase", AjaxOption.BOOLEAN)); + ajaxOptionsArray.addObject(new AjaxOption("activateOnFocus", AjaxOption.BOOLEAN)); + NSMutableDictionary options = AjaxOption.createAjaxOptionsDictionary(ajaxOptionsArray, this); + return options; + } + + /** + * Overridden to add the initialization javascript for the auto completer. + */ + public void appendToResponse(WOResponse res, WOContext ctx) { + super.appendToResponse(res, ctx); + boolean isDisabled = hasBinding("disabled") && ((Boolean) valueForBinding("disabled")).booleanValue(); + if ( !isDisabled ) { + boolean isLocal = hasBinding("isLocal") && ((Boolean) valueForBinding("isLocal")).booleanValue(); + if (isLocal) { + StringBuffer str = new StringBuffer(); + boolean isLocalSharedList = hasBinding("isLocalSharedList") && ((Boolean) valueForBinding("isLocalSharedList")).booleanValue(); + String listJS = null; + if (isLocalSharedList) { + String varName = (String) valueForBinding("localSharedVarName"); + NSMutableDictionary userInfo = AjaxUtils.mutableUserInfo(res); + if (userInfo.objectForKey(varName) == null) { + String ljs = listeJS(); + AjaxUtils.addScriptCodeInHead(res, ctx, "var " + varName + " = " + ljs + ";"); + userInfo.setObjectForKey(ljs, varName); + } + listJS = varName; + } else { + listJS = listeJS(); + } + str.append("\n"); + res.appendContentString(String.valueOf(str)); + } else { + String actionUrl = AjaxUtils.ajaxComponentActionUrl(ctx); + AjaxUtils.appendScriptHeader(res); + res.appendContentString("new Request.Autocompleter('"+fieldName+"', '"+divName+"', '"+actionUrl+"', "); + AjaxOptions.appendToResponse(createAjaxOptions(), res, ctx); + res.appendContentString(");"); + AjaxUtils.appendScriptFooter(res); + } + } + } + + String listeJS() { + StringBuffer str = new StringBuffer(); + str.append("new Array("); + NSArray list = (NSArray) valueForBinding("list"); + int max = list.count(); + String cnt = ""; + boolean hasItem = hasBinding("item"); + for (int i = 0; i < max; i++) { + Object ds = list.objectAtIndex(i); + if (i > 0) { + str.append(","); + } + str.append("\n\""); + if (hasItem) { + setValueForBinding(ds, "item"); + } + Object displayValue = valueForBinding("displayString", valueForBinding("item", ds)); + str.append(displayValue.toString()); + // TODO: We should escape the javascript string delimiter (") to keep the javascript interpreter happy. + //str.append(displayValue.toString().replaceAll("\"", "\\\\\\\\\"")); // doesn't work + str.append(cnt); + str.append("\""); + } + str.append(")"); + return String.valueOf(str); + } + + public String stringValue() { + String strValue = null; + if (hasBinding("selection")) { + Object selection = valueForBinding("selection"); + if (selection != null) { + if (hasBinding("displayString")) { + setValueForBinding(selection, "item"); + strValue = displayStringForValue(valueForBinding("value")); + } + else { + strValue = String.valueOf(selection); + } + } + else + strValue = (String) valueForBinding("value"); + } + else if (hasBinding("value")) { + strValue = (String) valueForBinding("value"); + } + return strValue; + } + + protected String displayStringForValue(Object value) { + Object displayValue = valueForBinding("displayString", valueForBinding("item", value)); + String displayString = displayValue == null ? null : displayValue.toString(); + return displayString; + } + + protected int maxItems() { + int maxItems = ERXValueUtilities.intValueWithDefault(valueForBinding("maxItems"), 50); + return maxItems; + } + + public void setStringValue(String strValue) { + if (hasBinding("selection")) { + Object selection = null; + if (strValue != null) { + NSArray values = (NSArray) valueForBinding("list"); + int maxItems = maxItems(); + int itemsCount = 0; + for(Enumeration e = values.objectEnumerator(); e.hasMoreElements() && itemsCount++ < maxItems;) { + Object value = e.nextElement(); + setValueForBinding(value, "item"); + String displayString = displayStringForValue(value); + if (ERXStringUtilities.stringEqualsString(displayString, strValue)) { + selection = value; + break; + } + } + } + setValueForBinding(selection, "selection"); + } + setValueForBinding(strValue, "value"); + } + + public void takeValuesFromRequest(WORequest request, WOContext context) { + super.takeValuesFromRequest(request, context); + } + + protected void appendItemToResponse(Object value, WOElement child, boolean hasItem, WOResponse response, WOContext context) { + response.appendContentString("
  • "); + if(hasItem && child != null) { + setValueForBinding(value, "item"); + context._setCurrentComponent(parent()); + child.appendToResponse(response, context); + context._setCurrentComponent(this); + } else { + if(hasItem) { + setValueForBinding(value, "item"); + } + response.appendContentString(displayStringForValue(value)); + } + response.appendContentString("
  • "); + } + + /** + * Handles the Ajax request. Checks for the form value in the edit field, + * pushes it up to the parent and pulls the "list" binding. The parent is + * responsible for returning a list with some items that match the current value. + */ + public WOActionResults handleRequest(WORequest request, WOContext context) { + // String inputString = request.contentString(); + + String fieldValue = context.request().stringFormValueForKey(fieldName); + setValueForBinding(fieldValue, "value"); + + WOResponse response = AjaxUtils.createResponse(request, context); + response.appendContentString("
      "); + + int maxItems = maxItems(); + int itemsCount = 0; + Object values = valueForBinding("list"); + WOElement child = _childTemplate(); + boolean hasItem = hasBinding("item"); + if (values instanceof NSArray) { + for(Enumeration valueEnum = ((NSArray)values).objectEnumerator(); valueEnum.hasMoreElements() && itemsCount++ < maxItems;) { + appendItemToResponse(valueEnum.nextElement(), child, hasItem, response, context); + } + } + else if (values instanceof List) { + for(Iterator iter = ((List)values).iterator(); iter.hasNext() && itemsCount++ < maxItems;) { + appendItemToResponse(iter.next(), child, hasItem, response, context); + } + } + response.appendContentString("
    "); + return response; + + } + + public String zcontainerName() { + return "ZContainer" + divName; + } + +} diff --git a/Frameworks/Ajax/MooTools/Sources/er/ajax/mootools/MTAjaxExpansion.java b/Frameworks/Ajax/MooTools/Sources/er/ajax/mootools/MTAjaxExpansion.java new file mode 100644 index 00000000000..8a11090983e --- /dev/null +++ b/Frameworks/Ajax/MooTools/Sources/er/ajax/mootools/MTAjaxExpansion.java @@ -0,0 +1,19 @@ +package er.ajax.mootools; + +import com.webobjects.appserver.WOContext; +import com.webobjects.appserver.WOResponse; + +import er.ajax.AjaxExpansion; + +public class MTAjaxExpansion extends AjaxExpansion { + + public MTAjaxExpansion(WOContext context) { + super(context); + } + + protected void addRequiredWebResources(WOResponse response) { + MTAjaxUtils.addScriptResourceInHead(context(), response, "MooTools", MTAjaxUtils.MOOTOOLS_CORE_JS); + MTAjaxUtils.addScriptResourceInHead(context(), response, "MooTools", MTAjaxUtils.MOOTOOLS_WONDER_JS); + } + +} \ No newline at end of file diff --git a/Frameworks/Ajax/MooTools/Sources/er/ajax/mootools/MTERAttachmentFlexibleUpload.java b/Frameworks/Ajax/MooTools/Sources/er/ajax/mootools/MTERAttachmentFlexibleUpload.java new file mode 100644 index 00000000000..15ba677b74d --- /dev/null +++ b/Frameworks/Ajax/MooTools/Sources/er/ajax/mootools/MTERAttachmentFlexibleUpload.java @@ -0,0 +1,10 @@ +package er.ajax.mootools; + +import com.webobjects.appserver.WOContext; +import er.attachment.components.ERAttachmentFlexibleUpload; + +public class MTERAttachmentFlexibleUpload extends ERAttachmentFlexibleUpload { + public MTERAttachmentFlexibleUpload(WOContext context) { + super(context); + } +} \ No newline at end of file diff --git a/Frameworks/Ajax/MooTools/Sources/er/ajax/mootools/MTStyledPopUpButton.java b/Frameworks/Ajax/MooTools/Sources/er/ajax/mootools/MTStyledPopUpButton.java new file mode 100644 index 00000000000..12c47e8165d --- /dev/null +++ b/Frameworks/Ajax/MooTools/Sources/er/ajax/mootools/MTStyledPopUpButton.java @@ -0,0 +1,145 @@ +package er.ajax.mootools; + +import com.webobjects.appserver.WOContext; +import com.webobjects.appserver.WOResponse; +import com.webobjects.foundation.NSArray; +import com.webobjects.foundation.NSDictionary; +import com.webobjects.foundation.NSMutableArray; +import com.webobjects.foundation.NSMutableDictionary; + +import er.ajax.AjaxOption; +import er.extensions.appserver.ERXWOContext; +import er.extensions.components.ERXStatelessComponent; + + +/* + * @binding id - the identifier for the select button and the JavaScript variable. + * @binding useDefaultCss - If TRUE (default) it will load the default stylesheet. + * @binding showText - If TRUE (default) keeps text in the dropdown menu. + * @binding Unsupported operation showImages - If TRUE (default) show images in the dropdown menu. + * TODO figure out how to use the data images drop down. + * @binding className: A class name for CSS styling, default 'fancy-select'. + * @binding autoHide: If TRUE auto-hide the dropdown menu when user clicks outside. + * @binding autoScrollWindow: If TRUE auto-scroll browser window when FancySelect is out of viewport. + * @binding animateFade: If TRUE (default) animate the dropdown menu appearance. + * @binding fx: An object for additional Fx options (default {'duration': 'short'}). + * @binding onShow: The dropdown menu appears. + * @binding onHide: The dropdown menu disappears. + * @binding onAttach: FancySelect just replaced the DOM element is back. + * @binding list: Array of objects from which the WOPopUpButton derives its values. + * @binding item: Identifier for the elements of the list. For example, aCollege could represent an object in a colleges array. + * @binding displayString: Value to display in the selection list; for example, aCollege.name for each college object in the list. + * @binding value: For each OPTION tag within the selection, this is the ÒvalueÓ attribute (that is,