/* * Copyright (C) 2012-2016 NS Solutions Corporation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package com.htmlhifive.tools.jslint.view.model; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; /** * * ViewModelの親クラス.プロパティチェンジを発火する. * * @author NS Solutions Corporation */ public abstract class AbstractModelObject { /** * プロパティチェンジサポート. */ private final PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this); /** * リスナを追加する. * * @param listener リスナー. */ public void addPropertyChangeListener(PropertyChangeListener listener) { propertyChangeSupport.addPropertyChangeListener(listener); } /** * リスナを追加する. * * @param propertyName プロパティ名. * @param listener リスナー. */ public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { propertyChangeSupport.addPropertyChangeListener(propertyName, listener); } /** * * リスナを削除する. * * @param listener 削除するリスナ. */ public void removePropertyChangeListener(PropertyChangeListener listener) { propertyChangeSupport.removePropertyChangeListener(listener); } /** * リスナを削除する. * * @param propertyName プロパティ名. * @param listener 削除するリスナ. */ public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) { propertyChangeSupport.removePropertyChangeListener(propertyName, listener); } /** * イベントを発火する. * * @param propertyName プロパティ名. * @param oldValue 古い値. * @param newValue 新しい値. */ protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) { propertyChangeSupport.firePropertyChange(propertyName, oldValue, newValue); } }