예제 #1
0
        public void AddField(IListViewField Field)
        {
            ListViewFieldAdapter Adapter = new ListViewFieldAdapter();
            Adapter.Field = Field;
            Adapter.Column = new ColumnHeader();
            Adapter.Column.Text = Field.DisplayName;
            Adapter.Column.Name = Field.GetType().Name;

            int field_width = Field.InitialWidth;
            FieldWidthStyle width_style = Field.InitialWidthStyle;
            ListViewColumnSettings field_settings = null;
            if (mSettings != null)
            {
                field_settings = mSettings.GetColumnSettings(
                    Adapter.Column, Field.InitialWidthStyle, Field.InitialWidth);
                field_width = field_settings.Width;
                width_style = field_settings.WidthStyle;
            }

            Adapter.Column.Width = ComputeColumnWidth(width_style, field_width);

            mFields.Add(Adapter);
            if (field_settings == null || field_settings.Visible)
            {
                Adapter.Column.DisplayIndex = mFields.Count+1;
                Columns.Add(Adapter.Column);
            }
        }
예제 #2
0
        void item_CheckStateChanged(object sender, EventArgs e)
        {
            // A column was chosen to be either hidden or displayed.
            ToolStripMenuItem item             = (ToolStripMenuItem)sender;
            ToolStripItemTag  tag              = (ToolStripItemTag)item.Tag;
            ColumnHeader      column_to_change = tag.Header;

            // Find the corresponding field so we can update its visibility state.
            ListViewFieldAdapter Field = mFields.Find(x => x.Column == column_to_change);

            if (item.CheckState == CheckState.Checked)
            {
                int new_index = DetermineIndexForInsertingColumn(tag.Header);
                Columns.Insert(new_index, tag.Header);
                tag.Header.DisplayIndex = new_index;
                tag.Header.Width        = tag.LastWidth;
                if (mSettings != null)
                {
                    mSettings.Columns[column_to_change.Name].Visible = true;
                }
            }
            else
            {
                tag.LastWidth = tag.Header.Width;
                Columns.Remove(tag.Header);
                if (mSettings != null)
                {
                    mSettings.Columns[column_to_change.Name].Visible = false;
                }
            }
        }
예제 #3
0
        public void AddField(IListViewField Field)
        {
            ListViewFieldAdapter Adapter = new ListViewFieldAdapter();

            Adapter.Field       = Field;
            Adapter.Column      = new ColumnHeader();
            Adapter.Column.Text = Field.DisplayName;
            Adapter.Column.Name = Field.GetType().Name;

            int                    field_width    = Field.InitialWidth;
            FieldWidthStyle        width_style    = Field.InitialWidthStyle;
            ListViewColumnSettings field_settings = null;

            if (mSettings != null)
            {
                field_settings = mSettings.GetColumnSettings(
                    Adapter.Column, Field.InitialWidthStyle, Field.InitialWidth);
                field_width = field_settings.Width;
                width_style = field_settings.WidthStyle;
            }

            Adapter.Column.Width = ComputeColumnWidth(width_style, field_width);

            mFields.Add(Adapter);
            if (field_settings == null || field_settings.Visible)
            {
                Adapter.Column.DisplayIndex = mFields.Count + 1;
                Columns.Add(Adapter.Column);
            }
        }
예제 #4
0
 private void ExportRows(int[] Rows)
 {
     try
     {
         SaveFileDialog dialog = new SaveFileDialog();
         dialog.Filter           = "CSV files (*.csv)|*.csv";
         dialog.FilterIndex      = 0;
         dialog.RestoreDirectory = false;
         if (dialog.ShowDialog() == DialogResult.OK)
         {
             using (Stream s = dialog.OpenFile())
                 using (StreamWriter w = new StreamWriter(s))
                 {
                     List <ListViewFieldAdapter> visible_fields = mFields.Where(x => x.Column.DisplayIndex != -1).ToList();
                     for (int i = 0; i < visible_fields.Count; ++i)
                     {
                         w.Write(visible_fields[i].Field.DisplayName);
                         if (i < visible_fields.Count - 1)
                         {
                             w.Write(",");
                         }
                     }
                     w.Write("\n");
                     foreach (int row_index in Rows)
                     {
                         object        item   = mBinding.RetrieveItem(row_index);
                         List <string> fields = new List <string>();
                         for (int i = 0; i < visible_fields.Count; ++i)
                         {
                             ListViewFieldAdapter field = visible_fields[i];
                             string value = null;
                             // This is a bit of a hack, but Excel can't display the star character.
                             if (field.Field is ItemRarityField)
                             {
                                 value = field.Field.AltFormat(item);
                             }
                             else
                             {
                                 value = field.Field.Format(item);
                             }
                             // Make sure that individual fields don't contain commas.
                             w.Write(value.Replace(',', ' '));
                             if (i < visible_fields.Count - 1)
                             {
                                 w.Write(",");
                             }
                         }
                         w.Write("\n");
                     }
                 }
         }
         MessageBox.Show(String.Format("{0} rows successfully exported.", Rows.Length));
     }
     catch (Exception ex)
     {
         MessageBox.Show("FFRK Inspector encountered an error while exporting the data.  " + ex.Message);
     }
 }
예제 #5
0
        void ListViewEx_ColumnClick(object sender, ColumnClickEventArgs e)
        {
            ColumnHeader clicked_column = Columns[e.Column];

            if (clicked_column == mCurrentSortColumn)
            {
                if (mCurrentSortOrder == SortOrder.Ascending)
                {
                    mCurrentSortOrder = SortOrder.Descending;
                }
                else if (mCurrentSortOrder == SortOrder.Descending)
                {
                    mCurrentSortOrder = SortOrder.Ascending;
                }
            }
            else
            {
                mCurrentSortColumn = clicked_column;
                mCurrentSortOrder  = SortOrder.Ascending;
            }

            ListViewFieldAdapter Field = mFields.Find(x => x.Column == clicked_column);

            switch (mCurrentSortOrder)
            {
            case SortOrder.Ascending:
                mBinding.SortData(Field.Field.Compare);
                Invalidate();
                break;

            case SortOrder.Descending:
                mBinding.SortData((x, y) => - Field.Field.Compare(x, y));
                Invalidate();
                break;
            }
        }