ChartDirector Ver 3.1 (PHP Edition Edition)

DataSet.setUseYAxis2


Usage

setUseYAxis2([b])

Description

Determine if the primary or secondary y-axis should be used when drawing the data set.

To set the y-axis to use for all data sets within a layer, use Layer.setUseYAxis2.

Arguments

ArgumentDefaultDescription
btrue (non-zero)A true (non-zero) value means the secondary y-axis will be used. A false (zero) value means the primary y-axis will be used.

Return Value

None


reSymbol1 DiamondSymbol2 TriangleSymbol3 RightTriangleSymbol4 LeftTriangleSymbol5 InvertedTriangleSymbol6 CircleSymbol7 CrossSymbol8 Cross2Symbol9

Arguments

ArgumentDefaultDescription
symbol(Mandatory)One of the pre-defined symbol constants (see above) to specify the symbol to use.
size5The width and height of the symbol in pixels.
fillColor-1The color used to fill the symbol. -1 means the color of the data set will be used.
edgeColor-1The edge color used to draw the edge of the symbol. -1 means the edge color of the data set will be used.
lineWidth1The line width used for drawing the symbols.

Return Value

None


neLayer(); #Set the default line width to 3 pixels $layer->setLineWidth(3); #Add the data sets to the line layer $layer->addDataSet($data0, -1, "Enterprise"); $layer->addDataSet($data1, -1, "Consumer"); #Create the image and save it in a temporary location $chart1URL = $c->makeSession("chart1"); #Create an image map for the chart $chartImageMap = $c->getHTMLImageMap("xystub.php", "", "title='{dataSetName} @ {xLabel} = USD {value|0} millions'"); #Create an image map for the legend box $legendImageMap = $legendBox->getHTMLImageMap("javascript:doSomething();", " ", "title='This legend key is clickable!'"); #Obtain the image map coordinates for the title, mark, and copyright message. #These will be used to define the image map inline. (See HTML code below.) $titleCoor = $title->getImageCoor(); $markCoor = $mark->getImageCoor(); $copyRightCoor = $copyRight->getImageCoor(); ?>

Custom Clickable Objects

"> View Source Code

In the following chart, the lines, legend keys, title, copyright, and the "Merge with Star Tech" text are all clickable!

href='javascript:doSomething();' title='The title is clickable!'> href='javascript:doSomething();' title='The "Merge with Star Tech" text is clickable!'> href='javascript:doSomething();' title='The copyright text is clickable!'>
In the above code, the chart is created and saved in a session variable using BaseChart.makeSession. An <IMG> tag is used to retrieve the chart with "myimage.php?<?php echo $chart1URL?>" as the URL. "myimage.php" is a simple utility that comes with ChartDirector for retrieving images from session variables.

The image map in this example consists of multiple parts. The part for the line chart is produced using BaseChart.getHTMLImageMap with "xystub.php" as the handler:

$chartImageMap = $c->getHTMLImageMap("xystub.php", "", "title='{dataSetName} @ {xLabel} = USD {value|0} millions'");

For demo purpose, "xystub.php" simply displays information on what is clicked. It's source code is as follows.

[File: phpdemo/xystub.php".]
<html> <body> <h1>Simple Clickable XY Chart Handler</h1> <p><a href="viewsource.php?file=<?php echo $HTTP_SERVER_VARS["SCRIPT_NAME"]?>"> View Source Code </a></p> <p><b>You have clicked on the following chart element :</b></p> <ul> <li>Data Set : <?php echo $HTTP_GET_VARS["dataSetName"]?></li> <li>X Position : <?php echo $HTTP_GET_VARS["x"]?></li> <li>X Label : <?php echo $HTTP_GET_VARS["xLabel"]?></li> <li>Data Value : <?php echo $HTTP_GET_VARS["value"]?></li> </ul> </body> </html>

The image map for the legend keys is produced using LegendBox.getHTMLImageMap. In this example, a client side Javascript will be executed when the user clicks on the legend key.

$legendImageMap = $legendBox->getHTMLImageMap("javascript:doSomething();", " ", "title='This legend key is clickable!'");

As shown above, the "javascript:doSomething();" is used as the handler. ChartDirector will put the handler as "href" attributes in the <AREA> tags of the image map. The browser will interpret it as a client side Javascript statement to be executed when the <AREA> tag is clicked.

Note that the second argument to LegendBox.getHTMLImageMap is set to a space character. This argument specifies the HTTP query parameters get passed to the handler. If this argument is an empty string, default query parameters will be used. In this example, since the handler is a client side Javascript, no HTTP query parameter is necessary. So a space character is used.

The client side Javascript executed in this example is a function called "doSomething();". In this example, this just pops up a message.

<SCRIPT> function doSomething() { alert("This is suppose to do something meaningful, but for demo " + "purposes, we just pop up this message box to prove that " + "the object can response to mouse clicks."); } </SCRIPT>

Most text messages in ChartDirector are represented as TextBox objects, and their image map coordinates can be retrieved using Box.getImageCoor. This allows <AREA> tags for TextBox objects be created easily.

(For TextBox, there is no "getHTMLImageMap" method. It is because each TextBox object only has one hot spot. It is more convenient to enter the handler URL and tool tip text directly into the <AREA> tag, rather than generating them using getHTMLImageMap.)

In this example, the image map coordinates of the chart title, vertical mark label, and the copyright message are obtained using Box.getImageCoor:

$titleCoor = $title->getImageCoor(); $markCoor = $mark->getImageCoor(); $copyRightCoor = $copyRight->getImageCoor();

The image map coordinates are then used to make <AREA> tags as follows:

<area <?php echo $titleCoor?> href='javascript:doSomething();' title='The title is clickable!'> <area <?php echo $markCoor?> href='javascript:doSomething();' title='The "Merge with Star Tech" text is clickable!'> <area <?php echo $copyRightCoor?> href='javascript:doSomething();' title='The copyright text is clickable!'>


01', '959', '1018', '1102');