示例#1
0
        protected void OnMouseChange(Object sender, MouseChangeEventArgs e)
        {
            logger.Trace("OnMouseChange() received...");
            CheckStatus();
            CheckMouseChangeEvent(e);

            ButtonGroup changes = new ButtonGroup();

            // for this event it's pretty likely that one argument is empty, so check first

            if (!e.MouseOver.IsEmpty())
            {
                Status.UpdateStatus(e.MouseOver, StatusFlags.MouseOver, true);
                changes.Add(e.MouseOver);
            }

            if (!e.MouseOut.IsEmpty())
            {
                Status.UpdateStatus(e.MouseOut, StatusFlags.MouseOver, false);
                changes.Add(e.MouseOut);
            }

            if (!changes.IsEmpty())
            {
                changes.Seal();
                RaiseStatusChangeEvent(new StatusChangeEventArgs(changes));
            }
        }
示例#2
0
        public void OnSelection(Object sender, SelectionEventArgs e)
        {
            logger.Trace("OnSelection() received...");
            CheckStatus();

            ButtonGroup changes = new ButtonGroup();

            // handle unselected first, because of selection race, or in other words: selection is trump
            Status.UpdateStatus(e.Unselected, StatusFlags.Selected, false);
            changes.Add(e.Unselected);

            Status.UpdateStatus(e.Selected, StatusFlags.Selected, true);
            changes.Add(e.Selected);

            if (!changes.IsEmpty())
            {
                changes.Seal();
                RaiseStatusChangeEvent(new StatusChangeEventArgs(changes));
            }
        }
示例#3
0
        /// <summary>
        /// Clears selection flag for all selected buttons and returns them.
        /// </summary>
        public ButtonGroup ClearSelection()
        {
            ButtonGroup changes = new ButtonGroup();

            foreach (var entry in statusDict)
            {
                if (entry.Value.Selected)
                {
                    entry.Value.Update(ButtonStatus.Flags.Selected, false);
                    changes.Add(entry.Key);
                }
            }

            changes.Seal();
            return(changes);
        }
示例#4
0
        public ButtonGroup GetButtonsForCol(int x)
        {
            CheckColArgument(x);

            ButtonGroup group = new ButtonGroup();

            for (int y = 0; y < Rows; y++)
            {
                if (buttonGrid[x, y] != null)
                {
                    group.Add(buttonGrid[x, y].Id);
                }
            }

            group.Seal();
            return(group);
        }
示例#5
0
        public ButtonGroup GetButtonsForRow(int y)
        {
            CheckRowArgument(y);

            ButtonGroup group = new ButtonGroup();

            for (int x = 0; x < Cols; x++)
            {
                if (buttonGrid[x, y] != null)
                {
                    group.Add(buttonGrid[x, y].Id);
                }
            }

            group.Seal();
            return(group);
        }
示例#6
0
        /// <summary>
        /// find all buttons int current scene and ensure existance in openlist or closedlist
        /// </summary>
        void EvaluateOpenList()
        {
            var markButtons = Object.FindObjectsOfType <TestUIMarkButton>();

            foreach (var markButton in markButtons)
            {
                ButtonGroup group = mClosedList.Find(g => g.RootName.Equals(markButton.RootName));
                if (group != null)
                {
                    continue;
                }

                group = mOpenList.Find(g => g.RootName.Equals(markButton.RootName));
                if (group != null)
                {
                    if (!group.Contains(markButton.RelativePath))
                    {
                        group.Add(markButton.RelativePath);
                    }
                }
                else
                {
                    var rootObj = GameObject.Find(markButton.RootName);
                    if (rootObj == null)
                    {
                        throw new Exception(string.Format("TestUIMark--- the root name of button: {0} is wrong, please do Reset TestUIMarkButton in Editor"));
                    }

                    group = new ButtonGroup(markButton.RootName);
                    var eles = rootObj.GetComponentsInChildren <TestUIMarkButton>(true);
                    foreach (var e in eles)
                    {
                        group.Add(e.RelativePath);
                    }
                    mOpenList.Add(group);
                }
            }
        }
示例#7
0
        public override void RenderView(System.Web.Mvc.ViewContext viewContext, System.IO.TextWriter writer)
        {
            writer.Write("<!DOCTYPE html>");
            writer.Write("<head>");
            writer.Write("<title>后台管理中心 - " + AppConfig.WebTitle + "</title>");
            writer.Write("</head><body></body>");
            var x = Html.X();

            writer.Write(x.ResourceManager().ToHtmlString());
            #region 总体布局
            var viewPort = new Viewport();
            viewPort.Layout = "border";
            var _copyright = new Panel();
            _copyright.Title       = AppConfig.WebName + " 版权所有";
            _copyright.TitleAlign  = TitleAlign.Center;
            _copyright.Collapsible = false;
            _copyright.Region      = Region.South;
            _copyright.Split       = true;
            var _menu = new Panel();
            _menu.Title       = "导航菜单";
            _menu.Collapsible = true;
            _menu.Region      = Region.West;
            _menu.Split       = true;
            _menu.Width       = 200;
            var _workArea = new Ext.Net.TabPanel();
            _workArea.Title  = "欢迎使用";
            _workArea.Region = Region.Center;
            _workArea.ID     = "tabWork";
            var _title = new Panel();
            _title.Title       = AppConfig.WebTitle;
            _title.Collapsible = false;
            _title.Region      = Region.North;
            _title.Split       = true;
            viewPort.Items.Add(_title);
            viewPort.Items.Add(_workArea);
            viewPort.Items.Add(_copyright);
            viewPort.Items.Add(_menu);
            #endregion

            #region 个人区
            var _personPanel = new Ext.Net.Panel();
            _personPanel.Collapsed   = true;
            _personPanel.Collapsible = true;
            _personPanel.Title       = "欢迎使用";
            _personPanel.Height      = 110;
            _personPanel.BodyPadding = 10;
            _personPanel.Layout      = "table";
            _personPanel.LayoutConfig.Add(new TableLayoutConfig()
            {
                Columns = 2
            });
            Image avatarImg = new Image();
            avatarImg.RowSpan = 2;
            avatarImg.Width   = avatarImg.Height = 70;
            //avatarImg.ImageUrl = BaseResource.avatar;
            _personPanel.Add(avatarImg);
            _personPanel.Add(new Label(UserInfo.Username));

            ButtonGroup buttonGroup = new ButtonGroup();
            buttonGroup.Width  = 80;
            buttonGroup.Layout = "vbox";
            buttonGroup.Add(new Button()
            {
                Icon          = Ext.Net.Icon.Key,
                Text          = "修改密码",
                ID            = "btnChangePassword",
                OnClientClick = "App.winChangePassword.show();App.winChangePassword.getLoader().load();"
            });

            var btnExit = new Button()
            {
                Text = "安全退出",
                ID   = "btnExit",
                Icon = Icon.KeyDelete
            };

            buttonGroup.Add(btnExit);
            _personPanel.Add(buttonGroup);
            _menu.Add(_personPanel);
            var winChangePassword = new Window()
            {
                Icon        = Icon.Key,
                BodyPadding = 10,
                Width       = 300,
                Height      = 210,
                Modal       = true,
                Hidden      = true,
                AutoShow    = false,
                ID          = "winChangePassword",
                Title       = "修改密码",
                Loader      = new ComponentLoader()
                {
                    Url  = Url.Action("changePassword", "account"),
                    Mode = LoadMode.Frame
                }
            };
            #endregion

            var _menuPanel = new TreePanel()
            {
                Title       = "功能菜单",
                Height      = 500,
                RootVisible = false,
                ID          = "mainMenu"
            };

            var _menuStore = new TreeStore()
            {
                NodeParam = "parentId"
            };
            _menuStore.Proxy.Add(x.AjaxProxy().Url(Url.Action("GetMenus")).ActionMethods(y => y.Read = HttpMethod.POST));
            //_menuStore.ReadData += _menuStore_ReadData;
            _menuPanel.Store.Add(_menuStore);
            _menuPanel.Root.Add(new Node()
            {
                NodeID   = "0",
                Text     = "Root",
                Expanded = true
            });
            _menu.Add(_menuPanel);
            var itemClick = _menuPanel.DirectEvents.ItemClick;
            itemClick.Before = "var tree=arguments[0],eventType=arguments[1],eventName=arguments[2],extraParams=arguments[3];var tab = App.tabWork.getComponent('menu' + extraParams.menuid);if (tab) {App.tabWork.setActiveTab(tab);return false;}return tree.getStore().getNodeById(extraParams.menuid).isLeaf();";
            itemClick.Url    = Url.Action("OpenPage");
            itemClick.ExtraParams.Add(new Parameter("menuid", "record.data.id", ParameterMode.Raw));
            writer.Write(viewPort.ToBuilder().ToHtmlString());
        }
示例#8
0
        public override void Initialize()
        {
            Manager.Scene.AddEntity(new PlayerSignedOut());

            Manager.Vars["CMYK_Ammo"] = 0;
            Manager.Vars["score"]     = 0;

            MusicPlayer.Play(MusicPlayer.MenuTheme);

            Manager.Scene.AddEntity(new GreyInfectiontitleScene());

            // Opciones del menu:
            menu = new ButtonGroup();
            Manager.Scene.AddEntity(menu);
            menu.Location     = new Vector2(Manager.Graphics.ScreenSafeArea.Right - 240, 360);
            menu.ButtonHeight = 70;

            Button button;

            button                    = new Button();
            button.Caption            = Session.Strings["mainmenu_play"];
            button.ConfirmFXWaitToEnd = true;
            button.OnEnter           += OnEnterPlay;
            menu.Add(button);

            button                    = new Button();
            button.Caption            = Session.Strings["mainmenu_options"];
            button.ConfirmFXWaitToEnd = true;
            button.OnEnter           += OnEnterOptions;
            menu.Add(button);

            button                    = new Button();
            button.Caption            = Session.Strings["mainmenu_credits"];
            button.ConfirmFXWaitToEnd = true;
            button.OnEnter           += OnEnterCredits;
            menu.Add(button);

            button          = new Button();
            button.Caption  = Session.Strings["mainmenu_exit"];
            button.OnEnter += OnEnterExit;
            menu.Add(button);

            // Si es modo Trial se activa el boton de compra:
            if (Guide.IsTrialMode)
            {
                purchase = new PurchaseButton();
                Manager.Scene.AddEntity(purchase);
            }

            // Indicaciones de input:
            InputHintLabel inputHint = new InputHintLabel();

            Manager.Scene.AddEntity(inputHint);
            inputHint.Button   = InputHintLabel.GamepadButtonChar.A;
            inputHint.Caption  = Session.Strings["button_select"];
            inputHint.Location = new Vector2(475, Manager.Graphics.ScreenSafeArea.Bottom - 14);

            inputHint = new InputHintLabel();
            Manager.Scene.AddEntity(inputHint);
            inputHint.Button   = InputHintLabel.GamepadButtonChar.LeftThumb;
            inputHint.Caption  = Session.Strings["button_move"];
            inputHint.Location = new Vector2(750, Manager.Graphics.ScreenSafeArea.Bottom - 14);

            base.Initialize();
        }
示例#9
0
        public void Initialize(Scene scene, ActionPerformed gameListener, ActionPerformed modeListener)
        {
            // Create the main panel which holds all other GUI components
            frame                  = new G2DPanel();
            frame.Bounds           = new Rectangle(30, 305, 480, 280);
            frame.Border           = GoblinEnums.BorderFactory.LineBorder;
            frame.Transparency     = 0.7f; // Ranges from 0 (fully transparent) to 1 (fully opaque)
            frame.TextTransparency = 1.0f;

            uiFont = State.Content.Load <SpriteFont>("UIFont");

            G2DLabel gameLabel = new G2DLabel("Game Mode:");

            gameLabel.TextFont = uiFont;
            gameLabel.Bounds   = new Rectangle(4, 4, 100, 48);

            // Create radio buttons for selecting the game mode
            gameAdd          = new G2DRadioButton("Add");
            gameAdd.TextFont = uiFont;
            gameAdd.Bounds   = new Rectangle(18, 70, 150, 50);
            // Make the Addition mode as the selected one first
            gameAdd.DoClick();

            gameEdit          = new G2DRadioButton("Edit");
            gameEdit.TextFont = uiFont;
            gameEdit.Bounds   = new Rectangle(170, 70, 150, 50);

            gamePlay          = new G2DRadioButton("Play");
            gamePlay.TextFont = uiFont;
            gamePlay.Bounds   = new Rectangle(310, 70, 150, 50);

            ButtonGroup gameGroup = new ButtonGroup();

            gameGroup.Add(gameAdd);
            gameGroup.Add(gameEdit);
            gameGroup.Add(gamePlay);
            gameGroup.AddActionPerformedHandler(gameListener);

            frame.AddChild(gameLabel);
            frame.AddChild(gameAdd);
            frame.AddChild(gameEdit);
            frame.AddChild(gamePlay);

            G2DSeparator separator1 = new G2DSeparator();

            separator1.Bounds = new Rectangle(5, 129, 470, 5);

            frame.AddChild(separator1);

            modeLabel          = new G2DLabel("Add Mode:");
            modeLabel.TextFont = uiFont;
            modeLabel.Bounds   = new Rectangle(4, 140, 100, 48);

            modeRadio1          = new G2DRadioButton("Single");
            modeRadio1.TextFont = uiFont;
            modeRadio1.Bounds   = new Rectangle(20, 206, 200, 50);
            modeRadio1.DoClick();

            modeRadio2          = new G2DRadioButton("Line");
            modeRadio2.TextFont = uiFont;
            modeRadio2.Bounds   = new Rectangle(220, 206, 250, 50);

            ButtonGroup addGroup = new ButtonGroup();

            addGroup.Add(modeRadio1);
            addGroup.Add(modeRadio2);
            addGroup.AddActionPerformedHandler(modeListener);

            frame.AddChild(modeLabel);
            frame.AddChild(modeRadio1);
            frame.AddChild(modeRadio2);

            // Initially, make the GUI panel invisible
            frame.Visible = false;
            frame.Enabled = false;

            scene.UIRenderer.Add2DComponent(frame);
        }
示例#10
0
        private void Create2DGUI()
        {
            // Create the main panel which holds all other GUI components
            G2DPanel frame = new G2DPanel();

            frame.Bounds       = new Rectangle(325, State.Height - 180, 150, 170);
            frame.Border       = GoblinEnums.BorderFactory.LineBorder;
            frame.Transparency = 0.7f;  // Ranges from 0 (fully transparent) to 1 (fully opaque)

            label = "User Interfaces";

            // Loads the fonts used for rendering UI labels and slider labels
            uiFont     = Content.Load <SpriteFont>("UIFont");
            sliderFont = Content.Load <SpriteFont>("SliderFont");

            // Create four Radio Buttons
            G2DRadioButton radio1 = new G2DRadioButton("User Interfaces");

            radio1.TextFont = uiFont;
            radio1.Bounds   = new Rectangle(10, 5, 80, 20);
            radio1.DoClick(); // make this radio button selected initially
            radio1.ActionPerformedEvent += new ActionPerformed(HandleActionPerformed);

            G2DRadioButton radio2 = new G2DRadioButton("Computer Graphics");

            radio2.TextFont              = uiFont;
            radio2.Bounds                = new Rectangle(10, 25, 80, 20);
            radio2.ActionPerformedEvent += new ActionPerformed(HandleActionPerformed);

            G2DRadioButton radio3 = new G2DRadioButton("Augmented Reality");

            radio3.TextFont              = uiFont;
            radio3.Bounds                = new Rectangle(10, 45, 80, 20);
            radio3.ActionPerformedEvent += new ActionPerformed(HandleActionPerformed);

            sliderRadio                       = new G2DRadioButton("Slider Control");
            sliderRadio.TextFont              = uiFont;
            sliderRadio.Bounds                = new Rectangle(10, 65, 80, 20);
            sliderRadio.ActionPerformedEvent += new ActionPerformed(HandleActionPerformed);

            // Create a slider
            G2DSlider slider = new G2DSlider();

            slider.TextFont           = sliderFont;
            slider.Bounds             = new Rectangle(5, 100, 140, 30);
            slider.Maximum            = 40;
            slider.MajorTickSpacing   = 20;
            slider.MinorTickSpacing   = 5;
            slider.PaintTicks         = true;
            slider.PaintLabels        = true;
            slider.StateChangedEvent += new StateChanged(HandleStateChanged);

            // Create a ButtonGroup object which controls the radio
            // button selections
            ButtonGroup group = new ButtonGroup();

            group.Add(radio1);
            group.Add(radio2);
            group.Add(radio3);
            group.Add(sliderRadio);

            // Create a Button
            G2DButton button = new G2DButton("I Love");

            button.TextFont              = uiFont;
            button.Bounds                = new Rectangle(50, 145, 50, 20);
            button.ActionPerformedEvent += new ActionPerformed(HandleActionPerformed);

            // Add all of the components to the main panel
            frame.AddChild(radio1);
            frame.AddChild(radio2);
            frame.AddChild(radio3);
            frame.AddChild(sliderRadio);
            frame.AddChild(button);
            frame.AddChild(slider);

            scene.UIRenderer.Add2DComponent(frame);
        }
示例#11
0
        protected override void OnPreInit(EventArgs e)
        {
            base.OnPreInit(e);

            #region 总体布局
            _viewPort = new Viewport();
            _viewPort.Layout = "border";
            _copyright = new Panel();
            _copyright.Title = "版权";
            _copyright.TitleAlign = TitleAlign.Center;
            _copyright.Collapsible = false;
            _copyright.Region = Region.South;
            _copyright.Split = true;
            _menu = new Panel();
            _menu.Title = "导航菜单";
            _menu.Collapsible = true;
            _menu.Region = Region.West;
            _menu.Split = true;
            _menu.Width = 200;
            _workArea = new Ext.Net.TabPanel();
            _workArea.Title = "欢迎使用";
            _workArea.Region = Region.Center;
            _workArea.ID = "tabWork";
            _title = new Panel();
            _title.Title = WebName;
            _title.Collapsible = false;
            _title.Region = Region.North;
            _title.Split = true;
            _viewPort.Items.Add(_title);
            _viewPort.Items.Add(_workArea);
            _viewPort.Items.Add(_copyright);
            _viewPort.Items.Add(_menu);
            #endregion

            #region 个人区
            _personPanel = new Ext.Net.Panel();
            _personPanel.Collapsed = true;
            _personPanel.Collapsible = true;
            _personPanel.Title = "欢迎使用";
            _personPanel.Height = 110;
            _personPanel.BodyPadding = 10;
            _personPanel.Layout = "table";
            _personPanel.LayoutConfig.Add(new TableLayoutConfig()
            {
                Columns = 2
            });
            Image avatarImg = new Image();
            avatarImg.RowSpan = 2;
            avatarImg.Width = avatarImg.Height = 70;
            avatarImg.ImageUrl = BaseResource.avatar;
            _personPanel.Add(avatarImg);
            _personPanel.Add(new Label(userInfo.Username));

            ButtonGroup buttonGroup = new ButtonGroup();
            buttonGroup.Width = 80;
            buttonGroup.Layout = "vbox";
            buttonGroup.Add(new KeyButton()
            {
                Text = "修改密码",
                ID = "btnChangePassword",
                OnClientClick = "App.winChangePassword.show();App.winChangePassword.getLoader().load();"
            });

            btnExit = new Button()
            {
                Text = "安全退出",
                ID = "btnExit",
                Icon = Icon.KeyDelete
            };
            var clickEvent = btnExit.DirectEvents.Click;
            clickEvent.Event += clickEvent_Event;
            clickEvent.EventMask.Set("正在退出");
            clickEvent.Confirmation.ConfirmRequest = true;
            clickEvent.Confirmation.Title = "提示";
            clickEvent.Confirmation.Message = "确定退出?";
            buttonGroup.Add(btnExit);
            _personPanel.Add(buttonGroup);
            _menu.Add(_personPanel);
            winChangePassword = new Window()
            {
                Icon = Icon.Key,
                BodyPadding = 10,
                Width = 300,
                Height = 210,
                Modal = true,
                Hidden = true,
                AutoShow = false,
                ID = "winChangePassword",
                Title = "修改密码",
                Loader = new ComponentLoader()
                {
                    Url = ResolveClientUrl("~/user/changepassword.aspx"),
                    Mode = LoadMode.Frame
                }
            };
            winChangePassword.Loader.LoadMask.Set("正在加载");
            Controls.Add(winChangePassword);
            #endregion

            _menuPanel = new TreePanel()
            {
                Title = "功能菜单",
                Height = 500,
                RootVisible = false,
                ID = "mainMenu"
            };

            _menuStore = new TreeStore()
            {
                NodeParam = "parentId"
            };
            _menuStore.ReadData += _menuStore_ReadData;
            _menuPanel.Store.Add(_menuStore);
            _menuPanel.Root.Add(new Node()
            {
                NodeID = "0",
                Text = "Root",
                Expanded = true
            });
            _menu.Add(_menuPanel);
            var itemClick = _menuPanel.DirectEvents.ItemClick;
            itemClick.Before = "var tree=arguments[0],eventType=arguments[1],eventName=arguments[2],extraParams=arguments[3];var tab = App.tabWork.getComponent('menu' + extraParams.id);if (tab) {App.tabWork.setActiveTab(tab);return false;}return tree.getStore().getNodeById(extraParams.id).isLeaf();";
            itemClick.EventMask.Set("正在加载");
            itemClick.Event += itemClick_Event;
            itemClick.ExtraParams.Add(new Parameter("id", "record.data.id", ParameterMode.Raw));

            #region 隐藏顶级窗口
            _winParentWindow = new Window();
            _winParentWindow.Hidden = true;
            _winParentWindow.Loader = new ComponentLoader();
            _winParentWindow.Loader.Mode = LoadMode.Frame;
            _winParentWindow.Width = 800;
            _winParentWindow.Modal = true;
            _winParentWindow.Height = 600;
            _winParentWindow.ID = "_topWin";
            Controls.Add(_winParentWindow);
            #endregion

            Controls.Add(_viewPort);
        }
