eu.webtoolkit.jwt.chart
Class WPieChart

java.lang.Object
  extended by eu.webtoolkit.jwt.WObject
      extended by eu.webtoolkit.jwt.WWidget
          extended by eu.webtoolkit.jwt.WWebWidget
              extended by eu.webtoolkit.jwt.WInteractWidget
                  extended by eu.webtoolkit.jwt.WPaintedWidget
                      extended by eu.webtoolkit.jwt.chart.WAbstractChart
                          extended by eu.webtoolkit.jwt.chart.WPieChart

public class WPieChart
extends WAbstractChart

A pie chart.

A pie chart renders a single data series as segments of a circle, so that the area of each segment is proportional to the value in the data series.

To use a pie chart, you need to set a model using WAbstractChart#setModel(), and use setLabelsColumn() and setDataColumn() to specify the model column that contains the category labels and data.

The pie chart may be customized visually by enabling a 3D effect ( setPerspectiveEnabled()), or by specifying the angle of the first segment. One or more segments may be exploded, which seperates the segment from the rest of the pie chart, using setExplode().

The segments may be labeled in various ways using setDisplayLabels().

CSS

Styling through CSS is not applicable.

Example of a pie chart

Example of a pie chart

See Also:
WCartesianChart

Nested Class Summary
 
Nested classes/interfaces inherited from class eu.webtoolkit.jwt.WPaintedWidget
WPaintedWidget.Method
 
Constructor Summary
WPieChart()
          Creates a new pie chart.
WPieChart(WContainerWidget parent)
          Creates a new pie chart.
 
