protected override void DoBuildChildren(LayoutPanelBase Layout)
        {
            base.DoBuildChildren(Layout);
            CaptionLabel.Dock = DockStyle.Top;


            if (TableCreated == false)
            {
                Width  = 500;
                Height = 200;
                ParentNotePanel.Width  = Width;
                ParentNotePanel.Height = Height;

                TimelineStartDate = DateTime.Today;

                // A. Create the Table
                NoteDataXML_Table myTable = new NoteDataXML_Table(100, 100, new ColumnDetails[7] {
                    new ColumnDetails("Date", 50),
                    new ColumnDetails("Type", 50),
                    new ColumnDetails("Data", 50),
                    new ColumnDetails("Data2", 50),
                    new ColumnDetails("Data3", 50),
                    new ColumnDetails("Data4", 50),
                    new ColumnDetails("icon", 50)
                });
                string GuidOfTable = this.GuidForNote + "table";
                myTable.GuidForNote = GuidOfTable;

                myTable.Caption = Loc.Instance.GetStringFmt("Table for Timeline");



                Layout.AddNote(myTable);

                // we do not need to call CreateParent because AddNote does it for us
                //myTable.CreateParent (Layout);
                Save();
                myTable.AddRow(new object[7] {
                    DateTime.Today.ToString(), "100", "Example Description", "Example Title", "", "", 2
                });
                TableCreated = true;
                Save();
                // B. Populate it with example Row
            }
            Timeline      = new NotePanelTimeline(this);
            Timeline.Dock = DockStyle.Fill;
            ParentNotePanel.Controls.Add(Timeline);
            Timeline.dayPanelWidth = DayPanelWidth;
            Timeline.BringToFront();

            RowFilterStrip =
                LayoutDetails.BuildMenuPropertyEdit(Loc.Instance.GetString("Row Filter: {0}"), RowFilter, Loc.Instance.GetString("Filter via the columns on the table associated with this timeline."), HandleRowFilterChange);



            ToolStripSeparator sep = new ToolStripSeparator();


            ToolStripComboBox dropper = new ToolStripComboBox();



            dropper.ToolTipText   = Loc.Instance.GetString("Set the type of timeline you want by selecting an appropriate calendar.");
            dropper.DropDownStyle = ComboBoxStyle.DropDownList;
            foreach (Calendar.calendertype calendertype in Enum.GetValues(typeof(Calendar.calendertype)))
            {
                dropper.Items.Add(calendertype.ToString());
            }
            dropper.Text = MCalendarType.ToString();
            dropper.SelectedIndexChanged += HandleSelectedIndexCalendarPickerChanged;



            // Icons Per Column. We had the edit to a ToolStrip Host and add the Host to the toolstrip
            NumericUpDown numbers = new NumericUpDown();


            Panel numbersPanel = new Panel();

            numbersPanel.BackColor = dropper.BackColor;
            Label numbersLabel = new Label();

            numbersLabel.Left = 0;
            //numbersLabel.Dock = DockStyle.Left;
            numbersLabel.Text     = Loc.Instance.GetString("Icons/Column: ");
            numbersLabel.AutoSize = false;
            numbersLabel.Width    = 85;
            numbers.Left          = 90;
            numbers.Width         = 45;
            //numbersLabel.AutoSize = true;
            //numbers.Dock = DockStyle.Right;

            numbersPanel.Controls.Add(numbersLabel);
            numbersPanel.Controls.Add(numbers);
            numbersLabel.BringToFront();
            //numbersPanel.Dock = DockStyle.Fill;


            numbers.Value         = IconsPerColumn;
            numbers.ValueChanged += HandleIconsPerColumnValueChanged;
            numbers.Minimum       = 1;
            numbers.Maximum       = 20;
            ToolStripControlHost iconsPerColumn = new ToolStripControlHost(numbersPanel);


            // Day Width
            ToolStripControlHost setDayWidth = BuildDayWidth(dropper.BackColor);


            DateTimePicker dates = new DateTimePicker();

            dates.Width = 125;
            try {
                dates.Value = this.TimelineStartDate;
            } catch (Exception) {
                dates.Value = DateTime.Today;
            }
            dates.ValueChanged += HandleValueCurrentdateChanged;
            ToolStripControlHost dateToolStrip = new ToolStripControlHost(dates);

            dateToolStrip.ToolTipText = Loc.Instance.GetString("Select a date to center the timeline on that date.");



            properties.DropDownItems.Add(sep);
            properties.DropDownItems.Add(dropper);
            properties.DropDownItems.Add(iconsPerColumn);
            properties.DropDownItems.Add(setDayWidth);
            properties.DropDownItems.Add(RowFilterStrip);
            properties.DropDownItems.Add(dateToolStrip);


            // add hjistory to RowFilterStrip
            foreach (string history in RowHistory)
            {
                ToolStripMenuItem test = new ToolStripMenuItem(history);
                test.Click += delegate(object sender, EventArgs e){ RowFilter = RowFilterStrip.Text = test.Text; Timeline.Refresh(); };
                RowFilterStrip.DropDownItems.Add(test);
            }

            //
            //
            // Hide ZOom Panel
            //
            //
            ToolStripButton HideMonths = new ToolStripButton();

            HideMonths.Text         = Loc.Instance.GetString("Hide Months Panel");
            HideMonths.CheckOnClick = true;
            HideMonths.Checked      = this.HideZoomOutPanel;
            HideMonths.Click       += HandleHideMonthsClick;

            properties.DropDownItems.Add(HideMonths);
            // Adjust panel as needed; also add this to the menu too
            Timeline.HideZoomPanel(this.HideZoomOutPanel);
        }
