예제 #1
0
        protected override void DoBuildChildren(LayoutPanelBase Layout)
        {
            base.DoBuildChildren(Layout);
            CaptionLabel.Dock = DockStyle.Top;
            CaptionLabel.SuspendLayout();

            if (null != dataSource)
            {
            }
            else
            {
                NewMessage.Show(Loc.Instance.GetString("CreateParent: You have a null datasource"));
                lg.Instance.Line("NoteDataXML_Table->CreateParent", ProblemType.WARNING, Loc.Instance.GetString("You have a null table which should not happen. This usually occurs only during UNIT TESTING because proper create constructor is not used"));
                BuildDefaultColumns();
            }
            lg.Instance.Line("NoteDataXML_Table-CreateParent", ProblemType.MESSAGE, String.Format("Passing {0} columns into new TablePanel", Columns.Length));
            Table = new TablePanel(dataSource, HandleCellBeginEdit, Columns, GoToNote, this.Caption, GetRandomTableResults);
            lg.Instance.Line("NoteDataXML_Table->CreateParent", ProblemType.MESSAGE, String.Format("Before HANDLEDATABINING my name is {0}", this.Caption));
            Table.Parent = ParentNotePanel;
            Table.Dock   = DockStyle.Fill;
            Table.BringToFront();
            Table.ReadOnly = this.ReadOnly;



            ToolStripMenuItem TableCaptionLabel =
                LayoutDetails.BuildMenuPropertyEdit(Loc.Instance.GetString("Table Caption: {0}"), TableCaption, Loc.Instance.GetString("When generating random data this caption will be used to present the results."), HandleNoteLinkNameChange);



            ToolStripMenuItem NextTableLabel =
                LayoutDetails.BuildMenuPropertyEdit(Loc.Instance.GetString("Next Table: {0}"), NextTable, Loc.Instance.GetString("Set a value here and if the random results of this table resolve without finding a 'NextTable' in the table itself, it will proceed with randomization on the table specified here."), HandleNextTableKeyDown);

            useHeadingStyleOption              = new ToolStripButton();
            useHeadingStyleOption.Text         = Loc.Instance.GetString("Use Heading Styled Captions");
            useHeadingStyleOption.CheckOnClick = true;
            useHeadingStyleOption.Checked      = useHeadingStyleForCaption;
            useHeadingStyleOption.Click       += (object sender, EventArgs e) =>
            {
                SetSaveRequired(true);
                useHeadingStyleForCaption = useHeadingStyleOption.Checked;
            };



            properties.DropDownItems.Add(new ToolStripSeparator());
            properties.DropDownItems.Add(TableCaptionLabel);
            properties.DropDownItems.Add(NextTableLabel);
            properties.DropDownItems.Add(useHeadingStyleOption);
            CaptionLabel.ResumeLayout();
        }
        protected override void DoBuildChildren(LayoutPanelBase Layout)
        {
            base.DoBuildChildren (Layout);

            if (Columns.Length < 5) {
                PropertyInfo[] propertiesInfo = typeof(Market).GetProperties ();
                // rebuild Submision  Market Table
                DataTable Table2 = CreateDataTable (propertiesInfo);
                //	NewMessage.Show (Table.Columns.Count.ToString ());
                //ForceTableUpdate (Table2);
                dataSource = Table2;
                Table = new TablePanel (dataSource, HandleCellBeginEdit, Columns, GoToNote, this.Caption, GetRandomTableResults);
                Table.Dock = DockStyle.Fill;
                Table.BringToFront ();

                dashboardMarketEdit.AddMarketRow (propertiesInfo, Table2, Market.DefaultMarket ());
            }

            //ToolTip Tipster = new ToolTip ();

            CaptionLabel.Dock = DockStyle.Top;

            Tabs = new TabControl ();
            Tabs.Margin = new Padding(5);
            Tabs.Dock = DockStyle.Fill;

            TabPage SubmissionPage = new TabPage (Loc.Instance.GetString ("Submissions"));
            TabPage MarketList = new TabPage (Loc.Instance.GetString ("Markets"));
            TabPage MarketAdvanced = new TabPage (Loc.Instance.GetString ("Advanced"));

            Tabs.SelectedIndexChanged += HandleSelectedIndexTabPagesChanged;
            Tabs.TabPages.Add (SubmissionPage);
            Tabs.TabPages.Add (MarketList);
            Tabs.TabPages.Add (MarketAdvanced);

            //
            // SUBMISSION PAGE SETUP
            //

            SubmissionPanel = new dashboardSubs (dashBoardsSubmissionsIsUpdatingProject, true);
            SubmissionPanel.SupressRefresh= true;
            SubmissionPanel.Dock = DockStyle.Fill;
            SubmissionPage.Controls.Add (SubmissionPanel);
            SubmissionPanel.BringToFront ();

             ToggleBetweenListAndEditSubmissions = new Button ();

            ToggleBetweenListAndEditSubmissions.Dock = DockStyle.Bottom;
            ToggleBetweenListAndEditSubmissions.Enabled = false;
            // we use tag to disctate the text 0 = pressme to get list of submission
            // 1 mean sgo back to Submission Overview
            ToggleBetweenListAndEditSubmissions.Tag = 0;
            UpdateToggleButtonText();
            ToggleBetweenListAndEditSubmissions.Click += HandleToggleBetweenListAndEditingClick;

            SubmissionPage.Controls.Add (ToggleBetweenListAndEditSubmissions);
            LastQuery = new ComboBox ();
            ViewOfProjectSubmissions = new ViewProjectSubmissions (GetProjectGUID, GetMarketObjectByGUID, this.Layout);
            ViewOfProjectSubmissions.Visible = false;
            ViewOfProjectSubmissions.Dock = DockStyle.Fill;

            SubmissionPage.Controls.Add (ViewOfProjectSubmissions);
            ViewOfProjectSubmissions.BringToFront ();

            //
            // MARKET
            //
            if (dataSource == null) throw new Exception("null datasource");

             MarketEdit = new dashboardMarketEdit (dataSource, dashBoardsMarketUpdating, this.Layout);

            MarketEdit.Dock = DockStyle.Fill;

            MarketList.Controls.Add (MarketEdit);
            MarketEdit.BringToFront ();

            //
            // Market Page (Advanced) Setup
            //
            ParentNotePanel.Controls.Remove (this.Table);
            MarketAdvanced.Controls.Add (this.Table);

            //
            // Submit Footer
            //

            SubmitPanel = new GroupBox ();
            SubmitPanel.BackColor = Color.Lavender;
            SubmitPanel.ForeColor = Color.Black;
            SubmitPanel.Height = 150;
            SubmitPanel.Padding = new Padding(5);
            SubmitPanel.Dock = DockStyle.Bottom;
            SubmitPanel.Text = Loc.Instance.GetString ("ADD A SUBMISSION");

            //			LabelProject = new Label ();
            //			LabelProject.Text = DefaultProjectLabel; //Loc.Instance.GetString ("Current Project: ");
            //			LabelProject.Dock = DockStyle.Top;
            //
            //			LabelMarket = new Label ();
            //			LabelMarket.Text = Loc.Instance.GetString ("Current Market: ");
            //			LabelMarket.Dock = DockStyle.Top;

            Warnings = new Label ();
            Warnings.Text = Loc.Instance.GetString ("Warnings ");
            Warnings.Dock = DockStyle.Fill;

            AddSubmission = new Button ();
            AddSubmission.Text = Loc.Instance.GetStringFmt ("Submit {0} to {1}", DefaultProjectLabel,SelectedMarket);
            AddSubmission.Click += HandleAddSubmissionClick;
            AddSubmission.Dock = DockStyle.Bottom;

            //			SubmitPanel.Controls.Add (LabelMarket);
            //			SubmitPanel.Controls.Add (LabelProject);

            SubmitPanel.Controls.Add (Warnings);

            SubmitPanel.Controls.Add (AddSubmission);

            System.Collections.Generic.List<string> queries = LayoutDetails.Instance.TableLayout.GetListOfStringsFromSystemTable (LayoutDetails.SYSTEM_QUERIES, 1);
            queries.Sort ();
            LastQuery.DropDownStyle = ComboBoxStyle.DropDownList;
            foreach (string s in queries) {
                LastQuery.Items.Add (s);
            }
            //LastQuery.SelectedItem = CurrentFilter;

            int lastQueryIndex =queries.IndexOf(CurrentFilter);// queries.Find(s=>s==CurrentFilter);
            LastQuery.SelectedIndex = lastQueryIndex;
            LastQuery.SelectedIndexChanged+= HandleSelectedIndexLastQueryChanged;
            SubmissionPanel.CurrentFilter = CurrentFilter;
            //LastQuery.Text = "LastQuery";
            LastQuery.Dock = DockStyle.Top;
            //LastQuery.Enabled = false;
            SubmissionPage.Controls.Add (LastQuery);

            ParentNotePanel.Controls.Add (SubmitPanel);

            ParentNotePanel.Controls.Add (Tabs);
            Tabs.BringToFront();

            // Had to remove this because the table lookups require
            // the presence of the accessory tables which might not exist
            // at this point in the load cycle
            //	SubmissionPanel.RefreshMe();
            SubmissionPanel.SupressRefresh= false;

            Table.ReadOnly = this.ReadOnly;

            LayoutDetails.Instance.UpdateAfterLoadList.Add (this);
        }