001    package data.events;
002    
003    import util.SerializableListener;
004    import data.CatalogItem;
005    
006    /**
007     * An <i>abstract</i> adapter class for receiving catalog change events. The methods in this class are empty.
008     * This class exists as convenience for creating listener objects.
009     *
010     * <p>Extend this class to create a CatalogChangeEvent listener and override the methods for the events of
011     * interest. (If you implement the CatalogChangeListener interface, you have to define all of the methods in
012     * it. This abstract class defines empty method bodies for them all, so you can concentrate on defining
013     * methods only for events you care about.)</p>
014     *
015     * <p>Create a listener object using the extended class and then register it with a ListenableCatalog using
016     * the Catalog's {@link data.ListenableCatalog#addCatalogChangeListener} method. When the Catalog's contents
017     * change, the relevant method in the listener object is invoked, and a {@link CatalogChangeEvent} is passed
018     * to it.</p>
019     *
020     * @author Steffen Zschaler
021     * @version 2.0 19/08/1999
022     * @since v2.0
023     */
024    public abstract class CatalogChangeAdapter<T extends CatalogItem> extends    Object 
025                                                                      implements CatalogChangeListener<T>,
026                                                                                 SerializableListener {
027    
028        /**
029         * Called whenever a CatalogItem was added to the Catalog.
030         *
031         * @override Sometimes
032         *
033         * @param e an event object describing the event.
034         */
035        public void addedCatalogItem(CatalogChangeEvent<T> e) {}
036    
037        /**
038         * Called whenever the adding of a CatalogItem was commited.
039         *
040         * @override Sometimes
041         *
042         * @param e an event object describing the event.
043         */
044        public void commitedAddCatalogItem(CatalogChangeEvent<T> e) {}
045    
046        /**
047         * Called whenever the adding of a CatalogItem was rolled back.
048         *
049         * @override Sometimes
050         *
051         * @param e an event object describing the event.
052         */
053        public void rolledbackAddCatalogItem(CatalogChangeEvent<T> e) {}
054    
055        /**
056         * Called to ask whether a CatalogItem may be removed. If one of the listeners vetos the removal, all
057         * listeners that had already been asked will receive a {@link #noRemoveCatalogItem noRemoveCatalogItem}
058         * event.
059         *
060         * @override Sometimes
061         *
062         * @param e an event object describing the event.
063         *
064         * @exception VetoException if the listener wants to veto the removal.
065         */
066        public void canRemoveCatalogItem(CatalogChangeEvent<T> e) throws VetoException {}
067    
068        /**
069         * Called for each listener that already agreed with a removal that was then rejected by another listener.
070         *
071         * @override Sometimes
072         *
073         * @param e an event object describing the event.
074         */
075        public void noRemoveCatalogItem(CatalogChangeEvent<T> e) {}
076    
077        /**
078         * Called whenever a CatalogItem was removed from the Catalog.
079         *
080         * @override Sometimes
081         *
082         * @param e an event object describing the event.
083         */
084        public void removedCatalogItem(CatalogChangeEvent<T> e) {}
085    
086        /**
087         * Called whenever the removal of a CatalogItem was commited.
088         *
089         * @override Sometimes
090         *
091         * @param e an event object describing the event.
092         */
093        public void commitedRemoveCatalogItem(CatalogChangeEvent<T> e) {}
094    
095        /**
096         * Called whenever the removal of a CatalogItem was rolled back.
097         *
098         * @override Sometimes
099         *
100         * @param e an event object describing the event.
101         */
102        public void rolledbackRemoveCatalogItem(CatalogChangeEvent<T> e) {}
103    
104        /**
105         * Called to ask whether a CatalogItem may be edited. If one of the listeners vetos the editing, all
106         * steners that had already been asked will receive a {@link #noEditCatalogItem noEditCatalogItem} event.
107         *
108         * @override Sometimes
109         *
110         * @param e an event object describing the event.
111         *
112         * @exception VetoException if the listener wants to veto the editing.
113         */
114        public void canEditCatalogItem(CatalogChangeEvent<T> e) throws VetoException {}
115    
116        /**
117         * Called for each listener that already agreed with an editing that was then rejected by another listener.
118         *
119         * @override Sometimes
120         *
121         * @param e an event object describing the event.
122         */
123        public void noEditCatalogItem(CatalogChangeEvent<T> e) {}
124    
125        /**
126         * Called whenever editing a CatalogItem was started. This event may be accompanied by a
127         * <code>removedCatalogItem</code> and a <code>addedCatalogItem</code> event, but this is implementation
128         * specific.
129         *
130         * @override Sometimes
131         *
132         * @param e an event object describing the event.
133         */
134        public void editingCatalogItem(CatalogChangeEvent<T> e) {}
135    
136        /**
137         * Called whenever editing a CatalogItem was commited.
138         *
139         * @override Sometimes
140         *
141         * @param e an event object describing the event.
142         */
143        public void commitEditCatalogItem(CatalogChangeEvent<T> e) {}
144    
145        /**
146         * Called whenever editing a CatalogItem was rolled back.
147         *
148         * @override Sometimes
149         *
150         * @param e an event object describing the event.
151         */
152        public void rollbackEditCatalogItem(CatalogChangeEvent<T> e) {}
153    }