Search in sources :

Example 1 with Tree

use of org.jivesoftware.spark.component.Tree in project Spark by igniterealtime.

the class CustomMessages method editCustomMessages.

public static void editCustomMessages() {
    final JiveTreeNode rootNode = new JiveTreeNode(Res.getString("status.custom.messages"));
    final Tree tree = new Tree(rootNode);
    tree.setCellRenderer(new JiveTreeCellRenderer());
    final List<CustomStatusItem> customItems = load();
    final StatusBar statusBar = SparkManager.getWorkspace().getStatusBar();
    Iterator<StatusItem> statusItems = statusBar.getStatusList().iterator();
    while (statusItems.hasNext()) {
        StatusItem item = statusItems.next();
        JiveTreeNode node = new JiveTreeNode(item.getText(), false, item.getIcon());
        Iterator<CustomStatusItem> cMessages = customItems.iterator();
        node.setAllowsChildren(true);
        while (cMessages.hasNext()) {
            CustomStatusItem csi = cMessages.next();
            if (csi.getType().equals(item.getText())) {
                JiveTreeNode subNode = new JiveTreeNode(csi.getStatus(), false);
                node.add(subNode);
            }
        }
        rootNode.add(node);
    }
    final JScrollPane pane = new JScrollPane(tree);
    // The user should only be able to close this dialog.
    Object[] options = { Res.getString("close") };
    final JOptionPane optionPane = new JOptionPane(pane, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION, null, options, options[0]);
    JPanel mainPanel = new JPanel();
    mainPanel.setLayout(new BorderLayout());
    mainPanel.add(optionPane, BorderLayout.CENTER);
    final JDialog optionsDialog = new JDialog(SparkManager.getMainWindow(), Res.getString("title.edit.custom.message"), true);
    optionsDialog.setContentPane(mainPanel);
    optionsDialog.pack();
    optionsDialog.setLocationRelativeTo(SparkManager.getMainWindow());
    optionPane.addPropertyChangeListener(propertyChangeEvent -> {
        String value = (String) optionPane.getValue();
        if (Res.getString("close").equals(value)) {
            optionsDialog.setVisible(false);
        }
    });
    for (int i = 0; i <= tree.getRowCount(); i++) {
        tree.expandPath(tree.getPathForRow(i));
    }
    tree.addMouseListener(new MouseAdapter() {

        public void mousePressed(MouseEvent mouseEvent) {
            checkPopup(mouseEvent);
        }

        public void mouseReleased(MouseEvent mouseEvent) {
            checkPopup(mouseEvent);
        }

        public void checkPopup(MouseEvent event) {
            if (!event.isPopupTrigger()) {
                return;
            }
            TreePath path = tree.getPathForLocation(event.getX(), event.getY());
            if (path != null) {
                tree.setSelectionPath(path);
            }
            final JiveTreeNode selectedNode = (JiveTreeNode) tree.getLastSelectedPathComponent();
            if (selectedNode == null || selectedNode.getParent() == null) {
                return;
            } else if (selectedNode.getParent() == rootNode) {
                JPopupMenu popup = new JPopupMenu();
                Action addAction = new AbstractAction() {

                    private static final long serialVersionUID = 2187174931315380754L;

                    public void actionPerformed(ActionEvent actionEvent) {
                        CustomStatus status = new CustomStatus();
                        String type = (String) selectedNode.getUserObject();
                        status.invoke(type);
                        reloadTree(rootNode, tree);
                    }
                };
                addAction.putValue(Action.NAME, Res.getString("menuitem.add"));
                popup.add(addAction);
                popup.show(tree, event.getX(), event.getY());
                return;
            }
            final JiveTreeNode parentNode = (JiveTreeNode) selectedNode.getParent();
            final String messageStatus = (String) selectedNode.getUserObject();
            final String messageType = (String) parentNode.getUserObject();
            if (event.isPopupTrigger()) {
                JPopupMenu popup = new JPopupMenu();
                Action deleteAction = new AbstractAction() {

                    private static final long serialVersionUID = -4421868467918912876L;

                    public void actionPerformed(ActionEvent actionEvent) {
                        List<CustomStatusItem> list = new ArrayList<>();
                        // Refresh customItems list
                        List<CustomStatusItem> customItems = load();
                        Iterator<CustomStatusItem> iter = customItems.iterator();
                        while (iter.hasNext()) {
                            CustomStatusItem item = iter.next();
                            if (item.getType().equals(messageType) && item.getStatus().equals(messageStatus)) {
                            } else {
                                list.add(item);
                            }
                        }
                        parentNode.remove(selectedNode);
                        DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
                        model.nodeStructureChanged(parentNode);
                        save(list);
                    }
                };
                deleteAction.putValue(Action.NAME, Res.getString("menuitem.delete"));
                popup.add(deleteAction);
                Action editAction = new AbstractAction() {

                    private static final long serialVersionUID = 39916149252596354L;

                    public void actionPerformed(ActionEvent actionEvent) {
                        List<CustomStatusItem> newItems = load();
                        Iterator<CustomStatusItem> iter = newItems.iterator();
                        while (iter.hasNext()) {
                            CustomStatusItem item = iter.next();
                            if (item.getType().equals(messageType) && item.getStatus().equals(messageStatus)) {
                                CustomStatus customStatus = new CustomStatus();
                                customStatus.showEditDialog(item);
                                // Reload tree.
                                reloadTree(rootNode, tree);
                                break;
                            }
                        }
                    }
                };
                editAction.putValue(Action.NAME, Res.getString("menuitem.edit"));
                popup.add(editAction);
                popup.show(tree, event.getX(), event.getY());
            }
        }
    });
    optionsDialog.setVisible(true);
    optionsDialog.toFront();
    optionsDialog.requestFocus();
}
Also used : JPanel(javax.swing.JPanel) Action(javax.swing.Action) AbstractAction(javax.swing.AbstractAction) ActionEvent(java.awt.event.ActionEvent) JiveTreeCellRenderer(org.jivesoftware.spark.component.JiveTreeCellRenderer) BorderLayout(java.awt.BorderLayout) JiveTreeNode(org.jivesoftware.spark.component.JiveTreeNode) Iterator(java.util.Iterator) Tree(org.jivesoftware.spark.component.Tree) ArrayList(java.util.ArrayList) List(java.util.List) AbstractAction(javax.swing.AbstractAction) JScrollPane(javax.swing.JScrollPane) MouseEvent(java.awt.event.MouseEvent) MouseAdapter(java.awt.event.MouseAdapter) DefaultTreeModel(javax.swing.tree.DefaultTreeModel) JOptionPane(javax.swing.JOptionPane) JPopupMenu(javax.swing.JPopupMenu) TreePath(javax.swing.tree.TreePath) JDialog(javax.swing.JDialog)

