X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2FLogicUICanvas.java;h=50e6471ad3f522c5442e1ec0db32a8f8041a4fc0;hb=3eb713f4790896fbb3b71028a03b946a3d12dbd0;hp=c4a8c2d4eddceacfe9b713cd6b5ba11b27fbea66;hpb=2198fbadd2105c47ff4cd65d434616ae329802a1;p=Mograsim.git diff --git a/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUICanvas.java b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUICanvas.java index c4a8c2d4..50e6471a 100644 --- a/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUICanvas.java +++ b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUICanvas.java @@ -27,8 +27,7 @@ import net.mograsim.logic.core.types.BitVector; import net.mograsim.logic.model.model.LogicModel; import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.model.components.submodels.SubmodelComponent; -import net.mograsim.logic.model.model.components.submodels.SubmodelInterface; -import net.mograsim.logic.model.model.wires.ModelWireCrossPoint; +import net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler; import net.mograsim.preferences.Preferences; /** @@ -216,21 +215,24 @@ public class LogicUICanvas extends ZoomableCanvas recalculateQueued.set(false); componentsByItemIndex.clear(); componentSelector.setItems(); - addComponentSelectorItems(componentsByItemIndex, "", componentSelector, model); + addComponentSelectorItems(componentsByItemIndex, "", componentSelector, model, + Preferences.current().getInt("net.mograsim.logic.model.debug.hlsshelldepth")); } private void addComponentSelectorItems(List componentsByItemIndex, String base, Combo componentSelector, - LogicModel model) + LogicModel model, int depth) { model.getComponentsByName().values().stream().sorted((c1, c2) -> c1.getName().compareTo(c2.getName())).forEach(c -> { - if (!(c instanceof ModelWireCrossPoint || c instanceof SubmodelInterface)) + if (!(c.getHighLevelStateHandler() instanceof DefaultHighLevelStateHandler)) { String item = base + c.getName(); componentsByItemIndex.add(c); componentSelector.add(item); - if (c instanceof SubmodelComponent) - addComponentSelectorItems(componentsByItemIndex, item + " -> ", componentSelector, ((SubmodelComponent) c).submodel); + // this causes negative numbers to result in infinite depth + if (depth != 0 && c instanceof SubmodelComponent) + addComponentSelectorItems(componentsByItemIndex, item + " -> ", componentSelector, ((SubmodelComponent) c).submodel, + depth - 1); } }); }