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 15:43:12 UTC
svn commit: r982958 - 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/navi...
Author: gbrown
Date: Fri Aug 6 13:43:12 2010
New Revision: 982958
URL: http://svn.apache.org/viewvc?rev=982958&view=rev
Log:
Resolve PIVOT-570 for Accordion.
Added:
pivot/trunk/wtk/src/org/apache/pivot/wtk/content/AccordionHeaderDataRenderer.java
Removed:
pivot/trunk/tests/src/org/apache/pivot/tests/AccordionTest.java
Modified:
pivot/trunk/demos/src/org/apache/pivot/demos/styles/sample_content.bxml
pivot/trunk/tests/src/org/apache/pivot/tests/accordion_test.bxml
pivot/trunk/tutorials/src/org/apache/pivot/tutorials/explorer/accordion.bxml
pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation.bxml
pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/accordions.bxml
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraAccordionSkin.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/Accordion.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/AccordionAttributeListener.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/AccordionListener.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=982958&r1=982957&r2=982958&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 13:43:12 2010
@@ -98,9 +98,9 @@ limitations under the License.
<TablePane.Row>
<Accordion>
- <Label text="Un" Accordion.label="One"/>
- <Label text="Deux" Accordion.label="Two"/>
- <Label text="Trois" Accordion.label="Three" enabled="false"/>
+ <Label text="Un" Accordion.headerData="One"/>
+ <Label text="Deux" Accordion.headerData="Two"/>
+ <Label text="Trois" Accordion.headerData="Three" enabled="false"/>
</Accordion>
<BoxPane orientation="vertical" styles="{fill:true}">
Modified: pivot/trunk/tests/src/org/apache/pivot/tests/accordion_test.bxml
URL: http://svn.apache.org/viewvc/pivot/trunk/tests/src/org/apache/pivot/tests/accordion_test.bxml?rev=982958&r1=982957&r2=982958&view=diff
==============================================================================
--- pivot/trunk/tests/src/org/apache/pivot/tests/accordion_test.bxml (original)
+++ pivot/trunk/tests/src/org/apache/pivot/tests/accordion_test.bxml Fri Aug 6 13:43:12 2010
@@ -18,11 +18,20 @@ limitations under the License.
<Frame title="Accordion Test"
xmlns:bxml="http://pivot.apache.org/bxml"
+ xmlns:content="org.apache.pivot.wtk.content"
xmlns="org.apache.pivot.wtk">
<Accordion>
- <Label Accordion.label="A" text="Hello"/>
- <Label Accordion.label="B" text="World"/>
- <Label Accordion.label="C" text="From" enabled="false"/>
- <Label Accordion.label="D" text="Pivot"/>
+ <headerDataRenderer>
+ <content:AccordionHeaderDataRenderer/>
+ </headerDataRenderer>
+
+ <Label text="Hello">
+ <Accordion.headerData>
+ <content:ButtonData text="A" icon="@anchor.png"/>
+ </Accordion.headerData>
+ </Label>
+ <Label Accordion.headerData="B" text="World"/>
+ <Label Accordion.headerData="C" text="From" enabled="false"/>
+ <Label Accordion.headerData="D" text="Pivot"/>
</Accordion>
</Frame>
Modified: pivot/trunk/tutorials/src/org/apache/pivot/tutorials/explorer/accordion.bxml
URL: http://svn.apache.org/viewvc/pivot/trunk/tutorials/src/org/apache/pivot/tutorials/explorer/accordion.bxml?rev=982958&r1=982957&r2=982958&view=diff
==============================================================================
--- pivot/trunk/tutorials/src/org/apache/pivot/tutorials/explorer/accordion.bxml (original)
+++ pivot/trunk/tutorials/src/org/apache/pivot/tutorials/explorer/accordion.bxml Fri Aug 6 13:43:12 2010
@@ -19,8 +19,8 @@ limitations under the License.
<Accordion preferredWidth="150"
xmlns:bxml="http://pivot.apache.org/bxml"
xmlns="org.apache.pivot.wtk">
- <Label Accordion.label="A" text="Hello"/>
- <Label Accordion.label="B" text="World"/>
- <Label Accordion.label="C" text="From" enabled="false"/>
- <Label Accordion.label="D" text="Pivot"/>
+ <Label Accordion.headerData="A" text="Hello"/>
+ <Label Accordion.headerData="B" text="World"/>
+ <Label Accordion.headerData="C" text="From" enabled="false"/>
+ <Label Accordion.headerData="D" text="Pivot"/>
</Accordion>
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=982958&r1=982957&r2=982958&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 13:43:12 2010
@@ -134,11 +134,11 @@ limitations under the License.
<BoxPane orientation="vertical" styles="{padding:{top:2, left:4, bottom:4, right:4}, spacing:6}">
<Label text="Accordion" styles="{font:{bold:true}}"/>
<Accordion selectedIndex="1" preferredWidth="110" preferredHeight="180">
- <Label Accordion.label="One" text="Un"
+ <Label Accordion.headerData="One" text="Un"
styles="{horizontalAlignment:'center', verticalAlignment:'top', font:{italic:true}}"/>
- <Label Accordion.label="Two" text="Deux"
+ <Label Accordion.headerData="Two" text="Deux"
styles="{horizontalAlignment:'center', verticalAlignment:'center', font:{italic:true}}"/>
- <Label Accordion.label="Three" text="Trois"
+ <Label Accordion.headerData="Three" text="Trois"
styles="{horizontalAlignment:'center', verticalAlignment:'bottom', font:{italic:true}}"/>
</Accordion>
</BoxPane>
Modified: pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/accordions.bxml
URL: http://svn.apache.org/viewvc/pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/accordions.bxml?rev=982958&r1=982957&r2=982958&view=diff
==============================================================================
--- pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/accordions.bxml (original)
+++ pivot/trunk/tutorials/src/org/apache/pivot/tutorials/navigation/accordions.bxml Fri Aug 6 13:43:12 2010
@@ -21,9 +21,9 @@ limitations under the License.
xmlns:navigation="org.apache.pivot.tutorials.navigation"
xmlns="org.apache.pivot.wtk">
<Accordion bxml:id="accordion" styles="{padding:0}">
- <bxml:include bxml:id="shippingPanel" src="shipping.bxml" Accordion.label="Shipping Information"/>
- <bxml:include bxml:id="paymentPanel" src="payment.bxml" Accordion.label="Payment Information"/>
- <bxml:include bxml:id="summaryPanel" src="summary.bxml" Accordion.label="Summary & Confirmation"/>
+ <bxml:include bxml:id="shippingPanel" src="shipping.bxml" Accordion.headerData="Shipping Information"/>
+ <bxml:include bxml:id="paymentPanel" src="payment.bxml" Accordion.headerData="Payment Information"/>
+ <bxml:include bxml:id="summaryPanel" src="summary.bxml" Accordion.headerData="Summary & Confirmation"/>
</Accordion>
</navigation:Accordions>
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=982958&r1=982957&r2=982958&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 13:43:12 2010
@@ -36,20 +36,16 @@ import org.apache.pivot.wtk.Component;
import org.apache.pivot.wtk.ComponentStateListener;
import org.apache.pivot.wtk.Dimensions;
import org.apache.pivot.wtk.GraphicsUtilities;
-import org.apache.pivot.wtk.HorizontalAlignment;
import org.apache.pivot.wtk.Insets;
import org.apache.pivot.wtk.Keyboard;
import org.apache.pivot.wtk.Mouse;
import org.apache.pivot.wtk.Platform;
import org.apache.pivot.wtk.Theme;
-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.Quartic;
-import org.apache.pivot.wtk.media.Image;
import org.apache.pivot.wtk.skin.ButtonSkin;
import org.apache.pivot.wtk.skin.ContainerSkin;
@@ -61,9 +57,7 @@ public class TerraAccordionSkin extends
protected class PanelHeader extends Button {
public PanelHeader(Component panel) {
super(panel);
-
super.setToggleButton(true);
- setDataRenderer(DEFAULT_DATA_RENDERER);
setSkin(new PanelHeaderSkin());
}
@@ -90,10 +84,12 @@ public class TerraAccordionSkin extends
public int getPreferredWidth(int height) {
PanelHeader panelHeader = (PanelHeader)getComponent();
- Button.DataRenderer dataRenderer = panelHeader.getDataRenderer();
- dataRenderer.render(panelHeader.getButtonData(), panelHeader, false);
+ Accordion accordion = (Accordion)TerraAccordionSkin.this.getComponent();
+ Button.DataRenderer headerDataRenderer = accordion.getHeaderDataRenderer();
+ headerDataRenderer.render(Accordion.getHeaderData((Component)panelHeader.getButtonData()),
+ panelHeader, false);
- int preferredWidth = dataRenderer.getPreferredWidth(-1)
+ int preferredWidth = headerDataRenderer.getPreferredWidth(-1)
+ buttonPadding.left + buttonPadding.right + 2;
return preferredWidth;
@@ -103,8 +99,10 @@ public class TerraAccordionSkin extends
public int getPreferredHeight(int width) {
PanelHeader panelHeader = (PanelHeader)getComponent();
- Button.DataRenderer dataRenderer = panelHeader.getDataRenderer();
- dataRenderer.render(panelHeader.getButtonData(), panelHeader, false);
+ Accordion accordion = (Accordion)TerraAccordionSkin.this.getComponent();
+ Button.DataRenderer headerDataRenderer = accordion.getHeaderDataRenderer();
+ headerDataRenderer.render(Accordion.getHeaderData((Component)panelHeader.getButtonData()),
+ panelHeader, false);
// Include padding and border in constraint
int contentWidth = width;
@@ -113,7 +111,7 @@ public class TerraAccordionSkin extends
+ buttonPadding.right + 2), 0);
}
- int preferredHeight = dataRenderer.getPreferredHeight(contentWidth)
+ int preferredHeight = headerDataRenderer.getPreferredHeight(contentWidth)
+ buttonPadding.top + buttonPadding.bottom + 2;
return preferredHeight;
@@ -123,10 +121,12 @@ public class TerraAccordionSkin extends
public Dimensions getPreferredSize() {
PanelHeader panelHeader = (PanelHeader)getComponent();
- Button.DataRenderer dataRenderer = panelHeader.getDataRenderer();
- dataRenderer.render(panelHeader.getButtonData(), panelHeader, false);
+ Accordion accordion = (Accordion)TerraAccordionSkin.this.getComponent();
+ Button.DataRenderer headerDataRenderer = accordion.getHeaderDataRenderer();
+ headerDataRenderer.render(Accordion.getHeaderData((Component)panelHeader.getButtonData()),
+ panelHeader, false);
- Dimensions preferredContentSize = dataRenderer.getPreferredSize();
+ Dimensions preferredContentSize = headerDataRenderer.getPreferredSize();
int preferredWidth = preferredContentSize.width
+ buttonPadding.left + buttonPadding.right + 2;
@@ -141,13 +141,15 @@ public class TerraAccordionSkin extends
public int getBaseline(int width, int height) {
PanelHeader panelHeader = (PanelHeader)getComponent();
- Button.DataRenderer dataRenderer = panelHeader.getDataRenderer();
- dataRenderer.render(panelHeader.getButtonData(), panelHeader, false);
+ Accordion accordion = (Accordion)TerraAccordionSkin.this.getComponent();
+ Button.DataRenderer headerDataRenderer = accordion.getHeaderDataRenderer();
+ headerDataRenderer.render(Accordion.getHeaderData((Component)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 = dataRenderer.getBaseline(clientWidth, clientHeight);
+ int baseline = headerDataRenderer.getBaseline(clientWidth, clientHeight);
if (baseline != -1) {
baseline += buttonPadding.top + 1;
@@ -173,15 +175,17 @@ public class TerraAccordionSkin extends
GraphicsUtilities.drawRect(graphics, 0, 0, width, height);
// Paint the content
- Button.DataRenderer dataRenderer = panelHeader.getDataRenderer();
- dataRenderer.render(panelHeader.getButtonData(), panelHeader, highlighted);
- dataRenderer.setSize(Math.max(width - (buttonPadding.left + buttonPadding.right + 2), 0),
+ Accordion accordion = (Accordion)TerraAccordionSkin.this.getComponent();
+ Button.DataRenderer headerDataRenderer = accordion.getHeaderDataRenderer();
+ headerDataRenderer.render(Accordion.getHeaderData((Component)panelHeader.getButtonData()),
+ panelHeader, highlighted);
+ headerDataRenderer.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, dataRenderer.getWidth(), dataRenderer.getHeight());
- dataRenderer.paint(contentGraphics);
+ contentGraphics.clipRect(0, 0, headerDataRenderer.getWidth(), headerDataRenderer.getHeight());
+ headerDataRenderer.paint(contentGraphics);
contentGraphics.dispose();
}
@@ -282,21 +286,6 @@ public class TerraAccordionSkin extends
public static final int GRADIENT_BEVEL_THICKNESS = 4;
- private static final Button.DataRenderer DEFAULT_DATA_RENDERER = new ButtonDataRenderer() {
- { getStyles().put("horizontalAlignment", HorizontalAlignment.LEFT);
- }
-
- @Override
- public void render(Object data, Button button, boolean highlighted) {
- // TODO Create a custom inner renderer class that can display
- // the close button (and also avoid the heap allocation every
- // time we're called to render())
- Component panel = (Component)data;
- super.render(new ButtonData(Accordion.getIcon(panel), Accordion.getLabel(panel)),
- button, highlighted);
- }
- };
-
private static final int SELECTION_CHANGE_DURATION = 250;
private static final int SELECTION_CHANGE_RATE = 30;
@@ -341,23 +330,9 @@ public class TerraAccordionSkin extends
super.install(component);
Accordion accordion = (Accordion)component;
-
- // Add this as a listener on the accordion
accordion.getAccordionListeners().add(this);
accordion.getAccordionSelectionListeners().add(this);
accordion.getAccordionAttributeListeners().add(this);
-
- // Add headers for all existing panels
- for (Component panel : accordion.getPanels()) {
- PanelHeader panelHeader = new PanelHeader(panel);
- panelHeader.setButtonGroup(panelHeaderGroup);
- panelHeaders.add(panelHeader);
- accordion.add(panelHeader);
-
- // Listen for state changes on the panel
- panelHeader.setEnabled(panel.isEnabled());
- panel.getComponentStateListeners().add(panelStateListener);
- }
}
@Override
@@ -834,6 +809,11 @@ public class TerraAccordionSkin extends
invalidateComponent();
}
+ @Override
+ public void headerDataRendererChanged(Accordion accordion, Button.DataRenderer previousHeaderDataRenderer) {
+ // No-op
+ }
+
// Accordion selection events
@Override
public Vote previewSelectedIndexChange(final Accordion accordion, final int selectedIndex) {
@@ -909,12 +889,7 @@ public class TerraAccordionSkin extends
// Accordion attribute events
@Override
- public void labelChanged(Accordion accordion, Component component, String previousLabel) {
- invalidateComponent();
- }
-
- @Override
- public void iconChanged(Accordion accordion, Component component, Image previousIcon) {
+ public void headerDataChanged(Accordion accordion, Component component, Object previousHeaderData) {
invalidateComponent();
}
}
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=982958&r1=982957&r2=982958&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 13:43:12 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,14 +24,11 @@ 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.AccordionHeaderDataRenderer;
/**
* Component that provides access to a set of components via selectable headers.
* Only one component is visible at a time.
- * <p>
- * TODO Add a getPanelAt() method that delegates to the skin.
*/
@DefaultProperty("panels")
public class Accordion extends Container {
@@ -131,8 +127,7 @@ public class Accordion extends Container
}
private enum Attribute {
- LABEL,
- ICON;
+ HEADER_DATA;
}
private static class AccordionListenerList extends ListenerList<AccordionListener>
@@ -150,6 +145,13 @@ public class Accordion extends Container
listener.panelsRemoved(accordion, index, panels);
}
}
+
+ @Override
+ public void headerDataRendererChanged(Accordion accordion, Button.DataRenderer previousHeaderDataRenderer) {
+ for (AccordionListener listener : this) {
+ listener.headerDataRendererChanged(accordion, previousHeaderDataRenderer);
+ }
+ }
}
private static class AccordionSelectionListenerList extends ListenerList<AccordionSelectionListener>
@@ -183,16 +185,9 @@ public class Accordion extends Container
private static class AccordionAttributeListenerList extends ListenerList<AccordionAttributeListener>
implements AccordionAttributeListener {
@Override
- public void labelChanged(Accordion accordion, Component component, String previousLabel) {
+ public void headerDataChanged(Accordion accordion, Component component, Object previousHeaderData) {
for (AccordionAttributeListener listener : this) {
- listener.labelChanged(accordion, component, previousLabel);
- }
- }
-
- @Override
- public void iconChanged(Accordion accordion, Component component, Image previousIcon) {
- for (AccordionAttributeListener listener : this) {
- listener.iconChanged(accordion, component, previousIcon);
+ listener.headerDataChanged(accordion, component, previousHeaderData);
}
}
}
@@ -201,11 +196,14 @@ public class Accordion extends Container
private ArrayList<Component> panels = new ArrayList<Component>();
private PanelSequence panelSequence = new PanelSequence();
+ private Button.DataRenderer headerDataRenderer = DEFAULT_HEADER_DATA_RENDERER;
private AccordionListenerList accordionListeners = new AccordionListenerList();
private AccordionSelectionListenerList accordionSelectionListeners = new AccordionSelectionListenerList();
private AccordionAttributeListenerList accordionAttributeListeners = new AccordionAttributeListenerList();
+ private static final Button.DataRenderer DEFAULT_HEADER_DATA_RENDERER = new AccordionHeaderDataRenderer();
+
public Accordion() {
installThemeSkin(Accordion.class);
}
@@ -242,6 +240,22 @@ public class Accordion extends Container
return (selectedIndex == -1) ? null : panels.get(selectedIndex);
}
+ public Button.DataRenderer getHeaderDataRenderer() {
+ return headerDataRenderer;
+ }
+
+ public void setHeaderDataRenderer(Button.DataRenderer headerDataRenderer) {
+ if (headerDataRenderer == null) {
+ throw new IllegalArgumentException();
+ }
+
+ Button.DataRenderer previousHeaderDataRenderer = this.headerDataRenderer;
+ if (previousHeaderDataRenderer != headerDataRenderer) {
+ this.headerDataRenderer = headerDataRenderer;
+ accordionListeners.headerDataRendererChanged(this, previousHeaderDataRenderer);
+ }
+ }
+
@Override
public Sequence<Component> remove(int index, int count) {
for (int i = index, n = index + count; i < n; i++) {
@@ -268,68 +282,21 @@ public class Accordion extends Container
return accordionAttributeListeners;
}
- 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 Accordion) {
- Accordion accordion = (Accordion)parent;
- accordion.accordionAttributeListeners.labelChanged(accordion, component,
- previousLabel);
- }
- }
- }
-
- public static Image getIcon(Component component) {
- return (Image)component.getAttribute(Attribute.ICON);
+ public static Object getHeaderData(Component component) {
+ return component.getAttribute(Attribute.HEADER_DATA);
}
- public static void setIcon(Component component, Image icon) {
- Image previousIcon = (Image)component.setAttribute(Attribute.ICON, icon);
+ public static void setHeaderData(Component component, Object headerData) {
+ String previousHeaderData = (String)component.setAttribute(Attribute.HEADER_DATA, headerData);
- if (previousIcon != icon) {
+ if (previousHeaderData != headerData) {
Container parent = component.getParent();
if (parent instanceof Accordion) {
Accordion accordion = (Accordion)parent;
- accordion.accordionAttributeListeners.iconChanged(accordion, component,
- previousIcon);
+ accordion.accordionAttributeListeners.headerDataChanged(accordion, component,
+ previousHeaderData);
}
}
}
-
- 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));
- }
}
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/AccordionAttributeListener.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/AccordionAttributeListener.java?rev=982958&r1=982957&r2=982958&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/AccordionAttributeListener.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/AccordionAttributeListener.java Fri Aug 6 13:43:12 2010
@@ -16,8 +16,6 @@
*/
package org.apache.pivot.wtk;
-import org.apache.pivot.wtk.media.Image;
-
/**
* Accordion attribute listener interface.
*/
@@ -27,29 +25,16 @@ public interface AccordionAttributeListe
*/
public static class Adapter implements AccordionAttributeListener {
@Override
- public void labelChanged(Accordion accordion, Component component, String previousLabel) {
- }
-
- @Override
- public void iconChanged(Accordion accordion, Component component, Image previousIcon) {
+ public void headerDataChanged(Accordion accordion, Component component, Object previousHeaderData) {
}
}
/**
- * Called when a panel's label attribute has changed.
- *
- * @param accordion
- * @param component
- * @param previousLabel
- */
- public void labelChanged(Accordion accordion, Component component, String previousLabel);
-
- /**
- * Called when a panel's icon attribute has changed.
+ * Called when a panel's header data attribute has changed.
*
* @param accordion
* @param component
- * @param previousIcon
+ * @param previousHeaderData
*/
- public void iconChanged(Accordion accordion, Component component, Image previousIcon);
+ public void headerDataChanged(Accordion accordion, Component component, Object previousHeaderData);
}
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/AccordionListener.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/AccordionListener.java?rev=982958&r1=982957&r2=982958&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/AccordionListener.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/AccordionListener.java Fri Aug 6 13:43:12 2010
@@ -33,6 +33,10 @@ public interface AccordionListener {
@Override
public void panelsRemoved(Accordion accordion, int index, Sequence<Component> removed) {
}
+
+ @Override
+ public void headerDataRendererChanged(Accordion accordion, Button.DataRenderer previousHeaderDataRenderer) {
+ }
}
/**
@@ -51,4 +55,12 @@ public interface AccordionListener {
* @param removed
*/
public void panelsRemoved(Accordion accordion, int index, Sequence<Component> removed);
+
+ /**
+ * Called when an accordion's header data renderer has changed.
+ *
+ * @param accordion
+ * @param previousHeaderDataRenderer
+ */
+ public void headerDataRendererChanged(Accordion accordion, Button.DataRenderer previousHeaderDataRenderer);
}
Added: pivot/trunk/wtk/src/org/apache/pivot/wtk/content/AccordionHeaderDataRenderer.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/AccordionHeaderDataRenderer.java?rev=982958&view=auto
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/content/AccordionHeaderDataRenderer.java (added)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/content/AccordionHeaderDataRenderer.java Fri Aug 6 13:43:12 2010
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pivot.wtk.content;
+
+import org.apache.pivot.wtk.HorizontalAlignment;
+
+/**
+ * Default accordion header data renderer.
+ */
+public class AccordionHeaderDataRenderer extends ButtonDataRenderer {
+ public AccordionHeaderDataRenderer() {
+ getStyles().put("horizontalAlignment", HorizontalAlignment.LEFT);
+ }
+}