Call Accept dialog pop up in Chat application

Hello,
I have made an Audio Video chat application in AS3 and using FMS as my server.I want to make the functionality of a call accept dialog box which pops up when one client wants to call another .Giving 2nd client the control to accept call or not like is done in Skype and all.Can anyone explain how will thisbe done using AS3.
Thanx in advance..

That would make for a quite a long tutorial, but to give you an idea of some sorts:
1. Keep track of each user that connects so that you can contact them directly
2. Notify the server side from the sending client side that they want to contact somebody, passing in the receiver's unique ID (that you create)
3. Server side figures out which user that is and send them a notification
4. Keep the state of the request on the server and client sides so that you can control how many requests they get etc
5. Respond by the receiver to the server passing back their user ID. The server side code should then go over a hash table of sorts to find out who was trying to contact them (you also have the option of course of just passing around users' IDs so you just pass back the sender's ID too)
6. Get the server to find the sender and respond appropriately.
Check out some tutorials here that cover a lot of server side coding best practices:
http://www.fmsguru.com/tutorials.cfm?tab=fms
That kind of functionality is covered in our chat application product too, but it's not free unfortunately.
Anyways, hope that helps with your question. It's a big deal building that kind of functionality in but can definitely be done with a bit of coding.

Similar Messages

  • When using Acrobat - Adobe Software License Agreement Pops Up - Accept doesn't seem to work - Application then automatically closes when existing the License Agreement pop up - Whats going on?

    When using Acrobat - Adobe Software License Agreement Pops Up - Accept doesn't seem to work - Application then automatically closes when existing the License Agreement pop up - Whats going on?

    Please try :
    Software License Agreement reappears after you click Accept
    Adobe's  "accept license agreement" pops up way too much and ruins UX
    Repeatedly asked to accept license agreement
    Hope it helps you.
    Regards
    Rajshree

  • When I call executeCommand, an Adobe Anywhere dialog pops up

    Hi,
    So when I use an executeCommand (which is the only way I can find to apply a layer style through script), the first time running the script upon opening AE, an Adobe Anywhere Sign In dialog pops up. I can get the script to work easily enough by hitting cancel, then undoing (since it runs the script incorrectly), then running the script again. This might seem like a minor annoyance, but this is a tool for a studio of artists who might get confused when they run into it, so I'l like to avoid it.
    Is there any way around this?

    I can't reproduce the behavior you're seeing (it works fine for me), but I don't have Adobe Anywhere. Maybe someone else will chime in.
    Dan

  • Jms chat application

    Hello
    I am writing an chat application using JMS. I choose to use this because I had to integrate this as a part of an enterprise solution. I had a look on the internet and found useful tutorials to get started with the basic JMS chat. Then I have written the basic MDB (ChatMDB.java) which actually does nothing but I have to extend the logic later to do message parsing using the onMessage hence I have just incorporated it in the system. (at the moment the MDB does absolutely nothing). All the JMS topic connection logic is in the JMSChat.java. The main method of the JMSChat accepts text from command line and it works fine at the moment. My ultimate goal is to have it ported on the web hence I have written a servlet (JMSServlet.java) that will call the read/write methods of the JMSChat.java.
    Am I heading in the correct direction? I am having problems deploying the application to the J2EE application server. How do I deploy it? Until then I cant test the new servlet part. Can anyone help?
    Thanks a lot!

    Hello
    Thanks for the reply. The model you have suggested is already been developed and tested but its working fine for the text client. I want to use it over the internet hence I have written a servlet as the frontend that calls the jms methods. This servlet front end is meant to be integrated with the rest of my J2EE application hence I need to deploy it on the J2EE server. I am facing problems doing same. I am unable to figure as to how to deploy the application. Can you please guide me with the same.
    Cheers

  • Call Save Dialog [Save As] is not allowing me to Bookmark in Portal

    Hi All,
    I am facing some problems trying to implement BEx bookmarking into my Portal. To explain a little further about our setup, we have a master web template which is connected to approximately 80+ queries. Within that web template, we have a button which has the CALL SAVE Dialog Save_As which should, in theory, allow users to bookmark their queries via the Portal.
    Unfortunately, this is not working and when a user attempts to bookmark a query and save it via the Portal, the following blank screen is displayed with this URL: http://PORT NUMBER/irj/portalapps/com.sap.portal.navigation.helperservice/html/child.html.
    If anyone could offer any insight into this issue I'd be truly grateful - THANKS!
    Bim

    Hi,
    There might be a technical Rollup
    When you restart the Application Host Helper Service on Windows Server 2008, it might help.
    Or, if not, why don't you try to take an backup of the existing queries & perform a backup. I'm sure the error can be resolved.
    Thanks,
    Arun Bala G

  • Null pointer exception in jsp ,data missing in chat application

    Hi all....
    I have a chat application in jsp using ajax.I have opened a d/b connection in a jsp which is called each time I sent a message.But sometimes I get null pointer exception in this page when msgs are sent so fast...also I miss some of the msgs I sent....I can't avoid that connection ther..When I commented all those d/b connection statements...everything is working fine..Please suggest me any solution...
    Thanks in advance.

    Hi,
    Am not getting exception now.In the jsp wer I ve written connection,am taking some values using request.getParameter("msg") . I had opened the connection statement before getting these parameter values.Think I ws getting null pointer exception due to this.Now I have opened connection after getting these parameter values...anyway am not getting the exception now...
    Thanks.

  • Urgent need of help with a chat application!

    Hi,
    I'm writing a Chat Application and I want to add Emoticon, I did so by adding buttons but I don't know how to send the gif to my JTextField and to my JTextArea.
    Here is part of my code can someone can help me PLEASE!!!
    JPanel chatPane = new JPanel(new BorderLayout());
    JPanel emoticon = new JPanel(new GridLayout(2, 5));
    b1 = new JButton (sourrire);
    b1.setToolTipText("Un Sourire");
    // b1.addActionListener();
    emoticon.add(b1);
    b2 = new JButton (gsourrire);
    b2.setToolTipText("Un Grand Sourire");
    // b2.addActionListener();
    emoticon.add(b2);
    b3 = new JButton (triste);
    b3.setToolTipText("Triste");
    // b3.addActionListener();
    emoticon.add(b3);
    b4 = new JButton (grimace);
    b4.setToolTipText("Grimace");
    // b4.addActionListener();
    emoticon.add(b4);
    b5 = new JButton (pleure);
    b5.setToolTipText("Pleure");
    // b5.addActionListener();
    emoticon.add(b5);
    b6 = new JButton (bec);
    b6.setToolTipText("Un bec");
    // b6.addActionListener();
    emoticon.add(b6);
    b7 = new JButton (coeur);
    b7.setToolTipText("Un coeur pour toi");
    // b7.addActionListener();
    emoticon.add(b7);
    b8 = new JButton (fache);
    b8.setToolTipText("Fache");
    // b8.addActionListener();
    emoticon.add(b8);
    b9 = new JButton (lunettes);
    b9.setToolTipText("Je suis Cool");
    // b9.addActionListener();
    emoticon.add(b9);
    b10 = new JButton (clinoeil);
    b10.setToolTipText("Clin d'Oeil");
    //b10.addActionListener(new ActionAdapter2());
    emoticon.add(b10);
    Thanks a lot!
    Isabelle

    Hi anoopjain13
    what I did is that each button is an IconImage and I was trying to send the Icon to the textfield.
    here is the complete code of my chat, you'll understand better what I tried to do.
    //Naziha Berrassil et Isabelle Gosselin
    //Travail Pratique #1
    //remis � Said Senhaji
    //Developpement d'une application CHAT
    //package chatv2.a
    import java.lang.*;
    import java.util.*;
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.net.*;
    public class TCPChat2a implements Runnable {
    // Constantes de l'etat de la connection
    public final static int NULL = 0;
    public final static int DISCONNECTED = 1;
    public final static int DISCONNECTING = 2;
    public final static int BEGIN_CONNECT = 3;
    public final static int CONNECTED = 4;
    // Declaration d'un tableau de chaines
    public final static String statusMessages[] = {
    " Erreur! Aucune connexion possible!", " Deconnexion",
    " Deconnexion en cours...", " Connexion en cours...", " Connexion"
    //Instentiation de la classe
    public final static TCPChat2a tcpObj = new TCPChat2a();
    // Indique la fin d'une session
    public final static String END_CHAT_SESSION =
    new Character((char)0).toString();
    // Informations sur l'etat de la connexion
    public static String hostIP = "localhost";
    public static String user = "";
    public static String s1;
    public static int port = 1234;
    public static int connectionStatus = DISCONNECTED;
    public static boolean isHost = true;
    public static String statusString = statusMessages[connectionStatus];
    public static StringBuffer toAppend = new StringBuffer("");
    public static StringBuffer toSend = new StringBuffer("");
    // Declaration des composantes GUI et initialisation
    public final static ImageIcon sourrire = new ImageIcon ("icons/sourrire.gif");
    public static JButton b1;
    public final static ImageIcon gsourrire = new ImageIcon ("icons/grand_sourrire.gif");
    public static JButton b2;
    public final static ImageIcon triste = new ImageIcon ("icons/triste.gif");
    public static JButton b3;
    public final static ImageIcon pleure = new ImageIcon ("icons/pleure.gif");
    public static JButton b4;
    public final static ImageIcon coeur = new ImageIcon ("icons/coeur.gif");
    public static JButton b5;
    public final static ImageIcon grimace = new ImageIcon ("icons/grimace.gif");
    public static JButton b6;
    public final static ImageIcon lunettes = new ImageIcon ("icons/lunettes.gif");
    public static JButton b7;
    public final static ImageIcon fache = new ImageIcon ("icons/fache.gif");
    public static JButton b8;
    public final static ImageIcon bec = new ImageIcon ("icons/bec.gif");
    public static JButton b9;
    public final static ImageIcon clinoeil = new ImageIcon ("icons/clinoeil.gif");
    public static JButton b10;
    public static JFrame mainFrame = null;
    public static JTextArea chatText = null;
    public static JTextField chatLine = null;
    public static JPanel statusBar = null;
    public static JLabel statusField = null;
    public static JTextField statusColor = null;
    public static JTextField ipField = null;
    public static JTextField username = null;
    public static JTextField portField = null;
    public static JRadioButton hostOption = null;
    public static JRadioButton guestOption = null;
    public static JButton connectButton = null;
    public static JButton disconnectButton = null;
    // Declaration des composantes TCP
    public static ServerSocket hostServer = null;
    public static Socket socket = null;
    public static BufferedReader in = null;
    public static PrintWriter out = null;
    //Methode qui retourne le premier pannel(optionsPane),ce dernier
    //se compose de 5 panneaux
    private static JPanel initOptionsPane() {
    //pannel pane qui sera ajout� au pannel optionsPane
    JPanel pane = null;
    //initiation de la classe ActionAdapteur qui implemente ActionListner
    ActionAdapter buttonListener = null;
    // Creation du pannel optionsPane
    JPanel optionsPane = new JPanel(new GridLayout(5, 1));
    // 1er pannel pane pour label et textfield de l'adresse IP
    pane = new JPanel(new FlowLayout(FlowLayout.RIGHT));
    pane.add(new JLabel("Serveur IP:"));
    ipField = new JTextField(10);
    ipField.setBackground(new Color(0.98f, 0.97f, 0.85f));
    ipField.setText(hostIP);
    ipField.setEnabled(false);
    //evenement generer par Component avec la methode addFocusListener
    //en cas d'obtention ou perte du focus par un composant
    ipField.addFocusListener(new FocusAdapter() {
    public void focusLost(FocusEvent e) {
    ipField.selectAll();
    //Editable seulement en mode deconnexion
    if (connectionStatus != DISCONNECTED) {
    changeStatusNTS(NULL, true);
    else {
    hostIP = ipField.getText();
    pane.add(ipField);
    optionsPane.add(pane);
    // 2eme pannel pane pour label et textfield du port
    pane = new JPanel(new FlowLayout(FlowLayout.RIGHT));
    pane.add(new JLabel("Port:"));
    portField = new JTextField(10);
    portField.setBackground(new Color(0.98f, 0.97f, 0.85f));
    portField.setEditable(true);
    portField.setText((new Integer(port)).toString());
    portField.addFocusListener(new FocusAdapter() {
    public void focusLost(FocusEvent e) {
    //Textfield du port modifiable si on est en mode deconnexion
    if (connectionStatus != DISCONNECTED) {
    changeStatusNTS(NULL, true);
    else {
    int temp;
    try {
    temp = Integer.parseInt(portField.getText());
    port = temp;
    catch (NumberFormatException nfe) {
    portField.setText((new Integer(port)).toString());
    mainFrame.repaint();
    pane.add(portField);
    optionsPane.add(pane);
    // 3eme pannel pour label et textfield du nom d'utilisateur
         pane = new JPanel(new FlowLayout(FlowLayout.RIGHT));
              pane.add(new JLabel("Nom: "));
              username = new JTextField(10);
    username.setBackground(new Color(0.98f, 0.97f, 0.85f));
              username.setText(user);
              username.setEnabled(true);
              username.addFocusListener(new FocusAdapter() {
              public void focusLost(FocusEvent e) {
              // username.selectAll();
              // Should be editable only when disconnected
              if (connectionStatus != DISCONNECTED) {
              changeStatusNTS(NULL, true);
              else {
              user = username.getText();
              pane.add(username);
    optionsPane.add(pane);
    // Host/guest option
    buttonListener = new ActionAdapter() {
    public void actionPerformed(ActionEvent e) {
    if (connectionStatus != DISCONNECTED) {
    changeStatusNTS(NULL, true);
    else {
    isHost = e.getActionCommand().equals("host");
    // Cannot supply host IP if host option is chosen
    if (isHost) {
    ipField.setEnabled(false);
    ipField.setText("localhost");
    hostIP = "localhost";
    else {
    ipField.setEnabled(true);
    //creation de boutton groupe radio(serveur et invite)
    ButtonGroup bg = new ButtonGroup();
    hostOption = new JRadioButton("Serveur", true);
    hostOption.setMnemonic(KeyEvent.VK_S);
    hostOption.setActionCommand("host");
    hostOption.addActionListener(buttonListener);
    guestOption = new JRadioButton("Invite", false);
    guestOption.setMnemonic(KeyEvent.VK_I);
    guestOption.setActionCommand("invite");
    guestOption.addActionListener(buttonListener);
    bg.add(hostOption);
    bg.add(guestOption);
    // 4eme pannel pane pour les 2 bouttons radio
    pane = new JPanel(new GridLayout(1, 2));
    pane.add(hostOption);
    pane.add(guestOption);
    optionsPane.add(pane);
    // 5eme pannel buttonPane pour les bouttons de connexion et deconnexion
    JPanel buttonPane = new JPanel(new GridLayout(1, 2));
    buttonListener = new ActionAdapter() {
    public void actionPerformed(ActionEvent e) {
    // requete pou debut d'une connexion
    if (e.getActionCommand().equals("connect")) {
    changeStatusNTS(BEGIN_CONNECT, true);
    // Deconnexion
    else {
    changeStatusNTS(DISCONNECTING, true);
    //creation des bouttons dans le pannel et l'ajout au premier pannel
    //(optionsPane)
    connectButton = new JButton("Connexion");
    connectButton.setMnemonic(KeyEvent.VK_C);
    connectButton.setActionCommand("connect");
    connectButton.addActionListener(buttonListener);
    connectButton.setEnabled(true);
    disconnectButton = new JButton("Deconnexion");
    disconnectButton.setMnemonic(KeyEvent.VK_D);
    disconnectButton.setActionCommand("disconnect");
    disconnectButton.addActionListener(buttonListener);
    disconnectButton.setEnabled(false);
    buttonPane.add(connectButton);
    buttonPane.add(disconnectButton);
    optionsPane.add(buttonPane);
    return optionsPane;
    // Initialisation de toutes les composantes GUI et affichage du frame
    private static void initGUI() {
    // Configuration du status bar
    // cr�ation d'un autre pannel statusBar qui se compose d'un petit carr�
    // color� et un label indiquant le mode de connexion
    statusField = new JLabel(); //Label indiquant l'�tat de la connexion
    statusField.setText(statusMessages[DISCONNECTED]);
    statusColor = new JTextField(1); //carr� color� indiquant l'�tat de la connection grace a des couleurs
    statusColor.setBackground(Color.red);
    statusColor.setEditable(false);
    statusBar = new JPanel(new BorderLayout());
    statusBar.add(statusColor, BorderLayout.WEST);
    statusBar.add(statusField, BorderLayout.CENTER);
    // Configuration du pannel optionsPane en appelant la methode d'initiation
    // de ce dernier
    JPanel optionsPane = initOptionsPane();
    // Creation et configuration du pannel chatPane qui contient un
    // textarea au centre avec une barre defilante verticale et un textfield
    // au sud pour faire rentrer les messages
    JPanel chatPane = new JPanel(new BorderLayout());
         JPanel emoticon = new JPanel(new GridLayout(2, 5));
    b1 = new JButton (sourrire);
    b1.setToolTipText("Un Sourire");
    // b1.addActionListener();
    emoticon.add(b1);
    b2 = new JButton (gsourrire);
    b2.setToolTipText("Un Grand Sourire");
    // b2.addActionListener();
    emoticon.add(b2);
    b3 = new JButton (triste);
    b3.setToolTipText("Triste");
    // b3.addActionListener();
    emoticon.add(b3);
    b4 = new JButton (grimace);
    b4.setToolTipText("Grimace");
    // b4.addActionListener();
    emoticon.add(b4);
    b5 = new JButton (pleure);
    b5.setToolTipText("Pleure");
    // b5.addActionListener();
    emoticon.add(b5);
    b6 = new JButton (bec);
    b6.setToolTipText("Un bec");
    // b6.addActionListener();
    emoticon.add(b6);
    b7 = new JButton (coeur);
    b7.setToolTipText("Un coeur pour toi");
    // b7.addActionListener();
    emoticon.add(b7);
    b8 = new JButton (fache);
    b8.setToolTipText("Fache");
         // b8.addActionListener();
         emoticon.add(b8);
    b9 = new JButton (lunettes);
    b9.setToolTipText("Je suis Cool");
    // b9.addActionListener();
    emoticon.add(b9);
    b10 = new JButton (clinoeil);
    b10.setToolTipText("Clin d'Oeil");
    //b10.addActionListener(new ActionAdapter2());
    emoticon.add(b10);
    emoticon.addActionListener(new ActionAdapter() {
    public void actionPerformed(ActionEvent e) {
                             String image = chatLine.setImage().toString();
                             appendToChatBox(image);
                             chatLine.selectAll();
                             sendString(image)
                             chatLine.setText(" ");
    emoticon.setVisible(true);
    //b1 = setVisible(true);
    chatText = new JTextArea(10, 100);
    chatText.setBackground(new Color(0.98f, 0.97f, 0.85f));
    chatText.setLineWrap(true);
    chatText.setEditable(false);
    chatText.setForeground(Color.blue);
    JScrollPane chatTextPane = new JScrollPane(chatText,
    JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
    JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    chatLine = new JTextField(10);
    chatLine.setBackground(new Color(0.98f, 0.97f, 0.85f));
    chatLine.setForeground(Color.blue);
    chatLine.setEnabled(false);
    chatLine.addActionListener(new ActionAdapter() {
    public void actionPerformed(ActionEvent e) {
    String s = chatLine.getText();
    if (!s.equals("")) {
    appendToChatBox(user=username.getText()+" dit : \n" + s + "\n");
    chatLine.selectAll();
    // Envoi de la chaine entr�e
    sendString(s);
    chatLine.setText("");
    chatPane.add(chatLine, BorderLayout.SOUTH);
    chatPane.add(chatTextPane, BorderLayout.NORTH);
    chatPane.setPreferredSize(new Dimension(300, 300));
         chatPane.add(emoticon, BorderLayout.CENTER);
    // Ajout des pannels dans le pannel principal (mainPane)
    JPanel mainPane = new JPanel(new BorderLayout());
    mainPane.add(statusBar, BorderLayout.SOUTH);
    mainPane.add(optionsPane, BorderLayout.WEST);
    mainPane.add(chatPane, BorderLayout.CENTER);
    // Configuration du frame (mainFrame)
    mainFrame = new JFrame("Chat");
    mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    // la m�thode setDefaultCloseOperation(int)provient de la classe javax.swing.JDialog
         // Elle specifi l'op�ration qui sera ex�cut�e par d�fault lorsque
         // l'utilisateur initialisera une fermeture de session
    mainFrame.setContentPane(mainPane);
    mainFrame.setSize(mainFrame.getPreferredSize());
         // la m�thode getPreferredSize() provient de la classe java.awt
         // Retourne la grosseur "pr�f�r�e" du container.
    mainFrame.setLocation(200, 200);
    // la m�thode setLocation(double, double) provient de la classe java.awt.Point
         // elle permet de specifiez un emplacement d'un point a des coordonn�es de type Float
    mainFrame.pack();
    // la m�thode pack() provient de la class AWT.Window, elle permet a la fenetre
    // d'�tre ajuster a la grosseur et a la mise en page des sous-composantes de celle-ci
    mainFrame.setVisible(true);
    // Le thread qui permet le changement des composantes GUI pendant le
    // changement de l'etat
    private static void changeStatusTS(int newConnectStatus, boolean noError) {
    // Changer l'etat si valide
    if (newConnectStatus != NULL) {
              connectionStatus = newConnectStatus;
    // S'il n'y a aucunes erreur, afficher le bon message de l'etat
    if (noError) {
    statusString = statusMessages[connectionStatus];
    // Autrement, afficher le message d'erreur
    else {
    statusString = statusMessages[NULL];
    System.out.println("Echec lors de la connexion");
    // Appel a la routine de run()(Runnable interface) sur la gestion des erreurs
    // et la mise a jours des composantes GUI grace au thread
    SwingUtilities.invokeLater(tcpObj);
    // Le changement des composantes GUI sans aucun pendant le
    // changement de l'etat
    private static void changeStatusNTS(int newConnectStatus, boolean noError) {
    // Changer l'etat si valide
    if (newConnectStatus != NULL) {
    connectionStatus = newConnectStatus;
    // S'il n'y a aucunes erreur, afficher le bon message de l'etat
    if (noError) {
    statusString = statusMessages[connectionStatus];
    // Autrement, afficher le message d'erreur
    else {
    statusString = statusMessages[NULL];
    // Appel a la routine de run()(Runnable interface) sur la gestion des erreurs
    // en utilisant le thread
    tcpObj.run();
    // L'ajout au chat box avec l'utilisation du Thread
    private static void appendToChatBox(String s) {
    synchronized (toAppend) {
    toAppend.append(s);
    System.out.println(s);
    // Ajouter le text au "send-buffer"
    private static void sendString(String s) {
    synchronized (toSend) {
    toSend.append(user=username.getText()+ " dit : \n" + s + "\n");
    // Nettoyage pour le debranchement
    private static void cleanUp() {
    try {
    if (hostServer != null) {
    hostServer.close();
    hostServer = null;
    catch (IOException e) { hostServer = null; }
    try {
    if (socket != null) {
    socket.close();
    socket = null;
    catch (IOException e) { socket = null; }
    try {
    if (in != null) {
    in.close();
    in = null;
    catch (IOException e) { in = null; }
    if (out != null) {
    out.close();
    out = null;
    // Verification de l'etat courrant et ajustement de "enable/disable"
    // en fonction de l'etat
    public void run() {
    switch (connectionStatus) {
    case DISCONNECTED:
    connectButton.setEnabled(true);
    disconnectButton.setEnabled(false);
    ipField.setEnabled(true);
    portField.setEnabled(true);
    username.setEnabled(true);
    hostOption.setEnabled(true);
    guestOption.setEnabled(true);
    chatLine.setText("");
    chatLine.setEnabled(false);
    statusColor.setBackground(Color.red);
    break;
    case DISCONNECTING:
    connectButton.setEnabled(false);
    disconnectButton.setEnabled(false);
    ipField.setEnabled(false);
    portField.setEnabled(false);
    hostOption.setEnabled(false);
    guestOption.setEnabled(false);
    chatLine.setEnabled(false);
    statusColor.setBackground(Color.orange);
    break;
    case CONNECTED:
    connectButton.setEnabled(false);
    disconnectButton.setEnabled(true);
    ipField.setEnabled(false);
    portField.setEnabled(false);
    hostOption.setEnabled(false);
    username.setEnabled(false);
    guestOption.setEnabled(false);
    chatLine.setEnabled(true);
    statusColor.setBackground(Color.green);
    break;
    case BEGIN_CONNECT:
    connectButton.setEnabled(false);
    disconnectButton.setEnabled(false);
    ipField.setEnabled(false);
    portField.setEnabled(false);
    hostOption.setEnabled(false);
    username.setEnabled(false);
    guestOption.setEnabled(false);
    chatLine.setEnabled(true);
    chatLine.grabFocus();
    statusColor.setBackground(Color.orange);
    break;
    // S'assurer que l'etat des champs bouton/texte sont consistent
    // avec l'etat interne
    ipField.setText(hostIP);
    portField.setText((new Integer(port)).toString());
    hostOption.setSelected(isHost);
    guestOption.setSelected(!isHost);
    statusField.setText(statusString);
    chatText.append(toAppend.toString());
    toAppend.setLength(0);
    mainFrame.repaint();
    // Procedure principale
    public static void main(String args[]) {
    String s;
    initGUI();
    while (true) {
    try {
    Thread.sleep(10);
         // Verification a toute les 10 ms
    catch (InterruptedException e) {}
    switch (connectionStatus) {
    case BEGIN_CONNECT:
    try {
    // Essai de configuration du serveur si "host"
    if(user != ""){
         if (isHost) {
         hostServer = new ServerSocket(port);
         socket = hostServer.accept();
         // Si invit�, essai de branchement au serveur
         else {
         socket = new Socket(hostIP, port);
    in = new BufferedReader(new
    InputStreamReader(socket.getInputStream()));
    out = new PrintWriter(socket.getOutputStream(), true);
    changeStatusTS(CONNECTED, true);
    System.out.println("Ouverture de la session: \n" + socket);
              else{
              JOptionPane.showMessageDialog(null, "Erreur, vous devez entrer un nom d'utilisateur", "Erreur", JOptionPane.PLAIN_MESSAGE);
                        changeStatusTS(DISCONNECTED, false);
    // Si erreur, nettoyage et envoi du message d'erreur
    catch (IOException e) {
    cleanUp();
    changeStatusTS(DISCONNECTED, false);
    break;
    case CONNECTED:
    try {
    // Envoi de data
    if (toSend.length() != 0) {
    out.print(toSend);
    out.flush();
    toSend.setLength(0);
    changeStatusTS(NULL, true);
    // Reception de data
    if (in.ready()) {
    s = in.readLine();
    if ((s != null) && (s.length() != 0)) {
    // Verification de la fin de la transmission
    if (s.equals(END_CHAT_SESSION)) {
    changeStatusTS(DISCONNECTING, true);
    // Autrement, reception du texte
    else {
    appendToChatBox( s + "\n");
    changeStatusTS(NULL, true);
    catch (IOException e) {
    cleanUp();
    changeStatusTS(DISCONNECTED, false);
    break;
    case DISCONNECTING:
    // Dis aux autres fenetre de chat de se d�brancher aussi
    out.print(END_CHAT_SESSION);
    out.flush();
                   System.out.println("Fermeture de la session");
    // Nettoyage (ferme les streams/sockets)
    cleanUp();
    changeStatusTS(DISCONNECTED, true);
    break;
    default: break; // ne fait rien
    // Certaines interfaces �couteurs sont accompagn�es d'adaptateurs qui
    //implementent toutes les methodes de l'interface et evitent de les lister.
    class ActionAdapter implements ActionListener {
    public void actionPerformed(ActionEvent e) {}
    ////////////////////////////////////////////////////////////////////

  • Dear Sir, i have problem in my Iphone 5 that during receiving any calls always appeare message that error in application occurred please call support quoting error code 2907. I need to solve my problem

    Dear Sir, i have problem in my Iphone 5 that during receiving any calls always appeare message that error in application occurred please call support quoting error code 2907. I need to solve my problem.

    The problem this message always appeare when receiving the calls and requesting either accept or cancel.
    Can you advice me if i have wrong application or i need to remove some applications.

  • What are the advantages of utilizing a dynamic VI compared to utilizing the VI Call Configuration Dialog Box Reload for each call option?

    Is it more efficient to use a dynamic VI or utilize the VI Call Configuration Dialog Box which apparently can perform the same function? I realize that there are restrictions on using the VI Call Configuration Dialog Box, however, if my scenario doesn't concern the restrictions, why would I want to go thru the trouble of creating a dynamic VI when I could simply click on the VI of interest and configure from a menu? Are there performance advantages? Thanks in advance!

    Generally, I wouldn't recommend playing with the call setup dialog at all (for those who don't know it, you can get to it by right clicking a subVI in the BD). By default, VIs are configured to load with callers and that's the correct options for almost all static VIs. The Open VI Reference primitive has multiple advantages:
    It allows you to select different VIs dynamically.
    It allows you to spawn multiple copies of reentrant VIs.
    It allows you to perform asynch runs (although I think that this is something that should actually be available through the call setup dialog).
    It allows you to open references to VIs in other application instances.
    In the rare cases where you do want the same functionality that the call setup dialog gives you, it doesn't hide it.
    Try to take over the world!

  • How to create smileys in a chat application?

    Hello, i developped a chat application in java
    i use a JFrame, and to put the dialogs, i use a DefaultListModel.
    how can i print smileys ?
    the defaultlistmodel works for printing String, not pictures.
    Can you help me ?

    Hello, i developped a chat application in java
    i use a JFrame, and to put the dialogs, i use a
    DefaultListModel.
    how can i print smileys ?
    the defaultlistmodel works for printing String, not
    pictures.When you say your using DefaultListModel I assume your using it with a JList because otherwise its really pointless. You won't do this code in the list model you will have to do it with the JList by making your own renderer. Take a look at this link here is a good example of using an image in a list. I don't think they have text and an image in the same row of the list, but that shouldn't be too hard to add on your own.
    http://www.codeguru.com/java/articles/449.shtml

  • Updating Applet in chat application in browser

    iam developing a chat application in browser using
    1.Http connection and no sockets
    2.Using applet iam sending messages to servlet in server and servlet handles the client request
    My problem
    how to update every clients connected to the server.
    (ie i want to pump the data that is recieved from one client to every one)

    If no socket connections is totally necessary then you could accomplish this task with this process using javascript as well as java.
    1. In your html web page that will contain the chat window. Create an html "Form" set the "Name" attribute for it. The chat window will be of input type "TEXTAREA" it will also have to have a "NAME" attribute set for it. Next create a new "Form" set the "Name" attribute.
    In the same new form add another input type of "TEXTFIELD" set the "Name" attribute and the "MAXSIZE" attribute if you want to limit the number of letters the text field will accept. Next in the same form add another input type of "SUBMIT" and add
    your servlet as an attribute.
    2. Construct your servlet in a manner that will receive
    the forms text field data by accessing "getParamater"
    method also create a "Cookie" object. As requests are sent to the servlet append the new text to the cookie object and send the new web page with the old cookie
    out to all sessions.
    3. Set the refresh time for your web page with the chat
    window to a reasonable amount of time.
    4. Add javascript to the web page. In the BODY tag of the html page add the javascript function onLoad="someFunction()". You will also have to add
    someFunction to the HEAD tag of the web page
    by doing something like this.
    <HEAD>
    <SCRIPT Language="javascript">
    function someFunction() {
    document.forms.<form name>.<text area name>.setText(document.cookie.cookieName.getValue())
    </SCRIPT>
    </HEAD>
    There may be some inconsistencies in these instructions,
    but its functionality is sound. Good luck.

  • How to make video chat application smarter ?

    Hi all,
       I am implementing a video chat application which is working fine in high bandwith, but it is not working well on lower bandwith (200Kbps - 500Kbps). Please help me to over come the above constraint. Please find the video resolution details as below:
         1)  Video resolution : 640 x 480 (24fps , KeyFrame interval 15) -- publishing
         2) Video resolution : 320 x 240 (24fps , KeyFrame interval 15) -- Playback
    The above two are freezed. The following are the required to achieve
       1)  If bandwidht is low show an alert to the user
       2)  Detect speakers are not connected to the machine
       3)  Detect download / Upload speed of network
    Please help me to achieve the above.
    Thanks in advance.

    If you're sending keyframe intervals at every 3 frames (unless you meant seconds?) you're using way too much bandwidth. Nobody can really tell you the "perfect" bandwidth for those settings because lossy compression works on the hope that "some" part of the video will remain the same frame to frame.
    With lossy spatinal compression it analyzes the previous frame and the current frame looking for differences. If you have a person chatting in a room where nothing behind them is moving (no objects, people, tvs, etc), the bandwidth will be very minimal. With a normal keyframe interval set at "96" I would wager you could get away with an acceptable picture at 450kbit video, 23kbit mono audio. 320x240@24 same 96kf interval, just half it to 225/23.
    If the chat user is in a very busy environment behind themselves then these settings will be far too low. In a very busy background at 640x480@24f 96kf you could spike over 1mbit just in video and still see plenty of compression.
    If you did either of those and set your keyframe interval at "3", double the bandwidth at minimum. KF interval at 3 is saying every 3rd frame, or 8 times per second, send a "full frame" worth of data. That's way too much. In the highest end video I even put online I never go lower than once per second in extremely busy videos, unless I need seriously granular seek on HTTP progressive video.
    FYI the 23kbit audio comes from the SPEEX codecs quality setting on the Microphone:
    http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Microphone. html#encodeQuality
    That'd be setting:
    _micPhone.encodeQuality = 7;
    You might want to do yourself a favor and give the user simple controls to adjust their own settings. A video bandwidth/quality slider, same for audio. Behind the scenes just ramp up the bandwidth. The user can choose what works for their specific situation without you needing to find a magic formula.

  • How to call a dialog program with return value in another dialog program

    Dear All,
    How can I call a dialog program with return value from another dialog program?
    Regards,
    Alok.

    Hi Alok,
    You can you SET/GET parameters to do this.
    This is some information about this.
    To fill the input fields of a called transaction with data from the calling program, you can use the SPA/GPA technique. SPA/GPA parameters are values that the system stores in the global, user-specific SAP memory. SAP memory allows you to pass values between programs. A user can access the values stored in the SAP memory during one terminal session for all parallel sessions. Each SPA/GPA parameter is identified by a 20-character code. You can maintain them in the Repository Browser in the ABAP Workbench. The values in SPA/GPA parameters are user-specific.
    ABAP programs can access the parameters using the SET PARAMETER and GET PARAMETERstatements.
    To fill one, use:
    SET PARAMETER ID pid FIELD f.
    This statement saves the contents of field f under the ID pid in the SAP memory. The ID pid can be up to 20 characters long. If there was already a value stored under pid, this statement overwrites it. If you double-click pid in the ABAP Editor, parameters that do not exist can be created as a Repository object.
    To read an SPA/GPA parameter, use:
    GET PARAMETER ID pid FIELD f.
    This statement places the value stored under the pid ID into the variable f. If the system does not find any value for pid in the SAP memory, sy-subrc is set to 4. Otherwise, it sets the value to 0.
    Thanks,
    SriRatna

  • How to call a Dialog Program from another Dialog Program

    Dear All,
    How can I call a dialog program with return value from another dialog program?
    Regards,
    Alok.

    Hi Alok,
    1. Insted of creating 2 different Dialog program. It's good to create as many screens as you want in same module pool program. Any way you can use the different TCODE for each screen.
    2. Another and The best way is to create a function group and then inside function group use the function 2 module... In the function group define a global variable which will be present for both the function group if they are getting executed in sequence. and inside the Function Module call the screens using command " call screen <screenno>".
    3. You can use set / get parameter to pass values of a field between two dynpro program.

  • How can i call a jasper report from a java Application

    Hi,
    i am chiranjit , currently i working in a web based ERP project, in this project as a report building tool we are using JasperReport wih eclipse plugin . in eclipse report's are generating very well but i am unable to call that report from a java application because i have no idea about the How to call a Jasper Report from a Java Application . so please send me the necessary class names, jar files names and programe code as early as possible.
    Chiranjit

    Ahh, kind of a duplicate thread:
    http://forums.java.sun.com/thread.jspa?threadID=631642
    @OP. You could have clarified your original post and the relationship of your question to java. You did not need a new thread.
    � {�                                                                                                                                                                                                                                                                                                                                                                                                                                                               

Maybe you are looking for