Пример #1
0
        /**
         * Adds a checklistbox item for the specified property resource.
         */

        private PropertyTypeTag AddItemForPropType(ColumnDescriptor colDesc, int[] propIds, bool[] reverseLinks,
                                                   bool isChecked)
        {
            PropertyTypeTag tag = new PropertyTypeTag(colDesc, propIds, reverseLinks, isChecked);

            AddPropTypeItem(tag, isChecked);
            return(tag);
        }
Пример #2
0
 private void AddPropTypeItem(PropertyTypeTag tag, bool isChecked)
 {
     _propListView.Nodes.Add(tag);
     if (isChecked)
     {
         _checkColumn.SetItemCheckState(tag, CheckBoxState.Checked);
     }
     UpdateCheckboxColumns(tag, isChecked);
 }
Пример #3
0
 private void SetFlagFromColumn(PropertyTypeTag tag, CheckBoxColumn column, ColumnDescriptorFlags flag)
 {
     if (column.GetItemCheckState(tag) == CheckBoxState.Checked)
     {
         tag.ColDesc.Flags |= flag;
     }
     else
     {
         tag.ColDesc.Flags &= ~flag;
     }
 }
Пример #4
0
 private void SetColumnFromFlag(PropertyTypeTag tag, CheckBoxColumn column, ColumnDescriptorFlags flag, bool isChecked)
 {
     if (isChecked)
     {
         column.SetItemCheckState(tag,
                                  ((tag.ColDesc.Flags & flag) != 0)
             ? CheckBoxState.Checked
             : CheckBoxState.Unchecked);
     }
     else
     {
         column.SetItemCheckState(tag, CheckBoxState.Grayed);
     }
 }
Пример #5
0
        private void UpdateCheckboxColumns(PropertyTypeTag tag, bool isChecked)
        {
            if ((tag.ColDesc.Flags & ColumnDescriptorFlags.FixedSize) != 0)
            {
                _autoSizeColumn.SetItemCheckState(tag, CheckBoxState.Grayed);
            }
            else
            {
                SetColumnFromFlag(tag, _autoSizeColumn, ColumnDescriptorFlags.AutoSize, isChecked);
            }

            SetColumnFromFlag(tag, _showIfNotEmptyColumn, ColumnDescriptorFlags.ShowIfNotEmpty, isChecked);
            SetColumnFromFlag(tag, _showIfDistinctColumn, ColumnDescriptorFlags.ShowIfDistinct, isChecked);
        }
Пример #6
0
        /**
         * Applies the columns selected in the dialog to the resource list view.
         */

        private void SaveColumnsToState(ResourceListState state)
        {
            ArrayList newColumnDescriptors = new ArrayList();

            foreach (JetListViewNode node in _propListView.Nodes)
            {
                PropertyTypeTag tag = (PropertyTypeTag)node.Data;
                if (_checkColumn.GetItemCheckState(tag) == CheckBoxState.Checked)
                {
                    SetFlagFromColumn(tag, _autoSizeColumn, ColumnDescriptorFlags.AutoSize);
                    SetFlagFromColumn(tag, _showIfNotEmptyColumn, ColumnDescriptorFlags.ShowIfNotEmpty);
                    SetFlagFromColumn(tag, _showIfDistinctColumn, ColumnDescriptorFlags.ShowIfDistinct);
                    newColumnDescriptors.Add(tag.ColDesc);
                }
            }
            state.Columns = (ColumnDescriptor[])newColumnDescriptors.ToArray(typeof(ColumnDescriptor));
        }
