package org.lateralgm.subframes; import java.util.ArrayList; import org.lateralgm.components.impl.ResNode; import org.lateralgm.components.mdi.MDIFrame; import org.lateralgm.resources.Resource; public final class SubframeInformer { private static ArrayList<SubframeListener> listeners = new ArrayList<SubframeListener>(); private SubframeInformer() { } public static void addSubframeListener(SubframeListener list) { listeners.add(list); } public static void removeSubframeListener(SubframeListener list) { listeners.remove(list); } public static boolean fireSubframeRequest(Resource<?,?> res, ResNode node) { for (SubframeListener sl : listeners) if (sl.subframeRequested(res,node)) return true; return false; } public static void fireSubframeAppear(MDIFrame source, boolean wasVisible) { for (SubframeListener sl : listeners) sl.subframeAppeared(source,wasVisible); } public static interface SubframeListener { /** * @return Whether this event is consumed, thus overriding the default resource editor */ boolean subframeRequested(Resource<?,?> res, ResNode node); void subframeAppeared(MDIFrame source, boolean wasVisible); } }