Esempio n. 1
0
        public override void Init()
        {
            DBBaseName = PanelMode == PanelType.Materials ? "MaterialsGrid" : PanelMode == PanelType.Commodities ? "CommoditiesGrid" : "MicroResourcesGrid";

            dataGridViewMC.MakeDoubleBuffered();
            extCheckBoxWordWrap.Checked = GetSetting(dbWrapText, false);
            UpdateWordWrap();
            extCheckBoxWordWrap.Click += extCheckBoxWordWrap_Click;

            var enumlist   = new Enum[] { EDTx.UserControlMaterialCommodities_NameCol, EDTx.UserControlMaterialCommodities_ShortName, EDTx.UserControlMaterialCommodities_Category, EDTx.UserControlMaterialCommodities_Type, EDTx.UserControlMaterialCommodities_Number, EDTx.UserControlMaterialCommodities_Price };
            var enumlisttt = new Enum[] { EDTx.UserControlMaterialCommodities_buttonFilter_ToolTip, EDTx.UserControlMaterialCommodities_textBoxItems1_ToolTip, EDTx.UserControlMaterialCommodities_textBoxItems2_ToolTip, EDTx.UserControlMaterialCommodities_checkBoxShowZeros_ToolTip, EDTx.UserControlMaterialCommodities_extCheckBoxWordWrap_ToolTip };

            BaseUtils.Translator.Instance.TranslateControls(this, enumlist, null, "UserControlMaterialCommodities");
            BaseUtils.Translator.Instance.TranslateTooltip(toolTip, enumlisttt, this, "UserControlMaterialCommodities");

            cfs = new JournalFilterSelector();
            cfs.AddAllNone();

            MaterialCommodityMicroResourceType[] items;
            Tuple <MaterialCommodityMicroResourceType.ItemType, string>[] types;

            Price.Tag = Number.Tag = "Num";     // these tell the sorter to do numeric sorting

            if (PanelMode == PanelType.Materials)
            {
                dataGridViewMC.Columns[5].HeaderText = "Recipes".T(EDTx.UserControlMaterialCommodities_Recipes);
                labelItems1.Text = "Data".T(EDTx.UserControlMaterialCommodities_Data);
                labelItems2.Text = "Mats".T(EDTx.UserControlMaterialCommodities_Mats);

                items = MaterialCommodityMicroResourceType.GetMaterials(true);
                types = MaterialCommodityMicroResourceType.GetTypes((x) => x.IsMaterial, true);

                var cats = MaterialCommodityMicroResourceType.GetCategories((x) => x.IsMaterial, true);

                foreach (var t in cats)
                {
                    string[] members = MaterialCommodityMicroResourceType.GetFDNameMembersOfCategory(t.Item1, true);
                    cfs.AddGroupOption(String.Join(";", members) + ";", t.Item2);
                }
            }
            else if (PanelMode == PanelType.MicroResources)
            {
                dataGridViewMC.ContextMenuStrip = null;
                dataGridViewMC.Columns.Remove(Type);
                Number.HeaderText     = "Ship Locker".T(EDTx.UserControlMaterialCommodities_ShipLocker);
                Price.HeaderText      = "BackPack".T(EDTx.UserControlMaterialCommodities_BackPack);
                labelItems1.Text      = "Total".T(EDTx.UserControlMaterialCommodities_Total);
                textBoxItems2.Visible = labelItems2.Visible = false;

                items = MaterialCommodityMicroResourceType.GetMicroResources(true);
                types = MaterialCommodityMicroResourceType.GetTypes((x) => x.IsMicroResources, true);

                var cats = MaterialCommodityMicroResourceType.GetCategories((x) => x.IsMicroResources, true);

                foreach (var t in cats)
                {
                    string[] members = MaterialCommodityMicroResourceType.GetFDNameMembersOfCategory(t.Item1, true);
                    cfs.AddGroupOption(String.Join(";", members) + ";", t.Item2);
                }
            }
            else
            {
                dataGridViewMC.Columns.Remove(dataGridViewMC.Columns[1]); //remove cat

                DataGridViewColumn c = dataGridViewMC.Columns[1];         // reassign column 1 to end and call recipes
                c.HeaderText   = "Recipes".T(EDTx.UserControlMaterialCommodities_Recipes);
                c.DisplayIndex = 4;                                       // need to change its display pos
                dataGridViewMC.Columns.Remove(c);                         // and to place it at the end otherwise it does not fill in the right order
                dataGridViewMC.Columns.Add(c);

                labelItems1.Text           = "Total".T(EDTx.UserControlMaterialCommodities_Total);
                textBoxItems2.Visible      = labelItems2.Visible = false;
                checkBoxShowZeros.Location = new Point(textBoxItems1.Right + 8, checkBoxShowZeros.Top);

                items = MaterialCommodityMicroResourceType.GetCommodities(true);
                types = MaterialCommodityMicroResourceType.GetTypes((x) => x.IsCommodity, true);

                MaterialCommodityMicroResourceType[] rare = items.Where(x => x.IsRareCommodity).ToArray();
                cfs.AddGroupOption(String.Join(";", rare.Select(x => x.FDName).ToArray()) + ";", "Rare".T(EDTx.UserControlMaterialCommodities_Rare));
            }

            foreach (var t in types)
            {
                string[] members = MaterialCommodityMicroResourceType.GetFDNameMembersOfType(t.Item1, true);
                cfs.AddGroupOption(String.Join(";", members) + ";", t.Item2);
            }

            foreach (var x in items)
            {
                cfs.AddStandardOption(x.FDName, x.Name);
            }

            checkBoxShowZeros.Checked         = !GetSetting(dbClearZero, true); // used to be clear zeros, now its show zeros, invert
            checkBoxShowZeros.CheckedChanged += CheckBoxClear_CheckedChanged;

            cfs.SaveSettings += FilterChanged;
        }