예제 #1
0
        public object RowImageGetter(object rowObject)
        {
            ItemExtendable s = (ItemExtendable)rowObject;

            foreach (KeyValuePair <string, DefinitionData> data in CurrentProject.attributeDefinitions)
            {
                if (data.Value.DataType == DefinitionDataType.Sprite)
                {
                    if (imageListSmall.Images.Keys.IndexOf(s.getValue(data.Key)) > -1)
                    {
                        string a = s.getValue(data.Key);
                        return(a);
                    }
                }
            }

            return(-1);
        }
예제 #2
0
        private void renderItemList()
        {
            int selection = -1;
            int count     = itemListViewExt.Items.Count;

            //if (itemListViewExt.SelectedItems.Count > 0)
            if (itemListViewExt.SelectedObjects.Count > 0)
            {
                selection = itemListViewExt.SelectedIndex;
            }

            itemListViewExt.Enabled = false;
            itemListViewExt.Reset();

            // render columns
            //itemListView.Columns.Add("ID");
            //foreach (KeyValuePair<string, DefinitionData> entry in CurrentProject.attributeDefinitions)
            //{
            //    itemListView.Columns.Add(entry.Key);
            //}

            // render same for objectListView
            //List<OLVColumn> columns = new List<OLVColumn>();
            OLVColumn olvDefaultColumn = new OLVColumn()
            {
                AspectName = "ID", Text = "ID", Groupable = false, Sortable = false, Hideable = false, IsVisible = true
            };

            //columns.Add(olvDefaultColumn);
            itemListViewExt.AllColumns.Add(olvDefaultColumn);

            foreach (KeyValuePair <string, DefinitionData> entry in CurrentProject.attributeDefinitions)
            {
                OLVColumn olvKeyCol = new OLVColumn()
                {
                    Text       = entry.Key,
                    AspectName = entry.Key,
                    //AspectGetter = delegate(object x) { return ((ItemExtendable)x).getValue(entry.Key); },
                    Sortable  = (entry.Key == "Name"),
                    Groupable = false,
                    Hideable  = true,
                    IsVisible = true,
                    //IsHeaderVertical = (entry.Value.DataType == DefinitionDataType.Int),
                    //,
                    //FillsFreeSpace = true
                };

                if (entry.Key == CurrentProject.GroupBy)
                {
                    //olvKeyCol.ImageGetter = new ImageGetterDelegate(this.RowImageGetter);
                    olvDefaultColumn.ImageGetter = new ImageGetterDelegate(this.RowImageGetter);

                    /*olvDefaultColumn.AspectToStringConverter = delegate(object x){
                     *      return "eee";
                     * };*/
                    //olvKeyCol.GroupKeyToTitleConverter = delegate(object x)
                    //{
                    //    return CurrentProject.groupDefinitions[CurrentProject.GroupBy].IndexOf(x.ToString()).ToString() + ". " + x.ToString();
                    //};
                    olvKeyCol.GroupKeyGetter = delegate(object x)
                    {
                        ItemExtendable item         = (ItemExtendable)x;
                        int            eiteration   = 0;
                        int            leadingZeros = (int)Math.Ceiling(CurrentProject.groupDefinitions[CurrentProject.GroupBy].Count / 10.0);
                        string         val          = item.getValue(CurrentProject.GroupBy).ToString();
                        foreach (string option in CurrentProject.groupDefinitions[CurrentProject.GroupBy])
                        {
                            if (eiteration.ToString() == val)
                            {
                                return((eiteration + 1).ToString().PadLeft(leadingZeros, '0') + ". " + option);
                            }
                            eiteration++;
                        }

                        return(val);
                    };
                    // add as a first column
                    //itemListViewExt.AlwaysGroupByColumn = olvKeyCol;
                    olvKeyCol.Groupable = true;
                    olvKeyCol.Sortable  = true;
                    olvKeyCol.IsVisible = true;
                    itemListViewExt.PrimarySortColumn = olvKeyCol;
                }

                //if (itemListViewExt.Columns.Count < 8)
                //{
                //itemListViewExt.Columns.Add(olvKeyCol);
                itemListViewExt.AllColumns.Add(olvKeyCol);
                //itemListViewExt.RebuildColumns();
                //olvKeyCol.Hideable = true;
                //}
            }

            itemListViewExt.Visible    = false;
            itemListViewExt.ShowGroups = true;
            itemListViewExt.SetObjects(CurrentProject.itemCollection.Values.ToList());
            itemListViewExt.RebuildColumns();
            itemListViewExt.BuildList();

            //itemListViewExt.BuildGroups(itemListViewExt.PrimarySortColumn, SortOrder.Ascending);

            itemListViewExt.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
            itemListViewExt.Visible = true;
            itemListViewExt.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);

            // render items
            //foreach (KeyValuePair<int, ItemExtendable> entry in CurrentProject.itemCollection)
            //{
            //    ListViewItem item = itemListView.Items.Add(entry.Key.ToString());
            //    item.ImageIndex = 0;
            //    item.UseItemStyleForSubItems = false;
            //    foreach (KeyValuePair<string, DefinitionData> data in CurrentProject.attributeDefinitions)
            //    {
            //        ListViewItem.ListViewSubItem c = item.SubItems.Add(entry.Value.getValueLabel(data.Key));
            //        if (data.Value.GroupName == CurrentProject.GroupBy)
            //        {
            //            item.Group = itemListView.Groups[entry.Value.getValueLabel(data.Key)];
            //        }

            //        if (data.Value.DataType == DefinitionDataType.Sprite && item.ImageIndex == 0) // 0 == not yet changed
            //        {
            //            if (imageListBig.Images.Keys.IndexOf(entry.Value.getValue(data.Key)) > -1)
            //            {
            //                item.ImageKey = entry.Value.getValue(data.Key);
            //            }
            //        }

            //        if (item.ToolTipText == "" && data.Value.DataType == DefinitionDataType.String)
            //        {
            //            item.ToolTipText = entry.Value.getValue(data.Key);
            //        }

            //        if (c.Text == CurrentProject.attributeDefinitions[data.Key].DefaultValue)
            //        {
            //            c.ForeColor = Color.Green;
            //        }
            //        else if (c.Text == "0")
            //        {
            //            c.ForeColor = Color.Gray;
            //        }
            //    }
            //}

            // auto column width

            /*foreach (ColumnHeader col in itemListView.Columns)
             * {
             *      int w1;
             *      col.Width = -1;
             *      w1 = col.Width;
             *      col.Width = Math.Max(w1, 60);
             * }*/

            // bring back selection
            if (selection > -1 && itemListViewExt.Items.Count == count)
            {
                itemListViewExt.SelectedIndex = selection;
                //itemListViewExt.Items[selection].Selected = true;
                itemListViewExt.Focus();
            }
            else if (itemListViewExt.Items.Count > 0)
            {
                //itemListViewExt.Items[itemListViewExt.Items.Count - 1].Selected = true;
                itemListViewExt.Items[0].Selected = true;
            }

            itemListViewExt.Enabled = true;
            itemListViewExt.Focus();
        }