You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by gb...@apache.org on 2010/08/06 17:09:18 UTC

svn commit: r983012 - in /pivot/trunk: demos/src/org/apache/pivot/demos/styles/ tests/src/org/apache/pivot/tests/ tutorials/src/org/apache/pivot/tutorials/ tutorials/src/org/apache/pivot/tutorials/explorer/ tutorials/src/org/apache/pivot/tutorials/menu...

Author: gbrown
Date: Fri Aug  6 15:09:17 2010
New Revision: 983012

URL: http://svn.apache.org/viewvc?rev=983012&view=rev
Log:
Resolve PIVOT-570.

Modified:
    pivot/trunk/demos/src/org/apache/pivot/demos/styles/sample_content.bxml
    pivot/trunk/tests/src/org/apache/pivot/tests/panorama_test.bxml
    pivot/trunk/tutorials/src/org/apache/pivot/tutorials/explorer/component_explorer_window.bxml
    pivot/trunk/tutorials/src/org/apache/pivot/tutorials/explorer/tab_pane.bxml
    pivot/trunk/tutorials/src/org/apache/pivot/tutorials/menus/MenuBars.java
    pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation.bxml
    pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/tab_panes.bxml
    pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraAccordionSkin.java
    pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTabPaneSkin.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/Accordion.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/TabPane.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/TabPaneAttributeListener.java
    pivot/trunk/wtk/src/org/apache/pivot/wtk/TabPaneListener.java

Modified: pivot/trunk/demos/src/org/apache/pivot/demos/styles/sample_content.bxml
URL: http://svn.apache.org/viewvc/pivot/trunk/demos/src/org/apache/pivot/demos/styles/sample_content.bxml?rev=983012&r1=983011&r2=983012&view=diff
==============================================================================
--- pivot/trunk/demos/src/org/apache/pivot/demos/styles/sample_content.bxml (original)
+++ pivot/trunk/demos/src/org/apache/pivot/demos/styles/sample_content.bxml Fri Aug  6 15:09:17 2010
@@ -19,7 +19,7 @@ limitations under the License.
 <TabPane selectedIndex="0"
     xmlns:bxml="http://pivot.apache.org/bxml"
     xmlns="org.apache.pivot.wtk">
-    <Border TabPane.label="Tab 1">
+    <Border TabPane.tabData="Tab 1">
         <ScrollPane horizontalScrollBarPolicy="fill_to_capacity" styles="{backgroundColor:null}">
             <TablePane styles="{padding:8, horizontalSpacing:12}">
                 <columns>
@@ -152,10 +152,6 @@ limitations under the License.
             </TablePane>
         </ScrollPane>
     </Border>
-
-    <Border TabPane.label="Tab 2" styles="{padding:8}">
-    </Border>
-
-    <Border TabPane.label="Tab 3" styles="{padding:8}">
-    </Border>
+    <Border TabPane.tabData="Tab 2" styles="{padding:8}"/>
+    <Border TabPane.tabData="Tab 3" styles="{padding:8}"/>
 </TabPane>

Modified: pivot/trunk/tests/src/org/apache/pivot/tests/panorama_test.bxml
URL: http://svn.apache.org/viewvc/pivot/trunk/tests/src/org/apache/pivot/tests/panorama_test.bxml?rev=983012&r1=983011&r2=983012&view=diff
==============================================================================
--- pivot/trunk/tests/src/org/apache/pivot/tests/panorama_test.bxml (original)
+++ pivot/trunk/tests/src/org/apache/pivot/tests/panorama_test.bxml Fri Aug  6 15:09:17 2010
@@ -19,15 +19,15 @@ limitations under the License.
 <TabPane selectedIndex="0"
     xmlns:bxml="http://pivot.apache.org/bxml"
     xmlns="org.apache.pivot.wtk">
-    <Label TabPane.tooltipText="Tooltip1" TabPane.label="Tab 1" preferredWidth="320" preferredHeight="240" text="Tab 1"/>
-    <Label TabPane.label="Tab 2" preferredWidth="320" preferredHeight="240" text="Tab 2"/>
-    <Label TabPane.label="Tab 3" preferredWidth="320" preferredHeight="240" text="Tab 3"/>
-    <Label TabPane.label="Tab 4" preferredWidth="320" preferredHeight="240" text="Tab 4"/>
-    <Label TabPane.label="Tab 5" preferredWidth="320" preferredHeight="240" text="Tab 5"/>
-    <Label TabPane.label="Tab 6" preferredWidth="320" preferredHeight="240" text="Tab 6"/>
-    <Label TabPane.label="Tab 7" preferredWidth="320" preferredHeight="240" text="Tab 7"/>
-    <Label TabPane.label="Tab 8" preferredWidth="320" preferredHeight="240" text="Tab 8"/>
-    <Label TabPane.label="Tab 9" preferredWidth="320" preferredHeight="240" text="Tab 9"/>
-    <Label TabPane.label="Tab 10" preferredWidth="320" preferredHeight="240" text="Tab 10"/>
+    <Label TabPane.tabData="Tab 1" TabPane.tooltipText="Tooltip 1" preferredWidth="320" preferredHeight="240" text="Tab 1"/>
+    <Label TabPane.tabData="Tab 2" TabPane.tooltipText="Tooltip 2" preferredWidth="320" preferredHeight="240" text="Tab 2"/>
+    <Label TabPane.tabData="Tab 3" preferredWidth="320" preferredHeight="240" text="Tab 3"/>
+    <Label TabPane.tabData="Tab 4" preferredWidth="320" preferredHeight="240" text="Tab 4"/>
+    <Label TabPane.tabData="Tab 5" preferredWidth="320" preferredHeight="240" text="Tab 5"/>
+    <Label TabPane.tabData="Tab 6" preferredWidth="320" preferredHeight="240" text="Tab 6"/>
+    <Label TabPane.tabData="Tab 7" preferredWidth="320" preferredHeight="240" text="Tab 7"/>
+    <Label TabPane.tabData="Tab 8" preferredWidth="320" preferredHeight="240" text="Tab 8"/>
+    <Label TabPane.tabData="Tab 9" preferredWidth="320" preferredHeight="240" text="Tab 9"/>
+    <Label TabPane.tabData="Tab 10" preferredWidth="320" preferredHeight="240" text="Tab 10"/>
 </TabPane>
 

Modified: pivot/trunk/tutorials/src/org/apache/pivot/tutorials/explorer/component_explorer_window.bxml
URL: http://svn.apache.org/viewvc/pivot/trunk/tutorials/src/org/apache/pivot/tutorials/explorer/component_explorer_window.bxml?rev=983012&r1=983011&r2=983012&view=diff
==============================================================================
--- pivot/trunk/tutorials/src/org/apache/pivot/tutorials/explorer/component_explorer_window.bxml (original)
+++ pivot/trunk/tutorials/src/org/apache/pivot/tutorials/explorer/component_explorer_window.bxml Fri Aug  6 15:09:17 2010
@@ -26,7 +26,7 @@ limitations under the License.
         <SplitPane bxml:id="splitPane" orientation="horizontal" splitRatio="0.25">
             <left>
                 <TabPane>
-                    <Border TabPane.label="%explorerPane.label">
+                    <Border TabPane.tabData="%explorerPane.label">
                         <ScrollPane horizontalScrollBarPolicy="fill_to_capacity">
                             <TreeView bxml:id="treeView">
                                 <nodeRenderer>
@@ -359,13 +359,13 @@ limitations under the License.
                         <SplitPane orientation="horizontal" splitRatio="0.5">
                             <left>
                                 <TabPane>
-                                    <Border TabPane.label="%contentPane.visualizationLabel">
+                                    <Border TabPane.tabData="%contentPane.visualizationLabel">
                                         <ScrollPane bxml:id="contentScrollPane">
                                             <Border bxml:id="contentPane"
                                                 styles="{thickness:0, padding:6}"/>
                                         </ScrollPane>
                                     </Border>
-                                    <Border TabPane.label="%contentPane.bxmlSourceLabel">
+                                    <Border TabPane.tabData="%contentPane.bxmlSourceLabel">
                                         <ScrollPane horizontalScrollBarPolicy="fill_to_capacity"
                                             verticalScrollBarPolicy="fill_to_capacity">
                                             <TextArea bxml:id="sourceTextArea"
@@ -450,7 +450,7 @@ limitations under the License.
                             </left>
                             <right>
                                 <TabPane bxml:id="inspectorTabPane">
-                                    <Border TabPane.label="%inspectorPane.propertiesLabel">
+                                    <Border TabPane.tabData="%inspectorPane.propertiesLabel">
                                         <ScrollPane horizontalScrollBarPolicy="fill_to_capacity">
                                             <CardPane styles="{padding:10}">
                                                 <tools:ComponentPropertyInspector
@@ -458,7 +458,7 @@ limitations under the License.
                                             </CardPane>
                                         </ScrollPane>
                                     </Border>
-                                    <Border TabPane.label="%inspectorPane.stylesLabel">
+                                    <Border TabPane.tabData="%inspectorPane.stylesLabel">
                                         <ScrollPane horizontalScrollBarPolicy="fill_to_capacity">
                                                 <CardPane styles="{padding:10}">
                                                     <tools:ComponentStyleInspector
@@ -473,7 +473,7 @@ limitations under the License.
                     <bottom>
                         <TabPane>
                             <tools:EventLogger bxml:id="eventLogger"
-                                TabPane.label="%eventLoggerPane.label"/>
+                                TabPane.tabData="%eventLoggerPane.label"/>
                             <corner>
                                 <BoxPane styles="{padding:{right:6},
                                     horizontalAlignment:'right', fill:true}">

Modified: pivot/trunk/tutorials/src/org/apache/pivot/tutorials/explorer/tab_pane.bxml
URL: http://svn.apache.org/viewvc/pivot/trunk/tutorials/src/org/apache/pivot/tutorials/explorer/tab_pane.bxml?rev=983012&r1=983011&r2=983012&view=diff
==============================================================================
--- pivot/trunk/tutorials/src/org/apache/pivot/tutorials/explorer/tab_pane.bxml (original)
+++ pivot/trunk/tutorials/src/org/apache/pivot/tutorials/explorer/tab_pane.bxml Fri Aug  6 15:09:17 2010
@@ -17,34 +17,41 @@ limitations under the License.
 -->
 
 <TabPane xmlns:bxml="http://pivot.apache.org/bxml"
+    xmlns:content="org.apache.pivot.wtk.content"
     xmlns="org.apache.pivot.wtk">
-    <BoxPane TabPane.icon="@bell.png"
-        TabPane.label="Bell"
-        styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+    <BoxPane styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+        <TabPane.tabData>
+            <content:ButtonData icon="@bell.png" text="Bell"/>
+        </TabPane.tabData>
         <Border styles="{padding:2}">
             <Label text="120x90" preferredWidth="120" preferredHeight="90"
                 styles="{horizontalAlignment:'center', verticalAlignment:'center'}"/>
         </Border>
     </BoxPane>
 
-    <BoxPane TabPane.icon="@clock.png"
-        TabPane.label="Clock"
-        styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+    <BoxPane styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+        <TabPane.tabData>
+            <content:ButtonData icon="@clock.png" text="Clock"/>
+        </TabPane.tabData>
         <Border styles="{padding:2}">
             <Label text="240x180" preferredWidth="240" preferredHeight="180"
                 styles="{horizontalAlignment:'center', verticalAlignment:'center'}"/>
         </Border>
     </BoxPane>
 
-    <BoxPane TabPane.icon="@house.png"
-        TabPane.label="House"
-        styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+    <BoxPane styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+        <TabPane.tabData>
+            <content:ButtonData icon="@house.png" text="House"/>
+        </TabPane.tabData>
         <Border styles="{padding:2}">
             <Label text="320x240" preferredWidth="320" preferredHeight="240"
                 styles="{horizontalAlignment:'center', verticalAlignment:'center'}"/>
         </Border>
     </BoxPane>
 
-    <BoxPane TabPane.icon="@star.png"
-        TabPane.label="Star" enabled="false"/>
+    <BoxPane enabled="false">
+        <TabPane.tabData>
+            <content:ButtonData icon="@star.png" text="Star"/>
+        </TabPane.tabData>
+    </BoxPane>
 </TabPane>

