Profile Picture

Zoom for web diagram

Posted By Max Rubinstein 13 Years Ago
Author
Message
Geoffrey Malafsky
Posted 13 Years Ago
View Quick Profile
Forum Newbie

Forum Newbie (2 reputation)Forum Newbie (2 reputation)Forum Newbie (2 reputation)Forum Newbie (2 reputation)Forum Newbie (2 reputation)Forum Newbie (2 reputation)Forum Newbie (2 reputation)Forum Newbie (2 reputation)Forum Newbie (2 reputation)

Group: Forum Members
Last Active: 13 Years Ago
Posts: 2, Visits: 1
another method used on web pages is to change the width and height properties of the image in the web page. This works with the imagemap as well so hotspots can be scaled. Here are examples, albeit using some specific items for my project (anything prefixed with DataStar_ is our own Javascript namespace.). The slider used to set the zoom factor on the UI is YUI's.



function AnalysisResults_SetZoom(newZoom, imgId) {
var txt="", txt1="", n1=-1, w=0, h=0, i=0, imgw=0, imgh=0, scale=0;
try {
if (newZoom==null || typeof(newZoom)=='undefined') return;
if (imgId!="") imgId=imgId.toLowerCase();
if (imgId=="sliderzoom") {
scale = 4* parseInt(newZoom); //400% max
DataStar_UILogic.setDivProp("div_table_diagram_lbl_zoom","innerhtml",scale.toString() + "%");
scale /= 100.0;
txt=DataStar_UILogic.getDivProp("div_table_diagram_image", "src");
if (txt!="") txt=txt.toLowerCase();
n1=-1;
if (txt.indexOf("datastar/download/")>-1) {
txt=txt.substr(txt.indexOf("datastar/download/"));
txt=txt.replace(/%20/g, " ");
for (i=0; i txt1= images[i].url;
if (txt1!="") txt1=txt1.toLowerCase();
if (txt.indexOf(txt1)>-1) {
n1=i;
break;
}
}
}
if (n1>-1) {
imgw= Math.round(images[n1].width * scale);
imgh= Math.round(images[n1].height * scale);
txt=DataStar_UILogic.getDivProp("div_table_diagram_container", "width");
if (txt.indexOf("px")>-1) txt=txt.substr(0, txt.indexOf("px"));
if (DataStar_function.IsNumber("integer", txt)) w=parseInt(txt)-10;
txt=DataStar_UILogic.getDivProp("div_table_diagram_container", "height");
if (txt.indexOf("px")>-1) txt=txt.substr(0, txt.indexOf("px"));
if (DataStar_function.IsNumber("integer", txt)) h=parseInt(txt)-10;
//set container scroll if pic size is larger
if (w< imgw || h< imgh) {txt1="scroll";}
else {txt1="hidden";}
DataStar_UILogic.setDivProp("div_table_diagram_container", "overflow", txt1);
DataStar_UILogic.setDivProp("div_table_diagram_image", "width", imgw.toString() + "px");
DataStar_UILogic.setDivProp("div_table_diagram_image", "height", imgh.toString() + "px");
if (imgw < w) {txt1= parseInt((w-imgw)/2).toString();}
else {txt1="0";}
txt1 += "px";
DataStar_UILogic.setDivProp("div_table_diagram_image", "marginleft", txt1);
AnalysisResults_SetImageMap(n1, scale);
}
}
}
catch (ex) {if (debugmodejs) alert("Error AnalysisResults_SetZoom:" + ex.message);}
} //end AnalysisResults_SetZoom




