[
https://issues.apache.org/jira/browse/FLEX-33604?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Justin Mclean updated FLEX-33604:
---------------------------------
Labels: easyfix newbie (was: newbie)
> spark DataGrid causes a tooltip (text: "<dataTip>") to appear for its typical
> item renderer although mouse not over data grid
> -----------------------------------------------------------------------------------------------------------------------------
>
> Key: FLEX-33604
> URL: https://issues.apache.org/jira/browse/FLEX-33604
> Project: Apache Flex
> Issue Type: Bug
> Components: Cell Renderers, Spark: DataGrid, Tooltip Manager
> Affects Versions: Apache Flex 4.9.0
> Environment: Tested on a Win 8 and a Win 7 system.
> Reporter: Mihai Chira
> Priority: Critical
> Labels: easyfix, newbie
> Attachments: FaultyTooltipViaDataGrid.fxp
>
>
> Run the application below (or import the attached project into FlashBuilder)
> and click the second tab.
> Actual result: a tooltip appears next to the mouse saying "<dataTip>".
> Desired result: no such tooltip should appear.
> Notes: from what I could tell, it happens because the data grid creates its
> typical item renderer during a measure() call; the renderer, through the
> validateNow() function, registers itself with the TooltipManager; in that
> function ("registerToolTip()"), the latter checks if the mouse is currently
> over the target. In reality it's not, but because all this happens during
> measure, the parents of the renderer haven't been measured yet, so its
> localToGlobal() function returns wrong data. This happens to indicate that
> the current mouse position is over the renderer. Therefore the tooltip is
> shown.
> __________________________
> <?xml version="1.0" encoding="utf-8"?>
> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
>
> xmlns:s="library://ns.adobe.com/flex/spark"
> xmlns:local="*">
> <fx:Script>
> <![CDATA[
> import mx.collections.ArrayCollection;
>
> import spark.components.TabBar;
> import spark.events.IndexChangeEvent;
>
> private static const STATE1_ID:String = "firstTab";
> private static const STATE2_ID:String = "secondTab";
> private static const STATES:ArrayCollection = new
> ArrayCollection([STATE1_ID, STATE2_ID]);
>
> protected function
> onTabChange(event:IndexChangeEvent):void
> {
> var buttonBar:TabBar = event.target as TabBar;
>
> if (!buttonBar)
> return;
>
> switch (buttonBar.selectedItem)
> {
> case STATE1_ID:
> this.currentState = "tab1";
> break;
> case STATE2_ID:
> this.currentState = "tab2";
> break;
> }
> }
> ]]>
> </fx:Script>
>
> <s:states>
> <s:State id="firstTab" name="tab1"/>
> <s:State id="secondTab" name="tab2"/>
> </s:states>
>
> <s:VGroup width="100%" height="100%" clipAndEnableScrolling="true">
>
> <s:TabBar id="dataGridNavigation" width="100%"
> dataProvider="{STATES}" change="onTabChange(event)"/>
> <s:Label text="Welcome! Please click on the second tab and
> don't move the mouse." includeIn="tab1"/>
> <local:DataGridShowingOutOfPlaceTooltip width="100%"
> height="100%" includeIn="tab2"/>
> </s:VGroup>
> </s:WindowedApplication>
> ______________________
> and the "DataGridShowingOutOfPlaceTooltip" component:
> <?xml version="1.0" encoding="utf-8"?>
> <s:VGroup xmlns:fx="http://ns.adobe.com/mxml/2009"
> xmlns:s="library://ns.adobe.com/flex/spark"
> xmlns:mx="library://ns.adobe.com/flex/mx">
> <fx:Script>
> <![CDATA[
> import spark.skins.spark.DefaultGridItemRenderer;
> ]]>
> </fx:Script>
> <fx:Declarations>
> <s:ArrayCollection id="someObjects">
> <fx:Object description="obj desc1" note="note1"
> hours="1"/>
> <fx:Object description="obj desc2" note="note2"
> hours="2"/>
> <fx:Object description="obj desc3" note="note3"
> hours="3"/>
> </s:ArrayCollection>
> </fx:Declarations>
>
> <s:DataGrid dataProvider="{someObjects}"
> width="100%" height="100%"
>
> itemRenderer="spark.skins.spark.DefaultGridItemRenderer"
> showDataTips="true">
>
> <s:columns>
> <s:ArrayList>
> <s:GridColumn headerText="Note"
> dataField="note"/>
> <s:GridColumn headerText="Description"
>
> dataField="description"/>
> <s:GridColumn headerText="Hours"
> dataField="hours"/>
> </s:ArrayList>
> </s:columns>
>
> </s:DataGrid>
> </s:VGroup>
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira