File tree Expand file tree Collapse file tree 2 files changed +75
-0
lines changed
app/queue-server/src/main/java/org/phoebus/applications/queueserver/view Expand file tree Collapse file tree 2 files changed +75
-0
lines changed Original file line number Diff line number Diff line change 1+ package org .phoebus .applications .queueserver .util ;
2+
3+ import org .phoebus .applications .queueserver .api .QueueItem ;
4+ import org .phoebus .applications .queueserver .view .TabSwitchEvent ;
5+
6+ import java .util .List ;
7+ import java .util .concurrent .CopyOnWriteArrayList ;
8+ import java .util .function .Consumer ;
9+ import java .util .logging .Level ;
10+ import java .util .logging .Logger ;
11+
12+ public class QueueItemSelectionEvent {
13+
14+ private static final QueueItemSelectionEvent INSTANCE = new QueueItemSelectionEvent ();
15+
16+ private final List <Consumer <QueueItem >> listeners = new CopyOnWriteArrayList <>();
17+ private static final Logger LOG = Logger .getLogger (TabSwitchEvent .class .getName ());
18+
19+ private QueueItemSelectionEvent () {}
20+
21+ public static QueueItemSelectionEvent getInstance () {
22+ return INSTANCE ;
23+ }
24+
25+ public void addListener (Consumer <QueueItem > listener ) {
26+ listeners .add (listener );
27+ }
28+
29+ public void removeListener (Consumer <QueueItem > listener ) {
30+ listeners .remove (listener );
31+ }
32+
33+ public void notifySelectionChanged (QueueItem selectedItem ) {
34+ for (Consumer <QueueItem > listener : listeners ) {
35+ try {
36+ listener .accept (selectedItem );
37+ } catch (Exception e ) {
38+ LOG .log (Level .WARNING , "Error in queue selection listener" , e );
39+ }
40+ }
41+ }
42+ }
Original file line number Diff line number Diff line change 1+ package org .phoebus .applications .queueserver .view ;
2+
3+ import java .util .ArrayList ;
4+ import java .util .List ;
5+ import java .util .function .Consumer ;
6+ import java .util .logging .Logger ;
7+ import java .util .logging .Level ;
8+
9+ public class TabSwitchEvent {
10+ private static final TabSwitchEvent instance = new TabSwitchEvent ();
11+ private final List <Consumer <String >> listeners = new ArrayList <>();
12+ private static final Logger LOG = Logger .getLogger (TabSwitchEvent .class .getName ());
13+
14+ private TabSwitchEvent () {}
15+
16+ public static TabSwitchEvent getInstance () {
17+ return instance ;
18+ }
19+
20+ public void addListener (Consumer <String > listener ) {
21+ listeners .add (listener );
22+ }
23+
24+ public void switchToTab (String tabName ) {
25+ for (Consumer <String > listener : listeners ) {
26+ try {
27+ listener .accept (tabName );
28+ } catch (Exception e ) {
29+ LOG .log (Level .WARNING , "Tab switch listener error" , e );
30+ }
31+ }
32+ }
33+ }
You can’t perform that action at this time.
0 commit comments