|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2003 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.tasklist.core.filter; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import org.netbeans.spi.settings.Convertor; import org.netbeans.spi.settings.DOMConvertor; import org.netbeans.spi.settings.Saver; import org.openide.ErrorManager; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; /** * Convertor for FilterRepository. Filters are converted using delegation to * their convertors. * Public ID: "-//NetBeans org.netbeans.modules.tasklist//DTD Filters 1.0//EN" * * @author or141057 */ public class FilterRepositoryConvertor extends DOMConvertor implements PropertyChangeListener { private static final String ATTR_ACTIVE = "active"; private static final String ELEM_FILTER = "Filter"; private static final String ELEM_FILTERS = "Filters"; /** * Creates a converter for the specified FO * @param fo an XML FO with Column Widths DTD */ private static Object create(org.openide.filesystems.FileObject fo) { return new FilterRepositoryConvertor(); } private Saver saver; /** Creates a new instance of FilerRepositoryConvertor */ public FilterRepositoryConvertor() { super("-//NetBeans org.netbeans.modules.tasklist//DTD Filters 1.0//EN", // NOI18N "http://tasklist.netbeans.org/dtd/filters-1_0.dtd", ELEM_FILTERS); // NOI18N } protected Object readElement(org.w3c.dom.Element element) throws java.io.IOException, java.lang.ClassNotFoundException { FilterRepository rep = new FilterRepository(); int activeIndex = Integer.parseInt(element.getAttribute(ATTR_ACTIVE)); Node child = element.getFirstChild(); while (child != null) { if ((child.getNodeType() == Node.ELEMENT_NODE)) { Filter f = (Filter)this.delegateRead((Element)child); rep.add(f); } child = child.getNextSibling(); } if (activeIndex != -1) { rep.setActive((Filter)rep.get(activeIndex)); } return rep; } protected void writeElement(org.w3c.dom.Document document, org.w3c.dom.Element element, Object obj) throws java.io.IOException, org.w3c.dom.DOMException { FilterRepository fr = (FilterRepository)obj; element.setAttribute(ATTR_ACTIVE, Integer.toString(fr.indexOf(fr.getActive()))); Iterator fit = fr.iterator(); while (fit.hasNext()) { Element childNode = this.delegateWrite(document, fit.next()); element.appendChild(childNode); } } public void registerSaver(Object obj, org.netbeans.spi.settings.Saver saver) { this.saver = saver; ((FilterRepository)obj).addPropertyChangeListener(this); } public void unregisterSaver(Object obj, org.netbeans.spi.settings.Saver saver) { if (saver == null || saver != this.saver) { ErrorManager.getDefault().notify(ErrorManager.ERROR, new IllegalArgumentException( "Wrong argument for unregisterSaver(Object=" + obj + // NOI18N ", Saver=" + saver + ")")); // NOI18N } ((FilterRepository)obj).removePropertyChangeListener(this); this.saver = null; } public void propertyChange(PropertyChangeEvent evt) { try { saver.requestSave(); } catch (IOException e) { ErrorManager.getDefault().notify(e); } } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.