more asset manager changes

This commit is contained in:
JT Smith 2004-12-20 19:13:59 +00:00
parent 74a5bc8bf5
commit 6b88020454
9 changed files with 1116 additions and 0 deletions

View file

@ -0,0 +1,56 @@
//--------Constructor--------------------
function Asset() {
//properties
this.url = "";
this.rank = 1;
this.assetId = "";
this.type = "";
this.title = "";
this.size = 0;
this.lastUpdate = "";
this.icon = "";
this.div = null;
//methods
this.edit = Asset_edit;
this.view = Asset_view;
this.displayProperties = Asset_displayProperties;
}
//---------Method Implementations -------------
//Edit the properties of an asset (edit)
//-------------------------------
//url + ?||& + func=edit
function Asset_edit() {
location.href = manager.tools.addParamDelimiter(this.url) + "func=edit";
}
//View an asset (view)
//-------------
//url + ?||& + func=view
function Asset_view() {
location.href = manager.tools.addParamDelimiter(this.url) + "func=view";
}
function Asset_displayProperties() {
html = "<table border='0'><tr><td class=\"propertiesMenuName\">Title:</td><td class=\"propertiesMenuValue\">" + this.title + "</td></tr>";
html+="<tr><td class=\"propertiesMenuName\">Rank:</td><td class=\"propertiesMenuValue\">" + this.rank + "</td></tr>"
html+="<tr><td class=\"propertiesMenuName\">Asset ID:</td><td class=\"propertiesMenuValue\">" + this.assetId + "</td></tr>"
html+="<tr><td class=\"propertiesMenuName\">Asset Type:</td><td class=\"propertiesMenuValue\">" + this.type + "</td></tr>"
html+="<tr><td class=\"propertiesMenuName\">Size:</td><td class=\"propertiesMenuValue\">" + this.size + "</td></tr>"
html+="<tr><td class=\"propertiesMenuName\">Last Updated:</td><td class=\"propertiesMenuValue\">" + this.lastUpdate + "</td></tr>"
html+="</table>";
manager.display.displayPropertiesWindow(html);
}

View file

