Author: lgiessmann Date: Tue Jun 16 06:52:20 2009 New Revision: 43
Log: ajax-client: finalized the "toJSON()" methods of all needed classes - so it is possible to create a json-string of the users objects
Modified: trunk/src/ajax/javascripts/constants.js trunk/src/ajax/javascripts/create.js trunk/src/ajax/javascripts/datamodel.js
Modified: trunk/src/ajax/javascripts/constants.js ============================================================================== --- trunk/src/ajax/javascripts/constants.js (original) +++ trunk/src/ajax/javascripts/constants.js Tue Jun 16 06:52:20 2009 @@ -76,6 +76,7 @@ "__spanDeselect__" : "deselect", "__divFog__" : "fog", "__inputCommitButton__" : "commitButton", + "__divTmIdFrame__" : "tmIdFrame",
"page" : function(){ return this.__divPage__; }, "subPage" : function(){ return this.__divSubPage__; }, @@ -115,5 +116,6 @@ "playerFrame" : function(){ return this.__divPlayerFrame__; }, "deselect" : function(){ return this.__spanDeselect__; }, "fog" : function(){ return this.__divFog__; }, - "commitButton" : function(){ return this.__inputCommitButton__; } + "commitButton" : function(){ return this.__inputCommitButton__; }, + "tmIdFrame" : function(){ return this.__divTmIdFrame__; } }; \ No newline at end of file
Modified: trunk/src/ajax/javascripts/create.js ============================================================================== --- trunk/src/ajax/javascripts/create.js (original) +++ trunk/src/ajax/javascripts/create.js Tue Jun 16 06:52:20 2009 @@ -50,10 +50,14 @@ context.insert({"after" : liT});
addTopicAsPlayer((constraints ? constraints.associationsConstraints : null), topic.getContent().instanceOfs); - var associations = new AssociationContainerC(null, (constraints ? constraints.associationsConstraints : null), topic); + var associations = new AssociationContainerC(null, (constraints ? constraints.associationsConstraints : null)); var liA = new Element("li", {"class" : CLASSES.associationContainer()}).update(associations.getFrame()); liT.insert({"after" : liA});
+ var tmId = new tmIdC(null); + var liTm = new Element("li", {"class" : CLASSES.tmIdFrame()}).update(tmId.getFrame()); + liA.insert({"after" : liTm}); + var commitButton = new Element("input", {"type" : "button", "value" : "commit fragment", "style" : "float: right; margin-top: -10px;"}) commitButton.observe("click", function(event){ try{ @@ -61,16 +65,20 @@ var referencedTopics = topic.getReferencedTopics().concat(associations.getReferencedTopics()).without(CURRENT_TOPIC).uniq();
function onSuccessHandler(topicStubs){ - var str = "null"; + var tsStr = "null"; if(topicStubs && topicStubs.length !== 0){ - str = "["; + tsStr = "["; for(var i = 0; i !== topicStubs.length; ++i){ - str += topicStubs[i]; - if(i !== topicStubs.length - 1) str += ","; + tsStr += topicStubs[i]; + if(i !== topicStubs.length - 1) tsStr += ","; } - str += "]"; + tsStr += "]"; } - var json = "{"topic":" + topic.toJSON() + ","topicStubs":" + str + ","associations":" + associations.toJSON().gsub(CURRENT_TOPIC_ESCAPED, tPsis) + ","tmIds":" + "["myTM"]}"; + var jTopic = ""topic":" + topic.toJSON(); + var jTopicStubs = ""topicStubs":" + tsStr; + var jAssociations = ""associations":" + associations.toJSON().gsub(CURRENT_TOPIC_ESCAPED, tPsis) + var jTmId = ""tmIds":" + tmId.toJSON(); + var json = "{" + jTopic + "," + jTopicStubs + "," + jAssociations + "," + jTmId + "}"; alert(json); }
@@ -84,7 +92,7 @@ }); var liCB = new Element("li", {"class" : CLASSES.commitButton()}); liCB.update(commitButton); - liA.insert({"after" : liCB}); + liTm.insert({"after" : liCB}); }
Modified: trunk/src/ajax/javascripts/datamodel.js ============================================================================== --- trunk/src/ajax/javascripts/datamodel.js (original) +++ trunk/src/ajax/javascripts/datamodel.js Tue Jun 16 06:52:20 2009 @@ -2382,10 +2382,9 @@
// --- contains all fragment's associations depending on the main topic -var AssociationContainerC = Class.create(ContainerC, {"initialize" : function($super, contents, constraints, mainTopic){ +var AssociationContainerC = Class.create(ContainerC, {"initialize" : function($super, contents, constraints){ $super(); this.__minimized__ = false; - this.__mainTopic__ = mainTopic; try{ this.__frame__ .writeAttribute({"class" : CLASSES.associationContainer()}); this.__table__ = new Element("table", {"class" : CLASSES.associationContainer()}); @@ -2480,45 +2479,53 @@ }});
+// --- Representation of a topic map if frame. +var tmIdC = Class.create(ContainerC, {"initialize" : function($super, contents){ + $super(); + try{ + this.__frame__.writeAttribute({"class" : CLASSES.itemIdentityFrame()}); + this.__container__ = new Object(); + this.__frame__.writeAttribute({"class" : CLASSES.tmIdFrame()}); + this.__table__ = new Element("table", {"class" : CLASSES.tmIdFrame()}); + this.__frame__.insert({"top" : this.__table__}); + this.__caption__ = new Element("caption", {"class" : CLASSES.clickable()}).update("Topic Map ID"); + this.__table__.update(this.__caption__); + var value = contents && contents.length !== 0 ? contents[0] : ""; + this.__contentrow__ = new Element("input", {"type" : "text", "value" : value}); + this.__tr__ = new Element("tr", {"class" : CLASSES.tmIdFrame()}); + var td =new Element("td", {"class" : CLASSES.content()}); + this.__tr__.update(td); + td.update(this.__contentrow__); + this.__table__.insert({"bottom" : this.__tr__}); + + this.__minimized__ = false; + function setMinimizeHandler(myself){ + myself.__caption__.observe("click", function(event){ + myself.minimize(); + }); + } + setMinimizeHandler(this); + } + catch(err){ + alert("From tmIdC(): " + err); + } + }, + "getContent" : function(){ + if(this.__contentrow__.value.strip().length === 0) return null; + return new Array(this.__contentrow__.value.strip()); + }, + "toJSON" : function(){ + return (this.getContent() === null ? "null" : this.getContent().toJSON()); + }, + "isValid" : function(){ + return this.getContent() !== null; + }, + "minimize": function(){ + if(this.__minimized__ === false) this.__tr__.hide(); + else this.__tr__.show();
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + this.__minimized__ = !this.__minimized__; + }});
// --- A handler for the dblclick-event. So a frame can be disabled or enabled.