private Color getNodeColor(Node node) { if (node instanceof SignalTransition) { SignalTransition transition = (SignalTransition) node; return getTypeColor(transition.getSignalType()); } return Color.BLACK; }
public void updateSignalState() { initialiseSignalState(); ArrayList<String> combinedTrace = new ArrayList<>(); if (!mainTrace.isEmpty()) { combinedTrace.addAll(mainTrace.subList(0, mainTrace.getPosition())); } if (!branchTrace.isEmpty()) { combinedTrace.addAll(branchTrace.subList(0, branchTrace.getPosition())); } for (String ref : combinedTrace) { Node node = getUnderlyingStg().getNodeByReference(ref); if (node instanceof SignalTransition) { SignalTransition transition = (SignalTransition) node; String signalReference = getUnderlyingStg().getSignalReference(transition); SignalData signalState = signalDataMap.get(signalReference); if (signalState != null) { switch (transition.getDirection()) { case MINUS: signalState.value = SignalState.LOW; break; case PLUS: signalState.value = SignalState.HIGH; break; case TOGGLE: signalState.value = signalState.value.toggle(); break; default: break; } } } } for (Node node : getUnderlyingStg().getTransitions()) { if (node instanceof SignalTransition) { SignalTransition transition = (SignalTransition) node; String signalReference = getUnderlyingStg().getSignalReference(transition); SignalData signalData = signalDataMap.get(signalReference); if (signalData != null) { signalData.excited |= isEnabledNode(transition); } } } }