Search in sources :

Example 1 with BackgroundPane

use of org.jivesoftware.fastpath.workspace.panes.BackgroundPane in project Spark by igniterealtime.

the class CoBrowser method buildUI.

private void buildUI() {
    if (!isShowing) {
        update(getGraphics());
        isShowing = true;
        final JToolBar toolbar = new JToolBar();
        toolbar.setFloatable(false);
        toolbar.add(backButton);
        toolbar.add(urlField);
        toolbar.add(goButton);
        toolbar.setOpaque(false);
        final BackgroundPane titlePanel = new BackgroundPane();
        titlePanel.setLayout(new GridBagLayout());
        JLabel cobrowsingLabel = new JLabel();
        cobrowsingLabel.setText(FpRes.getString("cobrowsing.session"));
        cobrowsingLabel.setFont(new Font("Dialog", Font.BOLD, 11));
        titlePanel.add(cobrowsingLabel, new GridBagConstraints(0, 0, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(0, 5, 0, 0), 0, 0));
        titlePanel.add(pushCurrentPageButton, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(0, 5, 5, 5), 0, 0));
        titlePanel.add(followMeButton, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(0, 5, 5, 5), 0, 0));
        titlePanel.add(toolbar, new GridBagConstraints(0, 1, 3, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(10, 0, 5, 0), 0, 0));
        add(titlePanel, new GridBagConstraints(0, 0, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0));
        updateLinkLabel(getStartLocation());
        goButton.addActionListener(this);
        backButton.addActionListener(this);
        pushCurrentPageButton.addActionListener(this);
    }
}
Also used : GridBagConstraints(java.awt.GridBagConstraints) Insets(java.awt.Insets) GridBagLayout(java.awt.GridBagLayout) JLabel(javax.swing.JLabel) JToolBar(javax.swing.JToolBar) BackgroundPane(org.jivesoftware.fastpath.workspace.panes.BackgroundPane) Font(java.awt.Font)

Example 2 with BackgroundPane

use of org.jivesoftware.fastpath.workspace.panes.BackgroundPane in project Spark by igniterealtime.

the class ChatSearch method search.

public void search(String query) {
    final List<ChatSearchResult> results = new ArrayList<ChatSearchResult>();
    AgentSession agentSession = FastpathPlugin.getAgentSession();
    try {
        Form form = agentSession.getTranscriptSearchForm();
        Form filledForm = form.createAnswerForm();
        filledForm.setAnswer("queryString", query);
        // Define Workgroups
        final List<String> workgroups = new ArrayList<String>();
        workgroups.add(FastpathPlugin.getWorkgroup().getWorkgroupJID());
        filledForm.setAnswer("workgroups", workgroups);
        ReportedData reportedData = null;
        try {
            reportedData = agentSession.searchTranscripts(filledForm);
            for (final ReportedData.Row row : reportedData.getRows()) {
                ChatSearchResult result = new ChatSearchResult(row, query);
                results.add(result);
            }
        } catch (XMPPException | SmackException e) {
            Log.error(e);
        }
        Collections.sort(results, dateComporator);
        DefaultListModel model = new DefaultListModel();
        final JList list = new JList(model);
        list.setCellRenderer(new HistoryItemRenderer());
        Iterator<ChatSearchResult> iter = results.iterator();
        while (iter.hasNext()) {
            ChatSearchResult result = iter.next();
            String person = result.getUsername();
            String question = result.getQuestion();
            String sessionID = result.getSessionID();
            Date date = result.getStartDate();
            final SearchItem item = new SearchItem(person, date, question);
            item.setSessionID(sessionID);
            model.addElement(item);
        }
        list.addMouseListener(new MouseAdapter() {

            public void mouseClicked(MouseEvent e) {
                if (e.getClickCount() == 2) {
                    SearchItem item = (SearchItem) list.getSelectedValue();
                    Transcript transcript = null;
                    try {
                        transcript = FastpathPlugin.getAgentSession().getTranscript(item.getSessionID());
                    } catch (XMPPException | SmackException ee) {
                        Log.error("Error showing transcripts.", ee);
                    }
                    if (transcript == null) {
                        return;
                    }
                    ChatViewer chatViewer = new ChatViewer(transcript);
                    final JFrame frame = new JFrame(FpRes.getString("title.chat.transcript"));
                    frame.setIconImage(SparkManager.getMainWindow().getIconImage());
                    frame.getContentPane().setLayout(new BorderLayout());
                    frame.getContentPane().add(chatViewer, BorderLayout.CENTER);
                    frame.pack();
                    frame.setSize(600, 400);
                    frame.setLocationRelativeTo(SparkManager.getMainWindow());
                    frame.setVisible(true);
                }
            }
        });
        JScrollPane scrollPane = new JScrollPane(list);
        scrollPane.getViewport().setBackground(Color.white);
        JFrame frame = new JFrame(FpRes.getString("title.search.results"));
        frame.setIconImage(SparkManager.getMainWindow().getIconImage());
        frame.getContentPane().setLayout(new BorderLayout());
        frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
        final BackgroundPane titlePane = new BackgroundPane() {

            private static final long serialVersionUID = -5603280927139789177L;

            public Dimension getPreferredSize() {
                final Dimension size = super.getPreferredSize();
                size.width = 0;
                return size;
            }
        };
        titlePane.setLayout(new GridBagLayout());
        titlePane.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, Color.LIGHT_GRAY));
        JLabel userImage = new JLabel(FastpathRes.getImageIcon(FastpathRes.FASTPATH_IMAGE_24x24));
        userImage.setHorizontalAlignment(JLabel.LEFT);
        userImage.setText(FpRes.getString("title.chat.transcripts.search"));
        titlePane.add(userImage, new GridBagConstraints(0, 0, 4, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0));
        userImage.setFont(new Font("Dialog", Font.BOLD, 12));
        JLabel itemsFound = new JLabel(Integer.toString(results.size()));
        titlePane.add(new JLabel(FpRes.getString("title.number.of.conversations.found")), new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
        titlePane.add(itemsFound, new GridBagConstraints(1, 1, 3, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
        JLabel searchTerm = new JLabel(FpRes.getString("query") + ": " + query);
        titlePane.add(searchTerm, new GridBagConstraints(0, 2, 4, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 5, 5, 5), 0, 0));
        frame.getContentPane().add(titlePane, BorderLayout.NORTH);
        frame.pack();
        frame.setSize(400, 400);
        GraphicUtils.centerWindowOnScreen(frame);
        frame.setVisible(true);
    } catch (XMPPException | SmackException e) {
        Log.error(e);
    }
}
Also used : GridBagConstraints(java.awt.GridBagConstraints) Insets(java.awt.Insets) GridBagLayout(java.awt.GridBagLayout) Form(org.jivesoftware.smackx.xdata.Form) ArrayList(java.util.ArrayList) ChatViewer(org.jivesoftware.fastpath.workspace.panes.ChatViewer) DefaultListModel(javax.swing.DefaultListModel) BackgroundPane(org.jivesoftware.fastpath.workspace.panes.BackgroundPane) Font(java.awt.Font) BorderLayout(java.awt.BorderLayout) JFrame(javax.swing.JFrame) AgentSession(org.jivesoftware.smackx.workgroup.agent.AgentSession) JScrollPane(javax.swing.JScrollPane) Transcript(org.jivesoftware.smackx.workgroup.packet.Transcript) MouseEvent(java.awt.event.MouseEvent) SmackException(org.jivesoftware.smack.SmackException) MouseAdapter(java.awt.event.MouseAdapter) JLabel(javax.swing.JLabel) Dimension(java.awt.Dimension) Date(java.util.Date) HistoryItemRenderer(org.jivesoftware.fastpath.workspace.panes.HistoryItemRenderer) XMPPException(org.jivesoftware.smack.XMPPException) JList(javax.swing.JList) ReportedData(org.jivesoftware.smackx.search.ReportedData)