@ -0,0 +1,278 @@
//--------Constructor--------------------
function AssetManager(assetArrayData,headerArrayData,lables,crumbtrail) {
this.tools = new Tools();
this.contextMenu = new ContextMenu();
this.display = new Display();
this.eventManager = new EventManager();
this.keys = new Array();
this.keys[0] = "rank";
this.keys[1] = "title";
this.keys[2] = "type";
this.keys[3] = "lastUpdate";
this.keys[4] = "size";
this.parentURL = "";
this.lables = lables;
this.crumbtrail = crumbtrail;
this.parentURL = "d";
this.renderAssets = AssetManager_renderAssets;
this.assetArrayData = assetArrayData;
this.columnHeadings = headerArrayData;
this.assets = new Array();
this.getAsset= AssetManager_getAsset;
this.buildCrumbTrail = AssetManager_buildCrumbTrail;
this.displayContextMenu = AssetManager_displayContextMenu;
this.editTree=AssetManager_editTree;
this.setParent=AssetManager_setParent;
this.setRank=AssetManager_setRank;
this.remove = AssetManager_remove;
this.cut = AssetManager_cut;
this.copy = AssetManager_copy;
this.sortGrid = AssetManager_sortGrid;
this.getSelectedAssetIds = AssetManager_getSelectedAssetIds;
}
function AssetManager_getManager() {
//debug(manager.assetArrayData);
return manager;
}
function AssetManager_renderAssets() {
var gridStr = '<table border="1" id="am_grid" class="am-grid"><tbody id="am_grid_body"><tr id="am_grid.headers" class="am-grid-header">';
var eventStr='';
var id = "";
for (i=0;i<this.columnHeadings.length;i++) {
id = 'am_grid.headers.' + i;
gridStr+= '<td id="' + id + '" class="am-grid-header-' + i + '">' + this.columnHeadings[i] + '</td>';
eventStr += 'document.getElementById("' + id + '").onclick=AssetManager_getManager().eventManager.gridHeaderClick;';
}
gridStr+= '</tr>';
//['Rank','Title','Type','Last Updated','Size'];
for (i=0;i<this.assetArrayData.length;i++) {
id = 'am_grid.row.'+ i;
gridStr += '<tr id="'+ id + '" class="am-grid-row">';
/* rank, title, type, lastUpdate, size, url, assetId */
asset = new Asset();
asset.rank = this.assetArrayData[i][0];
asset.title = this.assetArrayData[i][1];
asset.type = this.assetArrayData[i][2];
asset.lastUpdate = this.assetArrayData[i][3];
asset.size = this.assetArrayData[i][4];
asset.url = this.assetArrayData[i][5];
asset.assetId = this.assetArrayData[i][6];
asset.icon = this.assetArrayData[i][7];
this.assets[i]=asset;
//add the row events
// eventStr += 'document.getElementById("' + id + '").onclick=Grid_rowClicked;';
// eventStr += 'document.getElementById("' + id + '").onmouseover=Grid_rowMouseOver;';
// eventStr += 'document.getElementById("' + id + '").onmouseout=Grid_rowMouseOut;';
eventStr += 'document.getElementById("' + id + '").ondblclick=AssetManager_getManager().eventManager.assetDoubleClick;';
eventStr += 'document.getElementById("' + id + '").onmousedown=AssetManager_getManager().eventManager.assetMouseDown;';
eventStr += 'document.getElementById("' + id + '").oncontextmenu=AssetManager_getManager().eventManager.assetRightClick;';
eventStr += 'document.getElementById("' + id + '").asset = AssetManager_getManager().assets[' + i + '];';
eventStr += 'AssetManager_getManager().assets[' + i + '].div = document.getElementById("' + id + '");';
for (k=0;k<this.columnHeadings.length;k++) {
id = 'am_grid.row' + '.' + i + '.col.' + k;
gridStr+= '<td id="' + id + '" class="am-grid-col-' + k +'">' + this.assetArrayData[i][k] + '</td>';
// eventStr += 'document.getElementById("' + id + '").asset = AssetManager_getManager().assets[' + i + '];';
}
}
gridStr+='</tr>';
gridStr += '</tbody></table>';
document.getElementById("workspace").innerHTML=gridStr;
eval(eventStr);
this.buildCrumbTrail();
}
function AssetManager_buildCrumbTrail() {
var crumbtrail = document.getElementById("crumbtrail");
var contents = "<table><tr>";
for (i=0;i<this.crumbtrail.length;i++) {
contents += '<td id="' + this.crumbtrail[i][0] + '" class="crumbtrail">' + this.crumbtrail[i][1] + '</td>';
if (i != this.crumbtrail.length -1) {
contents += "<td>&nbsp;->&nbsp;</td>";
}
}
this.parentURL = "http://" + this.tools.getHostName("http://www.yahoo.com") + this.crumbtrail[this.crumbtrail.length -1][1];
contents += '</tr></table>';
crumbtrail.innerHTML = contents;
// for (i=0;i<this.crumbtrail.length;i++) {
// var obj = document.getElementById(this.crumbtrail[i][0]);
// this.crumbtrail
// contents += '<td id="' + this.crumbtrail[i][0] + '" class="crumbtrail">' + this.crumbtrail[i][1] + '</td>';
// if (i != this.crumbtrail.lenght) {
// contents += "<td>&nbsp;->&nbsp;</td>";
// }
//}
}
function AssetManager_getAsset(obj) {
while (obj.tagName!=this.display.topLevelElement && obj.className != "am-grid-row") {
obj=this.display.dom? obj.parentNode : obj.parentElement
}
return obj.asset;
}
function AssetManager_displayContextMenu(x,y) {
var arr = new Array();
if (this.display.overObjects.length == 1) {
arr[arr.length] = new ContextMenuItem("View","javascript:manager.display.contextMenu.owner.view()");
arr[arr.length] = new ContextMenuItem("Edit","javascript:manager.display.contextMenu.owner.edit()");
}
arr[arr.length] = new ContextMenuItem("Delete","javascript:manager.remove()");
arr[arr.length] = new ContextMenuItem("<img src='/Extras/assetManager/breakerLine.gif'>","");
arr[arr.length] = new ContextMenuItem("Cut","javascript:AssetManager_getManager().cut()");
arr[arr.length] = new ContextMenuItem("Copy","javascript:manager.copy()");
if (this.display.overObjects.length ==1) {
arr[arr.length] = new ContextMenuItem("<img src='/Extras/assetManager/breakerLine.gif'>","");
arr[arr.length] = new ContextMenuItem("Edit Tree","javascript:manager.editTree()");
arr[arr.length] = new ContextMenuItem("Properties","javascript:manager.display.contextMenu.owner.displayProperties()");
}
// alert("x = " + x + " y= " + y);
manager.contextMenu.render(arr,x,y,this);
}
//url + ?||& + func=editTree
function AssetManager_editTree() {
location.href = this.tools.addParamDelimiter(this.parentURL) + "func=editTree";
}
//Moving to a new parent (move)
//----------------------
//url + ?||& + func=setParent&assetId= + assetId
function AssetManager_setParent(parentId) {
location.href = this.tools.addParamDelimiter(this.parentURL) + "func=setParent&assetId="+ parentId;
}
//Set the rank of an asset amongst its siblings (move)
//---------------------------------------------
//url + ?||& + func=setRank&rank= + newRank
function AssetManager_setRank(rank) {
location.href = this.tools.addParamDelimiter(this.parentURL) + "func=setRank&rank="+ rank;
}
//Copy an asset to the clipboard (copy)
//------------------------------
//url + ?||& + func=copy
function AssetManager_copy() {
location.href = this.tools.addParamDelimiter(this.parentURL) + "func=copyList" + this.getSelectedAssetIds();
}
//Cut an asset to the clipboard (cut)
//-----------------------------
//url + ?||& + func=cut
function AssetManager_cut() {
location.href = this.tools.addParamDelimiter(this.parentURL) + "func=cutList" + this.getSelectedAssetIds();
}
//Delete an asset. (delete)
//----------------
//url + ?||& + func=delete (do a javascript confirm on this)
function AssetManager_remove() {
if (window.confirm("Are you sure you want to delete this asset? Click OK to continue, or Cancel if you made a mistake.")) {
location.href = this.tools.addParamDelimiter(this.parentURL) + "func=deleteList" + this.getSelectedAssetIds();
}
}
function AssetManager_getSelectedAssetIds() {
var assetIds = "";
for (i=0;i<this.display.overObjects.length;i++) {
assetIds += "&assetId=" + this.display.overObjects[i].assetId;
}
return assetIds;
}
function AssetManager_sortGrid(columnIndex) {
var prop = this.keys[columnIndex];
var tableBody = document.getElementById("am_grid_body");
//remove the arrows from the other column headers
for (i=0;i< this.columnHeadings.length;i++) {
if (i != columnIndex) {
document.getElementById('am_grid.headers.' + i).innerHTML = this.columnHeadings[i];
document.getElementById('am_grid.headers.' + i).sortOrder = "<";
}
}
colHeader = document.getElementById('am_grid.headers.' + columnIndex);
if (!colHeader.sortOrder) {
colHeader.sortOrder = "<";
}
if (colHeader.sortOrder==">") {
colHeader.sortOrder="<";
document.getElementById('am_grid.headers.' + columnIndex).innerHTML = this.columnHeadings[columnIndex] + " (up)";
}else {
colHeader.sortOrder=">";
document.getElementById('am_grid.headers.' + columnIndex).innerHTML = this.columnHeadings[columnIndex] + "(down)";
}
var rowArray = new Array();
for (i=0; i<tableBody.childNodes.length; i++) {
if (tableBody.childNodes[i].id.indexOf("header") == -1) {
rowArray[rowArray.length] = tableBody.childNodes[i];
}
}
for (j=0;j<rowArray.length;j++) {
for (k=0;k<rowArray.length - 1;k++) {
var swap = eval("rowArray[k].asset." + prop + " " + colHeader.sortOrder + " " + "rowArray[k+1].asset." + prop);
if (swap) {
tmp = rowArray[k];
rowArray[k] = rowArray[k+1];
rowArray[k+1] = tmp;
}
}
}
for (i=0;i<rowArray.length;i++) {
tableBody.removeChild(rowArray[i]);
}
for (i=0;i<rowArray.length;i++) {
tableBody.appendChild(rowArray[i]);
}
}

