Hi Kevin,

Forgot to mention, in addition to what i sent replace the following in ULCChartEntity

private void initCoords() {
if (fEntity.getShapeType().equals("rect")) {
initRectCoords();
} else {
initPolyCoords();
}
}

Only change that is required is RECT to rect .

I have tried it out and it works with your snippet.

The jfreechart-extension availaible on the web site worked fine with the older release of jfreechart library. The new jfreechart library would have to be adapted with the changes i have mentioned in the email conversation.

But it would be nice if the code of jfreechart-extension could be patched so that it works with new jfreechart library. ;-)

Regards,
Eugene

Kevin Hirschmann wrote:
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


_______________________________________________
ULC-developer mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/ulc-developer

Reply via email to