⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 singlegroupnavigationpanel.java

📁 myjxta是用jxta开发的一个p2p通讯软件 有聊天 文件共享 视频3大功能 界面采用swing
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        protected void paintComponent(Graphics g) {            super.paintComponent(g);            if (isEnabled() && m_activeIcon != null) {                m_activeIcon.paintIcon(this, g, 0, 0);            }        }    }    public SingleGroupTableModel getTableModel() {        return (SingleGroupTableModel) m_groupNavigationTable.getModel();    }    /**     * @return     */    public Group getGroup() {        return m_groupTableModel.getGroup();    }    private class MyTableCellRenderer extends DefaultTableCellRenderer {        /**         * Returns the default table cell renderer.         *         * @param table      the <code>JTable</code>         * @param value      the value to assign to the cell at         *                   <code>[row, column]</code>         * @param isSelected true if cell is selected         * @param hasFocus   true if cell has focus         * @param row        the row of the cell to render         * @param column     the column of the cell to render         * @return the default table cell renderer         */        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {            String label;            if (value instanceof PeerEntry) {                PeerEntry peerEntry = (PeerEntry) value;                setIcon(peerEntry.getIcon(isSelected, hasFocus));                long secs = System.currentTimeMillis() - peerEntry.getLastSeen();                secs = secs / 1000;                label = peerEntry.m_peer.getName();                //todo localise                StringBuffer tooltipText = new StringBuffer().append("<html>").append(label).append(" was last seen ").append(secs).append(" sec ago");                tooltipText.append("<br>Reverse discovery status: ");                if (Boolean.TRUE.equals(peerEntry.getNode().getReverseDiscoveryState()))                    tooltipText.append("true");                else if (Boolean.FALSE.equals(peerEntry.getNode().getReverseDiscoveryState()))                    tooltipText.append("false");                else                    tooltipText.append("unknown");                tooltipText.append("<br>Online status: ");                PeerStatus presenceStatus = peerEntry.getNode().getPresenceStatus();                if (presenceStatus == null) {                    presenceStatus = PeerStatus.getUnknownState();                    peerEntry.getNode().setInfo(PeerNode.STATUS_PRESENCE, presenceStatus, false);                }                tooltipText.append(presenceStatus.getState()).append(" / ").append(presenceStatus.getStatusMessage());                tooltipText.append("</html>");                setToolTipText(tooltipText.toString());                if (peerEntry.getNode().isConnecting()) {                    label = label + " connecting...";                } else if (presenceStatus.isAway()) {                    label = label + " (Away)";                } else if (presenceStatus.isOffline()) {                    label = label + " (Offline)";                } else if (peerEntry.getNode().wasReachable() == Boolean.FALSE) {                    label = label + " (Unreachable)";                }                //label=label+" " + secs + peerEntry+":"+peerEntry.getNode();            } else {                label = value.toString();            }            return super.getTableCellRendererComponent(table, label, isSelected, hasFocus, row, column);        }    }    /**     * called before the component is removed from the navigation panel     */    public void shutdown() {        m_groupTableModel.shutdown();        m_view.getControl().getPluginContainer().removeSelectionProvider(this);    }    /**     * Mouse Listener of the Table - responsible for the doubleclick behaviour and the triggering of the     * context menu     */    private class MyTableMouseListener extends MouseAdapter {        /**         * Invoked when a mouse button has been pressed on a component.         */        public void mousePressed(MouseEvent e) {            processMouseEvent(e);        }        /**         * Invoked when a mouse button has been released on a component.         */        public void mouseReleased(MouseEvent e) {            processMouseEvent(e);        }        private void processMouseEvent(MouseEvent e) {            if (e.isPopupTrigger()) {                JTable table = (JTable) e.getSource();                int row = table.rowAtPoint(e.getPoint());                if (!table.getSelectionModel().isSelectedIndex(row)) {                    table.getSelectionModel().setSelectionInterval(row, row);                }                triggerGlobalMyJxtaPopup(e);            }        }        /**         * Invoked when the mouse has been clicked on a component.         */        public void mouseClicked(MouseEvent e) {            if (e.getClickCount() > 1) {                doubleClick(e);            }        }        private void doubleClick(MouseEvent p_e) {            JTable table = (JTable) p_e.getSource();            int row = table.rowAtPoint(p_e.getPoint());            int column = table.columnAtPoint(p_e.getPoint());            PeerEntry value = (PeerEntry) table.getValueAt(row, column);            doubleClick(p_e, value.getNode());        }        private void doubleClick(MouseEvent p_e, PeerNode p_peer) {//            if (p_peer.getPeer().getPipeAdvertisement().getPipeID().equals(getGroup().getOwnPeersCommandId())) {//                return; // no self-chat!//            }            triggerGlobalMyJxtaPopup(p_e);//            Peer peer = p_peer.getPeer();//          MyPeerChatAction myPeerChatAction = new MyPeerChatAction(peer.getName(), m_view, p_peer);//        if (myPeerChatAction.isEnabled()) {//          myPeerChatAction.actionPerformed(null);//    }        }        private void triggerGlobalMyJxtaPopup(MouseEvent p_e) {            Object source = p_e.getSource();            JComponent jComponent = null;            //normally the JTable should be the source            if (source instanceof JComponent) {                jComponent = (JComponent) source;            } else {                source = SingleGroupNavigationPanel.this.m_scrollPane;            }            m_view.getControl().getPluginContainer().triggerGlobalMyJxtaPopup(getSelectedNodes(), p_e, jComponent);        }    }    public ISelectableNode[] getSelectedNodes() {        final int rows[] = m_groupNavigationTable.getSelectedRows();        if (rows.length == 0) {            return null;        }        ISelectableNode[] result = new ISelectableNode[rows.length];        for (int i = 0; i < rows.length; i++) {            final int finalRow = rows[i];            result[i] = new ISelectableNode() {                public JxtaNode getJxtaNode() {                    PeerEntry peerEntry = (PeerEntry) m_groupNavigationTable.getValueAt(finalRow, 0);                    if (peerEntry != null) {                        return peerEntry.getNode();                    } else {                        System.out.println("");                        return null;                    }                }                public SelectionNodeType getType() {                    return SelectionNodeType.Peer;                }            };        }//        System.out.println("return:"+result[0].getJxtaNode());        return result;    }    private static final class MyGroupListener implements GroupListener {        private final GroupStatusControl m_parentGroupStatusControl;        private final GroupStatusControl m_ownGroupStatusControl;        private final Group m_ownGroup;        public MyGroupListener(Group group, GroupStatusControl p_rdvConnectionControl, GroupStatusControl p_ownGroupControl) {            m_parentGroupStatusControl = p_rdvConnectionControl;            m_ownGroupStatusControl = p_ownGroupControl;            m_ownGroup = group;            updateControl(group.getParentGroup(), m_parentGroupStatusControl);            updateControl(group, m_ownGroupStatusControl);        }        public void groupEvent(Group g, String s, EventObject p_re) {            if (g.equals(m_ownGroup)) {                eventGroup(g.getParentGroup(), m_parentGroupStatusControl);                eventGroup(g, m_ownGroupStatusControl);            } else {                eventGroup(g, m_parentGroupStatusControl);            }        }        private void eventGroup(Group g, GroupStatusControl p_control) {            updateControl(g, p_control);        }        private void updateControl(Group g, GroupStatusControl p_control) {            if (g.isConnected()) {                boolean ownPeerRdv = g.isOwnPeerRdv();                if (ownPeerRdv) {                    p_control.setIsRdv();                } else {                    p_control.setEdgeConnected(true);                }            } else {                p_control.setEdgeConnected(false);            }        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -