public EventListener[] removeDetailTableListener(Class type) { KDTable detail = getDetailTable(); if (detail != null) { EventListenerList eventList = detail.getListenerList(); EventListener[] lists = eventList.getListeners(type); if (lists != null) { for (int i = 0; i < lists.length; i++) { eventList.remove(type, lists[i]); } return lists; } } return new EventListener[0]; } public void restoreDetailTableListener(Class type, EventListener[] lists) { if ((lists == null) || (lists.length == 0)) { return; } KDTable detail = getDetailTable(); if (detail != null) { EventListenerList eventList = detail.getListenerList(); for (int i = 0; i < lists.length; i++) { eventList.add(type, lists[i]); } } } private void innerLoadFields() { EventListener[] lsts = removeDetailTableListener(KDTPropertyChangeListener.class); loadFields(); restoreDetailTableListener(KDTPropertyChangeListener.class, lsts); }