+ c.setLayout(new GridLayout(7, false));
+
+ sbseButton = new Button(c, SWT.CHECK);
+ pauseButton = new Button(c, SWT.TOGGLE);
+ LogicObserver clockObserver = o ->
+ {
+ if (((CoreClock) o).isOn())
+ {
+ exec.pauseLiveExecution();
+ if (!pauseButton.isDisposed())
+ Display.getDefault().asyncExec(() ->
+ {
+ if (!pauseButton.isDisposed())
+ pauseButton.setSelection(false);
+ setPauseText(pauseButton, false);
+ });
+ }
+ };
+
+ sbseButton.setText("Step by step execution");
+ sbseButton.addListener(SWT.Selection, e ->
+ {
+ CoreClock cl = machine.getClock();
+ if (sbseButton.getSelection())
+ cl.registerObserver(clockObserver);
+ else
+ cl.deregisterObserver(clockObserver);
+ });
+ sbseButton.setSelection(false);