예제 #2
0
        protected static NoteDataXML_Table BuildLinMasterLinkTable()
        {
            NoteDataXML_Table table      = null;
            BaseDatabase      MyDatabase = CreateDatabase();


            // 0 - GetValues (all linktable columns)  easy
            List <object[]> results = MyDatabase.GetValues(dbConstants.table_name, new string[1] {
                dbConstants.LINKTABLE
            }, "any", "*");
            string combinedResult = Constants.BLANK;

            //int record = 0;
            //NoteDataXML_Table table = null;

            if (results != null && results.Count > 0)
            {
                foreach (object[] row in results)
                {
                    if (row.Length > 0)
                    {
                        if (row [0].ToString() != Constants.BLANK)
                        {
                            if (table != null)
                            {
                                // now load secondtable and copy rows over
                                NoteDataXML_Table secondTable = LoadStringAsTable(row [0].ToString());
                                foreach (DataRow drow in secondTable.GetRows())
                                {
                                    object[] values = drow.ItemArray;
                                    values [0] = null;                                    //DBNull.Value;//DBNull.Value;

                                    table.AddRow(values);
                                }
                            }
                            else
                            {
                                table = LoadStringAsTable(row [0].ToString());
                            }

                            //							if (row[0].ToString ().IndexOf("<DocumentElement>") > -1)
                            //							{
                            //							record++;
                            //							if (1 == record)
                            //							{
                            //
                            //								combinedResult = row[0].ToString ();
                            //								// the first time we add it in a special way
                            //
                            //								int index_of_end = combinedResult.IndexOf("</DocumentElement>");
                            //								if (index_of_end > -1)
                            //								{
                            //									// chop string
                            //									combinedResult = combinedResult.Substring (0, index_of_end);
                            //								}
                            //								else
                            //								{
                            //									throw new Exception("Invalid table passed in");
                            //								}
                            //								// cut the bottom part off
                            //
                            //
                            //						//NewMessage.Show (row[0].ToString());
                            //
                            //							}
                            //							}//DocumentElement exists
                            //							else
                            //							{
                            //								// now we add each row
                            //							}
                        }
                    }
                }

                // we rebuild the text to be a proper table
                //				string END_TEXT = " </DocumentElement></diffgr:diffgram>  </dataSource> </NoteDataXML_Table>";
                //				combinedResult = combinedResult + END_TEXT;
            }
            // 1 - Consolidage all LinkTables  hard --> requires:
            MyDatabase.Dispose();
            return(table);
        }