Thursday, June 25, 2009

Nike+: Update to Site Requires Additional Exemptions in AdBlock Plus

I wrote previously about needing to add an exemption for Nike Plus if you are running Firefox with AdBlock Plus. Two days ago Nike did some updates to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Nikeplus site, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 original issue of just getting a white screen came up again. Turns out, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a new domain needed to add to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 exemption list.

So, adding a new exemption like so will get around this:
@@http://nikerunning.nike.com

I will need to investigate furcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r, I am fairly sure you can a wildcard, like eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r @@.nike.com, or maybe @@*.nike.com to get around this, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only concern for me are ads that come from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Nike domain...

Wednesday, June 17, 2009

BIRT - Highlight Chart Series on MouseOver Event

One of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most common requests I hear with BIRT charting is that people want interactive charts. So, when someone mouse over a series in a Pie Chart, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y would like to see that series jump out, or highlight. I’ve heard this request over and over again.

The problem is that BIRT charts render charts as single images. So, when you render a chart, it renders a JPG or a PNG file, and when it displays in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 browser, it displays with an image map to handle interactivity. This makes doing a highlighting chart series very difficult. Typically cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 solutions that is given is to use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SVG output for charts. While this will work, I don’t like cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 solution for a number of reasons. First, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 behavior is not consistent. Secondly, SVG is not a standard format. In some browsers it requires a plugin.

So, I took a page out of history to come up with a solution. This harkens back to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 yesteryear of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 good old image swap Javascript. The solution is simple. Basically, BIRT will render cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chart multiple times, once for ever series in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chart. It does so by using a script in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 initialize tag (this needs to be done during cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 generation phase, I used Initialize in this example). The script reads cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 parent chart, makes a copy, and modifies cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 explosion expression to explode only a single series. Once completed, a Javascript on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 client side will retrieve cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chart images by ID and store cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m in an array. The Chart interactivity will cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n call a swap function when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user mouse-overs that particular series, causing it to swap. The example report below leave room for improvement, but it is a workable example of how this can be accomplished. I combined this example with an example on BIRT Exchange that shows how to highlight of table rows that correspond to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chart series. This gives it a little extra umph.





Eclipse BIRT Designer Version 2.3.2.r232_20090202 Build <2.3.2.v20090218-0730>
in
var re = reportDesignHandle.findElement("NewChart");

var pieChart = re.getReportItem().getProperty("chart.instance");

for (var x = 1; x <= 20; x++)
{
importPackage(Packages.org.eclipse.emf.ecore.util);
var chartCopy = EcoreUtil.copy(pieChart);

var outerSeries = chartCopy.getSeriesDefinitions().get(0);
var innerSeries = outerSeries.getSeriesDefinitions().get(0);
var pieSeries = innerSeries.getSeries().get(0);
pieSeries.setExplosionExpression("valueData == " + x);
pieSeries.setExplosion(5);

var eih = reportDesignHandle.getElementFactory().newExtendedItem("chart-" + x, "Chart");
eih.getReportItem().setProperty("chart.instance", chartCopy);
eih.setBookmark("\"Chart-" + x + "\"");

re.getContainerSlotHandle().add(eih);
}]]>

/templates/blank_report.gif
ltr







0
id
integer


1
count
integer




id


count





1
id
integer


2
count
integer



Data Source
id = 0;]]>
{
id++;
count++;

row["id"] = id;
row["count"] = count;
return true;
}

return false;]]>










0.25in
0.25in
0.25in
0.25in


html
new Date()]]>






100%
Data Set


id
id
dataSetRow["id"]
integer


count
count
dataSetRow["count"]
integer







2
1


Pie Chart
Standard



0.0
0.0
0.0
0.0


3.0
3.0
3.0
3.0

-1
-1
-1
-1


1

255
0
0
0

false

true


0
255
255
255



1

255
0
0
0



0.0
2.0
0.0
3.0

true




0.0
0.0
0.0
0.0


3.0
3.0
3.0
3.0

-1
-1
-1
-1


1

255
0
0
0

false

true
5
5



0

255
0
0
0

false


0.0
0.0
0.0
0.0





0.0
0.0
0.0
0.0


3.0
3.0
3.0
3.0

-1
-1
-1
-1


1

255
0
0
0

false

true



0

255
0
0
0

false


2.0
2.0
2.0
2.0








Vertical
Top_Bottom


1

255
0
0
0

true

