private void fire(T listener, Object e) { if (e instanceof ColorEvent && listener instanceof ColorEventListener) { ((ColorEventListener) listener).colorChanged((ColorEvent) e); } else if (e instanceof ImportEvent && listener instanceof ImportEventListener) { ((ImportEventListener) listener).importEventHapened((ImportEvent) e); } else if (e instanceof ActionEvent && listener instanceof ActionListener) { ((ActionListener) listener).actionPerformed((ActionEvent) e); } else if (e instanceof ClipboardEvent && listener instanceof ClipboardListener) { ((ClipboardListener) listener).clipboardChanged((ClipboardEvent) e); } else if (e instanceof ErrorEvent && listener instanceof ErrorListener) { ((ErrorListener) listener).errorHapened((ErrorEvent) e); } else { throw new IllegalArgumentException( "Listener '" + listener.getClass().getName() + "' and event '" + e.getClass().getName() + "' unsupported"); } }