/*
 * Copyright (c) 1995, 1996 Sun Microsystems, Inc. All Rights Reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * and its documentation for NON-COMMERCIAL purposes and without
 * fee is hereby granted provided that this copyright notice
 * appears in all copies. Please refer to the file "copyright.html"
 * for further important copyright and licensing information.
 *
 * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
 * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
 * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
 * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
 * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
 * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
 */
import java.awt.*;
import MudButton;
import MudRadio;
//import java.awt.CheckboxGroup;
import Mud;

public class RoomMenu  extends Frame {
    private boolean inAnApplet = true;
     
    Panel cards;
    final static String BUTTONPANEL = "Panel with Buttons";
    final static String TEXTPANEL = "Panel with TextField";

    public RoomMenu(Mud mud) {
	setLayout(new BorderLayout());
        setFont(new Font("Helvetica", Font.PLAIN, 10));

	//Put the Choice in a Panel to get a nicer look.
	Panel cp = new Panel();
	Choice c = new Choice();
	c.addItem("Room Editor");
	c.addItem("Mobile Editor");
	c.addItem("Object Editor");
	cp.add(c);
	add("North", cp);


	cards = new Panel();
	cards.setLayout(new CardLayout());



   
        //-------------------Room Card------------------------------
	Panel pa = new Panel();
        GridBagLayout gridbag = new GridBagLayout();
        GridBagConstraints co =  new GridBagConstraints();
        pa.setLayout(gridbag);
        
        Label parn = new Label("Room Name:");
        parn.setFont( new Font("Helvetica", Font.BOLD, 12));
        co.fill = GridBagConstraints.HORIZONTAL;
        co.gridwidth = GridBagConstraints.RELATIVE;
        //co.gridheight = GridBagConstraints.RELATIVE;
        co.weighty = 1.0;
        co.weightx = 1.0;
        gridbag.setConstraints(parn, co);
        pa.add(parn);

        TextField name = new TextField("");     
        co.fill = GridBagConstraints.HORIZONTAL;
        co.gridwidth = GridBagConstraints.REMAINDER;
        //co.gridheight = GridBagConstraints.RELATIVE;
        co.weighty = 1.0;
        co.weightx = 1.0;
        gridbag.setConstraints(name, co);
        pa.add( name);     

        Label pago = new Label("Go To:");
        pago.setFont( new Font("Helvetica", Font.BOLD, 12));
        co.fill = GridBagConstraints.HORIZONTAL;
        co.gridwidth = GridBagConstraints.RELATIVE;
        //co.gridheight = GridBagConstraints.RELATIVE;
        co.weighty = 1.0;
        co.weightx = 1.0;
        gridbag.setConstraints(pago, co);
        pa.add(pago);

        TextField gotof = new TextField("");     
        co.fill = GridBagConstraints.HORIZONTAL;
        co.gridwidth = GridBagConstraints.REMAINDER;
        //co.gridheight = GridBagConstraints.RELATIVE;
        co.weighty = 1.0;
        co.weightx = 1.0;
        gridbag.setConstraints(gotof, co);
        pa.add( gotof);     

        Label pade = new Label("Description:");
        pade.setFont( new Font("Helvetica", Font.BOLD, 12));
        co.fill = GridBagConstraints.HORIZONTAL;
        co.gridwidth = GridBagConstraints.RELATIVE;
        //co.gridheight = GridBagConstraints.RELATIVE;
        co.weighty = 1.0;
        co.weightx = 1.0;
        gridbag.setConstraints(pade, co);
        pa.add(pade);

        TextArea description = new TextArea("");     
        co.fill = GridBagConstraints.HORIZONTAL;
        co.gridwidth = GridBagConstraints.REMAINDER;
        co.gridheight = GridBagConstraints.RELATIVE;
        co.weighty = 1.0;
        co.weightx = 1.0;
        gridbag.setConstraints(description, co);
        pa.add( description);     


	Panel p1 = new Panel();

        p1.setLayout( new GridLayout(10,5) );

	//p1.add(new MudField("name","redit name %s", mud));
	//p1.add(new MudField("description","redit desc %s",mud));


        Label p1rf = new Label("Room Flags");
        p1rf.setFont( new Font("Helvetica", Font.BOLD, 12));
        p1.add(p1rf);

	p1.add(new MudRadio("Dark",	"redit flags dark",	mud));
	p1.add(new MudRadio("Death",	"redit flags death",	mud));
	p1.add(new MudRadio("NoMobs",	"redit flags nomobs",	mud));
	p1.add(new MudRadio("Indoors",	"redit flags indoors",	mud));
	p1.add(new MudRadio("Lawful",	"redit flags lawful",	mud));

	p1.add(new MudRadio("NoMagic",	"redit flags nomagic",	mud));
	p1.add(new MudRadio("PetShop",	"redit flags petshop",	mud));
	p1.add(new MudRadio("Neutral",	"redit flags neutral",	mud));
	p1.add(new MudRadio("NoDrop",	"redit flags nodrop",	mud));
	p1.add(new MudRadio("Safe",	"redit flags safe",	mud));
	p1.add(new MudRadio("Chaotic",	"redit flags chaotic",	mud));
	p1.add(new MudRadio("Teleport","redit flags teleport",mud));
	p1.add(new MudRadio("Donation","redit flags donation",mud));
	p1.add(new MudRadio("NoRecall","redit flags norecall",mud));
	p1.add(new MudRadio("Private","redit flags private",mud));
	p1.add(new MudRadio("Solitary","redit flags solitary",mud));
	p1.add(new MudRadio("NoAstral","redit flags noastral",mud));
	p1.add(new MudRadio("Tunnel","redit flags tunnel",mud));
	p1.add(new MudRadio("Silence","redit flags silence",mud));
	p1.add(new MudRadio("NoSummon","redit flags nosummon",mud));
	p1.add(new MudRadio("ClanStorage","redit flags clanstorage",mud));
	p1.add(new MudRadio("LogSpeech","redit flags logspeech",mud));
	p1.add(new MudRadio("NoFloor","redit flags nofloor",mud));




        Label p1st = new Label("Sector Types");
        p1st.setFont( new Font("Helvetica", Font.BOLD, 12));
        p1.add(p1st);
        //p1.add(new Label("Sector Types"));
	p1.add(new MudRadio("Inside","redit sector 0",mud));
	p1.add(new MudRadio("Forest","redit sector 3",mud));
	p1.add(new MudRadio("City","redit sector 1",mud));
	p1.add(new MudRadio("Hills","redit sector 4",mud));
	p1.add(new MudRadio("Mountain","redit sector 5",mud));
	p1.add(new MudRadio("Water (Swim)","redit sector 6",mud));
	p1.add(new MudRadio("Air","redit sector 9",mud));
	p1.add(new MudRadio("Desert","redit sector 10",mud));
	p1.add(new MudRadio("Dunno","redit sector 11",mud));
	p1.add(new MudRadio("Water (No Swim)","redit sector 7",mud));
	p1.add(new MudRadio("Field","redit sector 2",mud));

        co.fill = GridBagConstraints.BOTH;
        co.gridwidth = GridBagConstraints.REMAINDER;
        co.gridheight = GridBagConstraints.REMAINDER;
        co.weighty = 1.0;
        co.weightx = 1.0;
        gridbag.setConstraints(p1, co);
        pa.add(p1);
        //-------------------End Room Card--------------------------






        //-------------------Object Card----------------------------
	Panel p2 = new Panel();
	p2.add(new MudButton("west","west",mud));
	p2.add(new MudButton("up","up",mud));
	p2.add(new MudButton("down","down",mud));
	p2.add(new MudButton("look","look",mud));
	p2.add(new TextField("TextField", 20));

	Panel p3 = new Panel();
	p3.add(new MudButton("west","west",mud));
	p3.add(new MudButton("up","up",mud));
	p3.add(new MudButton("down","down",mud));
	p3.add(new MudButton("look","look",mud));
	p3.add(new TextField("TextField", 20));

	cards.add("Room Editor", pa);
	cards.add("Mobile Editor", p2);
	cards.add("Object Editor", p3);
	add("Center", cards);
    }

    public boolean action(Event evt, Object arg) {
	if (evt.target instanceof Choice) {
	    ((CardLayout)cards.getLayout()).show(cards,(String)arg);
	    return true;
	}
	return false;
    }

    public synchronized boolean handleEvent(Event e) {
        if (e.id == Event.WINDOW_DESTROY) {
            if (inAnApplet) {
                dispose();
                return true;
            } else {
                System.exit(0);
            }
        }   
        return super.handleEvent(e);
    }

/*
    public static void main(String args[]) {
	RoomMenu window = new RoomMenu();
        window.inAnApplet = false;

	window.setTitle("RoomMenu Application");
	window.pack();
	window.show();
    }
*/
}