import java.awt.event.*;
import java.awt.*;

/**
 *
 *
 *
 *
 */

public class Folders 
    extends WindowAdapter 
    implements ActionListener  
{
    protected Frame folders;
    
    protected Button inboxButton, outboxButton, deletedmessagesButton, 
              createButton, quitButton;
    
    protected TextField folderName;

    protected Label out, out1, out2;


    public Folders() {
        
        folders = new Frame("Folders");
        folders.setBackground(Color.black);
        folders.setForeground(Color.white);
        folders.addWindowListener(this);
        GridBagLayout gridbag = new GridBagLayout();
        folders.setLayout(gridbag);
        GridBagConstraints c = new GridBagConstraints();
        c.weightx = 0.1;
        c.weighty = 0.1;

        out1 = new Label("Folders");
        out1.setFont(new Font("Times", Font.BOLD, 35));
        c.gridwidth = GridBagConstraints.REMAINDER;
        c.anchor = GridBagConstraints.NORTH;
        c.gridx = 0;
        c.gridy = 0;
        gridbag.setConstraints(out1, c);
        folders.add(out1);
        
        inboxButton = new Button("Inbox");
        inboxButton.addActionListener(this);
        inboxButton.setFont(new Font("Times", Font.ITALIC, 25));
        inboxButton.setBackground(java.awt.Color.red);
        inboxButton.setForeground(java.awt.Color.black);
        c.gridwidth = 1;
        c.gridy = GridBagConstraints.RELATIVE;
        gridbag.setConstraints(inboxButton, c);
        folders.add(inboxButton);
        
        outboxButton = new Button("Outbox");
        outboxButton.addActionListener(this);
        outboxButton.setFont(new Font("Times", Font.ITALIC, 25));
        outboxButton.setBackground(java.awt.Color.red);
        outboxButton.setForeground(java.awt.Color.black);
        c.gridx = 1;
        gridbag.setConstraints(outboxButton, c);
        folders.add(outboxButton);

        deletedmessagesButton = new Button("Deleted Messages");
        deletedmessagesButton.addActionListener(this);
        deletedmessagesButton.setFont(new Font("Times", Font.ITALIC, 25));
        deletedmessagesButton.setBackground(java.awt.Color.red);
        deletedmessagesButton.setForeground(java.awt.Color.black);
        c.gridx = 2;
        gridbag.setConstraints(deletedmessagesButton, c);
        folders.add(deletedmessagesButton);

        out = new Label("Folder name:");
        out.setFont(new Font("Times", Font.BOLD, 25));
        c.gridx = 0;
        c.gridy = 2;
        gridbag.setConstraints(out,c);
        folders.add(out);
        
        folderName = new TextField(15);
        folderName.setBackground(Color.white);
        folderName.setForeground(Color.black);
        folderName.setFont(new Font("Times", Font.BOLD, 25));
        c.gridx = 1;
        c.gridy = GridBagConstraints.RELATIVE;
        gridbag.setConstraints(folderName, c);
        folders.add(folderName);
        

        createButton = new Button("Create");
        createButton.addActionListener(this);
        createButton.setFont(new Font("Times", Font.ITALIC, 25));
        createButton.setBackground(java.awt.Color.red);
        createButton.setForeground(java.awt.Color.black);
        c.gridx = 2;
        gridbag.setConstraints(createButton, c);
        folders.add(createButton);

        folders.pack();
        folders.setSize(1000,700);
        folders.show();
        
    }

    public void actionPerformed(ActionEvent evt) {
        String command = evt.getActionCommand();
        if(command.equals("Inbox")) {
            MailList1 example = new MailList1("Inbox");
            example.addButton("Delete", "Folders", "Compose", "Reload" , "Preferences",      "Help");
            example.addLabel("Message", "From","Subject", "Date", "Time");
            example.addMessage("Sam Rebelsky", "A Test", "12/08/99", "13.43");
            example.addMessage("Sam Rebelsky", "Another Test", "14/08/99", "21.34" );
            example.addMessage("Prashant Paroda", "Help!","14/08/99", "21.09" );
            example.addMessage("Prashant Paroda", "More Help!", "14/08/99", "21.09" );
            example.addMessage("Sam Rebelsky", "Re: Help!", "09/08/99", "14.45");
            
            folders.dispose();
            
        }
        else if(command.equals("Outbox")) {
            new Outbox();
             }
        else if(command.equals("Deleted Messages")) {
            new DeletedMessages();
        }
        else if (command.equals("Create")) { 
            try {
                Mailbox box = new Mailbox();
                box.createFolder(folderName.getText());
            }
            catch(Exception e) {}
            folders.remove(inboxButton);
            folders.remove(outboxButton);
            folders.remove(deletedmessagesButton);
            folders.remove(createButton);
            folders.remove(out);
            folders.remove(out1);
            folders.remove(folderName);

            GridBagConstraints c = new GridBagConstraints();
            GridBagLayout gridbag = new GridBagLayout();
            
            out2 = new Label(folderName.getText());
            out2.setFont(new Font("Times", Font.BOLD, 30));
            c.gridwidth = GridBagConstraints.REMAINDER;
            c.anchor = GridBagConstraints.NORTH;
            c.gridx = 0;
            c.gridy = 0;
            gridbag.setConstraints(out2, c);
            folders.add(out);
        
            quitButton = new Button("Quit");
            quitButton.setBackground(Color.red);
            quitButton.setForeground(Color.black);
            quitButton.setFont(new Font("Times", Font.BOLD, 30));
            c.anchor = GridBagConstraints.SOUTHEAST;
            c.gridy = 1;
            gridbag.setConstraints(quitButton, c);
            folders.add(quitButton);

            folders.pack();
            folders.setSize(500,500);
            folders.show();
            
        }
    }
    
    

    public void windowClosing(WindowEvent event) {
        folders.dispose();
    } 
    
    public static void main(String[] args) {
        new Folders();
    } 
} 


        

        


        