View file

@ -0,0 +1,87 @@
//--------Constructor--------------------
//document.write('<div id="contextMenu" class="contextMenu"></div>');
//Constructor for a context menu
function ContextMenu() {
this.render = ContextMenu_render;
this.hide = ContextMenu_hide;
this.owner = null;
this.contextMenu = document.getElementById("contextMenu");
this.contextMenu.oncontextmenu=new function() {return false;};
this.contextMenu.onmousedown=new function() {return false;};
this.contextMenu.onmouseup=new function() {return false;};
this.nameArray = new Array();
}
//Container used by the render method to delimit context menu items
function ContextMenuItem(cminame,cmilink) {
this.name = cminame;
this.link = cmilink;
}
//---------Method Implementations -------------
//renders the context menu based on the contextMenuItemArray and owner.
function ContextMenu_render(contextMenuItemArray,x,y,owner) {
// manager.tools.showObject(this.contextMenu);
// alert("top = " + this.contextMenu.className);
this.owner = owner;
var html='<table border="0">';
for (var i=0;i<contextMenuItemArray.length;i++) {
var name = "contextMenuItem" + i + new Date().getTime();
html+='<tr>';
html+=' <td>'
if (contextMenuItemArray[i].link == "") {
html+=contextMenuItemArray[i].name;
}else {
html+='<a href="' + contextMenuItemArray[i].link + '"><div id="' + name + '" class="contextMenuTab">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' + contextMenuItemArray[i].name + '</div></a>';
}
html+='</td>';
html+='</tr>';
this.nameArray[this.nameArray.length] = name;
}
html+='</table>';
this.contextMenu.innerHTML = html;
for (var k=0;k<this.nameArray.length;k++) {
if (document.getElementById(this.nameArray[k])) {
document.getElementById(this.nameArray[k]).onmouseover=new Function("document.getElementById('" + this.nameArray[k] + "').className='contextMenuTabOver'");
document.getElementById(this.nameArray[k]).onmouseout=new Function("document.getElementById('" + this.nameArray[k] + "').className='contextMenuTab'");
}
}
if (y > parseInt(this.contextMenu.offsetHeight)) {
this.contextMenu.style.top = (y + document.body.scrollTop - this.contextMenu.offsetHeight -1) + "px";
}else {
this.contextMenu.style.top = (y + document.body.scrollTop + 3) + "px";
}
this.contextMenu.style.left= (x + document.body.scrollLeft) + "px";
manager.display.bringToFront(this.contextMenu);
//alert(this.contextMenu.style.top);
manager.tools.showObject(this.contextMenu);
}
//hides the context menu
function ContextMenu_hide() {
for (var k=0;k<this.nameArray.length;k++) {
if (document.getElementById(this.nameArray[k])) {
document.getElementById(this.nameArray[k]).onmouseover="";
document.getElementById(this.nameArray[k]).onmouseout="";
}
}
this.contextMenu.style.visibility="hidden";
}

