import java.util.Map;
import java.util.function.Consumer;
-import net.mograsim.logic.model.model.components.GUIComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
+import net.mograsim.logic.model.model.components.ModelComponent;
+import net.mograsim.logic.model.model.wires.ModelWire;
public class ViewModel
{
- private final Map<String, GUIComponent> components;
+ private final Map<String, ModelComponent> components;
private final Map<String, Runnable> componentDestroyFunctions;
- private final Map<String, GUIComponent> componentsUnmodifiable;
- private final Map<String, GUIWire> wires;
+ private final Map<String, ModelComponent> componentsUnmodifiable;
+ private final Map<String, ModelWire> wires;
private final Map<String, Runnable> wireDestroyFunctions;
- private final Map<String, GUIWire> wiresUnmodifiable;
+ private final Map<String, ModelWire> wiresUnmodifiable;
- private final List<Consumer<? super GUIComponent>> componentAddedListeners;
- private final List<Consumer<? super GUIComponent>> componentRemovedListeners;
- private final List<Consumer<? super GUIWire>> wireAddedListeners;
- private final List<Consumer<? super GUIWire>> wireRemovedListeners;
+ private final List<Consumer<? super ModelComponent>> componentAddedListeners;
+ private final List<Consumer<? super ModelComponent>> componentRemovedListeners;
+ private final List<Consumer<? super ModelWire>> wireAddedListeners;
+ private final List<Consumer<? super ModelWire>> wireRemovedListeners;
private final List<Consumer<? super Runnable>> redrawHandlerChangedListeners;
private Runnable redrawHandler;
/**
* Adds the given component to the list of components and calls all componentAddedListeners. Don't call this method from application
- * code as it is automatically called in {@link GUIComponent}'s constructor.
+ * code as it is automatically called in {@link ModelComponent}'s constructor.
*
* @author Daniel Kirschten
*/
- protected void componentCreated(GUIComponent component, Runnable destroyed)
+ protected void componentCreated(ModelComponent component, Runnable destroyed)
{
if (components.containsKey(component.name))
throw new IllegalStateException("Don't add the same component twice!");
*
* @author Daniel Kirschten
*/
- protected void destroyComponent(GUIComponent component)
+ protected void destroyComponent(ModelComponent component)
{
componentDestroyFunctions.get(component.name).run();
if (!components.containsKey(component.name))
*
* @author Daniel Kirschten
*/
- protected void wireCreated(GUIWire wire, Runnable destroyed)
+ protected void wireCreated(ModelWire wire, Runnable destroyed)
{
if (wires.containsKey(wire.name))
throw new IllegalStateException("Don't add the same wire twice!");
*
* @author Daniel Kirschten
*/
- protected void destroyWire(GUIWire wire)
+ protected void destroyWire(ModelWire wire)
{
wireDestroyFunctions.get(wire.name).run();
if (!wires.containsKey(wire.name))
requestRedraw();
}
- public Map<String, GUIComponent> getComponentsByName()
+ public Map<String, ModelComponent> getComponentsByName()
{
return componentsUnmodifiable;
}
- public Map<String, GUIWire> getWiresByName()
+ public Map<String, ModelWire> getWiresByName()
{
return wiresUnmodifiable;
}
// @formatter:off
- public void addComponentAddedListener (Consumer<? super GUIComponent> listener) {componentAddedListeners .add (listener);}
- public void addComponentRemovedListener (Consumer<? super GUIComponent> listener) {componentRemovedListeners .add (listener);}
- public void addWireAddedListener (Consumer<? super GUIWire > listener) {wireAddedListeners .add (listener);}
- public void addWireRemovedListener (Consumer<? super GUIWire > listener) {wireRemovedListeners .add (listener);}
+ public void addComponentAddedListener (Consumer<? super ModelComponent> listener) {componentAddedListeners .add (listener);}
+ public void addComponentRemovedListener (Consumer<? super ModelComponent> listener) {componentRemovedListeners .add (listener);}
+ public void addWireAddedListener (Consumer<? super ModelWire > listener) {wireAddedListeners .add (listener);}
+ public void addWireRemovedListener (Consumer<? super ModelWire > listener) {wireRemovedListeners .add (listener);}
public void addRedrawHandlerChangedListener (Consumer<? super Runnable > listener) {redrawHandlerChangedListeners.add (listener);}
- public void removeComponentAddedListener (Consumer<? super GUIComponent> listener) {componentAddedListeners .remove(listener);}
- public void removeComponentRemovedListener (Consumer<? super GUIComponent> listener) {componentRemovedListeners .remove(listener);}
- public void removeWireAddedListener (Consumer<? super GUIWire > listener) {wireAddedListeners .remove(listener);}
- public void removeWireRemovedListener (Consumer<? super GUIWire > listener) {wireRemovedListeners .remove(listener);}
+ public void removeComponentAddedListener (Consumer<? super ModelComponent> listener) {componentAddedListeners .remove(listener);}
+ public void removeComponentRemovedListener (Consumer<? super ModelComponent> listener) {componentRemovedListeners .remove(listener);}
+ public void removeWireAddedListener (Consumer<? super ModelWire > listener) {wireAddedListeners .remove(listener);}
+ public void removeWireRemovedListener (Consumer<? super ModelWire > listener) {wireRemovedListeners .remove(listener);}
public void removeRedrawHandlerChangedListener(Consumer<? super Runnable > listener) {redrawHandlerChangedListeners.remove(listener);}
- private void callComponentAddedListeners (GUIComponent c) {componentAddedListeners .forEach(l -> l.accept(c));}
- private void callComponentRemovedListeners (GUIComponent c) {componentRemovedListeners .forEach(l -> l.accept(c));}
- private void callWireAddedListeners (GUIWire w) {wireAddedListeners .forEach(l -> l.accept(w));}
- private void callWireRemovedListeners (GUIWire w) {wireRemovedListeners .forEach(l -> l.accept(w));}
+ private void callComponentAddedListeners (ModelComponent c) {componentAddedListeners .forEach(l -> l.accept(c));}
+ private void callComponentRemovedListeners (ModelComponent c) {componentRemovedListeners .forEach(l -> l.accept(c));}
+ private void callWireAddedListeners (ModelWire w) {wireAddedListeners .forEach(l -> l.accept(w));}
+ private void callWireRemovedListeners (ModelWire w) {wireRemovedListeners .forEach(l -> l.accept(w));}
private void callRedrawHandlerChangedListener(Runnable r) {redrawHandlerChangedListeners.forEach(l -> l.accept(r));}
// @formatter:on