FileDocCategorySizeDatePackage
ViewReportBlock.javaAPI DocJMF 2.1.1e4126Mon May 12 12:20:34 BST 2003jmapps.rtp

ViewReportBlock.java

/*
 * @(#)ViewReportBlock.java	1.3 02/08/21
 *
 * Copyright (c) 1996-2002 Sun Microsystems, Inc.  All rights reserved.
 */

package jmapps.rtp;

import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.media.rtp.*;
import javax.media.rtp.rtcp.*;

import com.sun.media.util.JMFI18N;
import com.sun.media.rtp.util.Signed;

import jmapps.ui.*;


public class ViewReportBlock extends JMPanel {

    private Feedback    feedback;

    private Label   fieldDlsr;
    private Label   fieldFractionLost;
    private Label   fieldLostPackets;
    private Label   fieldJitter;
    private Label   fieldLsr;
    private Label   fieldSsrc;
    private Label   fieldXtndSeqNum;

    private static final String LABEL_DLSR          = JMFI18N.getResource ( "jmstudio.rtpsessionctrl.feedback.dlsr" );
    private static final String LABEL_FRACTION_LOST = JMFI18N.getResource ( "jmstudio.rtpsessionctrl.feedback.fractionlost" );
    private static final String LABEL_LOST_PACKETS  = JMFI18N.getResource ( "jmstudio.rtpsessionctrl.feedback.lostpackets" );
    private static final String LABEL_JITTER        = JMFI18N.getResource ( "jmstudio.rtpsessionctrl.feedback.jitter" );
    private static final String LABEL_LSR           = JMFI18N.getResource ( "jmstudio.rtpsessionctrl.feedback.lsr" );
    private static final String LABEL_SSRC          = JMFI18N.getResource ( "jmstudio.rtpsessionctrl.feedback.ssrc" );
    private static final String LABEL_XTNDSEQNUM    = JMFI18N.getResource ( "jmstudio.rtpsessionctrl.feedback.xtndseqnum" );


    public ViewReportBlock ( Feedback feedback ) {
	    super ();

        this.feedback = feedback;
        try {
            init();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void init () throws Exception {
        JMPanel     panelContent;
        JMPanel     panelLabels;
        JMPanel     panelData;
        Label       label;


        this.setLayout ( new BorderLayout(6,6) );

        panelContent = new JMPanel ( new BorderLayout(6,6) );
        this.add ( panelContent, BorderLayout.NORTH );
        panelLabels = new JMPanel ( new GridLayout(0,1,0,0) );
        panelContent.add ( panelLabels, BorderLayout.WEST );
        panelData = new JMPanel ( new GridLayout(0,1,0,0) );
        panelContent.add ( panelData, BorderLayout.CENTER );

        label = new Label ( LABEL_DLSR );
        panelLabels.add ( label );
        fieldDlsr = new Label ();
        panelData.add ( fieldDlsr );

        label = new Label ( LABEL_FRACTION_LOST );
        panelLabels.add ( label );
        fieldFractionLost = new Label ();
        panelData.add ( fieldFractionLost );

        label = new Label ( LABEL_LOST_PACKETS );
        panelLabels.add ( label );
        fieldLostPackets = new Label ();
        panelData.add ( fieldLostPackets );

        label = new Label ( LABEL_JITTER );
        panelLabels.add ( label );
        fieldJitter = new Label ();
        panelData.add ( fieldJitter );

        label = new Label ( LABEL_LSR );
        panelLabels.add ( label );
        fieldLsr = new Label ();
        panelData.add ( fieldLsr );

        label = new Label ( LABEL_SSRC );
        panelLabels.add ( label );
        fieldSsrc = new Label ();
        panelData.add ( fieldSsrc );

        label = new Label ( LABEL_XTNDSEQNUM );
        panelLabels.add ( label );
        fieldXtndSeqNum = new Label ();
        panelData.add ( fieldXtndSeqNum );

        updateFields ( feedback );
    }

    public void updateFields ( Feedback feedback ) {
        if ( feedback == null )
            return;
        this.feedback = feedback;

        fieldDlsr.setText ( "" + (feedback.getDLSR()/65536.0) );
        fieldFractionLost.setText ( "" + (feedback.getFractionLost()/256.0) );
        fieldLostPackets.setText ( "" + feedback.getNumLost() );
        fieldJitter.setText ( "" + feedback.getJitter() );
        fieldLsr.setText ( "" + feedback.getLSR() );
        fieldSsrc.setText ( "" + Signed.UnsignedInt((int)feedback.getSSRC()) );
        fieldXtndSeqNum.setText ( "" + feedback.getXtndSeqNum() );
    }

}