View file

@ -0,0 +1,297 @@
//--------Constructor--------------------
function Display() {
this.dom=document.getElementById&&!document.all;
this.baseX=0;
this.baseY=0;
this.width=0;
this.height=0;
this.rootNode="";
this.packageNS = "";
this.focusObjects = new Array();
this.overObjects = new Array();
this.overCrumbtrail = null;
this.topLevelElement=this.dom? "HTML" : "BODY"
this.scrollJump = 25;
this.dragEnabled = false;
this.displayPropertiesWindow = Display_displayPropertiesWindow;
this.hidePropertiesWindow = Display_hidePropertiesWindow;
this.dragStart = Display_dragStart;
this.adjustScrollBars = Display_adjustScrollBars;
this.dragStop = Display_dragStop;
this.activityLists = new Array();
this.spy = Display_spy;
this.currentTemp=null;
this.temp1 = 0;
this.temp2=0;
this.move = Display_move;
this.x = 0;
this.y = 0;
this.shiftKeyDown=false;
this.controlKeyDown=false;
this.contextMenu=new ContextMenu();
this.bringToFront = Display_bringToFront;
this.lastZIndex = 1000;
this.dragableObjectClasses = new Array();
this.registerDragableClass = Display_registerDragableClass;
this.keyDown = Display_keyDown;
this.keyUp = Display_keyUp;
this.selectAsset = Display_selectAsset;
this.isSelected = Display_isSelected;
}
//---------Method Implementations -------------
function Display_registerDragableClass(objectClassName,classNameDuringDrag) {
var obj = new Object();
obj.clazzName = objectClassName;
obj.clazzNameDuringDrag = classNameDuringDrag;
this.dragableObjectClasses[this.dragableObjectClasses.length] = obj;
}
function Display_bringToFront(obj) {
this.lastZIndex++;
obj.style.zIndex = this.lastZIndex;
}
function Display_hidePropertiesWindow() {
manager.tools.hideObject(document.getElementById("propertiesWindow"));
}
function Display_displayPropertiesWindow(html) {
temp = "<table border='1' cellspacing='0'><tr><td><table border='0'><tr bgcolor='#000000'><td width='325' class='dragable'><font color='#FFFFFF'>PROPERTIES</font></td><td align='right'><a href='javascript:manager.display.hidePropertiesWindow()'>X</a></td></tr><tr><td colspan='2'>" + html + "</td></tr></table></td></tr></table>";
propWindow = document.getElementById("propertiesWindow");
propWindow.innerHTML=temp;
propWindow.style.top=50 + document.body.scrollTop;
propWindow.style.left=50 + document.body.scrollLeft;
manager.tools.showObject(propWindow);
this.bringToFront(propWindow);
}
function Display_dragStart(firedobj,xCoordinate,yCoordinate) {
if (!firedobj) return;
if (this.shiftKeyDown) return;
while (firedobj.tagName!=this.topLevelElement && firedobj.className.indexOf("am-grid-row") == -1 && firedobj.className != "dragable") {
firedobj=manager.display.dom? firedobj.parentNode : firedobj.parentElement
}
if (firedobj.className.indexOf("am-grid-row") == -1 && firedobj.className != "dragable") {
return;
}
this.dragEnabled=true;
// while (firedobj.tagName!=this.topLevelElement) {
// for (i =0;i<this.dragableObjectClasses.length;i++) {
// if (firedobj.className==this.dragableObjectClasses[i].clazzName) {
this.pageHeight = window.document.body.scrollHeight;
this.pageWidth = window.document.body.scrollWidth;
this.focusObjects[0]=firedobj
//this.bringToFront(this.focusObject);
//hack to get the transparency - need to make generic
// this.focusObject.dragDescriptor = this.dragableObjectClasses[i];
// this.focusObject.className=this.dragableObjectClasses[i].clazzNameDuringDrag;
if (firedobj.asset) {
this.bringToFront(document.getElementById("dragImage"));
document.getElementById("dragImage").innerHTML = "&nbsp;&nbsp;" + firedobj.asset.title + "&nbsp;&nbsp;";
}else {
this.temp1=parseInt(this.focusObjects[0].style.left+0)
this.temp2=parseInt(this.focusObjects[0].style.top+0)
}
this.x=xCoordinate;
this.y=yCoordinate;
return false;
// }
// }
// firedobj=display.dom? firedobj.parentNode : firedobj.parentElement
// }
//return false;
}
function Display_dragStop() {
if (this.dragEnabled) {
this.dragEnabled = false;
document.getElementById("dragImage").style.display="none";
//if (this.focusObjects.dragDescriptor.clazzName == "activityMenuItem") {
if (this.overObjects[0] && this.overObjects[0].assetId && this.overObjects[0] != this.focusObjects[0]) {
this.focusObjects[0].setRank(this.overObjects[0].rank);
}
//this.focusObject.style.top=0;
//this.focusObject.style.left=0;
}
//this.focusObject.className = this.focusObject.dragDescriptor.clazzName;
//}
}
function Display_isSelected(asset) {
//check to see if obj is already in array
var inArray=false;
for (i=0;i<this.overObjects.length;i++) {
if (this.overObjects[i] == asset) {
return true;
}
}
return false;
}
function Display_selectAsset(asset) {
// debug(this.overObjects.length);
if (!this.controlKeyDown && !this.shiftKeyDown) {
for (i=0;i<this.overObjects.length;i++) {
this.overObjects[i].div.style.backgroundColor="white";
}
this.overObjects=new Array();
}
if (!this.isSelected(asset)) {
this.overObjects[this.overObjects.length] = asset;
asset.div.style.backgroundColor = "red";
}
}
function Display_move(e){
if (this.dragEnabled){
this.adjustScrollBars(e);
if (this.focusObjects[0].className=="dragable") {
this.focusObjects[0].style.left=this.dom? this.temp1+e.clientX-this.x: this.temp1+event.clientX-this.x
this.focusObjects[0].style.top=this.dom? this.temp2+e.clientY-this.y : this.temp2+event.clientY-this.y
}else {
var act = this.spy(this.dom? e.pageX: (e.clientX + document.body.scrollLeft),this.dom? e.pageY: (e.clientY + document.body.scrollTop));
if (act && act.asset) {
this.selectAsset(act.asset);
}
if (this.overObjects[0] != this.focusObjects[0]) {
var act = this.spy(this.dom? e.pageX: (e.clientX + document.body.scrollLeft),this.dom? e.pageY: (e.clientY + document.body.scrollTop));
document.getElementById("dragImage").style.display = "block";
document.getElementById("dragImage").style.top = this.dom? (e.clientY+ 15 + document.body.scrollTop) + "px" : (event.clientY + 15) + "px";
// debug(document.body.scrollTop);
//debug(window.scrollY);
document.getElementById("dragImage").style.left = this.dom? (e.clientX + 5 + document.body.scrollTop) + "px" : (event.clientX + 5) + "px";
}
}
return false
}
}
function Display_spy(x,y) {
var returnObj = null;
for (i=0;i<manager.assets.length;i++) {
obj = manager.assets[i].div;
//this is a hack
if (obj == null || obj == this.focusObjects[0]) continue;
var fObj=obj;
y1=0;
x1=0
while (fObj!=null && fObj.tagName!=this.topLevelElement){
y1+=fObj.offsetTop;
x1+=fObj.offsetLeft;
fObj=fObj.offsetParent;
}
if (x >x1 && x < (x1 + obj.offsetWidth)) {
if (y> y1 && y< (y1 + obj.offsetHeight)) {
//for (j=0;j<obj.bpm.children.length;j++) {
// if (y>(y1 + obj.bpm.children[j].offsetTop) && y < (y1 + obj.bpm.children[j].offsetTop + obj.bpm.children[j].offsetHeight)) {
return obj;
// }
//}
}
}
}
return returnObj;
}
function Display_keyDown(e) {
if (e.keyCode==16) {
this.shiftKeyDown = true;
}else if (e.keyCode ==17) {
this.controlKeyDown = true;
}else if (e.keyCode == 46 ) {
manager.remove();
}
}
function Display_keyUp(e) {
if (e.keyCode==16) {
this.shiftKeyDown = false;
}else if (e.keyCode ==17) {
this.controlKeyDown = false;
}
}
//checks to see if the scroll bars need to be adjusted
function Display_adjustScrollBars(e) {
var scrY=0;
var scrX=0;
if (e.clientY > document.body.clientHeight-this.scrollJump) {
if (e.clientY + document.body.scrollTop < this.pageHeight - (this.scrollJump + 40)) {
scrY=this.scrollJump;
window.scroll(document.body.scrollLeft,document.body.scrollTop + scrY);
this.y-=scrY;
}
}else if (e.clientY < this.scrollJump) {
if (document.body.scrollTop < this.scrollJump) {
scrY = document.body.scrollTop;
}else {
scrY=this.scrollJump;
}
window.scroll(document.body.scrollLeft,document.body.scrollTop - scrY);
this.y+=scrY;
}
if (e.clientX > document.body.clientWidth-this.scrollJump) {
if (e.clientX + document.body.scrollLeft < this.pageWidth - (this.scrollJump + 40)) {
scrX=this.scrollJump;
window.scroll(document.body.scrollLeft + scrX,document.body.scrollTop);
this.x-=scrX;
}
}else if (e.clientX < this.scrollJump) {
if (document.body.scrollLeft < this.scrollJump) {
scrX = document.body.scrollLeft;
}else {
scrX=this.scrollJump;
}
window.scroll(document.body.scrollLeft - scrX,document.body.scrollTop);
this.x+=scrX;
}
}

