123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- /********************************************************************************************************************************
- * Licensed Materials - Property of IBM *
- * *
- * IBM Cognos Products: AGS *
- * *
- * (C) Copyright IBM Corp. 2005, 2008 *
- * *
- * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. *
- *********************************************************************************************************************************/
- /**
- this holds on to how many agent items of a particular type there are
- */
- function AgentItemsReferenceTracker(){
- this.agentItemRefs = new Object();
- }
- AgentItemsReferenceTracker.prototype.toString = function(){
- var state = "\n ******* topic references *******\n";
-
- for(var modelItem in this.agentItemRefs){
- state += modelItem + " (" + this.agentItemRefs[modelItem] + " references)\n";
- }
-
- return state
- }
- AgentItemsReferenceTracker.prototype.addReference = function(modelItem){
- var count = 0;
-
- if(this.agentItemRefs[modelItem]){
- count = this.agentItemRefs[modelItem];
- }
-
- this.agentItemRefs[modelItem] = ++count;
- }
- AgentItemsReferenceTracker.prototype.addReferences = function(modelItems){
- for(var i = 0; modelItems && modelItems.length && i < modelItems.length; i++){
- this.addReference(modelItems[i]);
- }
- }
- /*
- call the tree to delete removed references. an optional text_edit_action
- accompanies to allow text changes to be bundled with the agent item changes and tracked
- */
- AgentItemsReferenceTracker.prototype.removeReferences = function(modelItems){
-
- var deleted_items = new Array();
-
- for(var i = 0; modelItems && modelItems.length && i < modelItems.length; i++){
- var deleted_item = this.removeReference(modelItems[i]);
-
- if(deleted_item){
- deleted_items.push(deleted_item);
- }
- }
-
- return deleted_items;
- }
- AgentItemsReferenceTracker.prototype.removeReference = function(modelItem){
- var count = 0;
- var deleted_item;
-
- if(this.agentItemRefs[modelItem]){
- count = this.agentItemRefs[modelItem];
-
- if(count > 1){
- this.agentItemRefs[modelItem] = --count;
- }else if(count == 1){
- delete this.agentItemRefs[modelItem];
- //call to the agentItems tree
- //deleted_item = deleteDataItem(modelItem);
- }else{
- //this is probably bad
- alert("warning: ags count for model item " + modelItem + " is now " + count);
- }
- }
- return deleted_item;
- }
- AgentItemsReferenceTracker.prototype.countReferences = function(modelItem){
- var count = 0;
-
- if(this.agentItemRefs[modelItem]){
- count = this.agentItemRefs[modelItem];
- }
-
- return count;
- }
- AgentItemsReferenceTracker.prototype.getReferencedModelItems = function(modelItem){
- var modelItems = new Array();
-
- for(var modelItem in this.agentItemRefs){
- if(modelItem && this.agentItemRefs[modelItem] > 0){
- modelItems.push(modelItem);
- }
- }
-
- return modelItems;
- }
|