Developers

Please understand that I won’t give programming support. Contact me if you think your plugin should be included in the download section or directly in the Yass executable.

Creating Print Plugins

You can add custom print layouts by implementing the interface PrintPlugin in the package yass.print.

public interface PrintPlugin {
   public String getTitle();
   public String getDescription();
   public JPanel getControl();

   public void commit(Hashtable options);
   public boolean print(Vector songList, String filename, Hashtable options);
}

The plugin must have a correspondent GIF image.

Examples:

Add the class file and GIF image to an archive called yass-plugins.jar. Put the archive in the same directory as the Yass executable.

In the preferences, add the plugin’s name to the Printer plugins. The plugin should appear in the printer dialog after restarting Yass.

Creating Filters

You can add custom filter groups by extending the class YassFilter in the package yass.filter.

public class YassFilter {
   // filter id is used when retrieving property 'group-[id]'
   public String getID();
   // filter label in the group combo box
   public String getLabel();

   // called once when creating a filter
   public static void init();
   // called in filter creation when occuring the generic keyword
   public String[] getGenericRules(Vector songs);

   // each refresh first calls start, then accept for each song, finally stop
   public void start(Vector songs);
   public boolean accept(YassSong s);
   public void stop();

   // extra line displayed in songlist; default: none (3)
   public int getExtraInfo();

   // count songs when refreshing filter; default: false
   public boolean count();

   // refresh counters after a drop event; default: false
   public boolean refreshCounters();

   // support drag-over or drop event; default: false
   public boolean allowDrop(String s);
   public boolean allowCoverDrop(String s);
   public void drop(String rule, YassSong s);

   // shows confirmation dialog; default: false
   public boolean confirm();
   String getConfirmString(String rule);

   // access to preferences
   public Properties getProperties();
   public void setProperties(Properties p);
}

Examples:

Add the class file to an archive called yass-plugins.jar. Put the archive in the same directory as the Yass executable.

In the preferences, add the filter’s name to the Grouping plugins. Further you must set the property group-[id], where [id] is the filter ID, in the file [user_home]/.yass/user.xml. The filter should appear in the group combobox after restarting Yass.

Translating Yass

I appreciate your help in translating Yass to your native language. Localizing the language-dependent text will require about 2-3 hours of your time.

Contact me and I’ll send you the package. Thanks in advance.