Modified: pivot/trunk/tutorials/src/org/apache/pivot/tutorials/menus/MenuBars.java
URL: http://svn.apache.org/viewvc/pivot/trunk/tutorials/src/org/apache/pivot/tutorials/menus/MenuBars.java?rev=983012&r1=983011&r2=983012&view=diff
==============================================================================
--- pivot/trunk/tutorials/src/org/apache/pivot/tutorials/menus/MenuBars.java (original)
+++ pivot/trunk/tutorials/src/org/apache/pivot/tutorials/menus/MenuBars.java Fri Aug  6 15:09:17 2010
@@ -106,7 +106,7 @@ public class MenuBars extends Frame impl
                 }
 
                 tabPane.getTabs().add(tab);
-                TabPane.setLabel(tab, "Document " + tabPane.getTabs().getLength());
+                TabPane.setTabData(tab, "Document " + tabPane.getTabs().getLength());
                 tabPane.setSelectedIndex(tabPane.getTabs().getLength() - 1);
             }
         });

Modified: pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation.bxml
URL: http://svn.apache.org/viewvc/pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation.bxml?rev=983012&r1=983011&r2=983012&view=diff
==============================================================================
--- pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation.bxml (original)
+++ pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation.bxml Fri Aug  6 15:09:17 2010
@@ -39,30 +39,47 @@ limitations under the License.
 
                     <TablePane.Row height="1*">
                         <TabPane selectedIndex="0" styles="{tabOrientation:'horizontal'}">
-                            <Label TabPane.icon="@bell.png" TabPane.label="Bell" text="Basic"
-                                styles="{horizontalAlignment:'center', verticalAlignment:'center'}"/>
-                            <Label TabPane.icon="@clock.png" TabPane.label="Clock" text="Basic"
-                                styles="{horizontalAlignment:'center', verticalAlignment:'center'}"/>
-                            <Label TabPane.icon="@house.png" TabPane.label="House" text="Basic"
-                                styles="{horizontalAlignment:'center', verticalAlignment:'center'}"/>
+                            <Label text="Basic" styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                                <TabPane.tabData>
+                                    <content:ButtonData icon="@bell.png" text="Bell"/>
+                                </TabPane.tabData>
+                            </Label>
+
+                            <Label text="Basic" styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                                <TabPane.tabData>
+                                    <content:ButtonData icon="@clock.png" text="Clock"/>
+                                </TabPane.tabData>
+                            </Label>
+
+                            <Label text="Basic" styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                                <TabPane.tabData>
+                                    <content:ButtonData icon="@house.png" text="House"/>
+                                </TabPane.tabData>
+                            </Label>
                         </TabPane>
                     </TablePane.Row>
 
                     <TablePane.Row height="-1">
                         <TabPane selectedIndex="-1" styles="{tabOrientation:'horizontal', collapsible:true}"
                             tooltipText="Click a tab to expand/collapse">
-                            <BoxPane TabPane.icon="@anchor.png" TabPane.label="Anchor"
-                                styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                            <BoxPane styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                                <TabPane.tabData>
+                                    <content:ButtonData icon="@anchor.png" text="Anchor"/>
+                                </TabPane.tabData>
                                 <Label text="Collapsible"/>
                             </BoxPane>
 
-                            <BoxPane TabPane.icon="@cup.png" TabPane.label="Cup"
-                                styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                            <BoxPane styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                                <TabPane.tabData>
+                                    <content:ButtonData icon="@cup.png" text="Cup"/>
+                                </TabPane.tabData>
                                 <Label text="Collapsible"/>
                             </BoxPane>
 
-                            <BoxPane TabPane.icon="@star.png" TabPane.label="Star"
-                                styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                            <BoxPane styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                                <TabPane.tabData>
+                                    <content:ButtonData icon="@star.png" text="Star"/>
+                                </TabPane.tabData>
                                 <Label text="Collapsible"/>
                             </BoxPane>
                         </TabPane>
@@ -77,28 +94,45 @@ limitations under the License.
 
                     <TablePane.Row height="-1">
                         <TabPane selectedIndex="0" styles="{tabOrientation:'vertical'}">
-                            <Label TabPane.icon="@bell.png" TabPane.label="Bell" text="Basic"
-                                styles="{horizontalAlignment:'center', verticalAlignment:'center'}"/>
-                            <Label TabPane.icon="@clock.png" TabPane.label="Clock" text="Basic"
-                                styles="{horizontalAlignment:'center', verticalAlignment:'center'}"/>
-                            <Label TabPane.icon="@house.png" TabPane.label="House" text="Basic"
-                                styles="{horizontalAlignment:'center', verticalAlignment:'center'}"/>
+                            <Label text="Basic" styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                                <TabPane.tabData>
+                                    <content:ButtonData icon="@bell.png" text="Bell"/>
+                                </TabPane.tabData>
+                            </Label>
+
+                            <Label text="Basic" styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                                <TabPane.tabData>
+                                    <content:ButtonData icon="@clock.png" text="Clock"/>
+                                </TabPane.tabData>
+                            </Label>
+
+                            <Label text="Basic" styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                                <TabPane.tabData>
+                                    <content:ButtonData icon="@house.png" text="House"/>
+                                </TabPane.tabData>
+                            </Label>
                         </TabPane>
 
                         <TabPane selectedIndex="-1" styles="{tabOrientation:'vertical', collapsible:true}"
                             tooltipText="Click a tab to expand/collapse">
-                            <BoxPane TabPane.icon="@anchor.png" TabPane.label="Anchor"
-                                styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                            <BoxPane styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                                <TabPane.tabData>
+                                    <content:ButtonData icon="@anchor.png" text="Anchor"/>
+                                </TabPane.tabData>
                                 <Label text="Collapsible"/>
                             </BoxPane>
 
-                            <BoxPane TabPane.icon="@cup.png" TabPane.label="Cup"
-                                styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                            <BoxPane styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                                <TabPane.tabData>
+                                    <content:ButtonData icon="@cup.png" text="Cup"/>
+                                </TabPane.tabData>
                                 <Label text="Collapsible"/>
                             </BoxPane>
 