View file

@ -0,0 +1,135 @@
//--------Constructor--------------------
function EventManager() {
//int document events
document.onmousedown=EventManager_documentMouseDown;
document.onmouseup=EventManager_documentMouseUp;
document.onmousemove=EventManager_documentMouseMove;
document.onkeydown=EventManager_keyDown;
document.onkeyup=EventManager_keyUp;
this.gridHeaderClick = EventManager_gridHeaderClick;
this.assetDoubleClick = EventManager_assetDoubleClick;
this.assetRightClick = EventManager_assetRightClick;
this.assetMouseDown = EventManager_assetMouseDown;
}
//---------Method Implementations -------------
function EventManager_keyDown(e) {
var dom = document.getElementById&&!document.all;
e=dom? e : event;
manager.display.keyDown(e);
return false;
}
function EventManager_keyUp(e) {
var dom = document.getElementById&&!document.all;
e=dom? e : event;
manager.display.keyUp(e);
return false;
}
function EventManager_assetDoubleClick(e) {
var dom = document.getElementById&&!document.all;
var e=dom? e : event;
var obj =dom? e.target : e.srcElement
AssetManager_getManager().getAsset(obj).edit();
}
function EventManager_assetRightClick(e) {
var dom = document.getElementById&&!document.all;
e=dom? e : event;
if (!dom) {
e.cancelBubble = true;
e.returnValue = false;
}
obj =dom? e.target : e.srcElement
var asset = manager.getAsset(obj);
manager.display.contextMenu.owner = asset;
manager.displayContextMenu(e.clientX,e.clientY);
return false;
}
function EventManager_assetMouseDown(e) {
var dom = document.getElementById&&!document.all;
e=dom? e : event;
if (e.button==2) {
//this is a hack to get the context menu stuff to work right in IE
if (!dom) {
e.cancelBubble = true;
e.returnValue = false;
}
}
return false;
}
function EventManager_documentMouseDown(e) {
var dom = document.getElementById&&!document.all;
e=dom? e : event;
obj =dom? e.target : e.srcElement
var asset = manager.getAsset(obj);
if (asset) {
if (e.button != 2 || (e.button == 2 && !manager.display.isSelected(asset))) {
manager.display.selectAsset(asset);
}
if (e.button != 2) {
manager.display.dragStart(asset.div,e.clientX,e.clientY);
return;
}
}
if (e.button != 2) {
manager.display.dragStart(obj,e.clientX,e.clientY);
}
return true;
}
function EventManager_documentMouseUp(e) {
var dom = document.getElementById&&!document.all;
e=dom? e : event;
obj =dom? e.target : e.srcElement
//obj = manager.tools.getActivity(obj);
var asset = manager.getAsset(obj);
if (manager.display.contextMenu.owner && (!asset || asset.assetId != manager.display.contextMenu.owner.assetId)) {
manager.display.contextMenu.hide();
}
manager.display.dragStop();
//if (obj) manager.display.selectActivity(obj);
return false;
}
function EventManager_documentMouseMove(e) {
var dom = document.getElementById&&!document.all;
e=dom? e : event;
manager.display.move(e);
return false;
}
function EventManager_gridHeaderClick(e) {
var dom = document.getElementById&&!document.all;
var e=dom? e : event;
var obj =dom? e.target : e.srcElement
var parts = obj.id.split(".");
AssetManager_getManager().sortGrid(parts[parts.length-1]);
}

