Updated to new SWTHelper version
[Mograsim.git] / net.mograsim.logic.ui / src / net / mograsim / logic / ui / LogicUICanvas.java
index 08a40a4..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();
@@ -100,7 +100,7 @@ public class LogicUICanvas extends ZoomableCanvas
                radioBit.setText("Single bit");
                Button radioBitVector = new Button(radioGroup, SWT.RADIO);
                radioBitVector.setText("Bitvector");
-               new Label(debugShell, SWT.NONE).setText("Value string representation: ");
+               new Label(debugShell, SWT.NONE).setText("Value string representation: \n(Bit vectors: MSBit...LSBit)");
                Text valueText = new Text(debugShell, SWT.SINGLE | SWT.LEAD | SWT.BORDER);
                valueText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
                Button send = new Button(debugShell, SWT.PUSH);
@@ -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(valueString);
+                                       value = BitVector.parseMSBFirst(valueString);
                                else
                                        throw new RuntimeException("No value type selected");
                                target.setHighLevelState(stateIDText.getText(), value);
@@ -138,7 +139,8 @@ public class LogicUICanvas extends ZoomableCanvas
                        {
                                if (componentSelector.getSelectionIndex() >= componentsByItemIndex.size())
                                        throw new RuntimeException("No valid component selected");
-                               output.setText("Success! Value: \r\n" + componentsByItemIndex.get(componentSelector.getSelectionIndex()).getHighLevelState(stateIDText.getText()));
+                               output.setText("Success! Value: \r\n"
+                                               + componentsByItemIndex.get(componentSelector.getSelectionIndex()).getHighLevelState(stateIDText.getText()));
                        }
                        catch (Exception x)
                        {
@@ -161,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)