From 23d983a2980f31df8ba3ba5b5e922cc5dae87e38 Mon Sep 17 00:00:00 2001 From: Sergey Ponomarev Date: Mon, 17 Aug 2026 21:10:35 +0300 Subject: [PATCH] ConferenceRoomBrowser: refactor invoke() to get rid of the JOptionPane --- .../ui/conferences/ConferenceRoomBrowser.java | 33 ++++++------------- 1 file changed, 10 insertions(+), 23 deletions(-) diff --git a/core/src/main/java/org/jivesoftware/spark/ui/conferences/ConferenceRoomBrowser.java b/core/src/main/java/org/jivesoftware/spark/ui/conferences/ConferenceRoomBrowser.java index 1bee5d199..06c609206 100644 --- a/core/src/main/java/org/jivesoftware/spark/ui/conferences/ConferenceRoomBrowser.java +++ b/core/src/main/java/org/jivesoftware/spark/ui/conferences/ConferenceRoomBrowser.java @@ -475,38 +475,25 @@ public class ConferenceRoomBrowser extends JPanel implements ActionListener, Com final JPanel mainPanel = new JPanel(); mainPanel.setLayout(new BorderLayout()); mainPanel.add(titlePanel, NORTH); + // Add this content panel + mainPanel.add(this, CENTER); - // The user should only be able to close this dialog. - Object[] options = {Res.getString("close")}; - final JOptionPane pane = new JOptionPane(this, JOptionPane.PLAIN_MESSAGE, - JOptionPane.OK_CANCEL_OPTION, null, options, options[0]); - mainPanel.add(pane, CENTER); - final JOptionPane p = new JOptionPane(); + // Add close button panel + JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); + JButton closeButton = new JButton(Res.getString("close")); + closeButton.addActionListener(e -> dlg.dispose()); + buttonPanel.add(closeButton); + mainPanel.add(buttonPanel, SOUTH); - dlg = p.createDialog(SparkManager.getMainWindow(), + dlg = new JDialog(SparkManager.getMainWindow(), Res.getString("title.browse.room.service", serviceName)); dlg.setModal(false); dlg.addComponentListener(this); + dlg.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); dlg.setResizable(true); dlg.setContentPane(mainPanel); dlg.setLocationRelativeTo(SparkManager.getMainWindow()); - - PropertyChangeListener changeListener = new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent e) { - String value = (String) pane.getValue(); - if (Res.getString("close").equals(value)) { - pane.removePropertyChangeListener(this); - dlg.dispose(); - } else if (Res.getString("close").equals(value)) { - pane.setValue(JOptionPane.UNINITIALIZED_VALUE); - } - } - }; - - pane.addPropertyChangeListener(changeListener); - dlg.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) {