View file

@ -0,0 +1,86 @@
function Grid(headerArray, dataArray,gridId) {
this.headerArray = headerArray;
this.dataArray = dataArray;
this.render = Grid_render;
this.sortColumn = Grid_sortColumn;
this.gridId = gridId;
this.attachEvents = Grid_attachEvents;
//this.attachRowProperty = Grid_attachRowProperty;
//this.attachRowEvent = Grid_attachRowEvent;
}
function Grid_render(div) {
// obj = document.getElementById(key);
// obj.ondblclick=AssetManager_getManager().eventManager.activityDoubleClick;
// obj.oncontextmenu=AssetManager_getManager().eventManager.activityRightClick;
// obj.onmousedown=AssetManager_getManager().eventManager.activityMouseDown;
var gridStr = '<table border="1" id="grid.' + this.gridId + '"><tr id="grid.' + this.gridId + '.headers">';
var eventStr='';
var id = "";
for (i=0;i<this.headerArray.length;i++) {
id = 'grid.' + this.gridId + '.headers.' + i;
gridStr+= '<td id="' + id + '">' + this.headerArray[i] + '</td>';
eventStr += 'document.getElementById("' + id + '").onclick=Grid_headerClicked;';
}
gridStr+= '</tr>';
//['Rank','Title','Type','Last Updated','Size'];
for (i=0;i<this.dataArray.length;i++) {
id = 'grid.' + this.gridId + '.row.' + '.' + i;
gridStr += '<tr id="'+ id + '">';
eventStr += 'document.getElementById("' + id + '").onclick=Grid_rowClicked;';
eventStr += 'document.getElementById("' + id + '").onmouseover=Grid_rowMouseOver;';
eventStr += 'document.getElementById("' + id + '").onmouseout=Grid_rowMouseOut;';
eventStr += 'document.getElementById("' + id + '").ondblclick=Grid_rowDoubleClick;';
eventStr += 'document.getElementById("' + id + '").onmousedown=Grid_rowMouseDown;';
eventStr += 'document.getElementById("' + id + '").oncontextmenu=Grid_rowContextMenu;';
for (k=0;k<this.headerArray.length;k++) {
gridStr+= '<td id="grid.' + this.gridId + '.row.' + '.' + i + '.col.' + k + '">' + this.dataArray[i][k] + '</td>';
}
}
gridStr+='</tr>';
gridStr += '</table>';
div.innerHTML = grid();
}
function Grid_rowClicked(e) {
}
function Grid_rowMouseOver(e) {
}
function Grid_rowMouseOut(e) {
}
function Grid_rowDoubleClick(e) {
}
function Grid_rowMouseDown(e) {
}
function Grid_rowContextMenu(e) {
}
function Grid_sortColumn() {
}

