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;
{
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);
for (GUIComponent c : model.getComponents())
if (!(c instanceof WireCrossPoint || c instanceof SubmodelInterface))
{
- String item = base + c.getIdentifier();
+ String item = base + c.getClass().getSimpleName();
componentsByItemIndex.add(c);
componentSelector.add(item);
if (c instanceof SubmodelComponent)