Merged V2.1 to HEAD

6580: AVM bulk import performance tweaks.
   6582: WCM-767, WCM-768
   6583: Fix for AWC-1528 (potential NPE in ErrorsRenderer)
   6584: Fix for AWC-1256 (Links produced by inline HTML editor are incorrect)
   6585: AR-1635: event listeners added in a beforeCommit event are now executed successfully
   6586: AR-1561 Update Web Scripts readme.html to be consistent with "Category Search Sample" (or vice-versa)
   6587: Fix for AWC-1390 (Paste all doesn't work for forum items)
   6588: AR-1701 Script getDocument call doesn't check for non-existent content
   6589: Fix for AWC-1530 - Saved search does not work for custom properties of type d:text with list constraint
   6591: Improvement for submit speed.
   6592: Removed obsolete tests.
   6594: Index tracking sample to include AVM index tracking
   6595: Added the AVM helpers methods from the FreeMarker AVM API that were missing from the JavaScript API
   6597: Rationalize post commit execution hooks for deployment receiver
   6598: Properly escape path names for ProgramRunnable.
   6599: AVM store name lookup cache is (theoretically) clusterable.
   6600: Some or other gramatically incorrect stuff about Chiba.
   6601: Fix for AR-1121 and AR-1673
   6602: AR-1655: Versioning is not MLText aware
   6603: Updated messages from lang packs
   6604: Fixed AR-1476: JCR import end element escaping
   6605: Updated Japanese lang messages


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6746 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2007-09-11 03:03:50 +00:00
parent 19e1af2314
commit 57554088ae
33 changed files with 638 additions and 85 deletions

View File

@@ -534,7 +534,9 @@ public class ScriptNode implements Serializable, Scopeable
if (this.properties == null)
{
// this Map implements the Scriptable interface for native JS syntax property access
this.properties = new ScriptableQNameMap<String, Serializable>(this.services.getNamespaceService());
// this impl of the QNameMap is capable of creating ScriptContentData on demand for 'cm:content'
// properties that have not been initialised - see AR-1673.
this.properties = new ContentAwareScriptableQNameMap<String, Serializable>(this, this.services);
Map<QName, Serializable> props = this.nodeService.getProperties(this.nodeRef);
for (QName qname : props.keySet())
@@ -542,7 +544,6 @@ public class ScriptNode implements Serializable, Scopeable
Serializable propValue = props.get(qname);
// perform the conversion to a script safe value and store
this.properties.put(qname.toString(), getValueConverter().convertValueForScript(qname, propValue));
}
}
@@ -774,7 +775,7 @@ public class ScriptNode implements Serializable, Scopeable
{
String content = "";
ScriptContentData contentData = (ScriptContentData) getProperties().get(ContentModel.PROP_CONTENT);
ScriptContentData contentData = (ScriptContentData)getProperties().get(ContentModel.PROP_CONTENT);
if (contentData != null)
{
content = contentData.getContent();
@@ -795,16 +796,11 @@ public class ScriptNode implements Serializable, Scopeable
*/
public void setContent(String content)
{
ScriptContentData contentData = (ScriptContentData) getProperties().get(ContentModel.PROP_CONTENT);
if (contentData == null)
ScriptContentData contentData = (ScriptContentData)getProperties().get(ContentModel.PROP_CONTENT);
if (contentData != null)
{
// guess a mimetype based on the filename
String mimetype = this.services.getMimetypeService().guessMimetype(getName());
ContentData cdata = new ContentData(null, mimetype, 0L, "UTF-8");
contentData = new ScriptContentData(cdata, ContentModel.PROP_CONTENT);
getProperties().put(ContentModel.PROP_CONTENT.toString(), contentData);
contentData.setContent(content);
}
contentData.setContent(content);
}
public void jsSet_content(String content)