Example 2 with Tree

use of org.jivesoftware.spark.component.Tree in project Spark by igniterealtime.

the class WorkgroupInvitationDialog method hasSelectedAgent.

/**
 * Returns the agent selected.
 *
 * @param chatRoom the room this roster will be used with.
 * @param transfer true if this will be a transfer.
 * @return true if a valid agent has been selected.
 */
public boolean hasSelectedAgent(ChatRoom chatRoom, boolean transfer) {
    final JiveTreeNode workgroupsNode = new JiveTreeNode("Workgroups", true);
    final JiveTreeNode queueNode = new JiveTreeNode("Queues", true);
    final String workgroupService = "workgroup." + SparkManager.getSessionManager().getServerAddress();
    final String jid = SparkManager.getSessionManager().getJID();
    String room = chatRoom.getRoomname();
    Collection agents = null;
    try {
        agents = getAvailableAgents(FastpathPlugin.getAgentSession().getAgentRoster(), room);
    } catch (SmackException.NotConnectedException e) {
        Log.warning("Unable to get agent roster.", e);
    }
    // Clear jid field
    jidField.setText("");
    String title = FpRes.getString("invite.agent");
    String acceptButton = FpRes.getString("invite");
    if (transfer) {
        title = FpRes.getString("transfer.to.agent");
        acceptButton = FpRes.getString("transfer");
    }
    String stockMessage = FpRes.getString("message.transfering.to.user");
    if (!transfer) {
        stockMessage = FpRes.getString("message.join.me.in.chat");
    }
    rootNode = new JiveTreeNode("Ask For Assistance", true);
    tree = new Tree(rootNode);
    tree.setCellRenderer(new JiveTreeCellRenderer());
    // This will remove lines from the tree and setup initial l&f
    tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
    tree.setRowHeight(16);
    tree.setExpandsSelectedPaths(true);
    tree.addTreeSelectionListener(new TreeSelectionListener() {

        public void valueChanged(TreeSelectionEvent e) {
            TreePath path = e.getNewLeadSelectionPath();
            Object o = path.getLastPathComponent();
            if (o instanceof JiveTreeNode) {
                JiveTreeNode node = (JiveTreeNode) o;
                JiveTreeNode parentNode = (JiveTreeNode) node.getParent();
                if (parentNode == workgroupsNode) {
                    jidField.setText(node.getUserObject().toString() + "@" + workgroupService);
                } else if (parentNode == queueNode) {
                    jidField.setText(FastpathPlugin.getWorkgroup().getWorkgroupJID() + "/" + node.getUserObject().toString());
                } else {
                    String agent = getAgent();
                    jidField.setText(agent);
                }
            }
        }
    });
    // Create message field
    messageField = new JTextArea();
    messageField.setWrapStyleWord(true);
    inviteLabel = new JLabel();
    if (transfer) {
        inviteLabel.setText(FpRes.getString("transfer.to") + ":");
    } else {
        inviteLabel.setText(FpRes.getString("invite") + ":");
    }
    if (transfer) {
        // Create the title panel for this dialog
        titlePanel = new TitlePanel(FpRes.getString("title.transfer"), FpRes.getString("message.transfer.to.another.agent"), FastpathRes.getImageIcon(FastpathRes.CHATTING_AGENT_IMAGE), true);
    } else {
        // Create the title panel for this dialog
        titlePanel = new TitlePanel(FpRes.getString("title.invitation"), FpRes.getString("message.invite.another.agent"), FastpathRes.getImageIcon(FastpathRes.CHATTING_AGENT_IMAGE), true);
    }
    // Build Tree
    String joinedWorkgroupName = XmppStringUtils.parseLocalpart(FastpathPlugin.getWorkgroup().getWorkgroupJID());
    final JiveTreeNode workgroupNode = new JiveTreeNode(joinedWorkgroupName, true);
    final Iterator agentIter = agents.iterator();
    while (agentIter.hasNext()) {
        while (agentIter.hasNext()) {
            String agentName = UserManager.unescapeJID((String) agentIter.next());
            final JiveTreeNode agentNode = new JiveTreeNode(agentName, false, FastpathRes.getImageIcon(FastpathRes.GREEN_BALL));
            workgroupNode.add(agentNode);
        }
        if (workgroupNode.getChildCount() > 0) {
            rootNode.add(workgroupNode);
        }
    }
    Collection workgroupAgents;
    try {
        workgroupAgents = Agent.getWorkgroups(workgroupService, jid, SparkManager.getConnection());
    } catch (XMPPException | SmackException e) {
        Log.error(e);
        workgroupAgents = Collections.EMPTY_LIST;
    }
    if (workgroupAgents.size() > 0) {
        // Add workgroups to combobox
        Iterator<String> workgroups = workgroupAgents.iterator();
        while (workgroups.hasNext()) {
            String workgroup = workgroups.next();
            String workgroupName = XmppStringUtils.parseLocalpart(workgroup);
            final JiveTreeNode wgNode = new JiveTreeNode(workgroupName, false, FastpathRes.getImageIcon(FastpathRes.FASTPATH_IMAGE_16x16));
            workgroupsNode.add(wgNode);
        }
        rootNode.add(workgroupsNode);
    }
    Iterator iter = FastpathPlugin.getAgentSession().getQueues();
    while (iter.hasNext()) {
        final WorkgroupQueue queue = (WorkgroupQueue) iter.next();
        if (queue.getStatus() == WorkgroupQueue.Status.OPEN) {
            final JiveTreeNode qNode = new JiveTreeNode(queue.getName(), false, FastpathRes.getImageIcon(FastpathRes.FASTPATH_IMAGE_16x16));
            queueNode.add(qNode);
        }
    }
    rootNode.add(queueNode);
    // New Roster tree. Do not show agents at all.
    final UserManager userManager = SparkManager.getUserManager();
    Collection jids = userManager.getUserJidsInRoom(room, false);
    roster = new WorkgroupRosterTree(jids, false, workgroups);
    try {
        rosterTree = roster.getRosterTree();
        JiveTreeNode node = (JiveTreeNode) rosterTree.getModel().getRoot();
        rootNode.add(node);
    } catch (Exception e) {
        Log.error("Error checking for selected agent", e);
    }
    // Construct main panel w/ layout.
    final JPanel mainPanel = new JPanel();
    mainPanel.setLayout(new BorderLayout());
    mainPanel.add(titlePanel, BorderLayout.NORTH);
    // The user should only be able to close this dialog.
    Object[] options = { acceptButton, FpRes.getString("cancel") };
    // Create objects to add to mainPanel.
    final JPanel parentPanel = new JPanel();
    final JLabel messageLabel = new JLabel();
    final JLabel agentLabel = new JLabel();
    parentPanel.setLayout(new GridBagLayout());
    // Update Labels using ResourceUtils
    ResourceUtils.resLabel(messageLabel, messageField, FpRes.getString("label.message.to.agent"));
    ResourceUtils.resLabel(agentLabel, tree, FpRes.getString("label.select.agent"));
    // Add Components to Parent Panel
    parentPanel.add(agentLabel, new GridBagConstraints(0, 0, 3, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 0, 5), 0, 0));
    parentPanel.add(new JScrollPane(tree), new GridBagConstraints(0, 1, 3, 1, 1.0, 1.0, GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 100));
    parentPanel.add(messageLabel, new GridBagConstraints(0, 3, 3, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 0, 5), 0, 0));
    parentPanel.add(new JScrollPane(messageField), new GridBagConstraints(0, 4, 3, 1, 1.0, 1.0, GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 25));
    parentPanel.add(inviteLabel, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
    parentPanel.add(jidField, new GridBagConstraints(1, 2, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0));
    // Use line wrap.
    messageField.setLineWrap(true);
    // Update MessageField with stock message
    messageField.setText(stockMessage);
    // Add Parent Object to master OptionPane
    pane = new JOptionPane(parentPanel, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION, null, options, options[0]);
    mainPanel.add(pane, BorderLayout.CENTER);
    dlg = new JDialog(SparkManager.getChatManager().getChatContainer().getChatFrame(), title, true);
    dlg.pack();
    dlg.setSize(500, 500);
    dlg.setContentPane(mainPanel);
    dlg.setLocationRelativeTo(chatRoom);
    pane.addPropertyChangeListener(this);
    // expand the tree for displaying
    for (int i = 0; i <= tree.getRowCount(); i++) {
        tree.expandPath(tree.getPathForRow(i));
    }
    dlg.setVisible(true);
    dlg.toFront();
    dlg.requestFocus();
    if (!isValid) {
        return false;
    }
    return true;
}
Also used : JPanel(javax.swing.JPanel) GridBagConstraints(java.awt.GridBagConstraints) JTextArea(javax.swing.JTextArea) Insets(java.awt.Insets) GridBagLayout(java.awt.GridBagLayout) TreeSelectionListener(javax.swing.event.TreeSelectionListener) WorkgroupQueue(org.jivesoftware.smackx.workgroup.agent.WorkgroupQueue) JiveTreeCellRenderer(org.jivesoftware.spark.component.JiveTreeCellRenderer) BorderLayout(java.awt.BorderLayout) JiveTreeNode(org.jivesoftware.spark.component.JiveTreeNode) Iterator(java.util.Iterator) Tree(org.jivesoftware.spark.component.Tree) JScrollPane(javax.swing.JScrollPane) SmackException(org.jivesoftware.smack.SmackException) JLabel(javax.swing.JLabel) JOptionPane(javax.swing.JOptionPane) TitlePanel(org.jivesoftware.spark.component.TitlePanel) SmackException(org.jivesoftware.smack.SmackException) XMPPException(org.jivesoftware.smack.XMPPException) TreePath(javax.swing.tree.TreePath) UserManager(org.jivesoftware.spark.UserManager) Collection(java.util.Collection) TreeSelectionEvent(javax.swing.event.TreeSelectionEvent) XMPPException(org.jivesoftware.smack.XMPPException) JDialog(javax.swing.JDialog)

