components/visual-panels/core/src/java/util/com/oracle/solaris/vp/util/misc/event/PropertyChangeListeners.java
changeset 3553 f1d133b09a8c
parent 3552 077ebe3d0d24
child 3554 ef58713bafc4
--- a/components/visual-panels/core/src/java/util/com/oracle/solaris/vp/util/misc/event/PropertyChangeListeners.java	Tue Dec 16 05:53:51 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
- */
-
-package com.oracle.solaris.vp.util.misc.event;
-
-import java.beans.*;
-import java.util.*;
-
-public class PropertyChangeListeners
-    extends EventListeners<PropertyChangeListener>
-    implements EventDispatcher<PropertyChangeEvent, PropertyChangeListener>,
-    PropertyChangeListener {
-
-    //
-    // Instance data
-    //
-
-    // Map of PropertyChangeListeners interested only in a single property
-    private Map<PropertyChangeListener, List<String>> map =
-	new HashMap<PropertyChangeListener, List<String>>();
-
-    //
-    // EventDispatcher methods
-    //
-
-    @Override
-    public void dispatch(PropertyChangeListener listener,
-	PropertyChangeEvent event) {
-
-	List<String> propNames = map.get(listener);
-
-	// Dispatch if listener is not property-specific, or is specific to the
-	// changed property
-	if (propNames == null || propNames.contains(event.getPropertyName())) {
-	    listener.propertyChange(event);
-	}
-    }
-
-    //
-    // PropertyChangeListener methods
-    //
-
-    @Override
-    public void propertyChange(PropertyChangeEvent event) {
-	dispatch((EventDispatcher<PropertyChangeEvent, PropertyChangeListener>)
-	    this, event);
-    }
-
-    //
-    // EventListeners methods
-    //
-
-    @Override
-    public boolean remove(PropertyChangeListener listener) {
-	boolean removed = super.remove(listener);
-	if (removed) {
-	    map.remove(listener);
-	}
-	return removed;
-    }
-
-    //
-    // PropertyChangeListeners methods
-    //
-
-    public void add(String propName, PropertyChangeListener listener) {
-	add(listener);
-
-	List<String> propNames = map.get(listener);
-	if (propNames == null) {
-	    propNames = new LinkedList<String>();
-	    map.put(listener, propNames);
-	}
-
-	int index = Collections.binarySearch(propNames, propName);
-	if (index < 0) {
-	    index = -1 - index;
-	    propNames.add(index, propName);
-	}
-    }
-
-    public boolean remove(String propName, PropertyChangeListener listener) {
-	List<String> propNames = map.get(listener);
-	if (propNames != null) {
-	    propNames.remove(propName);
-	    if (propNames.isEmpty()) {
-		map.remove(listener);
-	    } else {
-		return false;
-	    }
-	}
-	return super.remove(listener);
-    }
-}