Skip to content

Commit 023ac3f

Browse files
committed
Handle alarm actions to show error message
1 parent 236ee24 commit 023ac3f

File tree

4 files changed

+20
-7
lines changed

4 files changed

+20
-7
lines changed

app/alarm/model/src/main/java/org/phoebus/applications/alarm/client/AlarmClient.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ public void setMode(final boolean maintenance)
166166
{
167167
final String json = new String (JsonModelWriter.commandToBytes(cmd));
168168
final ProducerRecord<String, String> record = new ProducerRecord<>(command_topic, AlarmSystem.COMMAND_PREFIX + root.getPathName(), json);
169-
producer.send(record);
169+
producer.send(record).get();
170170
}
171171
catch (final Exception ex)
172172
{
@@ -182,7 +182,7 @@ public void setNotify(final boolean disable_notify)
182182
{
183183
final String json = new String (JsonModelWriter.commandToBytes(cmd));
184184
final ProducerRecord<String, String> record = new ProducerRecord<>(command_topic, AlarmSystem.COMMAND_PREFIX + root.getPathName(), json);
185-
producer.send(record);
185+
producer.send(record).get();
186186
}
187187
catch (final Exception ex)
188188
{
@@ -518,7 +518,7 @@ public void sendItemConfigurationUpdate(final String path, final AlarmTreeItem<?
518518
{
519519
final String json = new String(JsonModelWriter.toJsonBytes(config));
520520
final ProducerRecord<String, String> record = new ProducerRecord<>(config_topic, AlarmSystem.CONFIG_PREFIX + path, json);
521-
producer.send(record);
521+
producer.send(record).get();
522522
}
523523

524524
/** Remove a component (and sub-items) from alarm tree
@@ -542,10 +542,10 @@ public void removeComponent(final AlarmTreeItem<?> item) throws Exception
542542
// The id message must arrive before the tombstone.
543543
final String json = new String(JsonModelWriter.deleteMessageToBytes());
544544
final ProducerRecord<String, String> id = new ProducerRecord<>(config_topic, AlarmSystem.CONFIG_PREFIX + item.getPathName(), json);
545-
producer.send(id);
545+
producer.send(id).get();
546546

547547
final ProducerRecord<String, String> tombstone = new ProducerRecord<>(config_topic, AlarmSystem.CONFIG_PREFIX + item.getPathName(), null);
548-
producer.send(tombstone);
548+
producer.send(tombstone).get();
549549
}
550550
catch (Exception ex)
551551
{
@@ -563,7 +563,7 @@ public void acknowledge(final AlarmTreeItem<?> item, final boolean acknowledge)
563563
final String cmd = acknowledge ? "acknowledge" : "unacknowledge";
564564
final String json = new String (JsonModelWriter.commandToBytes(cmd));
565565
final ProducerRecord<String, String> record = new ProducerRecord<>(command_topic, AlarmSystem.COMMAND_PREFIX + item.getPathName(), json);
566-
producer.send(record);
566+
producer.send(record).get();
567567
}
568568
catch (final Exception ex)
569569
{

app/alarm/ui/src/main/java/org/phoebus/applications/alarm/ui/Messages.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ public class Messages
1515

1616
public static String acknowledgeFailed;
1717
public static String addComponentFailed;
18+
public static String disableAlarmFailed;
19+
public static String enableAlarmFailed;
1820
public static String moveItemFailed;
1921
public static String removeComponentFailed;
2022
public static String renameItemFailed;

app/alarm/ui/src/main/java/org/phoebus/applications/alarm/ui/tree/EnableComponentAction.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@
1515
import org.phoebus.applications.alarm.client.AlarmClientLeaf;
1616
import org.phoebus.applications.alarm.model.AlarmTreeItem;
1717
import org.phoebus.applications.alarm.ui.AlarmUI;
18+
import org.phoebus.applications.alarm.ui.Messages;
1819
import org.phoebus.framework.jobs.JobManager;
1920
import org.phoebus.ui.dialog.DialogHelper;
21+
import org.phoebus.ui.dialog.ExceptionDetailsErrorDialog;
2022
import org.phoebus.ui.javafx.ImageCache;
2123

2224
import javafx.scene.Node;
@@ -84,7 +86,14 @@ public EnableComponentAction(final Node node, final AlarmClient model, final Lis
8486
{
8587
final AlarmClientLeaf copy = pv.createDetachedCopy();
8688
if (copy.setEnabled(doEnable()))
87-
model.sendItemConfigurationUpdate(pv.getPathName(), copy);
89+
try {
90+
model.sendItemConfigurationUpdate(pv.getPathName(), copy);
91+
} catch (Exception e) {
92+
ExceptionDetailsErrorDialog.openError(Messages.error,
93+
copy.isEnabled() ? Messages.enableAlarmFailed : Messages.disableAlarmFailed,
94+
e);
95+
throw e;
96+
}
8897
}
8998
});
9099
});

app/alarm/ui/src/main/resources/org/phoebus/applications/alarm/ui/messages.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
error=Error
2121
acknowledgeFailed=Failed to acknowledge alarm(s)
2222
addComponentFailed=Failed to add component
23+
disableAlarmFailed=Failed to disable alarm
24+
enableAlarmFailed=Failed to enable alarm
2325
moveItemFailed=Failed to move item
2426
removeComponentFailed=Failed to remove component
2527
renameItemFailed=Failed to rename item

0 commit comments

Comments
 (0)