Example 3 with Tree

use of org.jivesoftware.spark.component.Tree in project Spark by igniterealtime.

the class BookmarksUI method loadUI.

/**
 * Initialize Conference UI.
 */
public void loadUI() {
    EventQueue.invokeLater(() -> {
        setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY));
        setLayout(new GridBagLayout());
        add(getServicePanel(), new GridBagConstraints(0, 0, 2, 1, 1.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0));
        rootNode = new JiveTreeNode("Conference Services");
        tree = new Tree(rootNode) {

            private static final long serialVersionUID = -8445572224948613446L;

            @Override
            protected void setExpandedState(TreePath path, boolean state) {
                // Ignore all collapse requests; collapse events will not be fired
                if (state) {
                    super.setExpandedState(path, state);
                }
            }
        };
        tree.addMouseListener(new MouseAdapter() {

            @Override
            public void mouseEntered(MouseEvent mouseEvent) {
                tree.setCursor(GraphicUtils.HAND_CURSOR);
            }

            @Override
            public void mouseExited(MouseEvent mouseEvent) {
                tree.setCursor(GraphicUtils.DEFAULT_CURSOR);
            }
        });
        JScrollPane scrollPane = new JScrollPane(tree);
        add(scrollPane, new GridBagConstraints(0, 2, 2, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
        // Add all registered services.
        addRegisteredServices();
        tree.setCellRenderer(new JiveTreeCellRenderer());
        tree.putClientProperty("JTree.lineStyle", "None");
        tree.setRootVisible(false);
        tree.addMouseListener(new MouseAdapter() {

            @Override
            public void mouseClicked(MouseEvent mouseEvent) {
                if (mouseEvent.getClickCount() == 2) {
                    TreePath path = tree.getPathForLocation(mouseEvent.getX(), mouseEvent.getY());
                    if (path == null) {
                        return;
                    }
                    JiveTreeNode node = (JiveTreeNode) path.getLastPathComponent();
                    if (node != null && node.getAllowsChildren()) {
                        browseRooms((String) node.getUserObject());
                    } else if (node != null) {
                        String roomJID = node.getAssociatedObject().toString();
                        ConferenceUtils.joinConferenceOnSeperateThread(node.getUserObject().toString(), roomJID, null);
                    }
                }
            }

            @Override
            public void mouseReleased(MouseEvent mouseEvent) {
                checkPopup(mouseEvent);
            }

            @Override
            public void mousePressed(MouseEvent mouseEvent) {
                checkPopup(mouseEvent);
            }
        });
        setBackground(Color.white);
        try {
            manager = BookmarkManager.getBookmarkManager(SparkManager.getConnection());
        } catch (XMPPException | SmackException e) {
            Log.error(e);
        }
        final TimerTask bookmarkTask = new TimerTask() {

            @Override
            public void run() {
                Collection<BookmarkedConference> bc = null;
                try {
                    while (bc == null) {
                        bc = manager.getBookmarkedConferences();
                    }
                    setBookmarks(bc);
                } catch (XMPPException | SmackException error) {
                    Log.error(error);
                }
            }
        };
        TaskEngine.getInstance().schedule(bookmarkTask, 5000);
    });
}
Also used : SmackException(org.jivesoftware.smack.SmackException) BookmarkedConference(org.jivesoftware.smackx.bookmarks.BookmarkedConference) JiveTreeCellRenderer(org.jivesoftware.spark.component.JiveTreeCellRenderer) TreePath(javax.swing.tree.TreePath) JiveTreeNode(org.jivesoftware.spark.component.JiveTreeNode) Tree(org.jivesoftware.spark.component.Tree) XMPPException(org.jivesoftware.smack.XMPPException)