-                            <BoxPane TabPane.icon="@star.png" TabPane.label="Star"
-                                styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                            <BoxPane styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                                <TabPane.tabData>
+                                    <content:ButtonData icon="@star.png" text="Star"/>
+                                </TabPane.tabData>
                                 <Label text="Collapsible"/>
                             </BoxPane>
                         </TabPane>

Modified: pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/tab_panes.bxml
URL: http://svn.apache.org/viewvc/pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/tab_panes.bxml?rev=983012&r1=983011&r2=983012&view=diff
==============================================================================
--- pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/tab_panes.bxml (original)
+++ pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/tab_panes.bxml Fri Aug  6 15:09:17 2010
@@ -36,31 +36,45 @@ limitations under the License.
                             </BoxPane>
                         </corner>
 
-                        <BoxPane TabPane.icon="org/apache/pivot/tutorials/bell.png" TabPane.label="Bell"
-                            styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                        <BoxPane styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                            <TabPane.tabData>
+                                <content:ButtonData icon="org/apache/pivot/tutorials/bell.png"
+                                    text="Bell"/>
+                            </TabPane.tabData>
                             <Border styles="{padding:2}">
                                 <Label text="240x180" preferredWidth="240" preferredHeight="180"
                                     styles="{horizontalAlignment:'center', verticalAlignment:'center'}"/>
                             </Border>
                         </BoxPane>
 
-                        <BoxPane TabPane.icon="org/apache/pivot/tutorials/clock.png" TabPane.label="Clock"
-                            styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                        <BoxPane styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                            <TabPane.tabData>
+                                <content:ButtonData icon="org/apache/pivot/tutorials/clock.png"
+                                    text="Clock"/>
+                            </TabPane.tabData>
                             <Border styles="{padding:2}">
                                 <Label text="320x240" preferredWidth="320" preferredHeight="240"
                                     styles="{horizontalAlignment:'center', verticalAlignment:'center'}"/>
                             </Border>
                         </BoxPane>
 
-                        <BoxPane TabPane.icon="org/apache/pivot/tutorials/house.png" TabPane.label="House"
-                            styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                        <BoxPane styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
+                            <TabPane.tabData>
+                                <content:ButtonData icon="org/apache/pivot/tutorials/house.png"
+                                    text="House"/>
+                            </TabPane.tabData>
                             <Border styles="{padding:2}">
                                 <Label text="480x360" preferredWidth="480" preferredHeight="360"
                                     styles="{horizontalAlignment:'center', verticalAlignment:'center'}"/>
                             </Border>
                         </BoxPane>
 
-                        <BoxPane TabPane.icon="org/apache/pivot/tutorials/star.png" TabPane.label="Star" enabled="false"/>
+                        <BoxPane enabled="false">
+                            <TabPane.tabData>
+                                <content:ButtonData icon="org/apache/pivot/tutorials/star.png"
+                                    text="Star"/>
+                            </TabPane.tabData>
+                        </BoxPane>
                     </TabPane>
                 </BoxPane>
             </Border>

Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraAccordionSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraAccordionSkin.java?rev=983012&r1=983011&r2=983012&view=diff
==============================================================================
--- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraAccordionSkin.java (original)
+++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraAccordionSkin.java Fri Aug  6 15:09:17 2010
@@ -55,8 +55,10 @@ import org.apache.pivot.wtk.skin.Contain
 public class TerraAccordionSkin extends ContainerSkin
     implements AccordionListener, AccordionSelectionListener, AccordionAttributeListener {
     protected class PanelHeader extends Button {
+        private final Component panel;
+
         public PanelHeader(Component panel) {
-            super(panel);
+            this.panel = panel;
             super.setToggleButton(true);
 
             setSkin(new PanelHeaderSkin());
@@ -64,7 +66,7 @@ public class TerraAccordionSkin extends 
 
         @Override
         public Object getButtonData() {
-            return Accordion.getHeaderData((Component)super.getButtonData());
+            return Accordion.getHeaderData(panel);
         }
 
         @Override
@@ -73,8 +75,19 @@ public class TerraAccordionSkin extends 
         }
 
         @Override
+        public Button.DataRenderer getDataRenderer() {
+            Accordion accordion = (Accordion)TerraAccordionSkin.this.getComponent();
+            return accordion.getHeaderDataRenderer();
+        }
+
+        @Override
+        public void setDataRenderer(Button.DataRenderer dataRenderer) {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
         public String getTooltipText() {
-            return Accordion.getTooltipText((Component)super.getButtonData());
+            return Accordion.getTooltipText(panel);
         }
 
         @Override
@@ -104,11 +117,10 @@ public class TerraAccordionSkin extends 
         public int getPreferredWidth(int height) {
             PanelHeader panelHeader = (PanelHeader)getComponent();
 
-            Accordion accordion = (Accordion)TerraAccordionSkin.this.getComponent();
-            Button.DataRenderer headerDataRenderer = accordion.getHeaderDataRenderer();
-            headerDataRenderer.render(panelHeader.getButtonData(), panelHeader, false);
+            Button.DataRenderer dataRenderer = panelHeader.getDataRenderer();
+            dataRenderer.render(panelHeader.getButtonData(), panelHeader, false);
 
-            int preferredWidth = headerDataRenderer.getPreferredWidth(-1)
+            int preferredWidth = dataRenderer.getPreferredWidth(-1)
                 + buttonPadding.left + buttonPadding.right + 2;
 
             return preferredWidth;
@@ -118,9 +130,8 @@ public class TerraAccordionSkin extends 
         public int getPreferredHeight(int width) {
             PanelHeader panelHeader = (PanelHeader)getComponent();
 
-            Accordion accordion = (Accordion)TerraAccordionSkin.this.getComponent();
-            Button.DataRenderer headerDataRenderer = accordion.getHeaderDataRenderer();
-            headerDataRenderer.render(panelHeader.getButtonData(), panelHeader, false);
+            Button.DataRenderer dataRenderer = panelHeader.getDataRenderer();
+            dataRenderer.render(panelHeader.getButtonData(), panelHeader, false);
 
             // Include padding and border in constraint
             int contentWidth = width;
@@ -129,7 +140,7 @@ public class TerraAccordionSkin extends 
                     + buttonPadding.right + 2), 0);
             }
 
-            int preferredHeight = headerDataRenderer.getPreferredHeight(contentWidth)
+            int preferredHeight = dataRenderer.getPreferredHeight(contentWidth)
                 + buttonPadding.top + buttonPadding.bottom + 2;
 
             return preferredHeight;
@@ -139,11 +150,10 @@ public class TerraAccordionSkin extends 
         public Dimensions getPreferredSize() {
             PanelHeader panelHeader = (PanelHeader)getComponent();
 
-            Accordion accordion = (Accordion)TerraAccordionSkin.this.getComponent();
-            Button.DataRenderer headerDataRenderer = accordion.getHeaderDataRenderer();
-            headerDataRenderer.render(panelHeader.getButtonData(), panelHeader, false);
+            Button.DataRenderer dataRenderer = panelHeader.getDataRenderer();
+            dataRenderer.render(panelHeader.getButtonData(), panelHeader, false);
 
-            Dimensions preferredContentSize = headerDataRenderer.getPreferredSize();
+            Dimensions preferredContentSize = dataRenderer.getPreferredSize();
 
             int preferredWidth = preferredContentSize.width
                 + buttonPadding.left + buttonPadding.right + 2;
@@ -158,14 +168,13 @@ public class TerraAccordionSkin extends 
         public int getBaseline(int width, int height) {
             PanelHeader panelHeader = (PanelHeader)getComponent();
 
-            Accordion accordion = (Accordion)TerraAccordionSkin.this.getComponent();
-            Button.DataRenderer headerDataRenderer = accordion.getHeaderDataRenderer();
-            headerDataRenderer.render(panelHeader.getButtonData(), panelHeader, false);
+            Button.DataRenderer dataRenderer = panelHeader.getDataRenderer();
+            dataRenderer.render(panelHeader.getButtonData(), panelHeader, false);
 
             int clientWidth = Math.max(width - (buttonPadding.left + buttonPadding.right + 2), 0);
             int clientHeight = Math.max(height - (buttonPadding.top + buttonPadding.bottom + 2), 0);
 
-            int baseline = headerDataRenderer.getBaseline(clientWidth, clientHeight);
+            int baseline = dataRenderer.getBaseline(clientWidth, clientHeight);
 
             if (baseline != -1) {
                 baseline += buttonPadding.top + 1;
@@ -191,16 +200,15 @@ public class TerraAccordionSkin extends 
             GraphicsUtilities.drawRect(graphics, 0, 0, width, height);
 
             // Paint the content
-            Accordion accordion = (Accordion)TerraAccordionSkin.this.getComponent();
-            Button.DataRenderer headerDataRenderer = accordion.getHeaderDataRenderer();
-            headerDataRenderer.render(panelHeader.getButtonData(), panelHeader, false);
-            headerDataRenderer.setSize(Math.max(width - (buttonPadding.left + buttonPadding.right + 2), 0),
+            Button.DataRenderer dataRenderer = panelHeader.getDataRenderer();
+            dataRenderer.render(panelHeader.getButtonData(), panelHeader, false);
+            dataRenderer.setSize(Math.max(width - (buttonPadding.left + buttonPadding.right + 2), 0),
                 Math.max(getHeight() - (buttonPadding.top + buttonPadding.bottom + 2), 0));
 
             Graphics2D contentGraphics = (Graphics2D)graphics.create();
             contentGraphics.translate(buttonPadding.left + 1, buttonPadding.top + 1);
-            contentGraphics.clipRect(0, 0, headerDataRenderer.getWidth(), headerDataRenderer.getHeight());
-            headerDataRenderer.paint(contentGraphics);
+            contentGraphics.clipRect(0, 0, dataRenderer.getWidth(), dataRenderer.getHeight());
+            dataRenderer.paint(contentGraphics);
             contentGraphics.dispose();
         }
 
@@ -826,7 +834,7 @@ public class TerraAccordionSkin extends 
 
     @Override
     public void headerDataRendererChanged(Accordion accordion, Button.DataRenderer previousHeaderDataRenderer) {
-        // No-op
+        invalidateComponent();
     }
 
     // Accordion selection events

Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTabPaneSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTabPaneSkin.java?rev=983012&r1=983011&r2=983012&view=diff
==============================================================================
--- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTabPaneSkin.java (original)
+++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraTabPaneSkin.java Fri Aug  6 15:09:17 2010
@@ -23,6 +23,7 @@ import java.awt.GradientPaint;
 import java.awt.Graphics2D;
 import java.awt.RenderingHints;
 import java.awt.geom.Line2D;
+import java.awt.geom.Rectangle2D;
 import java.awt.geom.RoundRectangle2D;
 
 import org.apache.pivot.collections.Dictionary;
@@ -51,14 +52,11 @@ import org.apache.pivot.wtk.TabPaneListe
 import org.apache.pivot.wtk.TabPaneSelectionListener;
 import org.apache.pivot.wtk.Theme;
 import org.apache.pivot.wtk.VerticalAlignment;
-import org.apache.pivot.wtk.content.ButtonData;
-import org.apache.pivot.wtk.content.ButtonDataRenderer;
 import org.apache.pivot.wtk.effects.ClipDecorator;
 import org.apache.pivot.wtk.effects.Transition;
 import org.apache.pivot.wtk.effects.TransitionListener;
 import org.apache.pivot.wtk.effects.easing.Easing;
 import org.apache.pivot.wtk.effects.easing.Quadratic;
-import org.apache.pivot.wtk.media.Image;
 import org.apache.pivot.wtk.skin.ButtonSkin;
 import org.apache.pivot.wtk.skin.ContainerSkin;
 
@@ -71,16 +69,47 @@ public class TerraTabPaneSkin extends Co
      * Tab button component.
      */
     public class TabButton extends Button {
-        public TabButton(Component tab) {
-            super(tab);
+        private final Component tab;
 
+        public TabButton(Component tab) {
+            this.tab = tab;
             super.setToggleButton(true);
-            setDataRenderer(DEFAULT_DATA_RENDERER);
 
             setSkin(new TabButtonSkin());
         }
 
         @Override
+        public Object getButtonData() {
+            return TabPane.getTabData(tab);
+        }
+
+        @Override
+        public void setButtonData(Object buttonData) {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public Button.DataRenderer getDataRenderer() {
+            TabPane tabPane = (TabPane)TerraTabPaneSkin.this.getComponent();
+            return tabPane.getTabDataRenderer();
+        }
+
+        @Override
+        public void setDataRenderer(Button.DataRenderer dataRenderer) {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public String getTooltipText() {
+            return TabPane.getTooltipText(tab);
+        }
+
+        @Override
+        public void setTooltipText(String tooltipText) {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
         public void setToggleButton(boolean toggleButton) {
             throw new UnsupportedOperationException();
         }
@@ -178,9 +207,8 @@ public class TerraTabPaneSkin extends Co
         public void paint(Graphics2D graphics) {
             TabButton tabButton = (TabButton)getComponent();
 
-            Component tab = (Component)tabButton.getButtonData();
             boolean active = (selectionChangeTransition != null
-                && selectionChangeTransition.tab == tab);
+                && selectionChangeTransition.tab == tabButton.tab);
 
             Color backgroundColor, buttonBevelColor;
             if (tabButton.isSelected()
@@ -415,15 +443,6 @@ public class TerraTabPaneSkin extends Co
     public static final int CORNER_RADIUS = 4;
     public static final int GRADIENT_BEVEL_THICKNESS = 8;
 
-    private static final Button.DataRenderer DEFAULT_DATA_RENDERER = new ButtonDataRenderer() {
-        @Override
-        public void render(Object data, Button button, boolean highlighted) {
-            Component tab = (Component)data;
-            super.render(new ButtonData(TabPane.getIcon(tab), TabPane.getLabel(tab)),
-                button, highlighted);
-        }
-    };
-
     public TerraTabPaneSkin() {
         TerraTheme theme = (TerraTheme)Theme.getTheme();
         activeTabColor = theme.getColor(11);
@@ -910,10 +929,10 @@ public class TerraTabPaneSkin extends Co
 
             // Draw the border
             graphics.setPaint(borderColor);
-
-            // TODO Don't use drawRect() here; use Rectangle2D
-            GraphicsUtilities.drawRect(graphics, contentBounds.x, contentBounds.y,
-                contentBounds.width, contentBounds.height);
+            graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
+                RenderingHints.VALUE_ANTIALIAS_ON);
+            graphics.draw(new Rectangle2D.Double(contentBounds.x + 0.5, contentBounds.y + 0.5,
+                contentBounds.width - 1, contentBounds.height - 1));
         }
     }
 
@@ -1301,6 +1320,11 @@ public class TerraTabPaneSkin extends Co
         invalidateComponent();
     }
 
+    @Override
+    public void tabDataRendererChanged(TabPane tabPane, Button.DataRenderer previousTabDataRenderer) {
+        buttonBoxPane.invalidate();
+    }
+
     // Tab pane selection events
     @Override
     public Vote previewSelectedIndexChange(TabPane tabPane, int selectedIndex) {
@@ -1406,35 +1430,12 @@ public class TerraTabPaneSkin extends Co
 
     // Tab pane attribute events
     @Override
-    public void labelChanged(TabPane tabPane, Component component, String previousLabel) {
-        int i = tabPane.getTabs().indexOf(component);
-        buttonBoxPane.get(i).invalidate();
-
-        invalidateComponent();
-    }
-
-    @Override
-    public void iconChanged(TabPane tabPane, Component component, Image previousIcon) {
-        int i = tabPane.getTabs().indexOf(component);
-        buttonBoxPane.get(i).invalidate();
-
-        invalidateComponent();
-    }
-
-    @Override
-    public void closeableChanged(TabPane tabPane, Component component) {
-        int i = tabPane.getTabs().indexOf(component);
-        buttonBoxPane.get(i).invalidate();
-
-        invalidateComponent();
+    public void tabDataChanged(TabPane tabPane, Component component, Object previousTabData) {
+        buttonBoxPane.invalidate();
     }
 
     @Override
     public void tooltipTextChanged(TabPane tabPane, Component component, String previousTooltipText) {
-        int i = tabPane.getTabs().indexOf(component);
-        buttonBoxPane.get(i).setTooltipText(TabPane.getTooltipText(component));
-        buttonBoxPane.get(i).invalidate();
-
-        invalidateComponent();
+        // No-op
     }
 }

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/Accordion.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/Accordion.java?rev=983012&r1=983011&r2=983012&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/Accordion.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/Accordion.java Fri Aug  6 15:09:17 2010
@@ -200,10 +200,9 @@ public class Accordion extends Container
         }
     }
 
-    private int selectedIndex = -1;
-
     private ArrayList<Component> panels = new ArrayList<Component>();
     private PanelSequence panelSequence = new PanelSequence();
+    private int selectedIndex = -1;
     private Button.DataRenderer headerDataRenderer = DEFAULT_HEADER_DATA_RENDERER;
 
     private AccordionListenerList accordionListeners = new AccordionListenerList();

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/TabPane.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/TabPane.java?rev=983012&r1=983011&r2=983012&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/TabPane.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/TabPane.java Fri Aug  6 15:09:17 2010
@@ -16,7 +16,6 @@
  */
 package org.apache.pivot.wtk;
 
-import java.net.URL;
 import java.util.Iterator;
 
 import org.apache.pivot.beans.DefaultProperty;
@@ -25,8 +24,7 @@ import org.apache.pivot.collections.Sequ
 import org.apache.pivot.util.ImmutableIterator;
 import org.apache.pivot.util.ListenerList;
 import org.apache.pivot.util.Vote;
-import org.apache.pivot.util.concurrent.TaskExecutionException;
-import org.apache.pivot.wtk.media.Image;
+import org.apache.pivot.wtk.content.ButtonDataRenderer;
 
 /**
  * Container that provides access to a set of components via selectable tabs,
@@ -131,10 +129,8 @@ public class TabPane extends Container {
     }
 
     private enum Attribute {
-        LABEL,
-        ICON,
-        CLOSEABLE,
-        TOOLTIP;
+        TAB_DATA,
+        TOOLTIP_TEXT;
     }
 
     private static class TabPaneListenerList extends ListenerList<TabPaneListener>
@@ -159,6 +155,13 @@ public class TabPane extends Container {
                 listener.cornerChanged(tabPane, previousCorner);
             }
         }
+
+        @Override
+        public void tabDataRendererChanged(TabPane tabPane, Button.DataRenderer previousTabDataRenderer) {
+            for (TabPaneListener listener : this) {
+                listener.tabDataRendererChanged(tabPane, previousTabDataRenderer);
+            }
+        }
     }
 
     private static class TabPaneSelectionListenerList extends ListenerList<TabPaneSelectionListener>
@@ -192,23 +195,9 @@ public class TabPane extends Container {
     private static class TabPaneAttributeListenerList extends ListenerList<TabPaneAttributeListener>
         implements TabPaneAttributeListener {
         @Override
-        public void labelChanged(TabPane tabPane, Component component, String previousLabel) {
-            for (TabPaneAttributeListener listener : this) {
-                listener.labelChanged(tabPane, component, previousLabel);
-            }
-        }
-
-        @Override
-        public void iconChanged(TabPane tabPane, Component component, Image previousIcon) {
-            for (TabPaneAttributeListener listener : this) {
-                listener.iconChanged(tabPane, component, previousIcon);
-            }
-        }
-
-        @Override
-        public void closeableChanged(TabPane tabPane, Component component) {
+        public void tabDataChanged(TabPane tabPane, Component component, Object previousTabData) {
             for (TabPaneAttributeListener listener : this) {
-                listener.closeableChanged(tabPane, component);
+                listener.tabDataChanged(tabPane, component, previousTabData);
             }
         }
 
@@ -220,22 +209,53 @@ public class TabPane extends Container {
         }
     }
 
-    private int selectedIndex = -1;
-
     private ArrayList<Component> tabs = new ArrayList<Component>();
     private TabSequence tabSequence = new TabSequence();
-
     private Component corner = null;
+    private int selectedIndex = -1;
+    private Button.DataRenderer tabDataRenderer = DEFAULT_TAB_DATA_RENDERER;
 
     private TabPaneListenerList tabPaneListeners = new TabPaneListenerList();
     private TabPaneSelectionListenerList tabPaneSelectionListeners = new TabPaneSelectionListenerList();
     private TabPaneAttributeListenerList tabPaneAttributeListeners = new TabPaneAttributeListenerList();
 
+    private static final Button.DataRenderer DEFAULT_TAB_DATA_RENDERER = new ButtonDataRenderer();
+
     public TabPane() {
         super();
         installThemeSkin(TabPane.class);
     }
 
+    public TabSequence getTabs() {
+        return tabSequence;
+    }
+
+    public Component getCorner() {
+        return corner;
+    }
+
+    public void setCorner(Component corner) {
+        Component previousCorner = this.corner;
+
+        if (previousCorner != corner) {
+            // Remove any previous corner component
+            this.corner = null;
+
+            if (previousCorner != null) {
+                remove(previousCorner);
+            }
+
+            // Set the new corner component
+            if (corner != null) {
+                insert(corner, 0);
+            }
+
+            this.corner = corner;
+
+            tabPaneListeners.cornerChanged(this, previousCorner);
+        }
+    }
+
     public int getSelectedIndex() {
         return selectedIndex;
     }
@@ -264,33 +284,19 @@ public class TabPane extends Container {
         return (selectedIndex == -1) ? null : tabs.get(selectedIndex);
     }
 
-    public TabSequence getTabs() {
-        return tabSequence;
+    public Button.DataRenderer getTabDataRenderer() {
+        return tabDataRenderer;
     }
 
-    public Component getCorner() {
-        return corner;
-    }
-
-    public void setCorner(Component corner) {
-        Component previousCorner = this.corner;
-
-        if (previousCorner != corner) {
-            // Remove any previous corner component
-            this.corner = null;
-
-            if (previousCorner != null) {
-                remove(previousCorner);
-            }
-
-            // Set the new corner component
-            if (corner != null) {
-                insert(corner, 0);
-            }
-
-            this.corner = corner;
+    public void setTabDataRenderer(Button.DataRenderer tabDataRenderer) {
+        if (tabDataRenderer == null) {
+            throw new IllegalArgumentException();
+        }
 
-            tabPaneListeners.cornerChanged(this, previousCorner);
+        Button.DataRenderer previousTabDataRenderer = this.tabDataRenderer;
+        if (previousTabDataRenderer != tabDataRenderer) {
+            this.tabDataRenderer = tabDataRenderer;
+            tabPaneListeners.tabDataRendererChanged(this, previousTabDataRenderer);
         }
     }
 
@@ -321,107 +327,30 @@ public class TabPane extends Container {
         return tabPaneAttributeListeners;
     }
 
-    public static String getLabel(Component component) {
-        return (String)component.getAttribute(Attribute.LABEL);
-    }
-
-    public static void setLabel(Component component, String label) {
-        String previousLabel = (String)component.setAttribute(Attribute.LABEL, label);
-
-        if (previousLabel != label) {
-            Container parent = component.getParent();
-
-            if (parent instanceof TabPane) {
-                TabPane tabPane = (TabPane)parent;
-                tabPane.tabPaneAttributeListeners.labelChanged(tabPane, component, previousLabel);
-            }
-        }
-    }
-
-    public static Image getIcon(Component component) {
-        return (Image)component.getAttribute(Attribute.ICON);
+    public static Object getTabData(Component component) {
+        return component.getAttribute(Attribute.TAB_DATA);
     }
 
-    public static void setIcon(Component component, Image icon) {
-        Image previousIcon = (Image)component.setAttribute(Attribute.ICON, icon);
+    public static void setTabData(Component component, Object tabData) {
+        Object previousTabData = component.setAttribute(Attribute.TAB_DATA, tabData);
 
-        if (previousIcon != icon) {
+        if (previousTabData != tabData) {
             Container parent = component.getParent();
 
             if (parent instanceof TabPane) {
                 TabPane tabPane = (TabPane)parent;
-                tabPane.tabPaneAttributeListeners.iconChanged(tabPane, component, previousIcon);
+                tabPane.tabPaneAttributeListeners.tabDataChanged(tabPane, component,
+                    previousTabData);
             }
         }
     }
 
-    public static final void setIcon(Component component, URL icon) {
-        if (icon == null) {
-            throw new IllegalArgumentException("icon is null.");
-        }
-
-        Image iconImage = (Image)ApplicationContext.getResourceCache().get(icon);
-
-        if (iconImage == null) {
-            try {
-                iconImage = Image.load(icon);
-            } catch (TaskExecutionException exception) {
-                throw new IllegalArgumentException(exception);
-            }
-
-            ApplicationContext.getResourceCache().put(icon, iconImage);
-        }
-
-        setIcon(component, iconImage);
-    }
-
-    public static final void setIcon(Component component, String icon) {
-        if (icon == null) {
-            throw new IllegalArgumentException("icon is null.");
-        }
-
-        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
-        setIcon(component, classLoader.getResource(icon));
-    }
-
-    public static boolean isCloseable(Component component) {
-        Boolean value = (Boolean)component.getAttribute(Attribute.CLOSEABLE);
-        return (value == null) ? false : value;
-    }
-
-    public static void setCloseable(Component component, boolean closeable) {
-        Boolean previousValue = (Boolean)component.setAttribute(Attribute.CLOSEABLE, closeable);
-        boolean previousCloseable = (previousValue == null) ? false : previousValue;
-
-        if (previousCloseable != closeable) {
-            Container parent = component.getParent();
-
-            if (parent instanceof TabPane) {
-                TabPane tabPane = (TabPane)parent;
-                tabPane.tabPaneAttributeListeners.closeableChanged(tabPane, component);
-            }
-        }
-    }
-
-    /**
-     * Returns the tab component's tooltip text.
-     *
-     * @return
-     * The tab component's tooltip text, or <tt>null</tt> if no tooltip is
-     * specified.
-     */
     public static String getTooltipText(Component component) {
-        return (String)component.getAttribute(Attribute.TOOLTIP);
+        return (String)component.getAttribute(Attribute.TOOLTIP_TEXT);
     }
 
-    /**
-     * Sets the tab component's tooltip text.
-     *
-     * @param tooltipText
-     * The tab component's tooltip text, or <tt>null</tt> for no tooltip.
-     */
     public static void setTooltipText(Component component, String tooltipText) {
-        String previousTooltipText = (String)component.setAttribute(Attribute.TOOLTIP, tooltipText);
+        String previousTooltipText = (String)component.setAttribute(Attribute.TOOLTIP_TEXT, tooltipText);
 
         if (previousTooltipText != tooltipText) {
             Container parent = component.getParent();

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/TabPaneAttributeListener.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/TabPaneAttributeListener.java?rev=983012&r1=983011&r2=983012&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/TabPaneAttributeListener.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/TabPaneAttributeListener.java Fri Aug  6 15:09:17 2010
@@ -16,8 +16,6 @@
  */
 package org.apache.pivot.wtk;
 
-import org.apache.pivot.wtk.media.Image;
-
 /**
  * Tab pane attribute listener interface.
  */
@@ -27,48 +25,22 @@ public interface TabPaneAttributeListene
      */
     public static class Adapter implements TabPaneAttributeListener {
         @Override
-        public void labelChanged(TabPane tabPane, Component component, String previousLabel) {
-        }
-
-        @Override
-        public void iconChanged(TabPane tabPane, Component component, Image previousIcon) {
-        }
-
-        @Override
-        public void closeableChanged(TabPane tabPane, Component component) {
+        public void tabDataChanged(TabPane tabPane, Component component, Object previousTabData) {
         }
 
         @Override
-        public void tooltipTextChanged(TabPane tabPane, Component component,
-            String previousTooltipText) {
+        public void tooltipTextChanged(TabPane tabPane, Component component, String previousTooltipText) {
         }
     }
 
     /**
-     * Called when a tab's label attribute has changed.
+     * Called when a tab's tab data attribute has changed.
      *
      * @param tabPane
      * @param component
      * @param previousLabel
      */
-    public void labelChanged(TabPane tabPane, Component component, String previousLabel);
-
-    /**
-     * Called when a tab's icon attribute has changed.
-     *
-     * @param tabPane
-     * @param component
-     * @param previousIcon
-     */
-    public void iconChanged(TabPane tabPane, Component component, Image previousIcon);
-
-    /**
-     * Called when a tab's closeable attribute has changed.
-     *
-     * @param tabPane
-     * @param component
-     */
-    public void closeableChanged(TabPane tabPane, Component component);
+    public void tabDataChanged(TabPane tabPane, Component component, Object previousTabData);
 
     /**
      * Called when a tab's tooltipText attribute has changed.

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/TabPaneListener.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/TabPaneListener.java?rev=983012&r1=983011&r2=983012&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/TabPaneListener.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/TabPaneListener.java Fri Aug  6 15:09:17 2010
@@ -37,6 +37,10 @@ public interface TabPaneListener {
         @Override
         public void cornerChanged(TabPane tabPane, Component previousCorner) {
         }
+
+        @Override
+        public void tabDataRendererChanged(TabPane tabPane, Button.DataRenderer previousTabDataRenderer) {
+        }
     }
 
     /**
@@ -57,11 +61,18 @@ public interface TabPaneListener {
     public void tabsRemoved(TabPane tabPane, int index, Sequence<Component> tabs);
 
     /**
-     * Called when a tab pane's corner component (the component in the free
-     * space next to the tabs) has changed.
+     * Called when a tab pane's corner component has changed.
      *
      * @param tabPane
      * @param previousCorner
      */
     public void cornerChanged(TabPane tabPane, Component previousCorner);
+
+    /**
+     * Called when a tab pane's tab data renderer has changed.
+     *
+     * @param tabPane
+     * @param previousTabDataRenderer
+     */
+    public void tabDataRendererChanged(TabPane tabPane, Button.DataRenderer previousTabDataRenderer);
 }