Hi Eugene!
I just found out that for charts of type 'BarChart3D'
the replacement for UIChartEntity you sent before helps.
'chartEntityClicked' does work for this kind of chart,
but it does not work for chart type 'BarChart'.
'chartClicked' events are not working for any of them.
Best regards,
Kevin Hirschmann
Hi Eugene!
Thanks, again.
Unfortunately, this doesn't solve the problem.
I also wonder how this relates to 'chartClicked' events.
I can't obtain them as well but in contrast to 'chartEntityClicked' no
coordinates should be required.
In any case I would be very thankful for any further advice.
Kevin Hirschmann
-----Ursprüngliche Nachricht-----
Von: [email protected]
[mailto:[email protected]] Im Auftrag von Eugene Coelho
Gesendet: Donnerstag, 12. März 2009 12:40
An: [email protected]
Betreff: Re: [ULC-developer] Nullpointer in JFreechart Extension
Hi,
Replace UIChartEntity with this code (there is a difference in handling
coordinates in newer jfreechart libraries)
public class UIChartEntity extends UIProxy {
private Shape fArea;
private String fToolTipText;
private String CONST_RECT = "rect" ;
private String CONST_POLY = "poly" ;
public UIChartEntity() {
super();
}
public Shape getArea() {
return fArea;
}
public String getToolTipText() {
return fToolTipText;
}
public void setChartEntity(HashMap map) {
fToolTipText = (String) map.get("toolTipText");
setArea(map);
}
private void setArea(Map map) {
int[] xCoords = (int[]) map.get("xCoords");
int[] yCoords = (int[]) map.get("yCoords");
String entityShape = map.get("shapeType").toString();
if (entityShape.equals(CONST_RECT)) {
int width = xCoords[1] - xCoords[0];
int height = yCoords[1] - yCoords[0];
fArea = new Rectangle2D.Double(xCoords[0], yCoords[0], width,
height);
} else if (entityShape.equals(CONST_POLY)) {
int nPoints = xCoords.length;
fArea = new Polygon(xCoords, yCoords, nPoints);
}
}
}
Hope it helps.
Thanks,
Eugene
Kevin Hirschmann wrote:
Hi Eugene!
Thanks for your help!
Unfortunately, this solves only part of the problem:
Of course, there is no nullpointer exception now.
But still I don't get the event.
The root cause seems to be that the chart entities (which are there) are
not
retrieved.
I really need to get these events. Exist there any update version? I am
really
Wondering because the example on the community page works.
I'm using: jcommon-1.0.12.jar, jfreechart-1.0.9.jar,
jfreechart-extension-client-1.0.jar, jfreechart-extension-server-1.0.jar
Thanks and kind regards,
Kevin Hirschmann
-----Ursprüngliche Nachricht-----
Von: Kevin Hirschmann [mailto:[email protected]]
Gesendet: Donnerstag, 12. März 2009 09:22
An: Bernhard Schüler
Betreff: WG: [ULC-developer] Nullpointer in JFreechart Extension
Hi Kevin ,
Replace the following in UIJFreeChart
private UIChartEntity findEntity(int x, int y) {
UIChartEntity result = null;
for (Iterator iter = fChartEntities.iterator(); iter.hasNext();) {
UIChartEntity entity = (UIChartEntity) iter.next();
if (entity.getArea()!=null){
if (entity.getArea().contains(x, y)) {
result = entity;
}
}
}
return result;
}
Regards,
Eugene
Kevin Hirschmann wrote:
Hi!
I encountered a problem using JFreeChart Extension II along with
JFreeChart 1.0.9 (and the same for JFreeChart 1.0.0).
More precisely: jcommon-1.0.12.jar, jfreechart-1.0.9.jar,
jfreechart-extension-client-1.0.jar, jfreechart-extension-server-1.0.jar
There is a nullpointer exception when a mouse event occurs and an
IChartEventListener has been registered.
This appears to be the same problem which has previously been posted
on [ULC-developer]
(by Eugene Coelho, Wed, 19 Jul 2006 01:20:54 -0700).
Unfortunately, no answer has been posted.
To produce this error I added an ULCJFreeChart to the template created by
“New ULC Project Wizard –> Simple dialog ULC application template” in
Eclipse.
Please see below for the code and the stack trace.
Thanks and kind regards,
Kevin Hirschmann
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
at
com.canoo.ulc.community.jfreechart.client.UIJFreeChart$MouseEventHandler.fin
dEntity(UIJFreeChart.java:184)
at
com.canoo.ulc.community.jfreechart.client.UIJFreeChart$MouseEventHandler.mou
seClicked(UIJFreeChart.java:162)
at
java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:212)
at java.awt.Component.processMouseEvent(Component.java:5520)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
at
com.ulcjava.base.client.UILabel$BasicLabel.processMouseEvent(UILabel.java:38
)
at java.awt.Component.processEvent(Component.java:5282)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3984)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3819)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3901)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1791)
at java.awt.Component.dispatchEvent(Component.java:3819)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at
com.ulcjava.base.client.FilteringEventQueue.dispatchEvent(FilteringEventQueu
e.java:61)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
va:242)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
public class TestChartEventsBoxPane extends ULCBoxPane {
// The structure of the class enables its visualization with ULC
Visual Editor Plugin
private ULCButton ulcButton = null;
private ULCLabel ulcLabel = null;
private ULCJFreeChart chartComponent = null;
public TestChartEventsBoxPane() {
initialize();
}
private void initialize() {
setHorizontalGap(5);
set(0, 1, 1, 1, com.ulcjava.base.shared.IDefaults.BOX_CENTER_CENTER,
getUlcButton());
set(0, 0, 1, 1, com.ulcjava.base.shared.IDefaults.BOX_CENTER_CENTER,
getUlcLabel());
set(2, 2, 1, 1, com.ulcjava.base.shared.IDefaults.BOX_CENTER_CENTER,
getULCJFreeChart());
}
private ULCButton getUlcButton() {
if (ulcButton == null) {
ulcButton = new ULCButton();
ulcButton.setText("Say Hello");
ulcButton.addActionListener(new IActionListener() {
public void actionPerformed(ActionEvent e) {
new ULCAlert("Title","Hello!","OK").show();
}
});
}
return ulcButton;
}
private ULCLabel getUlcLabel() {
if (ulcLabel == null) {
ulcLabel = new ULCLabel();
ulcLabel.setText("Click button for greeting");
}
return ulcLabel;
}
private ULCJFreeChart getULCJFreeChart() {
if (this.chartComponent == null) {
this.chartComponent = new ULCJFreeChart();
double[][] data = new double[][] { { 4257, 4058, 3357 }, { 257, 58,
357 } };
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
new String[] { "prognose", "real" },
new String[] { "02.09.2008", "03.09.2008", "04.09.2008" },
data);
JFreeChart chart1 = ChartFactory.createBarChart("TEST", "", "",
dataset, PlotOrientation.VERTICAL, false,
false, false);
this.chartComponent.setChart(chart1, new Dimension(600, 400));
this.chartComponent.addChartComponentListener(new
IChartComponentListener() {
public void chartResized(UlcChartComponentEvent event) {
System.out.println("chartResized: latest chart size: " +
event.getChartComponentSize());
}
});
this.chartComponent.addChartEventListener(new IChartEventListener() {
public void chartClicked(UlcChartEvent event) {
System.out.println("chart clicked");
}
public void chartEntityClicked(UlcChartEvent event) {
ChartEntity entity = event.getChartEntity();
System.out.println("entity coordinates: " + entity.getShapeCoords());
}
public void chartZoomed(UlcChartEvent arg0) {
;
}
});
}
return chartComponent;
}
}
HUEBINET Informationsmanagement GmbH & Co. KG
Universitätsstraße 3
56070 Koblenz
Sitz und Registergericht: Koblenz HRA 5329
Persönlich haftender Gesellschafter der KG:
HUEBINET GmbH;
Sitz und Registergericht: Koblenz HRB 6857
Geschäftsführung:
Frank Hüttmann; Michael Biemer
Der Nachrichtenaustausch mit HUEBINET Informationsmanagement GmbH &
Co. KG, Koblenz via E-Mail dient lediglich zu Informationszwecken.
Rechtsgeschäftliche Erklärungen mit verbindlichem Inhalt können über
dieses Medium nicht ausgetauscht werden, da die Manipulation von
E-Mails durch Dritte nicht ausgeschlossen werden kann.
_______________________________________________
ULC-developer mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/ulc-developer
_______________________________________________
ULC-developer mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/ulc-developer
_______________________________________________
ULC-developer mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/ulc-developer
_______________________________________________
ULC-developer mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/ulc-developer