예제 #1
0
        /// <summary>
        /// Thủ tục thêm một Module mới
        /// </summary>
        /// <param name="_strColumnRef">Mã tham chiếu đến cột sẽ chứa Module</param>
        internal void AddModule(string _strColumnRef)
        {
            // Nạp cấu trúc portal
            PortalDefinition pd = PortalDefinition.Load();

            // Tìm cột sẽ chứa Module mới
            PortalDefinition.Column _objColumnContainer = pd.GetColumn(_strColumnRef);

            if (_objColumnContainer != null)
            {
                // Tạo Module mới
                PortalDefinition.Module _objNewModule = PortalDefinition.Module.Create();

                // Thêm Module mới vào danh sách Module của cột
                _objColumnContainer.ModuleList.Add(_objNewModule);

                // Lưu cấu trúc Portal
                pd.Save();

                // Nạp lại thông tin Tab hiện thời
                LoadData(CurrentReference);

                // Hiển thị form sửa thông tin Module
                EditModule(_objNewModule.reference);
            }
        }
예제 #2
0
        /// <summary>
        /// Thủ tục thực hiện chuyển vị trí của Module đã chọn xuống 1 mức
        /// </summary>
        /// <param name="idx">Vị trí hiện thời</param>
        /// <param name="list">Danh sách Module</param>
        internal void MoveModuleDown(int idx, ModuleList list)
        {
            // Nạp cấu trúc Portal
            PortalDefinition pd = PortalDefinition.Load();

            // Lấy thông tin cột chứa Module hiện thời
            PortalDefinition.Column _objColumnContainer = pd.GetColumn(list.ContainerColumnReference);

            // Lấy danh sách Module của cột
            ArrayList _arrModuleList = _objColumnContainer.ModuleList;

            // Nếu Module đang ở mức cuối cùng thì kết thúc thủ tục
            if (idx >= _arrModuleList.Count - 1)
            {
                return;
            }

            // Lấy thông tin Module hiện thời từ danh sách Module
            PortalDefinition.Module m = (PortalDefinition.Module)_arrModuleList[idx];

            // Gỡ Module ra khỏi vị trí hiện thời
            _arrModuleList.RemoveAt(idx);

            // Chèn Module vào vị trí mới
            _arrModuleList.Insert(idx + 1, m);

            // Lưu cấu trúc Portal
            pd.Save();

            // Rebind
            LoadData(CurrentReference);
            ShowCurrentEditingColumn();
        }
        protected void btnBindModuleEditForm_Click(object sender, EventArgs e)
        {
            string tab = (string)ViewState["TabReference"];

            PortalDefinition pd = PortalDefinition.Load();

            PortalDefinition.Tab t = pd.GetTab(tab);

            string arg        = Request.Form["pageArg"];
            string moduleRef  = string.Empty;
            string moduleType = string.Empty;
            string columnRef  = string.Empty;
            string title      = string.Empty;

            if (arg.Split("$".ToCharArray()).Length == 4)
            {
                moduleRef  = arg.Split("$".ToCharArray())[0];
                moduleType = arg.Split("$".ToCharArray())[1];
                title      = arg.Split("$".ToCharArray())[2];
                columnRef  = arg.Split("$".ToCharArray())[3];
            }
            else
            {
                return;
            }

            PortalDefinition.Column column = pd.GetColumn(columnRef);

            if (moduleRef == null || moduleRef == string.Empty || moduleRef.ToLower() == "null")
            {
                module       = PortalDefinition.Module.Create();
                module.type  = moduleType;
                module.title = title;
                moduleRef    = module.reference;
            }
            else
            {
                module           = new PortalDefinition.Module();
                module.type      = moduleType;
                module.title     = title;
                module.reference = moduleRef;
            }

            if (module != null)
            {
                module.LoadModuleSettings();
                module.LoadRuntimeProperties();

                moduleSettings        = module.moduleSettings;
                moduleRuntimeSettings = module.moduleRuntimeSettings;

                lblModuleType.Text = moduleType;
                txtReference.Text  = module.reference;


                rptRuntimeProperties.DataSource = module.GetRuntimePropertiesSource(true);
                rptRuntimeProperties.DataBind();
                upEditModuleForm.Update();
            }
        }
예제 #4
0
        private void ShowCurrentEditingColumn()
        {
            PortalDefinition pd = PortalDefinition.Load();

            PortalDefinition.Column _objCurrentColumn = pd.GetColumn(CurrentColumnReference);

            if (_objCurrentColumn != null)
            {
                EditColumn(_objCurrentColumn.ColumnReference);
            }
        }
예제 #5
0
        public void LoadData(string _strColumnRef)
        {
            PortalDefinition _objPortal = PortalDefinition.Load();

            PortalDefinition.Column _objColumn = _objPortal.GetColumn(_strColumnRef);

            if (_objColumn != null)
            {
                moduleList = _objColumn.ModuleList;
                Bind();
            }
        }
        public void LoadColumnList(string _strColumnRef)
        {
            PortalDefinition _objPortal = PortalDefinition.Load();

            PortalDefinition.Column _objColumn = _objPortal.GetColumn(_strColumnRef);

            if (_objColumn != null)
            {
                LoadColumnList(_objColumn.Columns);
                lnkAddColumn.Visible            = false;
                lnkAddSubColumn.Visible         = true;
                lnkAddSubColumn.CommandArgument = _objColumn.ColumnReference;
                lblColumnListTitle.LanguageRef  = "SubColumnList";
            }
        }
예제 #7
0
        protected void OnDelete(object sender, EventArgs args)
        {
            if (Parent is Tab)
            {
                PortalDefinition        pd = PortalDefinition.Load();
                PortalDefinition.Tab    t  = pd.GetTab(CurrentTabReference);
                PortalDefinition.Column _objColumnBeingDeleted = pd.GetColumn(CurrentColumnReference);

                if (_objColumnBeingDeleted != null)
                {
                    t.DeleteColumn(CurrentColumnReference);

                    pd.Save();

                    if (Delete != null)
                    {
                        Delete(CurrentColumnReference,
                               _objColumnBeingDeleted.ColumnParent == null
                                   ? Guid.NewGuid().ToString()
                                   : _objColumnBeingDeleted.ColumnReference);
                    }
                }
            }
            else if (Parent is Template)
            {
                TemplateDefinition          td = TemplateDefinition.Load();
                TemplateDefinition.Template t  = td.GetTemplate(CurrentTabReference);
                PortalDefinition.Column     _objColumnBeingDeleted = td.GetColumn(CurrentColumnReference);

                if (_objColumnBeingDeleted != null)
                {
                    t.DeleteColumn(CurrentColumnReference);

                    td.Save();

                    if (Delete != null)
                    {
                        Delete(CurrentColumnReference,
                               _objColumnBeingDeleted.ColumnParent == null
                                   ? Guid.NewGuid().ToString()
                                   : _objColumnBeingDeleted.ColumnReference);
                    }
                }
            }


            // Hopefully we where redirected here!
        }
예제 #8
0
        /// <summary>
        /// Hàm nạp dữ liệu về một cột
        /// </summary>
        /// <param name="_strColumnRef">Mã tham chiếu của cột cần sửa</param>
        /// <param name="_strTabRef">Mã tham chiếu của Tab chứa cột</param>
        public void LoadData(string _strColumnRef, string _strTabRef)
        {
            PortalDefinition.Column _objColumn = null;

            if (Parent is Tab)
            {
                // Lấy thông tin về cột cần sửa
                PortalDefinition pd = PortalDefinition.Load();
                _objColumn = pd.GetColumn(_strColumnRef);
            }
            else if (Parent is Template)
            {
                TemplateDefinition td = TemplateDefinition.Load();
                _objColumn = td.GetColumn(_strColumnRef);
            }


            if (_objColumn != null)
            {
                // Hiển thị thông tin về cột
                txtTitle.Text                 = _objColumn.ColumnName;
                txtColWidth.Text              = _objColumn.ColumnWidth.ToString();
                ltrColumnReference.Text       = _objColumn.ColumnReference;
                chkDefaultColumnWidth.Checked = _objColumn.ColumnWidth == "";
                //txtColWidth.ReadOnly = _objColumn.ColumnWidth == "";
                txtCustomStyle.Text = _objColumn.ColumnCustomStyle;

                // Nạp danh sách các cấp độ có thể có cho cột hiện thời
                drdColumnLevel.DataSource = LoadAvaiableColumnLevels(_objColumn);
                drdColumnLevel.DataBind();
                drdColumnLevel.SelectedIndex = (drdColumnLevel.Items.FindByValue(_objColumn.ColumnLevel.ToString()) !=
                                                null)
                                                   ? drdColumnLevel.Items.IndexOf(
                    drdColumnLevel.Items.FindByValue(
                        _objColumn.ColumnLevel.ToString()))
                                                   : 0;

                CurrentColumnReference   = _strColumnRef;
                CurrentTabReference      = _strTabRef;
                CurrentTemplateReference = _strTabRef;

                chkDefaultColumnWidth.Attributes.Add("onclick", txtColWidth.ClientID + ".readOnly = this.checked;");
            }
        }
        protected void OnAddSubColumn(object sender, CommandEventArgs e)
        {
            if (Parent is Tab)
            {
                PortalDefinition        pd = PortalDefinition.Load();
                PortalDefinition.Column _objCurrentColumn = pd.GetColumn(e.CommandArgument.ToString());
                if (_objCurrentColumn != null)
                {
                    PortalDefinition.Column _objNewColumn = PortalDefinition.Column.Create(_objCurrentColumn);

                    _objCurrentColumn.Columns.Add(_objNewColumn);

                    pd.Save();
                    if (AddSubColumn != null)
                    {
                        AddSubColumn(this, _objNewColumn);
                    }
                }
            }
            else if (Parent is Template)
            {
                TemplateDefinition      td = TemplateDefinition.Load();
                PortalDefinition.Column _objCurrentColumn = td.GetColumn(e.CommandArgument.ToString());
                if (_objCurrentColumn != null)
                {
                    PortalDefinition.Column _objNewColumn = PortalDefinition.Column.Create(_objCurrentColumn);

                    _objCurrentColumn.Columns.Add(_objNewColumn);

                    td.Save();
                    if (AddSubColumn != null)
                    {
                        AddSubColumn(this, _objNewColumn);
                    }
                }
            }
        }
예제 #10
0
        /// <summary>
        /// Thủ tục lưu các thông tin đã xác lập của 1 Cột
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        protected void OnSave(object sender, EventArgs args)
        {
            try
            {
                if (Page.IsValid)
                {
                    // Save
                    PortalDefinition.Column _objColumn = null;
                    PortalDefinition        pd         = null;
                    TemplateDefinition      td         = null;

                    if (Parent is Tab)
                    {
                        // Lấy thông tin về cột cần sửa
                        pd         = PortalDefinition.Load();
                        _objColumn = pd.GetColumn(CurrentColumnReference);
                    }
                    else if (Parent is Template)
                    {
                        td         = TemplateDefinition.Load();
                        _objColumn = td.GetColumn(CurrentColumnReference);
                    }

                    if (_objColumn != null)
                    {
                        // Cập nhật lại tên cột và độ rộng của cột
                        _objColumn.ColumnName = txtTitle.Text;

                        // Cập nhật màu nền của cột
                        _objColumn.ColumnCustomStyle = txtCustomStyle.Text;

                        // Cập nhật mức độ của cột
                        _objColumn.ColumnLevel = Convert.ToInt32(drdColumnLevel.SelectedValue);
                        //lay ve do rong cua cot
                        string strColWidth = txtColWidth.Text;
                        try
                        {
                            _objColumn.ColumnWidth = chkDefaultColumnWidth.Checked ? "" : strColWidth;
                        }
                        catch
                        {
                            // Nếu có lỗi, lấy độ rộng mặc định
                            _objColumn.ColumnWidth = "";
                        }
                    }

                    if (Parent is Tab)
                    {
                        pd.Save();
                    }
                    else if (Parent is Template)
                    {
                        td.Save();
                    }

                    CurrentColumnReference = _objColumn.ColumnReference;

                    if (Save != null)
                    {
                        Save(this, new EventArgs());
                    }
                }
            }
            catch (Exception e)
            {
                lbError.Text = e.Message;
            }
        }
