projects
/
Mograsim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
GUIComponents now have names
[Mograsim.git]
/
net.mograsim.logic.ui
/
src
/
net
/
mograsim
/
logic
/
ui
/
model
/
ViewModel.java
diff --git
a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/ViewModel.java
b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/ViewModel.java
index
7f9b113
..
4d1f21b
100644
(file)
--- a/
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/ViewModel.java
+++ b/
net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/ViewModel.java
@@
-2,7
+2,9
@@
package net.mograsim.logic.ui.model;
import java.util.ArrayList;
import java.util.Collections;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
import java.util.List;
+import java.util.Map;
import java.util.function.Consumer;
import net.mograsim.logic.ui.model.components.GUIComponent;
import java.util.function.Consumer;
import net.mograsim.logic.ui.model.components.GUIComponent;
@@
-10,8
+12,8
@@
import net.mograsim.logic.ui.model.wires.GUIWire;
public class ViewModel
{
public class ViewModel
{
- private final
List<
GUIComponent> components;
- private final
List<
GUIComponent> componentsUnmodifiable;
+ private final
Map<String,
GUIComponent> components;
+ private final
Map<String,
GUIComponent> componentsUnmodifiable;
private final List<GUIWire> wires;
private final List<GUIWire> wiresUnmodifiable;
private final List<GUIWire> wires;
private final List<GUIWire> wiresUnmodifiable;
@@
-23,10
+25,10
@@
public class ViewModel
private final Runnable redrawListenerForSubcomponents;
private final Runnable redrawListenerForSubcomponents;
- p
ublic
ViewModel()
+ p
rotected
ViewModel()
{
{
- components = new
ArrayList
<>();
- componentsUnmodifiable = Collections.unmodifiable
List
(components);
+ components = new
HashMap
<>();
+ componentsUnmodifiable = Collections.unmodifiable
Map
(components);
wires = new ArrayList<>();
wiresUnmodifiable = Collections.unmodifiableList(wires);
wires = new ArrayList<>();
wiresUnmodifiable = Collections.unmodifiableList(wires);
@@
-41,13
+43,13
@@
public class ViewModel
/**
* Adds the given component to the list of components and calls all componentAddedListeners. Don't call this method from application
/**
* 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
GUIComponent::new
.
+ * code as it is automatically called in
{@link GUIComponent}'s constructor
.
*/
*/
- p
ublic
void componentCreated(GUIComponent component)
+ p
rotected
void componentCreated(GUIComponent component)
{
{
- if (components.contains
(component
))
+ if (components.contains
Key(component.name
))
throw new IllegalStateException("Don't add the same component twice!");
throw new IllegalStateException("Don't add the same component twice!");
- components.
add(
component);
+ components.
put(component.name,
component);
callComponentAddedListeners(component);
component.addRedrawListener(redrawListenerForSubcomponents);
callRedrawListeners();
callComponentAddedListeners(component);
component.addRedrawListener(redrawListenerForSubcomponents);
callRedrawListeners();
@@
-55,23
+57,23
@@
public class ViewModel
/**
* Removes the given component from the list of components and calls all componentRemovedListeners. Don't call this method from
/**
* Removes the given component from the list of components and calls all componentRemovedListeners. Don't call this method from
- * application code as it is automatically called in
GUIComponent::destroy
.
+ * application code as it is automatically called in
{@link GUIComponent#destroy()}
.
*/
*/
- p
ublic
void componentDestroyed(GUIComponent component)
+ p
rotected
void componentDestroyed(GUIComponent component)
{
{
- if (!components.contains
(component
))
+ if (!components.contains
Key(component.name
))
throw new IllegalStateException("Don't remove the same component twice!");
throw new IllegalStateException("Don't remove the same component twice!");
- components.remove(component);
+ components.remove(component
.name
);
callComponentRemovedListeners(component);
component.removeRedrawListener(redrawListenerForSubcomponents);
callRedrawListeners();
}
/**
callComponentRemovedListeners(component);
component.removeRedrawListener(redrawListenerForSubcomponents);
callRedrawListeners();
}
/**
- * 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 GUIComponent::new
.
+ * Adds the given
wire to the list of wires and calls all wireAddedListeners. Don't call this method from application code as it is
+ *
automatically called in {@link GUIWire}'s constructor(s)
.
*/
*/
- p
ublic
void wireCreated(GUIWire wire)
+ p
rotected
void wireCreated(GUIWire wire)
{
if (wires.contains(wire))
throw new IllegalStateException("Don't add the same wire twice!");
{
if (wires.contains(wire))
throw new IllegalStateException("Don't add the same wire twice!");
@@
-82,10
+84,10
@@
public class ViewModel
}
/**
}
/**
- * Removes the given
component from the list of components and calls all componentRemovedListeners. Don't call this method from
- *
application code as it is automatically called in GUIComponent::destroy
.
+ * Removes the given
wire from the list of wires and calls all wireRemovedListeners. Don't call this method from application code as it
+ *
is automatically called in {@link GUIWire#destroy()}
.
*/
*/
- p
ublic
void wireDestroyed(GUIWire wire)
+ p
rotected
void wireDestroyed(GUIWire wire)
{
if (!wires.contains(wire))
throw new IllegalStateException("Don't remove the same wire twice!");
{
if (!wires.contains(wire))
throw new IllegalStateException("Don't remove the same wire twice!");
@@
-95,7
+97,7
@@
public class ViewModel
callRedrawListeners();
}
callRedrawListeners();
}
- public
List<GUIComponent> getComponents
()
+ public
Map<String, GUIComponent> getComponentsByName
()
{
return componentsUnmodifiable;
}
{
return componentsUnmodifiable;
}
@@
-105,11
+107,6
@@
public class ViewModel
return wiresUnmodifiable;
}
return wiresUnmodifiable;
}
-// public void requestRedraw()
-// {
-// callRedrawListeners();
-// }
-
// @formatter:off
public void addComponentAddedListener (Consumer<? super GUIComponent> listener) {componentAddedListeners .add (listener);}
public void addComponentRemovedListener (Consumer<? super GUIComponent> listener) {componentRemovedListeners.add (listener);}
// @formatter:off
public void addComponentAddedListener (Consumer<? super GUIComponent> listener) {componentAddedListeners .add (listener);}
public void addComponentRemovedListener (Consumer<? super GUIComponent> listener) {componentRemovedListeners.add (listener);}