Package guiLayer

Source Code of guiLayer.EditorFrame

package guiLayer;

import java.awt.BorderLayout;
import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;
import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;

import javax.swing.JScrollPane;
import javax.swing.UIManager;
import javax.swing.JEditorPane;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;

import logicLayer.EditorInfo;
import logicLayer.WindowClose;

public class EditorFrame extends JFrame implements Runnable{


  public EditorFrameData data = new EditorFrameData(new EditorFrameInnerData());
  public final static String SEND_CMD = "send";

  /**
   * Create the frame.
   * @param nameOfClassroom
   */
  public EditorFrame(ActionListener m, String nameOfClassroom) {
    catchWindowEvent();
    initFrame(nameOfClassroom);
    initFramePanel()
    initChatEditorPanel()
    initChatInputPart(m);
   
    addCalcButton();
   
    addMenuBar();
    defineFuncPointers();
  }


  private void catchWindowEvent() {
    data.wc = new WindowClose() {
      @Override
      public void catchClosingWindow(WindowAdapter adapter) {
        data.editorInnerData.thisEditor.addWindowListener(adapter);
      }
    };
  }


  public static class EditorFrameData {
    private EditorFrameInnerData editorInnerData;
    public EditorInfo ei;
    public WindowClose wc;
   
    private EditorFrameData(EditorFrameInnerData editorInnerData) {
      this.editorInnerData = editorInnerData;
    }
  }


  /**
   *
   */
  private static final long serialVersionUID = -5595679210482278126L;


  private static class EditorFrameInnerData {
    private JEditorPane chatInputEditorPane;
    private JEditorPane chatEditorPane;
    private JPanel contentPane;
    private Font f;
    private EditorFrame thisEditor;

    private EditorFrameInnerData() {
    }
  }
 
  private void defineFuncPointers() {
    data.ei = new EditorInfo() {

      @Override
      public void setText(String s) {
        if(s!=null && s.length()!=0)
          data.editorInnerData.chatEditorPane.setText(data.editorInnerData.chatEditorPane.getText()+s+"\n");
     
     
      @Override 
      public String getText() {
        return getTextFromInputChatbox();
      }
    }
  }

  private String getTextFromInputChatbox()
  {
    if(data.editorInnerData.chatInputEditorPane.getText()==null)
      return "";
    String toSend=data.editorInnerData.chatInputEditorPane.getText();
    data.editorInnerData.chatInputEditorPane.setText("");
    return toSend;
  }



  private void addMenuBar() {
    JMenuBar menuBar = new JMenuBar();
    menuBar.setBounds(0, 0, 558, 15);
    data.editorInnerData.contentPane.add(menuBar);

    JMenu mnFile = new JMenu("  File  ");
    menuBar.add(mnFile);
   
    addFileMenuItems(mnFile);
  }




  /**
   * @param mnFile
   */
  private void addFileMenuItems(JMenu mnFile) {
    JMenuItem mntmAbout = new JMenuItem("About    ");
    mnFile.add(mntmAbout);
   
    JMenuItem mntmHelp = new JMenuItem("Help     ");
    mnFile.add(mntmHelp);
   
    JMenuItem mntmExit = new JMenuItem("Exit     ");
    mnFile.add(mntmExit);
  }



  /**
   *
   */
  private void addCalcButton() {
    JButton calcButton = new JButton("Calc");
    calcButton.setBounds(10, 32, 74, 50);
    data.editorInnerData.contentPane.add(calcButton);
  }



  /**
   * @param m
   */
  private void initChatInputPart(ActionListener m) {
    JPanel panel_1 = initInputEditor();
   
    addSendButton(m, panel_1);
  }



  /**
   * @param m
   * @param panel_1
   */
  private void addSendButton(ActionListener m, JPanel panel_1) {
    JButton btnSend = new JButton("   Send   ");
    btnSend.setActionCommand(SEND_CMD);
    btnSend.addActionListener(m);
    btnSend.setBackground(new Color(32, 178, 170));
    panel_1.add(btnSend, BorderLayout.EAST);
  }



  private JPanel initInputEditor() {
    JPanel panel_1 = new JPanel();
    panel_1.setBackground(new Color(32, 178, 170));
    panel_1.setBorder(new TitledBorder(null, "", TitledBorder.LEADING, TitledBorder.TOP, null, null));
    panel_1.setBounds(0, 433, 558, 126);
    data.editorInnerData.contentPane.add(panel_1);
    panel_1.setLayout(new BorderLayout(0, 0));
   
    JLabel lblWriteSomethingHere = new JLabel("Write something here:");
    panel_1.add(lblWriteSomethingHere, BorderLayout.NORTH);
    data.editorInnerData.chatInputEditorPane = new JEditorPane();
    data.editorInnerData.chatInputEditorPane.setFont(data.editorInnerData.f);
    panel_1.add(data.editorInnerData.chatInputEditorPane, BorderLayout.CENTER)
    return addEmptyLabelsForView(panel_1);
  }



  /**
   * @param panel_1
   * @return
   */
  private JPanel addEmptyLabelsForView(JPanel panel_1) {
    JLabel label = new JLabel(" ");
    panel_1.add(label, BorderLayout.WEST);
   
    JLabel label_1 = new JLabel(" ");
    panel_1.add(label_1, BorderLayout.SOUTH);
    return panel_1;
  }



  private void initChatEditorPanel() {
    JPanel panel = new JPanel();
    panel.setBackground(new Color(32, 178, 170));
    panel.setForeground(new Color(0, 139, 139));
    panel.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "Chat", TitledBorder.LEADING, TitledBorder.TOP, null, null));
    panel.setBounds(0, 83, 558, 353);
    data.editorInnerData.contentPane.add(panel);
    panel.setLayout(new BorderLayout(0, 0));
    data.editorInnerData.chatEditorPane = new JEditorPane();
    data.editorInnerData.chatEditorPane.setFont(data.editorInnerData.f);
    data.editorInnerData.chatEditorPane.setEditable(false);
    panel.add(data.editorInnerData.chatEditorPane, BorderLayout.CENTER);   
    JScrollPane scrollBar = new JScrollPane(data.editorInnerData.chatEditorPane);
    panel.add(scrollBar, BorderLayout.CENTER);
  }


  /**
   *
   */
  private void initFramePanel() {
    data.editorInnerData.contentPane = new JPanel();
    data.editorInnerData.contentPane.setBackground(new Color(32, 178, 170));
    data.editorInnerData.contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(data.editorInnerData.contentPane);
    data.editorInnerData.contentPane.setLayout(null);
    data.editorInnerData.f = new Font("ARIEL", Font.PLAIN, 14);
  }


  /**
   * @param nameOfClassroom
   *
   */
  private void initFrame(String nameOfClassroom) {
    setResizable(false);
    setTitle(nameOfClassroom);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 564, 577);
    data.editorInnerData.thisEditor=this;
  }


  @Override
  public void run() {   
  }
}
TOP

Related Classes of guiLayer.EditorFrame

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.