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

📄 panelparticipants.java

📁 jmf的示例程序,学习jmf入门示例,很好很强大,什么功能都有
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            fillReportInfoNode ( node, reportSender );            node.addActionListener ( this );        }    }    private void fillReportInfoNode ( TreeNode nodeParent, Report objReport ) {        updateReportBlocks ( nodeParent, objReport );    }    private void addParticipant ( Participant participant ) {        TreeNode    nodeParent;        TreeNode    node;        String      strName;        JMPanel     panel;        Object      objPanel;        if ( participant == null )            return;        nodeParent = findParticipantListNode ();        node = findParticipantNode ( participant );        if ( node != null )            // is there already            return;        strName = participant.getCNAME ();        node = controlTree.createSubElement ( nodeParent, strName );        panel = new ViewParticipantInfo ( mngrSession, participant );        node.setUserData ( panel );        fillParticipantInfoNode ( node, participant );        node.addActionListener ( this );        objPanel = nodeParent.getUserData();        if ( objPanel != null  &&  (objPanel instanceof ViewParticipantList) )            ((ViewParticipantList)objPanel).updateFields ();    }    private void removeParticipant ( Participant participant ) {        TreeNode    nodeParent;        TreeNode    node;        String      strName;        JMPanel     panel;        Object      objPanel;        node = findParticipantNode ( participant );        if ( node == null )            return;        nodeParent = findParticipantListNode ();        controlTree.destroySubElement ( nodeParent, node );        objPanel = nodeParent.getUserData();        if ( objPanel != null  &&  (objPanel instanceof ViewParticipantList) )            ((ViewParticipantList)objPanel).updateFields ();    }    private void addRtpStream ( Participant participant, RTPStream stream ) {        TreeNode    nodeParticipant;        TreeNode    nodeStream;        nodeParticipant = findParticipantNode ( participant );        addRtpStream ( nodeParticipant, stream );    }    private void addRtpStream ( TreeNode nodeParticipant, RTPStream stream ) {        TreeNode    nodeStream;        String      strName;        JMPanel     panel;        if ( nodeParticipant == null )            return;        nodeStream = findStreamNode ( nodeParticipant, stream );        if ( nodeStream != null )            return;        strName = createStreamNodeName ( stream );        nodeStream = controlTree.createSubElement ( nodeParticipant, strName );        panel = new ViewRtpStreamInfo ( mngrSession, stream );        nodeStream.setUserData ( panel );        fillStreamInfoNode ( nodeStream, stream );        nodeStream.addActionListener ( this );    }    private void removeRtpStream ( RTPStream stream ) {        Participant participant;        TreeNode    nodeParticipant;        TreeNode    nodeStream;        participant = stream.getParticipant();        if ( participant == null )            return;        nodeParticipant = findParticipantNode ( participant );        removeRtpStream ( nodeParticipant, stream );    }    private void removeRtpStream ( TreeNode nodeParticipant, RTPStream stream ) {        TreeNode    nodeStream;        if ( nodeParticipant == null )            return;        nodeStream = findStreamNode ( nodeParticipant, stream );        if ( nodeStream == null )            return;        controlTree.destroySubElement ( nodeParticipant, nodeStream );    }    private void addReport ( Participant participant, Report report ) {        TreeNode    nodeParticipant;        if ( participant == null )            return;        nodeParticipant = findParticipantNode ( participant );        addReport ( nodeParticipant, report );    }    private void addReport ( TreeNode nodeParticipant, Report report ) {        String      strName;        TreeNode    node;        Object      objPanel;        if ( nodeParticipant == null )            return;        strName = createReportNodeName ( report );        node = nodeParticipant.getSubElement(strName);        if ( node != null ) {            // just update the existing report            objPanel = node.getUserData();            if ( objPanel != null  ) {                if ( objPanel instanceof ViewReceiverReport  &&  report instanceof ReceiverReport )                    ((ViewReceiverReport)objPanel).updateFields ( (ReceiverReport)report );                else if ( objPanel instanceof ViewSenderReport  &&  report instanceof SenderReport )                    ((ViewSenderReport)objPanel).updateFields ( (SenderReport)report );            }            updateReportBlocks ( node, report );        }        else {            // create new node            node = controlTree.createSubElement ( nodeParticipant, strName );            if ( report instanceof SenderReport ) {                objPanel = new ViewSenderReport ( mngrSession, (SenderReport)report );            }            else if ( report instanceof ReceiverReport ) {                objPanel = new ViewReceiverReport ( (ReceiverReport)report );            }            else {                objPanel = null;            }            node.setUserData ( objPanel );            fillReportInfoNode ( node, report );            node.addActionListener ( this );            objPanel = nodeParticipant.getUserData();            if ( objPanel != null  &&  (objPanel instanceof ViewParticipantInfo) )                ((ViewParticipantInfo)objPanel).updateFields ( report );        }        if ( report instanceof SenderReport ) {            node = findStreamNode ( nodeParticipant, ((SenderReport)report).getStream() );            if ( node != null )                node = findStreamLatestReportNode ( node );            if ( node != null ) {                objPanel = node.getUserData();                if ( objPanel != null  &&  (objPanel instanceof ViewSenderReport) )                    ((ViewSenderReport)objPanel).updateFields ( (SenderReport)report );                updateReportBlocks ( node, report );            }        }    }    private void updateReportBlocks ( TreeNode nodeReport, Report report ) {        int             i;        int             nCount;        SenderReport    reportSender;        ReceiverReport  reportReceiver;        Vector          vectorFeedbacks;        Feedback        feedback;        TreeNode        node;        String          strName;        JMPanel         panel;        Object          objPanel;        if ( report == null )            return;        if ( report instanceof SenderReport ) {            reportSender = (SenderReport)report;            feedback = reportSender.getSenderFeedback ();            strName = REPORT_BLOCK_BY_ME;            node = nodeReport.getSubElement ( strName );            if ( node == null ) {                node = controlTree.createSubElement ( nodeReport, strName );                panel = new ViewReportBlock ( feedback );                node.setUserData ( panel );                node.addActionListener ( this );            }            else {                objPanel = node.getUserData();                if ( objPanel != null  &&  objPanel instanceof ViewReportBlock )                    ((ViewReportBlock)objPanel).updateFields ( feedback );            }            vectorFeedbacks = reportSender.getFeedbackReports ();            nCount = vectorFeedbacks.size ();            for ( i = 0;  i < nCount;  i++ ) {                feedback = (Feedback) vectorFeedbacks.elementAt ( i );                strName = SENDER_REPORT_BLOCK + " " + i;                node = nodeReport.getSubElement ( strName );                if ( node == null ) {                    node = controlTree.createSubElement ( nodeReport, strName );                    panel = new ViewReportBlock ( feedback );                    node.setUserData ( panel );                    node.addActionListener ( this );                }                else {                    objPanel = node.getUserData();                    if ( objPanel != null  &&  objPanel instanceof ViewReportBlock )                        ((ViewReportBlock)objPanel).updateFields ( feedback );                }            }        }        else if ( report instanceof ReceiverReport ) {            reportReceiver = (ReceiverReport)report;            vectorFeedbacks = reportReceiver.getFeedbackReports ();            nCount = vectorFeedbacks.size ();            for ( i = 0;  i < nCount;  i++ ) {                feedback = (Feedback) vectorFeedbacks.elementAt ( i );                strName = REPORT_BLOCK + " " + i;                node = nodeReport.getSubElement ( strName );                if ( node == null ) {                    node = controlTree.createSubElement ( nodeReport, strName );                    panel = new ViewReportBlock ( feedback );                    node.setUserData ( panel );                    node.addActionListener ( this );                }                else {                    objPanel = node.getUserData();                    if ( objPanel != null  &&  objPanel instanceof ViewReportBlock )                        ((ViewReportBlock)objPanel).updateFields ( feedback );                }            }        }    }    private TreeNode findParticipantListNode () {        TreeNode    nodeRoot;        nodeRoot = controlTree.getRootElement ();        return ( nodeRoot );    }    private TreeNode findParticipantNode ( Participant participant ) {        TreeNode    nodeRoot;        TreeNode    node;        nodeRoot = controlTree.getRootElement ();        node = nodeRoot.getSubElement ( participant.getCNAME() );        return ( node );    }    private TreeNode findStreamNode ( TreeNode nodeParticipant, RTPStream stream ) {        TreeNode    node;        String      strName;        strName = createStreamNodeName ( stream );        node = nodeParticipant.getSubElement ( strName );        return ( node );    }    private TreeNode findStreamLatestReportNode ( TreeNode nodeStream ) {        String      strName;        TreeNode    node;        strName = createStreamLatestReportNodeName ();        node = nodeStream.getSubElement ( strName );        return ( node );    }    private String createStreamNodeName ( RTPStream stream ) {        String      strName;        if ( stream == null )            return ( null );        if ( stream instanceof ReceiveStream )            strName = REMOTE_RECEIVE_STREAM + ": ";        else            strName = UNKNOWN_STREAM + ": ";        strName = strName + stream.getParticipant().getCNAME ();        return ( strName );    }    private String createReportNodeName ( Report report ) {        String      strName;        long        lSSRC;        lSSRC = report.getSSRC ();        strName = REPORT + " " + Signed.UnsignedInt((int)lSSRC);        return ( strName );    }    private String createStreamLatestReportNodeName () {        String      strName;        strName = LATEST_SENDER_REPORT;        return ( strName );    }    private void setViewPanel ( TreeNode node ) {        Object      objData;        String      strName;        if ( node == null )            return;        objData = node.getUserData ();        strName = node.getFullPathName ();        if ( objData != null  &&  objData instanceof JMPanel ) {            panelCurrentView = (JMPanel) objData;            if ( panelCurrentView.getParent() == null )                panelView.add ( panelCurrentView, strName );            layoutView.show ( panelView, strName );        }    }    private void removeViewPanel ( TreeNode node ) {        Object      objData;        String      strName;        objData = node.getUserData ();        if ( objData != null  &&  objData instanceof JMPanel ) {            if ( ((JMPanel)objData).getParent() == panelView )                panelView.remove ( (JMPanel)objData );        }        setViewPanel ( controlTree.getCurrentElement() );    }    private void layoutComponents () {        Dimension   dim;        int         nWidthTree;        dim = this.getSize ();        nWidthTree = (dim.width - MARGINH) / 2;        if ( controlTree != null )            controlTree.setBounds ( 0, 0, nWidthTree, dim.height );        if ( panelView != null ) {            panelView.setBounds ( nWidthTree + MARGINH, 0, dim.width - (nWidthTree + MARGINH), dim.height );            panelView.doLayout ();        }        repaint ();    }}

⌨️ 快捷键说明

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