Example 4 with Tree

use of org.jivesoftware.spark.component.Tree in project Spark by igniterealtime.

the class ConferenceRoomBrowser method bookmarkRoom.

private void bookmarkRoom(String serviceName) {
    int selectedRow = roomsTable.getSelectedRow();
    UIManager.put("OptionPane.okButtonText", Res.getString("ok"));
    if (-1 == selectedRow) {
        JOptionPane.showMessageDialog(dlg, Res.getString("message.select.add.room.to.add"), Res.getString("title.group.chat"), JOptionPane.INFORMATION_MESSAGE);
        return;
    }
    final String roomJID = roomsTable.getValueAt(selectedRow, 2) + "@" + serviceName;
    final String roomName = roomsTable.getValueAt(selectedRow, 1).toString();
    // Check to see what type of room this is.
    boolean persistent = false;
    try {
        final RoomInfo roomInfo = MultiUserChatManager.getInstanceFor(SparkManager.getConnection()).getRoomInfo(roomJID);
        persistent = roomInfo.isPersistent();
    } catch (Exception e) {
        // Do not return
        Log.error("This room does not exist. Probably this room was temporary and was closed");
    }
    if (!persistent) {
        JOptionPane.showMessageDialog(dlg, Res.getString("message.bookmark.temporary.room.error"), Res.getString("title.error"), JOptionPane.ERROR_MESSAGE);
        return;
    }
    Tree serviceTree = conferences.getTree();
    JiveTreeNode rootNode = (JiveTreeNode) serviceTree.getModel().getRoot();
    TreePath rootPath = serviceTree.findByName(serviceTree, new String[] { rootNode.toString(), serviceName });
    boolean isBookmarked = isBookmarked(roomJID);
    if (!isBookmarked) {
        JiveTreeNode node = (JiveTreeNode) serviceTree.getLastSelectedPathComponent();
        if (node == null) {
            TreePath path = serviceTree.findByName(serviceTree, new String[] { rootNode.toString(), ConferenceServices.getDefaultServiceName() });
            node = (JiveTreeNode) path.getLastPathComponent();
        }
        JiveTreeNode roomNode = new JiveTreeNode(roomName, false, SparkRes.getImageIcon(SparkRes.BOOKMARK_ICON));
        roomNode.setAssociatedObject(roomJID);
        node.add(roomNode);
        final DefaultTreeModel model = (DefaultTreeModel) serviceTree.getModel();
        model.nodeStructureChanged(node);
        serviceTree.expandPath(rootPath);
        roomsTable.getTableModel().setValueAt(new JLabel(SparkRes.getImageIcon(SparkRes.BOOKMARK_ICON)), selectedRow, 0);
        addBookmarkUI(false);
        conferences.addBookmark(roomName, roomJID, false);
    } else {
        // Remove bookmark
        TreePath path = serviceTree.findByName(serviceTree, new String[] { rootNode.toString(), serviceName, roomName });
        JiveTreeNode node = (JiveTreeNode) path.getLastPathComponent();
        final DefaultTreeModel model = (DefaultTreeModel) serviceTree.getModel();
        model.removeNodeFromParent(node);
        roomsTable.getTableModel().setValueAt(new JLabel(SparkRes.getImageIcon(SparkRes.BLANK_IMAGE)), selectedRow, 0);
        addBookmarkUI(true);
        String jid = (String) node.getAssociatedObject();
        conferences.removeBookmark(jid);
    }
}
Also used : TreePath(javax.swing.tree.TreePath) JiveTreeNode(org.jivesoftware.spark.component.JiveTreeNode) RoomInfo(org.jivesoftware.smackx.muc.RoomInfo) Tree(org.jivesoftware.spark.component.Tree) JLabel(javax.swing.JLabel) DefaultTreeModel(javax.swing.tree.DefaultTreeModel) SmackException(org.jivesoftware.smack.SmackException) ChatRoomNotFoundException(org.jivesoftware.spark.ui.ChatRoomNotFoundException) XMPPException(org.jivesoftware.smack.XMPPException)

Aggregations

TreePath (javax.swing.tree.TreePath)4 JiveTreeNode (org.jivesoftware.spark.component.JiveTreeNode)4 Tree (org.jivesoftware.spark.component.Tree)4 SmackException (org.jivesoftware.smack.SmackException)3 XMPPException (org.jivesoftware.smack.XMPPException)3 JiveTreeCellRenderer (org.jivesoftware.spark.component.JiveTreeCellRenderer)3 BorderLayout (java.awt.BorderLayout)2 Iterator (java.util.Iterator)2 JDialog (javax.swing.JDialog)2 JLabel (javax.swing.JLabel)2 JOptionPane (javax.swing.JOptionPane)2 JPanel (javax.swing.JPanel)2 JScrollPane (javax.swing.JScrollPane)2 DefaultTreeModel (javax.swing.tree.DefaultTreeModel)2 GridBagConstraints (java.awt.GridBagConstraints)1 GridBagLayout (java.awt.GridBagLayout)1 Insets (java.awt.Insets)1 ActionEvent (java.awt.event.ActionEvent)1 MouseAdapter (java.awt.event.MouseAdapter)1 MouseEvent (java.awt.event.MouseEvent)1