Search in sources :

Example 1 with JiveTreeNode

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

the class RoomBrowser method setupRoomInformationUI.

private void setupRoomInformationUI(String roomJID, final RoomInfo roomInfo, final DiscoverItems items) {
    descriptionValue.setText(Res.getString("message.no.description.available"));
    subjectValue.setText(Res.getString("message.no.subject.available"));
    occupantsValue.setText("n/a");
    roomNameValue.setText("n/a");
    try {
        descriptionValue.setText(roomInfo.getDescription());
        subjectValue.setText(roomInfo.getSubject());
        if (roomInfo.getOccupantsCount() == -1) {
            occupantsValue.setText("n/a");
        } else {
            occupantsValue.setText(Integer.toString(roomInfo.getOccupantsCount()));
        }
        roomNameValue.setText(roomInfo.getRoom());
        for (DiscoverItems.Item item : items.getItems()) {
            String jid = item.getEntityID();
            rootNode.add(new JiveTreeNode(jid, false, SparkRes.getImageIcon(SparkRes.SMALL_USER1_INFORMATION)));
        }
        tree.expandRow(0);
    } catch (Exception e) {
        Log.error(e);
    }
    final JOptionPane pane;
    // Create the title panel for this dialog
    TitlePanel titlePanel = new TitlePanel(Res.getString("title.view.room.information"), Res.getString("message.room.information.for", roomJID), SparkRes.getImageIcon(SparkRes.BLANK_IMAGE), true);
    // 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 = { Res.getString("close") };
    pane = new JOptionPane(this, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION, null, options, options[0]);
    mainPanel.add(pane, BorderLayout.CENTER);
    final JOptionPane p = new JOptionPane();
    final JDialog dlg = p.createDialog(SparkManager.getMainWindow(), Res.getString("title.view.room.information"));
    dlg.setModal(false);
    dlg.pack();
    dlg.setSize(450, 400);
    dlg.setResizable(true);
    dlg.setContentPane(mainPanel);
    dlg.setLocationRelativeTo(SparkManager.getMainWindow());
    PropertyChangeListener changeListener = e -> {
        String value = (String) pane.getValue();
        if (Res.getString("close").equals(value)) {
            pane.setValue(JOptionPane.UNINITIALIZED_VALUE);
            dlg.dispose();
        }
    };
    pane.addPropertyChangeListener(changeListener);
    dlg.setVisible(true);
    dlg.toFront();
    dlg.requestFocus();
}
Also used : SmackException(org.jivesoftware.smack.SmackException) Color(java.awt.Color) JiveTreeCellRenderer(org.jivesoftware.spark.component.JiveTreeCellRenderer) Insets(java.awt.Insets) JDialog(javax.swing.JDialog) Res(org.jivesoftware.resource.Res) DiscoverItems(org.jivesoftware.smackx.disco.packet.DiscoverItems) Log(org.jivesoftware.spark.util.log.Log) BorderLayout(java.awt.BorderLayout) JiveTreeNode(org.jivesoftware.spark.component.JiveTreeNode) RoomInfo(org.jivesoftware.smackx.muc.RoomInfo) SparkRes(org.jivesoftware.resource.SparkRes) ServiceDiscoveryManager(org.jivesoftware.smackx.disco.ServiceDiscoveryManager) Tree(org.jivesoftware.spark.component.Tree) SwingWorker(org.jivesoftware.spark.util.SwingWorker) JOptionPane(javax.swing.JOptionPane) GridBagConstraints(java.awt.GridBagConstraints) TitlePanel(org.jivesoftware.spark.component.TitlePanel) MultiUserChatManager(org.jivesoftware.smackx.muc.MultiUserChatManager) PropertyChangeListener(java.beans.PropertyChangeListener) SparkManager(org.jivesoftware.spark.SparkManager) JLabel(javax.swing.JLabel) GridBagLayout(java.awt.GridBagLayout) JPanel(javax.swing.JPanel) XMPPException(org.jivesoftware.smack.XMPPException) JPanel(javax.swing.JPanel) PropertyChangeListener(java.beans.PropertyChangeListener) DiscoverItems(org.jivesoftware.smackx.disco.packet.DiscoverItems) JOptionPane(javax.swing.JOptionPane) SmackException(org.jivesoftware.smack.SmackException) XMPPException(org.jivesoftware.smack.XMPPException) TitlePanel(org.jivesoftware.spark.component.TitlePanel) BorderLayout(java.awt.BorderLayout) JiveTreeNode(org.jivesoftware.spark.component.JiveTreeNode) JDialog(javax.swing.JDialog)