示例#12
0
        public override void Initialize()
        {
            base.Initialize();

            Manager.Scene.AddEntity(new PlayerSignedOut());

            hasChanges     = false;
            storageRequest = false;

            Manager.Scene.AddEntity(new GreyInfectiontitleScene());

            menu = new ButtonGroup();
            Manager.Scene.AddEntity(menu);
            menu.Location     = new Vector2(640, 374);
            menu.ButtonHeight = 40;
            menu.OnExit      += OnExitState;

            sliderSound           = new SliderButton();
            sliderSound.Caption   = Session.Strings["optmenu_sound"];
            sliderSound.OnChange += OnChangeSoundVolume;
            menu.Add(sliderSound);

            sliderMusic           = new SliderButton();
            sliderMusic.Caption   = Session.Strings["optmenu_music"];
            sliderMusic.OnChange += OnChangeMusicVolume;
            menu.Add(sliderMusic);

            TextButton button;

            button          = new TextButton();
            button.Caption  = Session.Strings["optmenu_gamepad"];
            button.OnEnter += OnEnterControls;
            menu.Add(button);

            button          = new TextButton();
            button.Caption  = Session.Strings["optmenu_changestorage"];
            button.OnEnter += OnEnterStorage;
            menu.Add(button);

            button          = new TextButton();
            button.Caption  = Session.Strings["optmenu_restore"];
            button.OnEnter += OnEnterRestore;
            menu.Add(button);

            // Indicaciones de input:
            InputHintLabel inputHint = new InputHintLabel();

            Manager.Scene.AddEntity(inputHint);
            inputHint.Button   = InputHintLabel.GamepadButtonChar.A;
            inputHint.Caption  = Session.Strings["button_select"];
            inputHint.Location = new Vector2(220, Manager.Graphics.ScreenSafeArea.Bottom - 14);

            inputHint = new InputHintLabel();
            Manager.Scene.AddEntity(inputHint);
            inputHint.Button   = InputHintLabel.GamepadButtonChar.B;
            inputHint.Caption  = Session.Strings["button_back"];
            inputHint.Location = new Vector2(475, Manager.Graphics.ScreenSafeArea.Bottom - 14);

            inputHint = new InputHintLabel();
            Manager.Scene.AddEntity(inputHint);
            inputHint.Button   = InputHintLabel.GamepadButtonChar.LeftThumb;
            inputHint.Caption  = Session.Strings["button_move2"];
            inputHint.Location = new Vector2(700, Manager.Graphics.ScreenSafeArea.Bottom - 14);

            // Sonidos de muestra para evaluar volumen de los efectos:
            sounds = new List <SoundPlayer>();
            string assetName;

            foreach (string file in System.IO.Directory.GetFiles(Manager.Content.RootDirectory + @"\Audio\FX\", "*.*"))
            {
                assetName = file.Replace(".xnb", "").Replace(Manager.Content.RootDirectory + @"\", "");
                sounds.Add(new SoundPlayer(assetName));
            }

            SetParams();
        }
示例#13
0
		public JSConsole(string[] args) : base("Rhino JavaScript Console")
		{
			JMenuBar menubar = new JMenuBar();
			CreateFileChooser();
			string[] fileItems = new string[] { "Load...", "Exit" };
			string[] fileCmds = new string[] { "Load", "Exit" };
			char[] fileShortCuts = new char[] { 'L', 'X' };
			string[] editItems = new string[] { "Cut", "Copy", "Paste" };
			char[] editShortCuts = new char[] { 'T', 'C', 'P' };
			string[] plafItems = new string[] { "Metal", "Windows", "Motif" };
			bool[] plafState = new bool[] { true, false, false };
			JMenu fileMenu = new JMenu("File");
			fileMenu.SetMnemonic('F');
			JMenu editMenu = new JMenu("Edit");
			editMenu.SetMnemonic('E');
			JMenu plafMenu = new JMenu("Platform");
			plafMenu.SetMnemonic('P');
			for (int i = 0; i < fileItems.Length; ++i)
			{
				JMenuItem item = new JMenuItem(fileItems[i], fileShortCuts[i]);
				item.SetActionCommand(fileCmds[i]);
				item.AddActionListener(this);
				fileMenu.Add(item);
			}
			for (int i_1 = 0; i_1 < editItems.Length; ++i_1)
			{
				JMenuItem item = new JMenuItem(editItems[i_1], editShortCuts[i_1]);
				item.AddActionListener(this);
				editMenu.Add(item);
			}
			ButtonGroup group = new ButtonGroup();
			for (int i_2 = 0; i_2 < plafItems.Length; ++i_2)
			{
				JRadioButtonMenuItem item = new JRadioButtonMenuItem(plafItems[i_2], plafState[i_2]);
				group.Add(item);
				item.AddActionListener(this);
				plafMenu.Add(item);
			}
			menubar.Add(fileMenu);
			menubar.Add(editMenu);
			menubar.Add(plafMenu);
			SetJMenuBar(menubar);
			consoleTextArea = new ConsoleTextArea(args);
			JScrollPane scroller = new JScrollPane(consoleTextArea);
			SetContentPane(scroller);
			consoleTextArea.SetRows(24);
			consoleTextArea.SetColumns(80);
			AddWindowListener(new _WindowAdapter_135());
			Pack();
			SetVisible(true);
			// System.setIn(consoleTextArea.getIn());
			// System.setOut(consoleTextArea.getOut());
			// System.setErr(consoleTextArea.getErr());
			Program.SetIn(consoleTextArea.GetIn());
			Program.SetOut(consoleTextArea.GetOut());
			Program.SetErr(consoleTextArea.GetErr());
			Program.Main(args);
		}