Пример #1
0
        public void Bind(IEnumerable <Village> villages)
        {
            IEnumerable <VillageGridExRow> villageRows = villages.Select(x => new VillageGridExRow(World.Default.Map, x));

            GridExVillage.DataSource = villageRows.ToList();
            GridExVillage.MoveFirst();
        }
Пример #2
0
        /// <summary>
        /// Load all villages from all polygons
        /// </summary>
        private void LoadPolygonData_Click(object sender, System.EventArgs e)
        {
            List <Polygon> polygons = World.Default.Map.Manipulators.PolygonManipulator.GetAllPolygons().ToList();

            if (!polygons.Any())
            {
                World.Default.Map.Manipulators.SetManipulator(ManipulatorManagerTypes.Polygon);
                MessageBox.Show(ControlsRes.PolygonControl_StartHelp, ControlsRes.PolygonControl_StartHelpTitle, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            if (ModusPolygon.Enabled)
            {
                // BBCode export: load villages
                GridExVillage.RemoveFilters();
                World.Default.Map.EventPublisher.ActivatePolygon(this, polygons);
            }
            else
            {
                // Polygon management
                IEnumerable <string> groups = polygons.Select(x => x.Group).Distinct().OrderBy(x => x);
                var valueList = new GridEXValueListItemCollection();
                foreach (string group in groups)
                {
                    valueList.Add(group, group);
                }
                GridExPolygon.RootTable.Columns["GROUP"].EditValueList = valueList;

                GridExPolygon.DataSource = polygons;
                GridExPolygon.MoveFirst();
            }
        }
Пример #3
0
        private void PolygonControl_Load(object sender, System.EventArgs e)
        {
            GridExVillage.Configure(false, true);
            GridExPolygon.Configure(true, false);

            GridExPolygon.RootTable.Columns["LineColor"].ConfigureAsColor();
        }
Пример #4
0
        /// <summary>
        /// Update group header totals
        /// </summary>
        private void GridExVillage_RowCheckStateChanged(object sender, RowCheckStateChangeEventArgs e)
        {
            GridEXRow groupToUpdate = e.Row;

            if (groupToUpdate == null)
            {
                // Column header checkbox click
                foreach (var row in GridExVillage.GetRows())
                {
                    UpdateGroupRecordText(row);
                }
                return;
            }

            if (e.Row.RowType == RowType.Record)
            {
                // Normal row
                groupToUpdate = e.Row.Parent;
            }

            if (groupToUpdate.RowType == RowType.GroupHeader)
            {
                if (groupToUpdate.Parent != null)
                {
                    UpdateGroupRecordText(groupToUpdate.Parent);
                }
                else
                {
                    UpdateGroupRecordText(groupToUpdate);
                }
            }
        }
Пример #5
0
        /// <summary>
        /// The selected villages are exported to the clipboard
        /// </summary>
        private void ButtonGenerate_Click(object sender, System.EventArgs e)
        {
            if (GridExVillage.RowCount == 0)
            {
                MessageBox.Show(string.Format(ControlsRes.PolygonControl_EmptyGrid, LoadPolygonData.Text), ControlsRes.PolygonControl_StartHelpTitle);
                return;
            }

            var str = new StringBuilder();
            int villagesExported = 0;

            foreach (GridEXRow groupRow in GridExVillage.GetRows())
            {
                if (groupRow.RowType == RowType.GroupHeader)
                {
                    str.AppendLine();
                    str.AppendLine();
                    str.AppendLine(groupRow.GroupValue.ToString());
                    foreach (GridEXRow row in groupRow.GetChildRecords())
                    {
                        if (row.CheckState == RowCheckState.Checked)
                        {
                            villagesExported++;

                            var villageRow = (PolygonDataSet.VILLAGERow)((DataRowView)row.DataRow).Row;
                            if (!string.IsNullOrWhiteSpace(villageRow.Village.Type.GetDescription()))
                            {
                                str.AppendLine(villageRow.BBCODE + " (" + villageRow.Village.Type.GetDescription() + ")");
                            }
                            else
                            {
                                str.AppendLine(villageRow.BBCODE);
                            }
                        }
                    }
                }
            }

            if (WinForms.ToClipboard(str.ToString().Trim()))
            {
                MessageBox.Show(string.Format(ControlsRes.PolygonControl_ToClipboard, villagesExported), ControlsRes.PolygonControl_ToClipboardTitle, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Пример #6
0
        private void VillagesGridControl_Load(object sender, EventArgs e)
        {
            GridExVillage.Configure(false, true);

            foreach (var column in GridExVillage.RootTable.Columns.OfType <GridEXColumn>())
            {
                VillageFields type = GetVillageColumnType(column);
                _columns.Add(type, column);

                column.Caption       = ColumnDisplay.VillageHeader.GetCaption(type);
                column.HeaderToolTip = ColumnDisplay.VillageHeader.GetTooltip(type);
            }

            _columns[VillageFields.Points].ConfigureAsNumeric();
            _columns[VillageFields.Kingdom].ConfigureAsNumeric();

            _columns[VillageFields.Player].Visible = ShowPlayer;
            _columns[VillageFields.Church].Visible = World.Default.Settings.Church;

            World.Default.Map.EventPublisher.LocationChanged += EventPublisherOnLocationChanged;
        }
Пример #7
0
        /// <summary>
        /// BBCodeArea polygon(s) have been ported to this control
        /// </summary>
        private void EventPublisher_PolygonActivated(object sender, PolygonEventArgs e)
        {
            Polygon[] polygons = e.Polygons.ToArray();
            if (polygons.Length == 1)
            {
                // Polygon management grid: jump to the selected polygon row
                foreach (GridEXRow row in GridExPolygon.GetRows())
                {
                    if (row.RowType == RowType.Record)
                    {
                        var polygon = (Polygon)row.DataRow;
                        if (polygon.Equals(polygons[0]))
                        {
                            GridExPolygon.MoveTo(row);
                            break;
                        }
                    }
                }
            }

            GridExVillage.DataSource = PolygonDataSet.CreateDataSet(e.Polygons);
            GridExVillage.MoveFirst();
        }
Пример #8
0
 private void EventPublisherOnLocationChanged(object sender, MapLocationEventArgs mapLocationEventArgs)
 {
     GridExVillage.Refresh();
 }
Пример #9
0
        private void GridExVillage_MouseClick(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                var rowCount = GridExVillage.SelectedItems.Count;
                if (rowCount == 1)
                {
                    var row = GridExVillage.CurrentRow;
                    if (row != null && row.RowType == RowType.Record)
                    {
                        VillageGridExRow record = GetVillageRow(row);

                        var contextMenu = new VillageContextMenu(World.Default.Map, record.Village, () => GridExVillage.Refresh());
                        contextMenu.Show(GridExVillage, e.Location);
                    }
                }
                else if (rowCount > 1)
                {
                    IEnumerable <Village> villages = GridExVillage.SelectedItems.GetRows <VillageGridExRow>().Select(x => x.Village);

                    var contextMenu = new VillagesContextMenu(World.Default.Map, villages.ToArray(), type => GridExVillage.Refresh());
                    contextMenu.Show(GridExVillage, e.Location);
                }
            }
        }
Пример #10
0
 /// <summary>
 /// Column chooser
 /// </summary>
 private void GridExVillageShowFieldChooser_Click(object sender, System.EventArgs e)
 {
     GridExVillage.ShowFieldChooser();
 }