Example 2 with JiveTreeNode

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

the class CustomMessages method reloadTree.

private static void reloadTree(JiveTreeNode rootNode, Tree tree) {
    StatusBar statusBar = SparkManager.getWorkspace().getStatusBar();
    rootNode.removeAllChildren();
    Iterator<StatusItem> statusItems = statusBar.getStatusList().iterator();
    while (statusItems.hasNext()) {
        StatusItem statusItem = statusItems.next();
        JiveTreeNode node = new JiveTreeNode(statusItem.getText(), false, statusItem.getIcon());
        List<CustomStatusItem> newItems = load();
        Iterator<CustomStatusItem> cMessages = newItems.iterator();
        node.setAllowsChildren(true);
        while (cMessages.hasNext()) {
            CustomStatusItem csi = cMessages.next();
            if (csi.getType().equals(statusItem.getText())) {
                JiveTreeNode subNode = new JiveTreeNode(csi.getStatus(), false);
                node.add(subNode);
            }
        }
        rootNode.add(node);
    }
    DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
    model.nodeStructureChanged(rootNode);
    tree.expandTree();
}
Also used : JiveTreeNode(org.jivesoftware.spark.component.JiveTreeNode) DefaultTreeModel(javax.swing.tree.DefaultTreeModel)

Example 3 with JiveTreeNode

use of org.jivesoftware.spark.component.JiveTreeNode 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 4 with JiveTreeNode

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

the class BookmarksUI method addBookmark.

/**
 * Adds a new bookmark to a particular service node.
 *
 * @param serviceNode the service node.
 * @param roomName    the name of the room to bookmark.
 * @param roomJID     the jid of the room.
 * @return the new bookmark created.
 */
public JiveTreeNode addBookmark(JiveTreeNode serviceNode, String roomName, String roomJID) {
    JiveTreeNode roomNode = new JiveTreeNode(roomName, false, SparkRes.getImageIcon(SparkRes.BOOKMARK_ICON));
    roomNode.setAssociatedObject(roomJID);
    serviceNode.add(roomNode);
    final DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
    model.nodeStructureChanged(serviceNode);
    return roomNode;
}
Also used : JiveTreeNode(org.jivesoftware.spark.component.JiveTreeNode) DefaultTreeModel(javax.swing.tree.DefaultTreeModel)

Example 5 with JiveTreeNode

use of org.jivesoftware.spark.component.JiveTreeNode 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)

Aggregations

JiveTreeNode (org.jivesoftware.spark.component.JiveTreeNode)13 DefaultTreeModel (javax.swing.tree.DefaultTreeModel)7 TreePath (javax.swing.tree.TreePath)5 Tree (org.jivesoftware.spark.component.Tree)5 SmackException (org.jivesoftware.smack.SmackException)4 XMPPException (org.jivesoftware.smack.XMPPException)4 JiveTreeCellRenderer (org.jivesoftware.spark.component.JiveTreeCellRenderer)4 BorderLayout (java.awt.BorderLayout)3 JDialog (javax.swing.JDialog)3 JLabel (javax.swing.JLabel)3 JOptionPane (javax.swing.JOptionPane)3 JPanel (javax.swing.JPanel)3 GridBagConstraints (java.awt.GridBagConstraints)2 GridBagLayout (java.awt.GridBagLayout)2 Insets (java.awt.Insets)2 Collection (java.util.Collection)2 Iterator (java.util.Iterator)2 JScrollPane (javax.swing.JScrollPane)2 BookmarkedConference (org.jivesoftware.smackx.bookmarks.BookmarkedConference)2 RoomInfo (org.jivesoftware.smackx.muc.RoomInfo)2