BeanEventSample

A sample that demonstrates the handling of the bound bean properties.

This sample program expect the .ini file as a command line argument. If there is no such argument, it use the dwarfs.ini file.

Source code for bean: Dwarf,

import org.ini4j.Ini;

import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

import java.io.FileInputStream;

public class BeanEventSample
{
    public static final String FILENAME = "dwarfs.ini";

    public static void main(String[] args) throws Exception
    {
        String filename = (args.length > 0) ? args[0] : FILENAME;
        Ini ini = new Ini(new FileInputStream(filename));
        Dwarf sneezy = ini.get("sneezy").as(Dwarf.class);

        sneezy.addPropertyChangeListener("age", new PropertyChangeListener()
            {
                public void propertyChange(PropertyChangeEvent event)
                {
                    System.out.println("property " + event.getPropertyName() + " change");
                    System.out.println(event.getOldValue() + " -> " + event.getNewValue());
                }
            });
        System.out.println("Sneezy's age: " + sneezy.getAge());
        sneezy.setAge(44);
        System.out.println("Sneezy's age: " + sneezy.getAge());
    }
}

Standard output:

preference changed: color = blue
preference changed: color = gray
preference changed: age = 2
Sneezy's age: 64
property age change
64 -> 44
Sneezy's age: 44