class ChatClient extends java.awt.Frame implements java.awt.event.WindowListener, powersoft.powerj.event.SocketConnectListener, powersoft.powerj.event.SocketDataArrivalListener, powersoft.powerj.event.SocketErrorListener, java.awt.event.ActionListener
{
public java.awt.Rectangle DURectangle( int x, int y, int w, int h )
{
String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
java.awt.FontMetrics fm = getFontMetrics( getFont() );
double fw = ( fm != null ) ? ( fm.stringWidth( alphabet ) / alphabet.length() ) : 0;
double fh = ( fm != null ) ? ( fm.getHeight() / 2.0 ) : 0.0;
return new java.awt.Rectangle( (int) Math.round( ( (double)fw * (double)x ) / 4.0 ),
(int) Math.round( ( (double)fh * (double)y ) / 4.0 ),
(int) Math.round( ( (double)fw * (double)w ) / 4.0 ),
(int) Math.round( ( (double)fh * (double)h ) / 4.0 ) );
}
public void DUPositionComponent( java.awt.Component comp, int x, int y, int w, int h, java.awt.Insets formInsets )
{
java.awt.Rectangle rect = DURectangle( x, y, w, h );
if( (comp != this) && (formInsets != null) ) {
rect.x += formInsets.left;
rect.y += formInsets.top;
}
if( (comp == this) && (formInsets != null) && (formInsets.bottom > 0) ) {
rect.height += formInsets.bottom;
}
comp.setBounds( rect );
}
public void setMainForm( boolean isMainForm )
{
__mainForm = isMainForm;
}
public boolean isMainForm()
{
return __mainForm;
}
private boolean createTheForm() throws java.lang.Exception
{
setTitle("Client");
java.awt.Container contentPane = getContentPane();
java.awt.Font defaultFont = new java.awt.Font( "Dialog", java.awt.Font.PLAIN, 12 );
setFont( defaultFont );
boolean retval = true;
addNotify();
menu_1_optio.setLabel("Optionen");
menu_1.add( menu_1_optio );
menu_1_config.setLabel("Konfigurieren");
menu_1_optio.add( menu_1_config );
menu_1_optio.addSeparator();
menu_1_close.setLabel("Schließen");
menu_1_optio.add( menu_1_close );
setMenuBar( menu_1 );
java.awt.Insets formInsets = (java.awt.Insets)(contentPane.getInsets().clone());
contentPane.setBackground( java.awt.Color.lightGray );
contentPane.setForeground( java.awt.Color.black );
powersoft.powerj.ui.ResizePercentLayout layout = new powersoft.powerj.ui.ResizePercentLayout();
contentPane.setLayout( layout );
contentPane.add( (java.awt.Component)cb_1_verbinden );
contentPane.add( (java.awt.Component)texta_1_meldungen );
contentPane.add( (java.awt.Component)cb_1_schliessen );
contentPane.add( (java.awt.Component)label_1_meldungen );
contentPane.add( (java.awt.Component)textf_1_eingaben );
contentPane.add( (java.awt.Component)cb_1_senden );
DUPositionComponent( (java.awt.Component) this, 207, 239, 415, 270, formInsets );
addWindowListener((java.awt.event.WindowListener)this);
try {
socket_1.addSocketConnectListener((powersoft.powerj.event.SocketConnectListener)this);
socket_1.addSocketDataArrivalListener((powersoft.powerj.event.SocketDataArrivalListener)this);
socket_1.addSocketErrorListener((powersoft.powerj.event.SocketErrorListener)this);
socket_1.create( powersoft.powerj.net.Socket.SockSTREAM );
socket_1.setAsynchronous( false );
}
catch( java.lang.Exception e_socket_1 ) {
e_socket_1.printStackTrace();
}
try {
menu_1_config.addActionListener((java.awt.event.ActionListener)this);
menu_1_close.addActionListener((java.awt.event.ActionListener)this);
}
catch( java.lang.Exception e_menu_1 ) {
e_menu_1.printStackTrace();
}
try {
cb_1_verbinden.addActionListener((java.awt.event.ActionListener)this);
DUPositionComponent( (java.awt.Component)cb_1_verbinden, 16, 202, 85, 19, formInsets );
cb_1_verbinden.setLabel( "Verbinden" );
cb_1_verbinden.setFont( new java.awt.Font( "Dialog", java.awt.Font.BOLD, 12 ) );
cb_1_verbinden.setBackground( java.awt.Color.lightGray );
cb_1_verbinden.setForeground( java.awt.Color.black );
cb_1_verbinden.setEnabled(true);
cb_1_verbinden.setVisible(true);
}
catch( java.lang.Exception e_cb_1_verbinden ) {
e_cb_1_verbinden.printStackTrace();
}
try {
DUPositionComponent( (java.awt.Component)texta_1_meldungen, 16, 19, 341, 139, formInsets );
texta_1_meldungen.setFont( defaultFont );
texta_1_meldungen.setBackground( java.awt.Color.white );
texta_1_meldungen.setForeground( java.awt.Color.black );
texta_1_meldungen.setEnabled(true);
texta_1_meldungen.setVisible(true);
}
catch( java.lang.Exception e_texta_1_meldungen ) {
e_texta_1_meldungen.printStackTrace();
}
try {
cb_1_schliessen.addActionListener((java.awt.event.ActionListener)this);
DUPositionComponent( (java.awt.Component)cb_1_schliessen, 283, 202, 74, 19, formInsets );
cb_1_schliessen.setLabel( "Schließen" );
cb_1_schliessen.setFont( new java.awt.Font( "Dialog", java.awt.Font.BOLD, 12 ) );
cb_1_schliessen.setBackground( java.awt.Color.lightGray );
cb_1_schliessen.setForeground( java.awt.Color.black );
cb_1_schliessen.setEnabled(true);
cb_1_schliessen.setVisible(true);
}
catch( java.lang.Exception e_cb_1_schliessen ) {
e_cb_1_schliessen.printStackTrace();
}
try {
DUPositionComponent( (java.awt.Component)label_1_meldungen, 16, 5, 123, 10, formInsets );
label_1_meldungen.setText( "Client-und Server-Meldungen:" );
label_1_meldungen.setAlignment(java.awt.Label.LEFT);
label_1_meldungen.setFont( new java.awt.Font( "Dialog", java.awt.Font.BOLD, 12 ) );
label_1_meldungen.setBackground( java.awt.Color.lightGray );
label_1_meldungen.setForeground( java.awt.Color.black );
label_1_meldungen.setEnabled(true);
label_1_meldungen.setVisible(true);
}
catch( java.lang.Exception e_label_1_meldungen ) {
e_label_1_meldungen.printStackTrace();
}
try {
DUPositionComponent( (java.awt.Component)textf_1_eingaben, 16, 168, 341, 14, formInsets );
textf_1_eingaben.setFont( defaultFont );
textf_1_eingaben.setBackground( java.awt.Color.white );
textf_1_eingaben.setForeground( java.awt.Color.black );
textf_1_eingaben.setEnabled(true);
textf_1_eingaben.setVisible(true);
}
catch( java.lang.Exception e_textf_1_eingaben ) {
e_textf_1_eingaben.printStackTrace();
}
try {
cb_1_senden.addActionListener((java.awt.event.ActionListener)this);
DUPositionComponent( (java.awt.Component)cb_1_senden, 117, 202, 85, 19, formInsets );
cb_1_senden.setLabel( "Senden" );
cb_1_senden.setFont( new java.awt.Font( "Dialog", java.awt.Font.BOLD, 12 ) );
cb_1_senden.setBackground( new java.awt.Color( 137, 31, 31 ) );
cb_1_senden.setForeground( java.awt.Color.black );
cb_1_senden.setEnabled(true);
cb_1_senden.setVisible(true);
}
catch( java.lang.Exception e_cb_1_senden ) {
e_cb_1_senden.printStackTrace();
}
layout.setResizePercent(cb_1_verbinden,new java.awt.Rectangle(0,0,0,0));
layout.setResizePercent(texta_1_meldungen,new java.awt.Rectangle(0,0,0,0));
layout.setResizePercent(cb_1_schliessen,new java.awt.Rectangle(0,0,0,0));
layout.setResizePercent(label_1_meldungen,new java.awt.Rectangle(0,0,0,0));
layout.setResizePercent(textf_1_eingaben,new java.awt.Rectangle(0,0,0,0));
layout.setResizePercent(cb_1_senden,new java.awt.Rectangle(0,0,0,0));
socket_1.setRemoteHostName( "localhost" );
socket_1.setRemotePort( 1777 );
setResizable(true);
return retval;
}
public boolean create() throws java.lang.Exception
{
boolean retval = true;
retval = retval && createTheForm();
ChatClient_objectCreated( new powersoft.powerj.event.EventData( this ) );
setVisible(true);
return retval;
}
public synchronized boolean destroy()
{
if( (java.awt.Container)this instanceof java.awt.Window ) {
((java.awt.Window)(java.awt.Container)this).dispose();
} else {
removeNotify();
}
if( isMainForm() ) {
System.gc();
System.runFinalization();
System.exit(0);
}
return true;
}
private boolean defaultHandleEvent(java.awt.Event event)
{
defaultProcessEvent( new powersoft.powerj.event.AWTEvent( event ) );
return false;
}
private void defaultProcessEvent(java.awt.AWTEvent event)
{
super.processEvent(event);
}
public void windowClosed( java.awt.event.WindowEvent event )
{
}
public void windowOpened( java.awt.event.WindowEvent event )
{
}
public void windowClosing( java.awt.event.WindowEvent event )
{
java.lang.Object eventTarget = event.getSource();
if( eventTarget == this ) {
ChatClient_windowClosing( event );
} else {
unhandledEvent( "java.awt.event.WindowListener", "windowClosing", event );
}
}
public void windowIconified( java.awt.event.WindowEvent event )
{
}
public void windowActivated( java.awt.event.WindowEvent event )
{
}
public void windowDeiconified( java.awt.event.WindowEvent event )
{
}
public void windowDeactivated( java.awt.event.WindowEvent event )
{
}
public void socketConnect( powersoft.powerj.event.SocketConnectEvent event )
{
java.lang.Object eventTarget = event.getSource();
if( eventTarget == socket_1 ) {
socket_1_socketConnect( event );
} else {
unhandledEvent( "powersoft.powerj.event.SocketConnectListener", "socketConnect", event );
}
}
public void socketDataArrival( powersoft.powerj.event.SocketDataArrivalEvent event )
{
java.lang.Object eventTarget = event.getSource();
if( eventTarget == socket_1 ) {
socket_1_socketDataArrival( event );
} else {
unhandledEvent( "powersoft.powerj.event.SocketDataArrivalListener", "socketDataArrival", event );
}
}
public void socketError( powersoft.powerj.event.SocketErrorEvent event )
{
java.lang.Object eventTarget = event.getSource();
if( eventTarget == socket_1 ) {
socket_1_socketError( event );
} else {
unhandledEvent( "powersoft.powerj.event.SocketErrorListener", "socketError", event );
}
}
public void actionPerformed( java.awt.event.ActionEvent event )
{
java.lang.Object eventTarget = event.getSource();
if( eventTarget == menu_1_config ) {
menu_1_config_actionPerformed( event );
} else if( eventTarget == menu_1_close ) {
menu_1_close_actionPerformed( event );
} else if( eventTarget == cb_1_verbinden ) {
cb_1_verbinden_actionPerformed( event );
} else if( eventTarget == cb_1_schliessen ) {
cb_1_schliessen_actionPerformed( event );
} else if( eventTarget == cb_1_senden ) {
cb_1_senden_actionPerformed( event );
} else {
unhandledEvent( "java.awt.event.ActionListener", "actionPerformed", event );
}
}
public ChatClient()
{
super();
}
public ChatClient(java.lang.String remoteHostName, int remotePort)
{
super();
}
public void processEvent(java.awt.AWTEvent event)
{
defaultProcessEvent(event);
}
private void unhandledEvent( String listenerName, String methodName, java.lang.Object event )
{
}
public java.awt.Container getContentPane()
{
// Use the following if you inherit from a JFC container such as javax.swing.JFrame
// return super.getContentPane();
return this;
}
/**
* method1 Method
*/
private boolean ChatClient_objectCreated(powersoft.powerj.event.EventData event)
{
int remotePort;
java.lang.String remoteHostName;
remoteHostName = socket_1.getRemoteHostName();
remotePort = socket_1.getRemotePort();
texta_1_meldungen.append( "Client-Einstellungen: Host \""+remoteHostName+ "\" an Port \""
+remotePort+"\"\n");
socket_1.setAsynchronous( true );
return false;
}
private boolean ChatClient_windowClosing(java.awt.event.WindowEvent event)
{
setVisible(false);
destroy();
return false;
}
private void socket_1_socketConnect( powersoft.powerj.event.SocketConnectEvent event )
{
texta_1_meldungen.append( "Socket beim Server angemeldet\n" );
}
private void socket_1_socketDataArrival( powersoft.powerj.event.SocketDataArrivalEvent event )
{
String line;
int result;
int bytesReceived;
texta_1_meldungen.append("Daten angekommen\n");
bytesReceived=event.getBytesReceived();
byte [] buffer=new byte[bytesReceived];
result=socket_1.receive(buffer);
if (result>0) {
line = new String(buffer);
texta_1_meldungen.append(line);
}
}
private void socket_1_socketError( powersoft.powerj.event.SocketErrorEvent event )
{
java.lang.Object errorEvent;
texta_1_meldungen.append("Fehler am Socket aufgetreten:\n");
errorEvent=event.getSource();
texta_1_meldungen.append(" "+errorEvent.toString()+"\n");
}
private void menu_1_config_actionPerformed( java.awt.event.ActionEvent event )
{
modalConfig=new Config(this);
modalConfig.textf_1_rH.setText(socket_1.getRemoteHostName());
modalConfig.textf_1_rP.setText(Integer.toString(socket_1.getRemotePort()));
try {
modalConfig.create();
}catch (Exception e) {}
}
private void menu_1_close_actionPerformed( java.awt.event.ActionEvent event )
{
System.exit(0);
}
private void cb_1_verbinden_actionPerformed( java.awt.event.ActionEvent event )
{
socket_1.connect();
}
private void cb_1_schliessen_actionPerformed( java.awt.event.ActionEvent event )
{
System.out.println(socket_1.getRemoteHostName());
System.exit(1);
}
private void cb_1_senden_actionPerformed( java.awt.event.ActionEvent event )
{
java.lang.String text;
java.lang.String result;
byte[] buffer;
//Text aus Eingabefeld auslesen und senden
text = textf_1_eingaben.getText();
buffer = text.getBytes();
if(buffer.length >0){
result = new String(buffer);
socket_1.send( buffer);
texta_1_meldungen.append("Nachricht gesendet: " + result +"\n");
textf_1_eingaben.setText("");
textf_1_eingaben.requestFocus();
}
else{
texta_1_meldungen.append("Sie haben keinen Wert zum versenden eingegeben.\n");
textf_1_eingaben.requestFocus();
}
}
/****************************************
* data members
****************************************/
protected boolean __mainForm = false;
protected powersoft.powerj.net.Socket socket_1 = new powersoft.powerj.net.Socket();
protected java.awt.MenuBar menu_1 = new java.awt.MenuBar();
protected java.awt.Menu menu_1_optio = new java.awt.Menu("");
protected java.awt.MenuItem menu_1_config = new java.awt.MenuItem("");
protected java.awt.MenuItem menu_1_close = new java.awt.MenuItem("");
protected java.awt.Button cb_1_verbinden = new java.awt.Button();
protected java.awt.TextArea texta_1_meldungen = new java.awt.TextArea();
protected java.awt.Button cb_1_schliessen = new java.awt.Button();
protected java.awt.Label label_1_meldungen = new java.awt.Label();
protected java.awt.TextField textf_1_eingaben = new java.awt.TextField();
protected java.awt.Button cb_1_senden = new java.awt.Button();
// add your data members here
private Config modalConfig;
int remotePort;
java.lang.String remoteHostName;
}