예제 #11
0
        internal void MoveColumnRight(string _strColumnReference)
        {
            // Nạp cấu trúc Portal
            PortalDefinition _objPortal = PortalDefinition.Load();

            // Lấy thông tin về cột cần dịch chuyển
            PortalDefinition.Column _objSelectedColumn = _objPortal.GetColumn(_strColumnReference);

            // Nếu cột cần dịch chuyển không tồn tại thì kết thúc hàm
            if (_objSelectedColumn != null)
            {
                // Tìm kiếm danh sách cột trong đó có cột đang xét
                PortalDefinition.Column _objParentColumn = _objSelectedColumn.ColumnParent;
                ArrayList _arrColumnsList = null;

                // Nếu cột cha rỗng thì cột đang xét trực thuộc Tab
                if (_objParentColumn == null)
                {
                    // Lấy thông tin Tab hiện thời
                    PortalDefinition.Tab _objCurrentTab = _objPortal.GetTab(CurrentReference);
                    if (_objCurrentTab != null)
                    {
                        // Lấy danh sách cột của Tab
                        _arrColumnsList = _objCurrentTab.Columns;
                    }
                }
                else
                {
                    // Nếu cột đang xét là cột con của 1 cột khác, thì trả về danh sách các cột đồng cấp
                    _arrColumnsList = _objParentColumn.Columns;
                }

                // Biến lưu vị trí của cột đã chọn trong danh sách
                int _intCurrentColumnIndex = 0;

                // Biến lưu trữ số cột đồng mức với cột đã chọn
                int _intSameLevelColumnsCount = 0;

                // Kiểm duyệt danh sách cột đồng cấp
                // Đếm cột có cùng Level
                for (int _intColumnCount = 0; _intColumnCount < _arrColumnsList.Count; _intColumnCount++)
                {
                    PortalDefinition.Column _objColumn = _arrColumnsList[_intColumnCount] as PortalDefinition.Column;
                    if (_objColumn.ColumnLevel == _objSelectedColumn.ColumnLevel)
                    {
                        if (_objColumn.ColumnReference == _objSelectedColumn.ColumnReference)
                        {
                            _intCurrentColumnIndex = _intSameLevelColumnsCount;
                        }
                        _intSameLevelColumnsCount++;
                    }
                }

                // Duyệt danh sách các cột cùng cấp
                if (_arrColumnsList != null && _intSameLevelColumnsCount > 0)
                {
                    // Để di chuyển sang phải --> không thể đang là vị trí cuối cùng
                    if (_intCurrentColumnIndex >= (_intSameLevelColumnsCount - 1))
                    {
                        return;
                    }
                    else
                    {
                        // Di chuyển cột đã chọn sang trái
                        _arrColumnsList.RemoveAt(_intCurrentColumnIndex);
                        _arrColumnsList.Insert(_intCurrentColumnIndex + 1, _objSelectedColumn);
                    }
                }
            }

            // Lưu cấu trúc Portal
            _objPortal.Save();

            // Nạp dữ liệu Tab
            LoadData(CurrentReference);

            // Nạp dữ liệu cột
            if (CurrentColumnReference != "")
            {
                EditColumn(CurrentColumnReference);
            }
        }