Right
Categories
<br /> <Caption><br /> <Value></Value><br /> <Font><br /> <Alignment/><br /> </Font><br /> </Caption><br /> <Background xsi:type="attribute:ColorDefinition"><br /> <Transparency>0</Transparency><br /> <Red>255</Red><br /> <Green>255</Green><br /> <Blue>255</Blue><br /> </Background><br /> <Outline><br /> <Style>Solid</Style><br /> <Thickness>1</Thickness><br /> <Color><br /> <Transparency>255</Transparency><br /> <Red>0</Red><br /> <Green>0</Green><br /> <Blue>0</Blue><br /> </Color><br /> <Visible>false</Visible><br /> </Outline><br /> <Insets><br /> <Top>0.0</Top><br /> <Left>2.0</Left><br /> <Bottom>0.0</Bottom><br /> <Right>3.0</Right><br /> </Insets><br /> <Visible>false</Visible><br />
Above


0.0
0.0
561.75
351.75


3.0
3.0
3.0
3.0

-1
-1
-1
-1


1

255
0
0
0

false


255
255
255
255

true

Two_Dimensional
Points
10.0
0


'A','B','C','D','E'


6,4,12,8,10
0



true
None







255
80
166
218


255
242
88
106


255
232
172
57


255
128
255
128


255
64
128
128


255
128
128
192


255
170
85
85


255
128
128
0


255
192
192
192


255
255
255
128


255
128
192
128


255
7
146
94


255
0
128
255


255
255
128
192


255
0
255
255


255
255
128
128


255
0
128
192


255
128
128
192


255
255
0
255


255
128
64
64


255
255
128
64


255
80
240
120


255
0
64
128


255
128
0
64


255
255
0
128


255
128
128
64


255
128
128
128


255
255
128
255


255
0
64
0


255
0
0
0


255
255
255
255


255
255
128
0








255
80
166
218


255
242
88
106


255
232
172
57


255
128
255
128


255
64
128
128


255
128
128
192


255
170
85
85


255
128
128
0


255
192
192
192


255
255
255
128


255
128
192
128


255
7
146
94


255
0
128
255


255
255
128
192


255
0
255
255


255
255
128
128


255
0
128
192


255
128
128
192


255
255
0
255


255
128
64
64


255
255
128
64


255
80
240
120


255
0
64
128


255
128
0
64


255
255
0
128


255
128
128
64


255
128
128
128


255
255
128
255


255
0
64
0


255
0
0
0


255
255
255
255


255
255
128
0



true


0
255
255
255



1

255
0
0
0

false


0.0
2.0
0.0
3.0

true


row["count"]




Orthogonal_Value

,

Outside
false

onmouseover

Invoke_Script





0

<br /> <Caption><br /> <Value></Value><br /> <Font><br /> <Size>16.0</Size><br /> <Bold>true</Bold><br /> <Alignment/><br /> </Font><br /> </Caption><br /> <Background xsi:type="attribute:ColorDefinition"><br /> <Transparency>0</Transparency><br /> <Red>255</Red><br /> <Green>255</Green><br /> <Blue>255</Blue><br /> </Background><br /> <Outline><br /> <Style>Solid</Style><br /> <Thickness>1</Thickness><br /> <Color><br /> <Transparency>255</Transparency><br /> <Red>0</Red><br /> <Green>0</Green><br /> <Blue>0</Blue><br /> </Color><br /> </Outline><br /> <Insets><br /> <Top>0.0</Top><br /> <Left>2.0</Left><br /> <Bottom>0.0</Bottom><br /> <Right>3.0</Right><br /> </Insets><br /> <Visible>true</Visible><br />
Below


1

255
0
0
0

true

Fixed_Length
10.0


false
1.0
Text
Sum



true


0
255
255
255



1

255
0
0
0

false


0.0
2.0
0.0
3.0

false


row["id"]




Orthogonal_Value

,

Outside
false


false
1.0
Text
Sum



]]>
PNG
"Chart-Main"
4.885416666666667in
7.802083333333333in




left










row["id"]


id




count








html

/**
Javascript for setting up hte image swap from all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chart instances
**/
imageArray = new Array();
mainImageSrc = document.getElementById("Chart-Main").src;

for (x = 0; x < 20; x++)
{
currentImage = document.getElementById("Chart-" + (x + 1));

imageArray[x] = currentImage;

currentImage.style.display = "none";
}

function swapImage(num)
{
mainImage = document.getElementById("Chart-Main");

mainImage.src = imageArray[num - 1].src;
}

function showMain()
{
document.getElementById("Image-Main").src = mainImageSrc;
}
]]>





html



]]>






Highlight Chart

16.0
true

Center
Center