Package org.jgroups.demos.wb

Source Code of org.jgroups.demos.wb.SendDialog

package org.jgroups.demos.wb;

import org.jgroups.blocks.GroupRequest;
import org.jgroups.blocks.MethodCall;
import org.jgroups.blocks.RpcDispatcher;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;



public class SendDialog extends Dialog implements ActionListener {
    private final TextArea       msg=new TextArea("");
    private final Font     default_font=new Font("Helvetica",Font.PLAIN,12);
    private RpcDispatcher  disp=null;
    private Node           dest=null;
    private String         sender=null;

   

    public SendDialog(Frame parent, Node dest, String src, RpcDispatcher disp) {
  super(parent, "Send message to " + dest.lbl + " at " + dest.addr, true);

  Panel      p1=new Panel(), p2=new Panel();
  Button     send=new Button("Send"), send_all=new Button("Send to all");
  Button     cancel=new Button("Cancel");

  this.disp=disp;
  this.dest=dest;
  sender=src;

  send.setFont(default_font);
  send_all.setFont(default_font);
  cancel.setFont(default_font);
  msg.setFont(default_font);

  p1.setLayout(new BorderLayout());
  p1.add(msg);

  p2.setLayout(new FlowLayout());
  send.addActionListener(this);
  send_all.addActionListener(this);
  cancel.addActionListener(this);
  p2.add(send); p2.add(send_all); p2.add(cancel);
 
  add("Center", p1);
  add("South", p2);

  setSize(300, 150);

  Point my_loc=parent.getLocation();
  my_loc.x+=50;
  my_loc.y+=150;
  setLocation(my_loc);
  show();
    }



    public String getMessage() {
  String retval=msg.getText();
  return retval.length() > 0 ? retval : null;
    }
   

    public void actionPerformed(ActionEvent e) {
  String  command=e.getActionCommand();
  String  retval=msg.getText();

  if(retval == null || retval.length() < 1) {
      dispose();
      return;
  }

  try {
    MethodCall call = new MethodCall("displayMessage", new Object[] {sender, retval},
      new String[] {String.class.getName(), String.class.getName()});
      if(command.equals("Send"))
      disp.callRemoteMethod(dest.addr, call, GroupRequest.GET_FIRST, 0);
      else if(command.equals("Send to all"))
      disp.callRemoteMethods(null, call, GroupRequest.GET_ALL, 0);
  }
  catch(Throwable ex) {
      System.err.println(ex);
  }
 
  dispose();
    }


}
TOP

Related Classes of org.jgroups.demos.wb.SendDialog

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.