function AnalysisResults_SetImageMap(nimg, scale) {
var obj=null, txt="", txt1="", txt2="", w=0, h=0, i=0, x=0, y=0, flag=false;
try {
if (scale==null || typeof(scale)=='undefined') scale=1.0;
//clear imagemap
if (document.all.div_table_diagram_imagemap!=null && typeof(document.all.div_table_diagram_imagemap)!='undefined') {
for (i=document.all.div_table_diagram_imagemap.areas.length-1; i>=0; i--) {
document.all.div_table_diagram_imagemap.areas.remove(i);
}
}
for (i=0; i< images[nimg].imagepos.length; i++) {
txt= images[nimg].imagepos[i];
if (txt!="") txt=txt.toLowerCase();
if (txt.indexOf("(")>-1) {
txt1=txt.substr(txt.lastIndexOf("(")+1);
if (txt1.indexOf(")")>-1) txt1=txt1.substr(0, txt1.indexOf(")"));
txt=txt.substr(0, txt.lastIndexOf("("));
x=0; y=0; w=0; h=0;
flag=true;
if (txt1.indexOf(",")>-1) {
txt2=txt1.substr(0, txt1.indexOf(","));
txt1= txt1.substr(txt1.indexOf(",")+1);
if (DataStar_function.IsNumber("real", txt2)) x=parseInt(txt2);
else flag=false;
}
if (flag && txt1.indexOf(",")>-1) {
txt2=txt1.substr(0, txt1.indexOf(","));
txt1= txt1.substr(txt1.indexOf(",")+1);
if (DataStar_function.IsNumber("real", txt2)) y=parseInt(txt2);
else flag=false;
}
if (flag && txt1.indexOf(",")>-1) {
txt2=txt1.substr(0, txt1.indexOf(","));
txt1= txt1.substr(txt1.indexOf(",")+1);
if (DataStar_function.IsNumber("real", txt2)) w=parseInt(txt2);
else flag=false;
}
if (flag && txt1!="") {
txt2=txt1;
if (DataStar_function.IsNumber("real", txt2)) h=parseInt(txt2);
else flag=false;
}
if (flag) {
if (scale!=1.0) {
x = Math.round(x*scale);
y = Math.round(y*scale);
w = Math.round(w*scale);
h = Math.round(h*scale);
}
obj= document.createElement("area");
obj.coords = x.toString() + "," + y.toString() + "," + w.toString() + "," + h.toString(); //top-left, bot-rt
obj.shape="rect";
obj.id= "imagemap_area_" + txt;
document.all.div_table_diagram_imagemap.areas.add(obj);
}
}
}
}
catch (ex) {if (debugmodejs) alert("Error AnalysisResults_SetImageMap:" + ex.message);}
obj=null;
} //end AnalysisResults_SetImageMap




Nevron Support
Posted 13 Years Ago
View Quick Profile
Supreme Being

Supreme Being (4,435 reputation)Supreme Being (4,435 reputation)Supreme Being (4,435 reputation)Supreme Being (4,435 reputation)Supreme Being (4,435 reputation)Supreme Being (4,435 reputation)Supreme Being (4,435 reputation)Supreme Being (4,435 reputation)Supreme Being (4,435 reputation)

Group: Forum Members
Last Active: Last Week
Posts: 3,054, Visits: 4,009

Hi,

Please, visit the Nevron Diagram Web Examples and take a look at the Maps examples. They demonstrate how to zoom in and out a diagram in web forms environment.



Best Regards,
Nevron Support Team



Max Rubinstein
Posted 13 Years Ago
View Quick Profile
Forum Newbie

Forum Newbie (1 reputation)Forum Newbie (1 reputation)Forum Newbie (1 reputation)Forum Newbie (1 reputation)Forum Newbie (1 reputation)Forum Newbie (1 reputation)Forum Newbie (1 reputation)Forum Newbie (1 reputation)Forum Newbie (1 reputation)

Group: Forum Members
Last Active: 13 Years Ago
Posts: 1, Visits: 1
Hello,

I've been trying to find examples or documentation regarding zoom for web diagram view.
However, I can't find anything.

Just calling Zoom on my Nevron.Diagram.WebForm.NDrawingView does not seem do have any effect.

Can anybody post a sample or maybe a pointer to the KB article?



Similar Topics


Reading This Topic