New service release for Debug Visualisation

Version 0.6.0 introduced some serious regressions from the previous versions, so we decided to create a quick service release.

This release contains fixes for Stack Overflow and Hidden nodes issues, and added some minor new features as the ability to zoom the graph.

You can use P2 to automatically update your installation, or install the new version from the http://eclipse.cubussapiens.hu update site.

We are hoping, this release will be usable than the previous one.

Debug Visualisation 0.6.0 released

Release version 0.6.0 of Debug Visualisation viewRelease version 0.6.0 of Debug Visualisation view

After many hours of work we finally managed to release a new version of the Debug Visualisation project! This release is a complete rewrite of the previous version (0.5.X), and now it is built upon the JFace API and other standard eclipse technologies instead of different custom hackings. We expect improved stability and maintainability from the new techniques, which means that we can implement more advanced features in the plugin.

Currently, the new version does not include all functionality what the old version did, but we’re sure we will manage to reach it soon. For more information about this release, please refer to the release announcement.

So we are now starting a blog…

Debug Visualisation for Eclipse… Who knows what is it good for. Maybe a quick detection of some misplaced references. Maybe more.

The project started as a home assignment for an Eclipse course at the university, but we were interested in it, so we continued the development. Our goal was to support the debugging process by helping the detection (or exploration) of the state space of the program.

We are not calling our software a 1.0 release, as we don’t think it can help in a lot of cases. But we believe it is worth to invest time to increase its usefulness. Maybe in the end something good will come out from it.

This page is started for reporting our progress, share ideas. We would be glad to hear your opinions about the project. Your idea may help – we are not capable of solving the problem in general, we need potential use cases. We need testing.

So to help the communication a blog is born. Please if you test our project, give us feedback: what do you like, what are the worst points. Do you have an idea to share with us? We are glad to hear it. Maybe we will implement it, if we are interested enough. Or if you implement it, we are glad to include it. So let’s rock.

Kiválasztás átvitele eclipse nézetek között

Érdekes problémákba ütközik az ember, ha eclipse környékén fejleszt. Ezek nagyrészét ugyan már megoldották, de a megoldást külön művészet megtalálni a tengernyi dokumentációban. Mindenesetre legalább dokumentálták. A probléma, amiben pár napja az örömömet leltem, az az, hogy hogyan lehet egy nézet által kiválasztott elemeket átadni egy másik nézetnek, ami természetesen hasonló modell felett dolgozik. Konkrétan a Debug Visualisation projektem által definiált nézetet akartam összekötni a Variables View-vel és vice-versa.

Érdekes problémákba ütközik az ember, ha eclipse környékén fejleszt. Ezek nagyrészét ugyan már megoldották, de a megoldást külön művészet megtalálni a tengernyi dokumentációban. Mindenesetre legalább dokumentálták. A probléma, amiben pár napja az örömömet leltem, az az, hogy hogyan lehet egy nézet által kiválasztott elemeket átadni egy másik nézetnek, ami természetesen hasonló modell felett dolgozik. Konkrétan a Debug Visualisation projektem által definiált nézetet akartam összekötni a Variables View-vel és vice-versa.

Pár óra keresgélés és javadoc olvasgatás után rábukkantam a megoldásra: Minden view-t tartalmazó IWorkbenchPartSite lehetőséget biztosít egy ISelectionProvider regisztrálására, amely interfészt ad kiválasztási információk kinyerésére és átadására, továbbá listener-ek regisztrálására. A másik, csatlakoztatni kívánt view által megadott ISelectionProvider-nek az általunk generált kiválasztási eseményeket át lehet adni, illetve figyelni lehet az általa generált ilyen eseményeket.

A problémát csak az okoz, hogy egy adott view által generált és elfogadott kiválasztandó elemek az adott view modelljéből kerül ki, tehát ugyanezen modell elemeit kell neki átadni. Ha az általunk írt view más modellen, vagy ugyanazon modell felett máshogy definiálja a kiválasztást, akkor a kiválasztást konvertálni kell a modellek között. Ez természetesen csak akkor oldható meg, ha egyáltalán értelmezhető a közös kiválasztás.

Mindehhez persze az első lépés az, hogy megtaláljuk a csatlakoztatni kivánt view-t, amit az azonosítójának ismeretében tehetünk meg a következő módon:


PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(viewID).getSite().getSelectionProvider();

ahol a [cci_java]viewID[/cci_java] helyére a keresett view szöveges azonosítóját kell megadni. A Variables View azonosítóját az org.eclipse.debug.ui plugin egy [cci_java]IDebugUIConstants[/cci_java] nevű publikus interfész elérhetővé teszi.

Mint az eclipse esetében általában erre problémára is egy jól kitalált megoldás létezik, ami megfelelően egyszerű ahhoz, hogy a módszer ismeretében könnyű legyen implementálni, a nehézséget csak a módszer megtalálása jelenti.