/**
* Copyright 2015 Santhosh Kumar Tekuri
*
* The JLibs authors license this file to you 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 jlibs.swing.event;
import javax.swing.event.*;
import javax.swing.text.JTextComponent;
import javax.swing.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
/**
* @author Santhosh Kumar T
*/
public abstract class UIListener implements
DocumentListener, ItemListener,
ListDataListener, ListSelectionListener,
TableModelListener,
TreeModelListener, TreeSelectionListener{
public abstract void changed();
/*-------------------------------------------------[ DocumentListener ]---------------------------------------------------*/
@Override
public void insertUpdate(DocumentEvent de){
changed();
}
@Override
public void removeUpdate(DocumentEvent de){
changed();
}
@Override
public void changedUpdate(DocumentEvent de){
changed();
}
/*-------------------------------------------------[ ItemListener ]---------------------------------------------------*/
@Override
public void itemStateChanged(ItemEvent ie){
changed();
}
/*-------------------------------------------------[ ListDataListener ]---------------------------------------------------*/
@Override
public void intervalAdded(ListDataEvent lde){
changed();
}
@Override
public void intervalRemoved(ListDataEvent lde){
changed();
}
@Override
public void contentsChanged(ListDataEvent lde){
changed();
}
/*-------------------------------------------------[ ListSelectionListener ]---------------------------------------------------*/
@Override
public void valueChanged(ListSelectionEvent lse){
changed();
}
/*-------------------------------------------------[ TableModelListener ]---------------------------------------------------*/
@Override
public void tableChanged(TableModelEvent tme){
changed();
}
/*-------------------------------------------------[ TreeModelListener ]---------------------------------------------------*/
@Override
public void treeNodesChanged(TreeModelEvent tme){
changed();
}
@Override
public void treeNodesInserted(TreeModelEvent tme){
changed();
}
@Override
public void treeNodesRemoved(TreeModelEvent tme){
changed();
}
@Override
public void treeStructureChanged(TreeModelEvent tme){
changed();
}
/*-------------------------------------------------[ TreeSelectionListener ]---------------------------------------------------*/
@Override
public void valueChanged(TreeSelectionEvent tse){
changed();
}
/*-------------------------------------------------[ ListenTo ]---------------------------------------------------*/
public void listenTo(JTextComponent textComp){
textComp.getDocument().addDocumentListener(this);
}
public void listenTo(AbstractButton button){
button.addItemListener(this);
}
public void listenTo(JList list, boolean model, boolean selection){
if(model)
list.getModel().addListDataListener(this);
if(selection)
list.addListSelectionListener(this);
}
public void listenTo(JTable table, boolean model, boolean selection){
if(model)
table.getModel().addTableModelListener(this);
if(selection)
table.getSelectionModel().addListSelectionListener(this);
}
public void listenTo(JTree tree, boolean model, boolean selection){
if(model)
tree.getModel().addTreeModelListener(this);
if(selection)
tree.addTreeSelectionListener(this);
}
}