|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--wonderly.jeaprs.ClientImpl | +--wonderly.jeaprs.aprs.kenwood.thd7a.THD7AControl
Field Summary |
Fields inherited from class wonderly.jeaprs.ClientImpl |
actions, APRS, dirty, evLis, ins, me, name, outs, stopped, strmLis |
Fields inherited from interface javax.swing.SwingConstants |
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST |
Constructor Summary | |
THD7AControl()
|
Method Summary | |
void |
buildActions()
Put code in here to register all of the actions that you want to use. |
javax.swing.JPanel |
buildPanel(javax.swing.JFrame f)
Builds the applications user interface. |
wonderly.jeaprs.aprs.packet.APRSEventListener |
createEventListener()
This method needs to be implemented by subclasses and should return an APRSEventListener implementation that is applicable
for their client. |
java.io.OutputStream |
createStreamListener()
This method needs to be implemented by subclasses and should return an OutputStream implementation that is applicable
for their client. |
static void |
main(java.lang.String[] args)
|
Methods inherited from class wonderly.jeaprs.ClientImpl |
addAPRSEventGenerator, addAPRSOutputStream, buildMenu, getAction, getAPRSEventGenerators, getAPRSOutputStreams, getName, getUIFactory, isDirty, isInputUser, isOutputUser, removeAPRSEventGenerator, removeAPRSOutputStream, setDirty, setName, start, stop, toString, write, write, write, write |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
public THD7AControl()
Method Detail |
public static void main(java.lang.String[] args)
public wonderly.jeaprs.aprs.packet.APRSEventListener createEventListener()
ClientImpl
APRSEventListener
implementation that is applicable
for their client. Many times, a simple inner class is all that is
needed as in.
return new APRSEventAdapter() { public void message( APRSPacket pkt, APRSMessage msg ) { // Do something with message } };This will create a new object that is an instance of the
APRSEventAdapter
class. That class implements the APRSEventListener
interface
with empty methods so that you can just override the methods that you want
APRS packets for, and not have to deal with implementing all methods.
Just return null here if you don't need an event listener.
createEventListener
in class ClientImpl
APRSEventAdapter
,
APRSEventListener
public java.io.OutputStream createStreamListener()
ClientImpl
OutputStream
implementation that is applicable
for their client. This stream will be written to as data comes through
a TNC
implementatation, receiving copies of the text lines
received by the TNC
implementation. A simple mechanism is
typically to use a thread and a PipedInputStream
and PipedOutputStream
pair to receive the data and process it.
Just return null if you don't need raw stream events.
public OutputStream createStreamListener() throws IOException { final PipedOutputStream pipe = new PipedOutputStream(); final PipedInputStream is = new PipedInputStream(pipe); new Thread("TNC Stream listener") { public void run() { try { BufferedReader rd = new BufferedReader( new InputStreamReader(is) ); String str; while( (str = rd.readLine()) != null ) { System.out.println( "Got TNC line: "+str ); } System.out.println("End of TNC Stream, exiting"); } finally { try { is.close(); pipe.close(); } catch( Exception ex ) { JeAPRS.getUI().reportException(ex); } } } }.start(); return pipe; }
createStreamListener
in class ClientImpl
public javax.swing.JPanel buildPanel(javax.swing.JFrame f)
ClientImpl
buildMenu()
method can be used to create a menu bar
if neededed.
buildPanel
in class ClientImpl
ClientImpl.buildMenu()
public void buildActions()
ClientImpl
actions.put( "MyAction", act = new AbstractAction( "MyAction" ) { public void actionPerformed( ActionEvent ev ) { //...do something here } }); act.putValue( Action.NAME, "MyAction" );
buildActions
in class ClientImpl
ClientImpl.getAction(String)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |