示例#1
0
        private void InitRecipientsGrid()
        {
            if (gridRecipients != null)
            {
                gridRecipients.AutoStretchColumnsToFitWidth = true;

                SourceGrid2.VisualModels.Common vmHeader =
                    new SourceGrid2.VisualModels.FlatHeader();
                vmHeader.BackColor = Color.FromArgb(228, 229, 237);
                SourceGrid2.BehaviorModels.Header bmHeader = new SourceGrid2.BehaviorModels.Header();

                // set up the header row
                gridRecipients.Rows.Insert(0);

                gridRecipients.Columns.Insert(0);
                gridRecipients[0, COL_EMAILADDRESS] = new SourceGrid2.Cells.Real.ColumnHeader("Email", vmHeader, bmHeader);

                gridRecipients.Columns.Insert(1);
                gridRecipients[0, COL_NAME] = new SourceGrid2.Cells.Real.ColumnHeader("Name", vmHeader, bmHeader);

                gridRecipients.Columns.Insert(2);
                gridRecipients[0, COL_COMPANY] = new SourceGrid2.Cells.Real.ColumnHeader("Company", vmHeader, bmHeader);

                gridRecipients.Columns.Insert(3);
                gridRecipients[0, COL_INTRO] = new SourceGrid2.Cells.Real.ColumnHeader("Intro", vmHeader, bmHeader);

                gridRecipients.Columns.Insert(4);
                gridRecipients[0, COL_CONTACT] = new SourceGrid2.Cells.Real.ColumnHeader("Contact", vmHeader, bmHeader);

                // Size Column Widths
                int columnWidth = gridRecipients.Width / gridRecipients.ColumnsCount;
                for (int i = 0; i < gridRecipients.ColumnsCount; i++)
                {
                    gridRecipients.Columns[i].Width = columnWidth;
                }

                //AddRow(); // first row
            }
        }
        private void LoadProjectInfo()
        {
            try
            {
                hshProjects = syncMgr.GetProjects(false);

                gridProjects.FixedRows = 1;
                gridProjects.AutoStretchColumnsToFitWidth = true;

                // create a visual model for right-aligned text with trimming
                SourceGrid2.VisualModels.Common vmEllipsePath = new SourceGrid2.VisualModels.Common();
                vmEllipsePath.StringFormat.Trimming = StringTrimming.EllipsisPath;
                // create a visual model for flat headers
                SourceGrid2.VisualModels.Common vmHeader = new SourceGrid2.VisualModels.FlatHeader();
                vmHeader.BackColor = Color.FromArgb(228, 229, 237);
                SourceGrid2.BehaviorModels.Header bmHeader = new SourceGrid2.BehaviorModels.Header();

                // set up the header row
                gridProjects.Rows.Insert(0);

                // set up the columns
                gridProjects.Columns.Insert(0);                 // hidden sync project full path
                gridProjects[0, 0] = new SourceGrid2.Cells.Real.ColumnHeader("", vmHeader, bmHeader);

                gridProjects.Columns.Insert(1);                 // check box column
                gridProjects[0, 1] = new SourceGrid2.Cells.Real.ColumnHeader("Sync?", vmHeader, bmHeader);

                gridProjects.Columns.Insert(2);                 // project name
                gridProjects[0, 2] = new SourceGrid2.Cells.Real.ColumnHeader("Project Name", vmHeader, bmHeader);

                gridProjects.Columns.Insert(3);                 // sync folder short for display
                gridProjects[0, 3] = new SourceGrid2.Cells.Real.ColumnHeader("Outlook Sync Folder", vmHeader, bmHeader);

                gridProjects.Columns.Insert(4);                 // browse button
                gridProjects[0, 4] = new SourceGrid2.Cells.Real.ColumnHeader("", vmHeader, bmHeader);

                SizeColumns();

                if (hshProjects == null)
                {
                    return;
                }

                // add rows for projects
                int iRow = 0;
                foreach (ProjectInfo projInfo in hshProjects.Values)
                {
                    iRow++;
                    gridProjects.Rows.Insert(iRow);

                    // add row
                    if (!hshProjRows.Contains(projInfo.ProjID))
                    {
                        hshProjRows.Add(projInfo.ProjID, iRow);
                    }

                    // add each cell individually
                    // sync folder path
                    gridProjects[iRow, col_SyncFolderFull] = new SourceGrid2.Cells.Real.Cell(projInfo.SyncFolder);
                    // checkbox for sync enabled
                    gridProjects[iRow, col_SyncEnabled] = new SourceGrid2.Cells.Real.CheckBox(projInfo.SyncEnabled);
                    // project name
                    gridProjects[iRow, col_ProjName] = new SourceGrid2.Cells.Real.Cell(projInfo.ProjectName);
                    // sync folder short
                    gridProjects[iRow, col_SyncFolder]             = new SourceGrid2.Cells.Real.Cell(projInfo.SyncFolderShort);
                    gridProjects[iRow, col_SyncFolder].VisualModel = vmEllipsePath;
                    // browse button
                    gridProjects[iRow, col_BrowseButton] = new SourceGrid2.Cells.Real.Button("...", new SourceGrid2.PositionEventHandler(BrowseOutlookFolders_Click));
                    FlatHeader vm = new FlatHeader();
                    vm.BackColor = Color.FromArgb(228, 229, 237);
                    gridProjects[iRow, col_BrowseButton].VisualModel = vm;

                    // TODO: NEXT VERSION ... add a hidden row for additional project settings that displays when
                    //       the main project row is selected
                }
            }
            catch (System.Exception ex)
            {
                ErrorHandler.PublishError(ex, syncMgr.Logger);
            }
        }