X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2FLogicUICanvas.java;h=6b99b6b63b56f9035b2471467252229e5f3ed6b0;hb=271a1db006939a242d1a18a9e30e4bec72dfbff9;hp=8e01a1625e9dc42cdffc7d12652099950f5a2cba;hpb=49dd18ea0e93f99b0c4c35a8b7a37efa2a2f678e;p=Mograsim.git diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/LogicUICanvas.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/LogicUICanvas.java index 8e01a162..6b99b6b6 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/LogicUICanvas.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/LogicUICanvas.java @@ -23,8 +23,8 @@ import net.mograsim.logic.core.types.Bit; 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; @@ -65,8 +65,8 @@ public class LogicUICanvas extends ZoomableCanvas { 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(); @@ -113,15 +113,16 @@ public class LogicUICanvas extends ZoomableCanvas { 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); @@ -162,10 +163,10 @@ public class LogicUICanvas extends ZoomableCanvas private void addComponentSelectorItems(List 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)