GeoCachingFrogger Teil 4 - Nodes und ExplorerManager

GeoCachingFrogger Teil 4 - Nodes und ExplorerManager

Einleitung

Als leidenschaftlicher Geocacher kommt man an einem Punkt an, an dem man gerne komfortabel die Geocaches verwalten und planen möchte. Es gibt dafür einige Tools im Internet, aber ich habe mir überlegt ein eigenes Tool zu schreiben und dabei die NetbeansRCP kennen zu lernen. Ich habe schon einige Swing-Anwendungen entwickelt, aber noch nie mit NetbeansRCP und bin gespannt, was mir die Plattform alles bietet und ob es tatsächlich der einfachere/bessere Weg ist.

Teil4 – Nodes und ExplorerManager

ModelManager

Wie im vorherigen Teil gezeigt, haben wir ein Model Modul in dem das Domain Model abgebildet wird und ein GPX Modul,

Read More

GeoCachingFrogger Teil 3 - Domain Model und GPX Reader

Einleitung

Als leidenschaftlicher Geocacher kommt man an einem Punkt an, an dem man gerne komfortabel die Geocaches verwalten und planen möchte. Es gibt dafür einige Tools im Internet, aber ich habe mir überlegt ein eigenes Tool zu schreiben und dabei die NetbeansRCP kennen zu lernen. Ich habe schon einige Swing-Anwendungen entwickelt, aber noch nie mit NetbeansRCP und bin gespannt, was mir die Plattform alles bietet und ob es tatsächlich der einfachere/bessere Weg ist.

Teil3 – Domain Model und GPX Reader

Domain Model

Damit wir die eingelesenen Daten intern nutzen können, legen wir ein Domain Model an. Dafür haben wir zuvor

Read More

GeoCachingFrogger Teil 2 - Netbeans Projekt aufsetzen

Einleitung

Als leidenschaftlicher Geocacher kommt man an einem Punkt an, an dem man gerne komfortabel die Geocaches verwalten und planen möchte. Es gibt dafür einige Tools im Internet, aber ich habe mir überlegt ein eigenes Tool zu schreiben und dabei die NetbeansRCP kennen zu lernen. Ich habe schon einige Swing-Anwendungen entwickelt, aber noch nie mit NetbeansRCP und bin gespannt, was mir die Plattform alles bietet und ob es tatsächlich der einfachere/bessere Weg ist.

Teil 2 -Aufsetzen eines NetbeansRCP Projekts

Projektstruktur

  • GeocachingFroggerCore
    Die eigentliche Anwendung und UI-Themen finden hier statt.
  • GPX
    In diesem Teilprojekt werden die GPX Dateien verarbeitet (einlesen/

Read More

Lose Kopplung der Open Action (Beispiel von Geertjan Wielenga)

Heute habe ich versucht anhand von Geertjan Wielengas Blogbeitrag eine lose Kopplung der Open Action aus meinem Baum heraus hinzubekommen.

CacheNode

public class CacheNode extends BeanNode {

    public CacheNode(Cache cache) throws IntrospectionException {
        this(cache, new InstanceContent());
    }

    private CacheNode(final Cache cache, final InstanceContent ic) throws IntrospectionException {
        super(cache, Children.LEAF, new AbstractLookup(ic));
        this.setName(cache.getName());
        ic.add(new Openable() {
            @Override
            public void open() {
                ic.add(cache);
                ic.remove(cache);
            }
        });
    }  

    @Override
    public Action[] getActions(boolean context) {
        List cacheActions = (List)Utilities.actionsForPath("Actions/Cache");
        return

Read More

GeoCachingFrogger Teil 1 - IDEE

Einleitung

Als leidenschaftlicher Geocacher kommt man an einem Punkt an, an dem man gerne komfortabel die Geocaches verwalten und planen möchte. Es gibt dafür einige Tools im Internet, aber ich habe mir überlegt ein eigenes Tool zu schreiben und dabei die NetbeansRCP kennen zu lernen. Ich habe schon einige Swing-Anwendungen entwickelt, aber noch nie mit NetbeansRCP und bin gespannt, was mir die Plattform alles bietet und ob es tatsächlich der einfachere/bessere Weg ist.

Feature-Planung

Das Programm soll über die Zeit immer mehr Features bekommen, aber als erstes sollen folgende Punkte realisiert werden:

Version 0.1

  • Einlesen der GPX Datei

Read More

JasperReports - Subreport-DataSource

In einem Projekt hatte ich jetzt den Fall, dass ich die vollständige Datasource des Parent Reports an ein Subreport übergeben musste.

JasperReports hat einen definierten Parameter REPORTDATASOURCE der die aktuelle DataSource für den Report hält. Leider funktioniert es nicht, wenn man versucht den Parameter direkt als dataSourceExpression zu übergeben. Für den Subreport benötigt man eine neue DataSource. Hierfür ist die Methode cloneDataSource() gedacht. Diese erzeugt einen Clone der Parent DataSource und kann dann dem Subreport übergeben werden.

<subreport isUsingCache="false">  
<reportElement x="0" y="0" width="595"

Read More

XML-Verarbeitung mit XStream

Wir nutzen bei sLAB schon seit langem XStream als Möglichkeit XML zu serialisieren und deserialisieren. Die Bibliothek ist seit Dezember 2008 unverändert und ich bin im Moment wieder dabei, damit zu arbeiten.

Setup

Für das Tutorial benötigen wir erst einmal ein paar Klassen zum serialisieren. Wir beginnen einfach mit zwei Klassen Angestellter und Adresse.

package de.billmann.xstream;  
public class Angestellter {  
  private Long personalNummer;
  private String vorname;
  private String nachname;
  private Adresse adresse;
  private long internerWert;
  public Angestellter() {
    this.internerWert = System.currentTimeMillis();
  }
  public Long getPersonalNummer() {
    return personalNummer;
  }
  public void setPersonalNummer(Long personalNummer) {
    this.personalNummer = personalNummer;
  }
  public String getVorname() {
    return vorname;

Read More