Zum Inhalt springen

BIRT Chart Engine API - Zoom


maddin

Empfohlene Beiträge

Hi,

ich stehe gerade vor einem recht großen Problem. Ich habe ein kleines Programm geschrieben, dass diverse Informationen grafisch aufbereitet. Dazu verwende ich die Eclipse BIRT Chart Engine API in einer Eclipse RCP Anwendung. Soweit funktioniert alles wie gewollt, bis auf ein hoffentlich nicht unlösbares Problem.

Ich würde gerne in dem Graphen zoomen können, d.h. mit der Maus einen Bereich aufziehen, auf den dann die Anzeige vergrößert wird. Ähnliches bekomme ich z.B. mit JFreeChart out-of-the-box, scheidet allerdings aus diversen, teilweise politischen, Gründen aus.

Dazu ein paar Fragen:

- hat das schon mal jemand implementiert und kann mir seinen Code zur Verfügung stellen? (Idealfall)

oder ein paar kleine Dinge die mir für eine eigene Umsetzung fehlen.

- Kann ich beim behandeln des MouseMove Events herausfinden, an welcher Position innerhalb der Axes ich mich befinden? Ich habe bisher nur die Position einzelner Datenpunkte bekommen.

- Kann ich die genau Position der Plot Client Area herausfinden (chart.getPlot().getClientArea(). ---), also wieviel Abstand hat die Client Area von oben, links und wie groß ist diese.

- Kann ich ermitteln, wie groß die einzelnen Blöcke sind, besonders auch die weiteren Bestandteile im Plot (Axes, Labels, ...)

Ich hoffe auf ein paar hilfreiche Antworten.

-- Martin

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ich versuche mal zu helfen. Ich kenne mich aber leider nicht mit RCP / SWT aus. BIRT habe ich bisher auch nur für Webanwendungen verwendet.

Ich ziehe mal den Vergleich zu Swing. Da würde man Diagramme wahrscheinlich in einem JPanel zeichnen. Die Größe und Position kann man dann ja ganz einfach herausbekommen. Mit einem MouseMotionListener auf dem Panel kann man die relative Position des MouseCursers innerhalb des Panels erhalten. Mit einem MouseListener dürften sich dann verschiedene Zoom Varianten realisieren lassen (Klick, Gummiband...).

Grundsätzlich findet irgendwo eine Umrechnung zwischen dem Koordinatensystem des Diagramms / der Daten und dem Koordinatensystem des Bildschirms statt. Ich glaube zur Umrechnung wird ein Zoomfaktor ( oder für jede Achse einen) und ein Offset für x und einen für y benötigt, um anzugeben, welchen Bereich des Diagramm Koordinatensystem am Bildschirm angezeigt werden soll.

Bei Swing kann man das glaube ich mit dem Graphics Objekt in der paintComponent Methode machen. Wenn ich mich recht erinnere kann man das Diagramm zeichnen und dann das Koordinatensystem so verschieben, dass nur der gewünschte Bereich im Viewport liegt und das gezeichnete entsprechend dem gewünschten zoom zu skalieren. Kann gut sein, dass es da etwas effizienteres gibt.

Bleibt also die Fragen:

Wie geht das mit RPC / SWT?

Wie ist BIRT in RPC intefiert (insbesondere die Diagramme) ?

Sind alle wichtigen Stellen erreichbar, so dass man mal den Code lesen kann, oder vielleicht eine Klasse ableiten kann?

Es könnte sich lohnen mit dem Aufbau von RCP-BIRT auseinanderzusetzten.

Ich hoffe ich konnte wenigstens ein wenig helfen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 4 Wochen später...

Hallo Martin,

ich stehe vor demselben Problem! Bist du an der Stelle wie du die Position im Chart bekommst weiter gekommen?

Ich habe das Zoomen jetzt erst so gelöst, das ich den ganzen Plot vergrößere. Ist aber nur semioptimal da man die Achsen nicht mehr sieht und jedesmal scrollen muss.

VG

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...