import net.mograsim.logic.core.types.BitVector;
import net.mograsim.logic.ui.model.ViewModel;
import net.mograsim.logic.ui.model.components.GUIComponent;
-import net.mograsim.logic.ui.model.components.SubmodelComponent;
-import net.mograsim.logic.ui.model.components.SubmodelInterface;
+import net.mograsim.logic.ui.model.components.submodels.SubmodelComponent;
+import net.mograsim.logic.ui.model.components.submodels.SubmodelInterface;
import net.mograsim.logic.ui.model.wires.WireCrossPoint;
import net.mograsim.preferences.Preferences;
{
if (e.button == 1)
{
- Point click = displayToWorldCoords(e.x, e.y);
- for (GUIComponent component : model.getComponents())
+ Point click = canvasToWorldCoords(e.x, e.y);
+ for (GUIComponent component : model.getComponentsByName().values())
if (component.getBounds().contains(click) && component.clicked(click.x, click.y))
{
redraw();
{
try
{
- if (componentSelector.getSelectionIndex() >= componentsByItemIndex.size())
- throw new RuntimeException("No valid component selected");
- GUIComponent target = componentsByItemIndex.get(componentSelector.getSelectionIndex());
+ int componentIndex = componentSelector.getSelectionIndex();
+ if (componentIndex < 0 || componentIndex >= componentsByItemIndex.size())
+ throw new RuntimeException("No component selected");
+ GUIComponent target = componentsByItemIndex.get(componentIndex);
String valueString = valueText.getText();
Object value;
if (radioBit.getSelection())
value = Bit.parse(valueString);
else if (radioBitVector.getSelection())
- value = BitVector.parse(new StringBuilder(valueString).reverse().toString());
+ value = BitVector.parseMSBFirst(valueString);
else
throw new RuntimeException("No value type selected");
target.setHighLevelState(stateIDText.getText(), value);
private void addComponentSelectorItems(List<GUIComponent> componentsByItemIndex, String base, Combo componentSelector, ViewModel model)
{
- for (GUIComponent c : model.getComponents())
+ for (GUIComponent c : model.getComponentsByName().values())
if (!(c instanceof WireCrossPoint || c instanceof SubmodelInterface))
{
- String item = base + c.getIdentifier();
+ String item = base + c.name;
componentsByItemIndex.add(c);
componentSelector.add(item);
if (c instanceof SubmodelComponent)