Example 3 with BackgroundPane

use of org.jivesoftware.fastpath.workspace.panes.BackgroundPane in project Spark by igniterealtime.

the class FastpathPlugin method initialize.

public void initialize() {
    new WorkgroupInitializer().initialize();
    EventQueue.invokeLater(new Runnable() {

        @Override
        public void run() {
            container = new FastpathContainer();
            workgroupLabel = new JLabel(FpRes.getString("workgroup"));
            comboBox = new JComboBox();
            joinButton = new JButton(FpRes.getString("join"), null);
            logoutButton = new RolloverButton(FpRes.getString("logout"), null);
            // Initialize tab handler for Fastpath chats.
            fastpathTabHandler = new FastpathTabHandler();
            mainPanel = new BackgroundPane();
        }
    });
    try {
        DiscoverItems items = SparkManager.getSessionManager().getDiscoveredItems();
        for (DiscoverItems.Item item : items.getItems()) {
            String entityID = item.getEntityID() != null ? item.getEntityID() : "";
            if (entityID.startsWith("workgroup")) {
                // Log into workgroup
                final String workgroupService = "workgroup." + SparkManager.getSessionManager().getServerAddress();
                final String jid = SparkManager.getSessionManager().getJID();
                SwingWorker worker = new SwingWorker() {

                    public Object construct() {
                        try {
                            return Agent.getWorkgroups(workgroupService, jid, SparkManager.getConnection());
                        } catch (XMPPException | SmackException e1) {
                            return Collections.emptyList();
                        }
                    }

                    public void finished() {
                        Collection<String> agents = (Collection<String>) get();
                        if (agents.size() == 0) {
                            return;
                        }
                        showSelection(agents);
                    }
                };
                worker.start();
            }
        }
    } catch (Exception e) {
        Log.error(e);
    }
    SparkManager.getConnection().addConnectionListener(this);
}
Also used : SmackException(org.jivesoftware.smack.SmackException) DiscoverItems(org.jivesoftware.smackx.disco.packet.DiscoverItems) BackgroundPane(org.jivesoftware.fastpath.workspace.panes.BackgroundPane) RolloverButton(org.jivesoftware.spark.component.RolloverButton) SmackException(org.jivesoftware.smack.SmackException) XMPPException(org.jivesoftware.smack.XMPPException) SwingWorker(org.jivesoftware.spark.util.SwingWorker) Collection(java.util.Collection) XMPPException(org.jivesoftware.smack.XMPPException)

Aggregations

BackgroundPane (org.jivesoftware.fastpath.workspace.panes.BackgroundPane)3 Font (java.awt.Font)2 GridBagConstraints (java.awt.GridBagConstraints)2 GridBagLayout (java.awt.GridBagLayout)2 Insets (java.awt.Insets)2 JLabel (javax.swing.JLabel)2 SmackException (org.jivesoftware.smack.SmackException)2 XMPPException (org.jivesoftware.smack.XMPPException)2 BorderLayout (java.awt.BorderLayout)1 Dimension (java.awt.Dimension)1 MouseAdapter (java.awt.event.MouseAdapter)1 MouseEvent (java.awt.event.MouseEvent)1 ArrayList (java.util.ArrayList)1 Collection (java.util.Collection)1 Date (java.util.Date)1 DefaultListModel (javax.swing.DefaultListModel)1 JFrame (javax.swing.JFrame)1 JList (javax.swing.JList)1 JScrollPane (javax.swing.JScrollPane)1 JToolBar (javax.swing.JToolBar)1