public void Bind(IEnumerable <Village> villages) { IEnumerable <VillageGridExRow> villageRows = villages.Select(x => new VillageGridExRow(World.Default.Map, x)); GridExVillage.DataSource = villageRows.ToList(); GridExVillage.MoveFirst(); }
/// <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(); } }
private void PolygonControl_Load(object sender, System.EventArgs e) { GridExVillage.Configure(false, true); GridExPolygon.Configure(true, false); GridExPolygon.RootTable.Columns["LineColor"].ConfigureAsColor(); }
/// <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); } } }
/// <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); } }
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; }
/// <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(); }
private void EventPublisherOnLocationChanged(object sender, MapLocationEventArgs mapLocationEventArgs) { GridExVillage.Refresh(); }
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); } } }
/// <summary> /// Column chooser /// </summary> private void GridExVillageShowFieldChooser_Click(object sender, System.EventArgs e) { GridExVillage.ShowFieldChooser(); }