View file

@ -0,0 +1,147 @@
//--------Constructor--------------------
function Tools() {
this.dom=document.getElementById&&!document.all;
this.topLevelElement=this.dom? "HTML" : "BODY"
this.getActivity = Tools_getActivity;
this.debug = Tools_debug;
this.debugEnabled = false;
this.getElementChildren = Tools_getElementChildren;
this.showObject = Tools_showObject;
this.hideObject = Tools_hideObject;
this.cancelEvent = Tools_cancelEvent;
this.setCookie = Tools_setCookie;
this.getCookie = Tools_getCookie;
this.deleteCookie = Tools_deleteCookie;
this.addParamDelimiter = Tools_addParamDelimiter;
this.getHostName = Tools_getHostName;
document.write('<div id="tools_debugArea" style="position: absolute; display:none; top:0; left:500;z-index:1000;">');
document.write('<form name="tools_debug">');
document.write('<textarea id="out" rows=15 cols=60></textarea>');
document.write('<input type="button" name="clear" value="clear" onClick="document.tools_debug.out.value=\'\'">');
document.write('<input type="button" name="close" value="close" onClick="document.getElementById(\'tools_debugArea\').style.display=\'none\'">');
document.write('</form>');
document.write('</div>');
this.debugArea = document.getElementById("tools_debugArea");
}
function Tools_getHostName(url) {
debug(url);
var serverParts = url.split("/");
return serverParts[2];
}
//returns a ? or & based on contents of url
function Tools_addParamDelimiter(url) {
if (url.indexOf("?") == -1) {
return url + "?";
}else {
return url + "&";
}
}
//returns a ? or & based on contents of url
function Tools_addParamDelimiter(url) {
var serverParts = location.href.split("/");
var server = serverParts[0] + "//" +serverParts[2];
if (url.indexOf("?") == -1) {
return server + url + "?";
}else {
return server + url + "&";
}
}
//---------Method Implementations -------------
//utility method to cancle a build in event.
//ex. Assume you do not want a link to work.
// var tools = new Tools();
// document.getElementById("linkID").onclick=tools.cancleEvent
function Tools_cancelEvent() {
return false;
}
//recurses up a tree to get any activity of className activity
function Tools_getActivity(obj) {
var parts = obj.id.split(".");
return manager.assets[parts[0] + "." + parts[1] + "." + parts[2]];
}
//shows a positionable element by toggling the style display property
function Tools_showObject(obj) {
if (obj) {
obj.style.visibility="visible";
obj.style.display="block";
}
}
//hides a positionable element by toggling the style display property
function Tools_hideObject(obj) {
if (obj) {
obj.style.display="none";
}
}
//gets the element children of a dom object
function Tools_getElementChildren(obj) {
var myArray= new Array();
mycnt = 0;
for (i=0;i<obj.childNodes.length;i++) {
if (obj.childNodes[i].nodeType==1) {
myArray[mycnt] = obj.childNodes[i];
mycnt++;
}
}
return myArray;
}
//writes debug to the debug window written in the constructor
function Tools_debug(str) {
if (this.debugEnabled) {
this.debugArea.style.display = "block";
document.tools_debug.out.value += "DEBUG: " + str + "\n";
}
}
//set a cookie
function Tools_setCookie(name, value, expires, path, domain, secure) {
var cookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
document.cookie = cookie;
}
//get a cookie;
function Tools_getCookie(name) {
var cookie = document.cookie;
var prefix = name + "=";
var begin = cookie.indexOf("; " + prefix);
if (begin == -1) {
begin = cookie.indexOf(prefix);
if (begin != 0) return null;
} else
begin += 2;
var end = document.cookie.indexOf(";", begin);
if (end == -1)
end = cookie.length;
return unescape(cookie.substring(begin + prefix.length, end));
}
//delete a cookie
function Tools_deleteCookie(name, path, domain) {
if (Tools_getCookie(name)) {
document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT";
}
}

