public void writeHistory(DataOutput output) {
        try {
            output.writeInt(VERSION);
            int chainCount = filterLists.size();
            output.writeInt(chainCount);
            for (int i = 0; i < chainCount; ++i) {
                JList filterList = (JList) filterLists.elementAt(i);
                Object genericModel = filterList.getModel();
                if (genericModel instanceof DefaultListModel) {
                    DefaultListModel model = (DefaultListModel) genericModel;
                    int filterCount = model.getSize();
                    output.writeInt(filterCount);
                    for (int j = 0; j < filterCount; ++j) {
                        String s = (String) model.getElementAt(j);
                        output.writeUTF(s);
                    }
                } else {
                    output.writeInt(0);
                }
            }
            
        } catch (IOException e) {
            // NYI
        }
    }