/// <summary>
        /// Report a vetoable property update to any registered listeners.
        /// If anyone vetos the change, then fire a new event
        /// reverting everyone to the old value and then rethrow
        /// the PropertyVetoException. <P>
        ///
        /// No event is fired if old and new are equal and non-null.
        /// <P> </summary>
        /// <param name="name"> The programmatic name of the property that is about to
        /// change
        /// </param>
        /// <param name="oldValue"> The old value of the property </param>
        /// <param name="newValue"> - The new value of the property
        /// </param>
        /// <exception cref="PropertyVetoException"> if the recipient wishes the property
        /// change to be rolled back. </exception>
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void fireVetoableChange(String name, Object oldValue, Object newValue) throws java.beans.PropertyVetoException
        public virtual void FireVetoableChange(String name, Object oldValue, Object newValue)
        {
            VcSupport.FireVetoableChange(name, oldValue, newValue);
        }
 /// <summary>
 /// Removes a <code>VetoableChangeListener</code>.
 /// If <code>pcl</code> was added more than once to the same event
 /// source for the specified property, it will be notified one less time
 /// after being removed.
 /// If <code>name</code> is null, no exception is thrown
 /// and no action is taken.
 /// If <code>vcl</code> is null, or was never added for the specified
 /// property, no exception is thrown and no action is taken.
 /// </summary>
 /// <param name="name"> The name of the property that was listened on </param>
 /// <param name="vcl"> The <code>VetoableChangeListener</code> to be removed </param>
 public virtual void RemoveVetoableChangeListener(String name, VetoableChangeListener vcl)
 {
     VcSupport.RemoveVetoableChangeListener(name, vcl);
 }