View file

@ -0,0 +1,30 @@
.am-grid {height: 100%; font: menu;}
.am-grid-headers {background-color:blue}
.am-grid-header-0 {width: 50px; background-color: threedlightshadow; cursor:move;}
.am-grid-header-1 {width: 200px; cursor:move;}
.am-grid-header-2 {cursor:move;}
.am-grid-header-3 {cursor:move;}
.am-grid-header-4 {cursor:move;}
.am-grid-row {}
.am-grid-col-0 {width: 50px; background-color: threedlightshadow; cursor:move;}
.am-grid-col-1 {width: 200px; cursor:move;}
.am-grid-col-2 {cursor:move;}
.am-grid-col-3 {cursor:move;}
.am-grid-col-4 {cursor:move;}
.contextMenu{position: absolute; top: 0; left:0; font-size: 12px; display:none; text-decoration: none; background-color:#F0F0F0; border-bottom: 3px groove #999999; border-top: 0px groove #999999; border-right: 3px groove #999999; border-left: 0px groove #999999;}
.contextMenu A{ font-size: 12px; text-decoration: none;}
.contextMenuTabOver{background-color: darkblue; text-decoration: none; width:100%; color: #ffffff; font-size: 12px;}
.contextMenuTab, .contextMenuTab A{background-color: #F0F0F0; width:100%; text-decoration: none; font-size: 12px; color:#000000;}
.propertiesWindow{position:absolute; display:none; background-color:#F2F2F2;}
.propertiesWindowDrag{position:absolute; background-image: url(/images/transparent.gif)}
.propertiesMenuName{font-weight:700; font-size:12px}
.propertiesMenuValue{font-size:12px;}
.dragIdentifier{position:absolute; display: none; border: 3px dotted black; font-size: 12;}

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 B