Updated to new SWTHelper version
[Mograsim.git] / net.mograsim.logic.ui / src / net / mograsim / logic / ui / LogicUICanvas.java
index 8e01a16..6b99b6b 100644 (file)
@@ -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<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)