/*
* @(#)PacketSizeAdapter.java 1.3 02/08/21
*
* Copyright (c) 1996-2002 Sun Microsystems, Inc. All rights reserved.
*/
package com.sun.media.controls;
import javax.media.*;
import java.awt.*;
import java.awt.event.*;
/**
* Implementation for PacketSizeControl
*/
public class PacketSizeAdapter implements javax.media.control.PacketSizeControl {
protected Codec owner=null;
protected boolean isSetable;
protected int packetSize;
Component component=null;
String CONTROL_STRING="Packet Size";
public PacketSizeAdapter(Codec newOwner, int newPacketSize, boolean newIsSetable) {
packetSize= newPacketSize;
owner = newOwner;
isSetable = newIsSetable;
}
/**
* Sets the desired maximum data size on the data that is output by this
* encoder. This parameter is to be used as a means to convey the
* preferred size of individual data units (packets) that are output
* by this encoder. Returns the actual packet size that was set.
* @param packetsize The number of bytes the maximum packet size
* is set to
* @return the actual packet size set by the encoder
*/
public int setPacketSize(int numBytes) {
return packetSize;
}
/**
* Retrieve the maximum packet size used by this encoder.
* @return Maximum packet size used by this encoder.
*/
public int getPacketSize() {
return packetSize;
}
public Component getControlComponent() {
if (component ==null ) {
Panel componentPanel=new Panel();
componentPanel.setLayout(new BorderLayout() );
componentPanel.add("Center",new Label(CONTROL_STRING,Label.CENTER) );
TextField tf=new TextField(packetSize+"",5);
tf.setEditable(isSetable );
tf.addActionListener( (ActionListener)new PacketSizeListner(tf) );
componentPanel.add("East",tf );
componentPanel.invalidate();
component=componentPanel;
}
return (Component)component;
}
class PacketSizeListner implements java.awt.event.ActionListener {
TextField tf;
public PacketSizeListner(TextField source) {
tf=source;
}
public void actionPerformed (ActionEvent e) {
try {
int newPacketSize= Integer.parseInt(tf.getText() );
System.out.println("newPacketSize "+newPacketSize);
setPacketSize(newPacketSize);
} catch (Exception exception) {
}
tf.setText(packetSize+"");
}
}
}
|