if an error occurs, keeping affected components highlighted after the error dialog is closed.

This commit is contained in:
hneemann 2017-05-27 22:20:57 +02:00
parent ad051da54f
commit f23abb6a7c
2 changed files with 31 additions and 22 deletions

View File

@ -251,6 +251,27 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS
setLocationRelativeTo(builder.parent);
}
private void enableClockShortcut() {
new ToolTipAction("doClock") {
@Override
public void actionPerformed(ActionEvent actionEvent) {
if (model != null && !realTimeClockRunning) {
ArrayList<Clock> cl = model.getClocks();
if (cl.size() == 1) {
ObservableValue clkVal = cl.get(0).getClockOutput();
clkVal.setBool(!clkVal.getBool());
try {
model.doStep();
circuitComponent.repaintNeeded();
} catch (NodeException | RuntimeException e) {
showErrorAndStopModel(Lang.get("err_remoteExecution"), e);
}
}
}
}
}.setAccelerator("C").enableAcceleratorIn(circuitComponent);
}
private void createViewMenu(JMenuBar menuBar, JToolBar toolBar) {
ToolTipAction maximize = new ToolTipAction(Lang.get("menu_maximize"), ICON_EXPAND) {
@Override
@ -904,7 +925,6 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS
}
private void clearModelDescription() {
circuitComponent.removeHighLighted();
if (model != null)
model.close();
@ -976,27 +996,6 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS
return false;
}
private void enableClockShortcut() {
new ToolTipAction("doClock") {
@Override
public void actionPerformed(ActionEvent actionEvent) {
if (model != null && !realTimeClockRunning) {
ArrayList<Clock> cl = model.getClocks();
if (cl.size() == 1) {
ObservableValue clkVal = cl.get(0).getClockOutput();
clkVal.setBool(!clkVal.getBool());
try {
model.doStep();
circuitComponent.repaintNeeded();
} catch (NodeException | RuntimeException e) {
showErrorAndStopModel(Lang.get("err_remoteExecution"), e);
}
}
}
}
}.setAccelerator("C").enableAcceleratorIn(circuitComponent);
}
@Override
public void showErrorAndStopModel(String message, Exception cause) {
SwingUtilities.invokeLater(() -> {

View File

@ -890,6 +890,8 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
}
void activate() {
if (activeMouseController != null)
activeMouseController.deactivate();
activeMouseController = this;
deleteAction.setActive(false);
copyAction.setEnabled(false);
@ -899,6 +901,9 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
repaintNeeded();
}
void deactivate() {
}
void clicked(MouseEvent e) {
}
@ -980,6 +985,11 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
focusWasLost = false;
}
@Override
void deactivate() {
removeHighLighted();
}
@Override
void pressed(MouseEvent e) {
downButton = e.getButton();