Ejemplo n.º 1
0
  public void onWho(ActionEvent actionEvent) {
    StandardDialog dlg = new StandardDialog();
    dlg.setTitle("Your name and address");

    String strName = prefs.get(NAME, server.ip + ":" + server.port);

    JTextField name = new JTextField(strName),
        ip = new JTextField(server.ip),
        port = new JTextField(server.port + "");
    ip.setEditable(false);
    port.setEditable(false);

    LabelledItemPanel myContentPane = new LabelledItemPanel();
    myContentPane.setBorder(BorderFactory.createEtchedBorder());
    myContentPane.addItem("Your name", name);
    myContentPane.addItem("", new JLabel("Tell your buddy the follows:"));
    myContentPane.addItem("Your IP", ip);
    myContentPane.addItem("Your port", port);

    dlg.setContentPane(myContentPane);
    dlg.setSize(300, 300);
    GUIUtils.centerWithinScreen(dlg);
    dlg.setVisible(true);

    if (!dlg.hasUserCancelled()) {
      prefs.put(NAME, name.getText());
      server.myName = name.getText();
    }
  }
Ejemplo n.º 2
0
 public Messenger() {
   try {
     server.start();
     jbInit();
   } catch (Exception exception) {
     exception.printStackTrace();
   }
 }
Ejemplo n.º 3
0
  // add a buddy
  public void onAdd(ActionEvent actionEvent) {
    String strName = prefs.get(NAME, null);
    if (strName == null || strName.trim().length() == 0) {
      JOptionPane.showMessageDialog(this, "Please set your name first");
      onWho(actionEvent);
    }
    if (strName == null || strName.trim().length() == 0) {
      return;
    }
    StandardDialog dlg = new StandardDialog();
    dlg.setTitle("Buddy information");

    JTextField ip = new JTextField(), port = new JTextField();

    LabelledItemPanel myContentPane = new LabelledItemPanel();
    myContentPane.setBorder(BorderFactory.createEtchedBorder());
    myContentPane.addItem("", new JLabel("Please ask buddy his/her:"));
    myContentPane.addItem("IP", ip);
    myContentPane.addItem("port", port);

    dlg.setContentPane(myContentPane);
    dlg.setSize(300, 200);
    GUIUtils.centerWithinScreen(dlg);
    dlg.setVisible(true);

    if (!dlg.hasUserCancelled()) {
      String buddyHost = ip.getText();
      String buddyPort = port.getText();

      if (buddyHost.equals(server.ip) && buddyPort.equals(server.port + "")) {
        JOptionPane.showMessageDialog(this, "Well, why talk with yourself?");
        return;
      }

      // ask buddy's name
      String buddyName = server.addBuddy(buddyHost, buddyPort);
      if (buddyName == null || MoAgent.FAIL.equals(buddyName)) {
        JOptionPane.showMessageDialog(this, "Buddy is not answering!");
      } else {
        Buddy b = new Buddy();
        b.name = buddyName;
        b.host = buddyHost;
        b.port = buddyPort;
        b.myID = server.myName;
        lstModel.addElement(b);
      }
    }
  }
Ejemplo n.º 4
0
  private void jbInit() throws Exception {
    messageMap();

    getContentPane().setLayout(borderLayout1);
    btnWho.setText("@");
    btnWho.setToolTipText("Who am I? Set your id and get your address");
    this.getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);
    jScrollPane1.getViewport().add(buddyList);
    btnAdd.setText("+");
    btnAdd.setToolTipText("Add Buddy");

    btnAbout.setText("?");
    btnAbout.setToolTipText("About");

    this.getContentPane().add(jPanel1, java.awt.BorderLayout.SOUTH);
    buddyList.setBackground(new Color(184, 199, 153));
    jPanel1.add(btnWho);
    jPanel1.add(btnAdd);
    jPanel1.add(btnAbout);

    server.addMessageListener(this);

    buddyList.addMouseListener(
        new MouseAdapter() {
          public void mouseClicked(MouseEvent evt) {
            JList list = (JList) evt.getSource();
            if (evt.getClickCount() == 2) // Double-click
            {
              // Get item index
              int index = list.locationToIndex(evt.getPoint());
              Buddy buddy = (Buddy) list.getModel().getElementAt(index);
              startTalk(buddy);
            }
          }
        });

    int delay = 60 * 1000; // milliseconds
    ActionListener taskPerformer =
        new ActionListener() {
          public void actionPerformed(ActionEvent evt) {
            onTimer(evt);
          }
        };
    new Timer(delay, taskPerformer).start();

    if (prefs.get(NAME, null) == null) {
      String inputValue = null;
      // ask for nickname
      while (inputValue == null || inputValue.trim().length() == 0) {
        inputValue = JOptionPane.showInputDialog("Please choose your nickname");
      }
      server.myName = inputValue;
      prefs.put(NAME, inputValue);
    }

    // hide the frame if iconized
    final JFrame thisFrame = this;
    WindowStateListener listener =
        new WindowAdapter() {
          public void windowStateChanged(WindowEvent evt) {
            int oldState = evt.getOldState();
            int newState = evt.getNewState();

            if ((oldState & Frame.ICONIFIED) == 0 && (newState & Frame.ICONIFIED) != 0) {
              // Frame was iconized
              thisFrame.setVisible(false);
            }
          }
        };
    // Register the listener with the frame
    addWindowStateListener(listener);
  }