Пример #7
0
        private void AddUncheckedColumns(ArrayList propTypeList, IResourceList resList, Hashtable nameToPropTagMap)
        {
            foreach (IPropType propType in propTypeList)
            {
                bool   linksReverse = AreLinksReverse(resList, propType.Id);
                string displayName  = linksReverse ? propType.ReverseDisplayName : propType.DisplayName;
                if (displayName == null)
                {
                    displayName = propType.Name;
                }

                PropertyTypeTag propTypeTag = (PropertyTypeTag)nameToPropTagMap [displayName];
                if (propTypeTag == null)
                {
                    ColumnDescriptor colDesc = new ColumnDescriptor(propType.Name, 150);
                    _displayColumnManager.FindColumnDescriptor(propType.Name, ref colDesc);
                    propTypeTag = new PropertyTypeTag(colDesc,
                                                      new int[] { propType.Id }, new bool[] { linksReverse }, false);
                    nameToPropTagMap [displayName] = propTypeTag;
                }
                else if (!propTypeTag.InitialChecked)
                {
                    propTypeTag.AppendPropType(propType);
                }
            }

            ArrayList tags = new ArrayList(nameToPropTagMap.Values);

            tags.Sort();
            foreach (PropertyTypeTag tag in tags)
            {
                if (!tag.InitialChecked)
                {
                    AddPropTypeItem(tag, false);
                }
            }
        }
Пример #8
0
        private void HandleAfterCheck(object sender, CheckBoxEventArgs e)
        {
            PropertyTypeTag tag = (PropertyTypeTag)e.Item;

            UpdateCheckboxColumns(tag, (e.NewState == CheckBoxState.Checked));
        }
Пример #9
0
        /**
         * Fills the checklistbox with properties for the specified resource list.
         */

        private void FillPropertyList()
        {
            IResourceList allPropList = Core.ResourceStore.GetAllResources("PropType");

            allPropList.Sort(new SortSettings(ResourceProps.DisplayName, true));
            ArrayList    propTypeList = new ArrayList();
            IntHashTable propTypeHash = new IntHashTable();

            foreach (IResource res in allPropList)
            {
                int propId = res.GetIntProp("ID");
                if (!Core.ResourceStore.PropTypes [propId].HasFlag(PropTypeFlags.Internal))
                {
                    if (StateHasProp(_state, propId) || _availableColumns.IndexOf(propId) >= 0 ||
                        _resourceList.HasProp(propId))
                    {
                        IPropType propType = Core.ResourceStore.PropTypes [propId];
                        propTypeList.Add(propType);
                        propTypeHash [propId] = propType;
                    }
                }
            }
            if (StateHasProp(_state, ResourceProps.DisplayName) || IsDisplayNameColumnAvailable())
            {
                IPropType displayNamePropType = Core.ResourceStore.PropTypes [ResourceProps.DisplayName];
                propTypeList.Add(displayNamePropType);
                propTypeHash [ResourceProps.DisplayName] = displayNamePropType;
            }

            Hashtable nameToPropTagMap = new Hashtable();

            // first, add the columns already in the list, in the list order
            foreach (ColumnDescriptor colDesc in _state.Columns)
            {
                int[] propIds = _displayColumnManager.PropNamesToIDs(colDesc.PropNames, true);
                if (propIds.Length == 1 && propIds [0] == ResourceProps.Type)
                {
                    continue;
                }

                bool[] reverseLinks = new bool [propIds.Length];
                for (int i = 0; i < propIds.Length; i++)
                {
                    reverseLinks [i] = AreLinksReverse(_resourceList, propIds [i]);
                }
                for (int i = 0; i < propIds.Length; i++)
                {
                    IPropType propType = (IPropType)propTypeHash [propIds [i]];
                    if (propType == null)
                    {
                        propType = (IPropType)propTypeHash [-propIds [i]];
                    }
                    if (propType != null)
                    {
                        propTypeList.Remove(propType);
                    }
                }
                PropertyTypeTag tag = AddItemForPropType(colDesc, propIds, reverseLinks, true);
                nameToPropTagMap [tag.ToString()] = tag;
            }

            AddUncheckedColumns(propTypeList, _resourceList, nameToPropTagMap);
        }