[jboss-cvs] jboss-seam/src/pdf/org/jboss/seam/pdf/ui ...
Norman Richards
norman.richards at jboss.com
Thu Apr 26 18:48:28 EDT 2007
User: nrichards
Date: 07/04/26 18:48:28
Modified: src/pdf/org/jboss/seam/pdf/ui UIDocument.java
UIImage.java
Added: src/pdf/org/jboss/seam/pdf/ui UIBarChart.java
UIChart.java UIChartData.java UIPieChart.java
UIPieChart3D.java
Log:
first draft of charting
Revision Changes Path
1.22 +68 -68 jboss-seam/src/pdf/org/jboss/seam/pdf/ui/UIDocument.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: UIDocument.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/pdf/org/jboss/seam/pdf/ui/UIDocument.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- UIDocument.java 9 Mar 2007 02:14:16 -0000 1.21
+++ UIDocument.java 26 Apr 2007 22:48:28 -0000 1.22
@@ -18,7 +18,7 @@
import com.lowagie.text.rtf.RtfWriter2;
public class UIDocument
- extends ITextComponent
+extends ITextComponent
{
public static final String COMPONENT_TYPE = "org.jboss.seam.pdf.ui.UIDocument";
@@ -231,7 +231,9 @@
id = store.newId();
ResponseWriter response = context.getResponseWriter();
+ response.write("<!DOCTYPE composition PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\" >");
response.startElement("html", this);
+ response.writeAttribute("xmlns", "http://www.w3.org/1999/xhtml", null);
response.startElement("head", this);
response.startElement("meta", this);
response.writeAttribute("http-equiv", "Refresh", null);
@@ -310,9 +312,7 @@
removeITextObject();
Manager.instance().beforeRedirect();
- }
- else
- {
+ } else {
UIComponent parent = getParent();
if (parent instanceof ValueHolder) {
1.15 +4 -9 jboss-seam/src/pdf/org/jboss/seam/pdf/ui/UIImage.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: UIImage.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/pdf/org/jboss/seam/pdf/ui/UIImage.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- UIImage.java 30 Mar 2007 23:09:53 -0000 1.14
+++ UIImage.java 26 Apr 2007 22:48:28 -0000 1.15
@@ -104,11 +104,6 @@
this.scalePercent = scalePercent;
}
- public void setValue(java.awt.Image imageData) {
- this.imageData = imageData;
- }
-
-
@Override
public Object getITextObject() {
return image;
@@ -127,7 +122,6 @@
// instance() doesn't work here - we need a new instance
org.jboss.seam.core.Image seamImage = new org.jboss.seam.core.Image();
-
try {
if (value instanceof BufferedImage) {
seamImage.setBufferedImage((BufferedImage)value);
@@ -142,7 +136,8 @@
}
}
- image = Image.getInstance(seamImage.getImage());
+ byte[] data = seamImage.getImage();
+ image = Image.getInstance(data);
} catch (IOException e) {
throw new RuntimeException(e);
} catch (BadElementException e) {
1.1 date: 2007/04/26 22:48:28; author: nrichards; state: Exp;jboss-seam/src/pdf/org/jboss/seam/pdf/ui/UIBarChart.java
Index: UIBarChart.java
===================================================================
package org.jboss.seam.pdf.ui;
import javax.faces.context.FacesContext;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.Dataset;
public class UIBarChart
extends UIChart
{
String title;
String categoryAxisLabel;
String valueAxisLabel;
CategoryDataset dataset;
String orientation;
boolean legend;
boolean tooltips;
boolean urls;
boolean is3D = false;
public void setTitle(String title) {
this.title = title;
}
public void setOrientation(String orientation) {
this.orientation = orientation;
}
public void setCategoryAxisLabel(String categoryAxisLabel) {
this.categoryAxisLabel = categoryAxisLabel;
}
public void setValueAxisLabel(String valueAxisLabel) {
this.valueAxisLabel = valueAxisLabel;
}
public void setLegend(boolean legend) {
this.legend = legend;
}
public void setTooltips(boolean tooltips) {
this.tooltips = tooltips;
}
public void setUrls(boolean urls) {
this.urls = urls;
}
public void setIs3D(boolean is3D) {
this.is3D = true;
}
@Override
public void createDataset() {
dataset = new DefaultCategoryDataset();
}
@Override
public JFreeChart getChart(FacesContext context) {
System.out.println("3d=" + is3D);
if (!is3D) {
return ChartFactory.createBarChart(title,
categoryAxisLabel,
valueAxisLabel,
dataset,
plotOrientation(orientation),
legend,
tooltips,
urls);
} else {
return ChartFactory.createBarChart3D(title,
categoryAxisLabel,
valueAxisLabel,
dataset,
plotOrientation(orientation),
legend,
tooltips,
urls);
}
}
@Override
public Dataset getDataset() {
return dataset;
}
public PlotOrientation plotOrientation(String orientation) {
if (orientation != null && orientation.equalsIgnoreCase("horizontal")) {
return PlotOrientation.HORIZONTAL;
} else {
return PlotOrientation.VERTICAL;
}
}
}
1.1 date: 2007/04/26 22:48:28; author: nrichards; state: Exp;jboss-seam/src/pdf/org/jboss/seam/pdf/ui/UIChart.java
Index: UIChart.java
===================================================================
package org.jboss.seam.pdf.ui;
import java.io.IOException;
import javax.faces.context.FacesContext;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.Dataset;
import com.lowagie.text.*;
public abstract class UIChart
extends ITextComponent
{
Image image = null;
float height = 300;
float width = 400;
public void setHeight(float height) {
this.height = height;
}
public void setWidth(float width) {
this.width = width;
}
public abstract JFreeChart getChart(FacesContext context);
@Override
public void createITextObject(FacesContext context) {
JFreeChart chart = getChart(context);
height = (Float) valueBinding(context, "height", height);
width = (Float) valueBinding(context, "width", width);
org.jboss.seam.core.Image seamImage = new org.jboss.seam.core.Image();
seamImage.setBufferedImage(chart.createBufferedImage((int)width,(int)height));
try {
image = Image.getInstance(seamImage.getImage());
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Override
public void encodeBegin(FacesContext context)
throws IOException
{
// bypass super to avoid createITextObject()
createDataset();
}
@Override
public void encodeEnd(FacesContext context)
throws IOException
{
// call create here so that we'll have a valid chart
createITextObject(context);
super.encodeEnd(context);
}
@Override
public Object getITextObject() {
return image;
}
@Override
public void handleAdd(Object arg0) {
throw new RuntimeException("No children allowed");
}
@Override
public void removeITextObject() {
image = null;
}
public abstract void createDataset();
public abstract Dataset getDataset();
}
1.1 date: 2007/04/26 22:48:28; author: nrichards; state: Exp;jboss-seam/src/pdf/org/jboss/seam/pdf/ui/UIChartData.java
Index: UIChartData.java
===================================================================
package org.jboss.seam.pdf.ui;
import java.io.IOException;
import javax.faces.context.FacesContext;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.Dataset;
import org.jfree.data.general.DefaultPieDataset;
public class UIChartData
extends ITextComponent
{
String key;
String columnKey;
String rowKey;
Number value;
public void setKey(String key) {
this.key = key;
}
public void setRowKey(String rowKey) {
this.rowKey = rowKey;
}
public void setColumnKey(String columnKey) {
this.columnKey = columnKey;
}
public void setValue(Double value) {
this.value = value;
}
@Override
public void encodeEnd(FacesContext context)
throws IOException
{
super.encodeEnd(context);
key = (String) valueBinding(context, "key", key);
rowKey = (String) valueBinding(context, "rowkey", rowKey);
columnKey = (String) valueBinding(context, "columnKey", columnKey);
value = (Number) valueBinding(context, "value", value);
UIChart chart = (UIChart) findITextParent(getParent(), UIChart.class);
if (chart != null) {
Dataset dataset = chart.getDataset();
if (dataset instanceof DefaultPieDataset) {
DefaultPieDataset piedata = (DefaultPieDataset) dataset;
piedata.setValue(key, value);
} else if (dataset instanceof DefaultCategoryDataset) {
DefaultCategoryDataset data = (DefaultCategoryDataset) dataset;
data.addValue(value, rowKey, columnKey);
} else {
throw new RuntimeException("Cannot add data to dataset of type " + dataset.getClass());
}
}
}
@Override
public void createITextObject(FacesContext context) {
}
@Override
public Object getITextObject() {
return null;
}
@Override
public void handleAdd(Object other) {
}
@Override
public void removeITextObject() {
}
}
1.1 date: 2007/04/26 22:48:28; author: nrichards; state: Exp;jboss-seam/src/pdf/org/jboss/seam/pdf/ui/UIPieChart.java
Index: UIPieChart.java
===================================================================
package org.jboss.seam.pdf.ui;
import javax.faces.context.FacesContext;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.Dataset;
import org.jfree.data.general.DefaultPieDataset;
public class UIPieChart
extends UIChart
{
DefaultPieDataset data;
String title;
boolean legend;
boolean tooltips;
boolean urls;
public void setTitle(String title) {
this.title = title;
}
public void setLegend(boolean legend) {
this.legend = legend;
}
public void setTooltips(boolean tooltips) {
this.tooltips = tooltips;
}
public void setUrls(boolean urls) {
this.urls = urls;
}
@Override
public void createDataset() {
data = new DefaultPieDataset();
}
@Override
public Dataset getDataset() {
return data;
}
@Override
public JFreeChart getChart(FacesContext context) {
legend = (Boolean) valueBinding(context, "legend", legend);
tooltips = (Boolean) valueBinding(context, "tooltips", tooltips);
urls = (Boolean) valueBinding(context, "urls", urls);
return ChartFactory.createPieChart(title, data, legend, tooltips, urls);
}
public void restoreState(FacesContext context, Object state) {
super.restoreState(context, state);
}
public Object saveState(FacesContext context) {
return super.saveState(context);
}
}
1.1 date: 2007/04/26 22:48:28; author: nrichards; state: Exp;jboss-seam/src/pdf/org/jboss/seam/pdf/ui/UIPieChart3D.java
Index: UIPieChart3D.java
===================================================================
package org.jboss.seam.pdf.ui;
import javax.faces.context.FacesContext;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
public class UIPieChart3D
extends UIPieChart
{
@Override
public JFreeChart getChart(FacesContext context) {
legend = (Boolean) valueBinding(context, "legend", legend);
tooltips = (Boolean) valueBinding(context, "tooltips", tooltips);
urls = (Boolean) valueBinding(context, "urls", urls);
return ChartFactory.createPieChart3D(title, data, legend, tooltips, urls);
}
}
More information about the jboss-cvs-commits
mailing list