Package com.nilhcem.fakesmtp.gui.tab

Source Code of com.nilhcem.fakesmtp.gui.tab.LastMailPane

package com.nilhcem.fakesmtp.gui.tab;

import com.nilhcem.fakesmtp.gui.info.ClearAllButton;
import com.nilhcem.fakesmtp.model.EmailModel;
import com.nilhcem.fakesmtp.server.MailSaver;

import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import java.util.Observable;
import java.util.Observer;

/**
* Scrolled text area where will be displayed the last received email.
*
* @author Nilhcem
* @since 1.0
*/
public final class LastMailPane implements Observer {

  private final JScrollPane lastMailPane = new JScrollPane();
  private final JTextArea lastMailArea = new JTextArea();

  /**
   * Creates the text area and disables the possibility to edit it.
   */
  public LastMailPane() {
    lastMailArea.setEditable(false);
    lastMailPane.getViewport().add(lastMailArea, null);
  }

  /**
   * Returns the JScrollPane object.
   *
   * @return the JScrollPane object.
   */
  public JScrollPane get() {
    return lastMailPane;
  }

  /**
   * Updates the content of the text area.
   * <p>
   * This method will be called by an observable element.
     * </p>
   * <ul>
   *   <li>If the observable is a {@link MailSaver} object, the text area will contain the content of the last received email;</li>
   *   <li>If the observable is a {@link ClearAllButton} object, the text area will be cleared.</li>
   * </ul>
   *
   * @param o the observable element which will notify this class.
   * @param data optional parameters (an {@code EmailModel} object, for the case of a {@code MailSaver} observable).
   */
  @Override
  public synchronized void update(Observable o, Object data) {
    if (o instanceof MailSaver) {
      EmailModel model = (EmailModel) data;
      lastMailArea.setText(model.getEmailStr());
    } else if (o instanceof ClearAllButton) {
      lastMailArea.setText("");
    }
  }
}
TOP

Related Classes of com.nilhcem.fakesmtp.gui.tab.LastMailPane

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.