Method Summary
 void addDataPointArea(WModelIndex index, WAbstractArea area)
          Adds a data point area (used for displaying e.g.
 WWidget createLegendItemWidget(int index, java.util.EnumSet<LabelOption> options)
          Creates a widget which renders the a legend item.
 WWidget createLegendItemWidget(int index, LabelOption option, LabelOption... options)
          Creates a widget which renders the a legend item.
 double getAvoidLabelRendering()
          Returns the percentage to avoid label rendering.
 WBrush getBrush(int modelRow)
          Returns the brush used for a pie segment.
 int getDataColumn()
          Returns the model column used for the data.
 java.util.EnumSet<LabelOption> getDisplayLabels()
          Returns options set for displaying labels.
 double getExplode(int modelRow)
          Returns the explosion factor for a segment.
 int getLabelsColumn()
          Returns the model column used for the labels.
 double getStartAngle()
          Returns the angle of the first segment.
 boolean isPerspectiveEnabled()
          Returns whether a 3D effect is enabled.
 boolean isShadowEnabled()
          Returns whether a shadow effect is enabled.
protected  void modelChanged()
          Method called whenever the entire model was changed.
protected  void modelColumnsInserted(WModelIndex parent, int start, int end)
          Method called when colums have been inserted in the model.
protected  void modelColumnsRemoved(WModelIndex parent, int start, int end)
          Method called when colums have been removed from the model.
protected  void modelDataChanged(WModelIndex topLeft, WModelIndex bottomRight)
          Method called when data has been changed in the model.
protected  void modelReset()
          Method called whenever the entire model was reset.
protected  void modelRowsInserted(WModelIndex parent, int start, int end)
          Method called when rows have been inserted from the model.
protected  void modelRowsRemoved(WModelIndex parent, int start, int end)
          Method called when rows have been removed from the model.
 void paint(WPainter painter, WRectF rectangle)
          Paint the chart in a rectangle of the given painter.
protected  void paintEvent(WPaintDevice paintDevice)
          Paints the widget.
 void setAvoidLabelRendering(double avoidLabelRendering)
          Sets the percentage value to avoid rendering of label texts.
 void setBrush(int modelRow, WBrush brush)
          Customizes the brush used for a pie segment.
 void setDataColumn(int modelColumn)
          Sets the model column that holds the data.
 void setDisplayLabels(java.util.EnumSet<LabelOption> options)
          Configures if and how labels should be displayed.
 void setDisplayLabels(LabelOption option, LabelOption... options)
          Configures if and how labels should be displayed.
 void setExplode(int modelRow, double factor)
          Sets the explosion factor for a pie segment.
 void setLabelsColumn(int modelColumn)
          Sets the model column that holds the labels.
 void setPerspectiveEnabled(boolean enabled)
          Enables a 3D perspective effect on the pie.
 void setPerspectiveEnabled(boolean enabled, double height)
          Enables a 3D perspective effect on the pie.
 void setShadowEnabled(boolean enabled)
          Enables a shadow effect.
 void setStartAngle(double startAngle)
          Sets the angle of the first segment.
 
Methods inherited from class eu.webtoolkit.jwt.chart.WAbstractChart
getBackground, getModel, getPalette, getPlotAreaPadding, getTitle, getTitleFont, paint, remove, setBackground, setModel, setPalette, setPlotAreaPadding, setPlotAreaPadding, setPlotAreaPadding, setTitle, setTitleFont
 
Methods inherited from class eu.webtoolkit.jwt.WPaintedWidget
addArea, enableAjax, getArea, getAreas, getMethod, getPreferredMethod, insertArea, layoutSizeChanged, removeArea, resize, setPreferredMethod, update, update, update
 
Methods inherited from class eu.webtoolkit.jwt.WInteractWidget
clicked, doubleClicked, enterPressed, escapePressed, gestureChanged, gestureEnded, gestureStarted, isEnabled, keyPressed, keyWentDown, keyWentUp, load, mouseDragged, mouseMoved, mouseWentDown, mouseWentOut, mouseWentOver, mouseWentUp, mouseWheel, propagateSetEnabled, setDraggable, setDraggable, setDraggable, setDraggable, touchEnded, touchMoved, touchStarted
 
Methods inherited from class eu.webtoolkit.jwt.WWebWidget
addStyleClass, callJavaScriptMember, childrenChanged, doJavaScript, domCanBeSaved, escapeText, escapeText, escapeText, escapeText, find, getAttributeValue, getChildren, getClearSides, getDecorationStyle, getFloatSide, getHeight, getId, getJavaScriptMember, getLineHeight, getMargin, getMaximumHeight, getMaximumWidth, getMinimumHeight, getMinimumWidth, getOffset, getPositionScheme, getStyleClass, getTabIndex, getToolTip, getVerticalAlignment, getVerticalAlignmentLength, getWidth, isDisabled, isHidden, isHiddenKeepsGeometry, isInline, isLoaded, isPopup, isRendered, isVisible, jsStringLiteral, jsStringLiteral, refresh, removeScript, removeStyleClass, render, setAttributeValue, setClearSides, setDecorationStyle, setDisabled, setFloatSide, setHidden, setHiddenKeepsGeometry, setId, setInline, setJavaScriptMember, setLineHeight, setLoadLaterWhenInvisible, setMargin, setMaximumSize, setMinimumSize, setOffsets, setPopup, setPositionScheme, setSelectable, setStyleClass, setTabIndex, setToolTip, setVerticalAlignment, updateSignalConnection
 
Methods inherited from class eu.webtoolkit.jwt.WWidget
acceptDrops, acceptDrops, addCssRule, addCssRule, addStyleClass, animateHide, animateShow, boxBorder, boxPadding, containsExposed, disable, dropEvent, enable, getDrop, getJsRef, getParent, hide, htmlText, isLayoutSizeAware, positionAt, positionAt, removeStyleClass, resize, setClearSides, setHeight, setHidden, setLayoutSizeAware, setMargin, setMargin, setMargin, setMargin, setMargin, setOffsets, setOffsets, setOffsets, setOffsets, setOffsets, setToolTip, setVerticalAlignment, setWidth, show, stopAcceptDrops, toggleStyleClass, toggleStyleClass, tr
 
Methods inherited from class eu.webtoolkit.jwt.WObject
addChild, getObjectName, setObjectName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WPieChart

public WPieChart(WContainerWidget parent)
Creates a new pie chart.


WPieChart

public WPieChart()
Creates a new pie chart.

Calls this((WContainerWidget)null)

Method Detail

setLabelsColumn

public void setLabelsColumn(int modelColumn)
Sets the model column that holds the labels.

The labels are used only when setDisplayLabels() is called with the TextLabel option.

The default value is -1 (not defined).

See Also:
WAbstractChart.setModel(WAbstractItemModel model), setDisplayLabels(EnumSet options), setDataColumn(int modelColumn)

getLabelsColumn

public int getLabelsColumn()
Returns the model column used for the labels.

See Also:
setLabelsColumn(int modelColumn)

setDataColumn

public void setDataColumn(int modelColumn)
Sets the model column that holds the data.

The data column should contain data that can be converted to a number, but should not necessarily be of a number type, see also StringUtils.asNumber(Object).

The default value is -1 (not defined).

See Also:
WAbstractChart.setModel(WAbstractItemModel model), setLabelsColumn(int modelColumn)

getDataColumn

public int getDataColumn()
Returns the model column used for the data.

See Also:
setDataColumn(int modelColumn)

setBrush

public void setBrush(int modelRow,
                     WBrush brush)
Customizes the brush used for a pie segment.

By default, the brush is taken from the WAbstractChart#getPalette(). You can use this method to override the palette's brush for a particular modelRow.

See Also:
WAbstractChart.setPalette(WChartPalette palette)

getBrush

public WBrush getBrush(int modelRow)
Returns the brush used for a pie segment.

See Also:
setBrush(int modelRow, WBrush brush)

setExplode

public void setExplode(int modelRow,
                       double factor)
Sets the explosion factor for a pie segment.

Separates the segment corresponding to model row modelRow from the rest of the pie. The factor is a positive number that represents the distance from the center as a fraction of the pie radius. Thus, 0 corresponds to no separation, and 0.1 to a 10% separation, and 1 to a separation where the segment tip is on the outer perimeter of the pie.

The default value is 0.


getExplode

public double getExplode(int modelRow)
Returns the explosion factor for a segment.

See Also:
setExplode(int modelRow, double factor)

setPerspectiveEnabled

public void setPerspectiveEnabled(boolean enabled,
                                  double height)
Enables a 3D perspective effect on the pie.

A 3D perspective effect is added, which may be customized by specifying the simulated height of the pie. The height is defined as a fraction of the pie radius.

The default value is false.


setPerspectiveEnabled

public final void setPerspectiveEnabled(boolean enabled)
Enables a 3D perspective effect on the pie.

Calls setPerspectiveEnabled(enabled, 1.0)


isPerspectiveEnabled

public boolean isPerspectiveEnabled()
Returns whether a 3D effect is enabled.

See Also:
setPerspectiveEnabled(boolean enabled, double height)

setShadowEnabled

public void setShadowEnabled(boolean enabled)
Enables a shadow effect.

A soft shadow effect is added.

The default value is false.


isShadowEnabled

public boolean isShadowEnabled()
Returns whether a shadow effect is enabled.

See Also:
setShadowEnabled(boolean enabled)

setStartAngle

public void setStartAngle(double startAngle)
Sets the angle of the first segment.

The default value is 45 degrees.


getStartAngle

public double getStartAngle()
Returns the angle of the first segment.

See Also:
setStartAngle(double startAngle)

setAvoidLabelRendering

public void setAvoidLabelRendering(double avoidLabelRendering)
Sets the percentage value to avoid rendering of label texts.

The default value is 0 percent.


getAvoidLabelRendering

public double getAvoidLabelRendering()
Returns the percentage to avoid label rendering.

See Also:
setAvoidLabelRendering(double avoidLabelRendering)

setDisplayLabels

public void setDisplayLabels(java.util.EnumSet<LabelOption> options)
Configures if and how labels should be displayed.

The options must be the logical OR of a placement option ( Inside or Outside) and TextLabel and/or TextPercentage. If both TextLabel and TextPercentage are specified, then these are combined as "<label>: <percentage>".

The default value is NoLabels.


setDisplayLabels

public final void setDisplayLabels(LabelOption option,
                                   LabelOption... options)
Configures if and how labels should be displayed.

Calls setDisplayLabels(EnumSet.of(option, options))


getDisplayLabels

public java.util.EnumSet<LabelOption> getDisplayLabels()
Returns options set for displaying labels.

See Also:
setDisplayLabels(EnumSet options)

createLegendItemWidget

public WWidget createLegendItemWidget(int index,
                                      java.util.EnumSet<LabelOption> options)
Creates a widget which renders the a legend item.

Depending on the passed LabelOption flags, the legend item widget, will contain a text (with or without the percentage) and/or a span with the segment's color.


createLegendItemWidget

public final WWidget createLegendItemWidget(int index,
                                            LabelOption option,
                                            LabelOption... options)
Creates a widget which renders the a legend item.

Returns createLegendItemWidget(index, EnumSet.of(option, options))


addDataPointArea

public void addDataPointArea(WModelIndex index,
                             WAbstractArea area)
Adds a data point area (used for displaying e.g. tooltips).

You may want to specialize this is if you wish to modify (or delete) the area.

Note: Currently, an area is only created if the ToolTipRole data at the data point is not empty.


paint

public void paint(WPainter painter,
                  WRectF rectangle)
Description copied from class: WAbstractChart
Paint the chart in a rectangle of the given painter.

Paints the chart inside the painter, in the area indicated by rectangle. When rectangle is a null rectangle, the entire painter window is used.

Specified by:
paint in class WAbstractChart

paintEvent

protected void paintEvent(WPaintDevice paintDevice)
Description copied from class: WPaintedWidget
Paints the widget.

You should reimplement this method to paint the contents of the widget, using the given paintDevice.

Specified by:
paintEvent in class WPaintedWidget

modelChanged

protected void modelChanged()
Description copied from class: WAbstractChart
Method called whenever the entire model was changed.

Overrides:
modelChanged in class WAbstractChart
See Also:
WAbstractChart.setModel(WAbstractItemModel model)

modelReset

protected void modelReset()
Description copied from class: WAbstractChart
Method called whenever the entire model was reset.

Bound to the WAbstractItemModel#modelReset() and WAbstractItemModel#layoutChanged() signals.

Overrides:
modelReset in class WAbstractChart

modelColumnsInserted

protected void modelColumnsInserted(WModelIndex parent,
                                    int start,
                                    int end)
Description copied from class: WAbstractChart
Method called when colums have been inserted in the model.

Specified by:
modelColumnsInserted in class WAbstractChart
See Also:
WAbstractItemModel.columnsInserted()

modelColumnsRemoved

protected void modelColumnsRemoved(WModelIndex parent,
                                   int start,
                                   int end)
Description copied from class: WAbstractChart
Method called when colums have been removed from the model.

Specified by:
modelColumnsRemoved in class WAbstractChart
See Also:
WAbstractItemModel.columnsRemoved()

modelRowsInserted

protected void modelRowsInserted(WModelIndex parent,
                                 int start,
                                 int end)
Description copied from class: WAbstractChart
Method called when rows have been inserted from the model.

Specified by:
modelRowsInserted in class WAbstractChart
See Also:
WAbstractItemModel.rowsInserted()

modelRowsRemoved

protected void modelRowsRemoved(WModelIndex parent,
                                int start,
                                int end)
Description copied from class: WAbstractChart
Method called when rows have been removed from the model.

Specified by:
modelRowsRemoved in class WAbstractChart
See Also:
WAbstractItemModel.rowsRemoved()

modelDataChanged

protected void modelDataChanged(WModelIndex topLeft,
                                WModelIndex bottomRight)
Description copied from class: WAbstractChart
Method called when data has been changed in the model.

Specified by:
modelDataChanged in class WAbstractChart
See Also:
WAbstractItemModel.dataChanged()