private int GetCountry(Region region) { while (region.RegionLevel > 2) { region = RegionHelper.Get(region.IDParent.Value); } return(region.IDRegion); }
private void tvRegions_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { tvRegions.SelectedNode = e.Node; if (e.Button == MouseButtons.Left) { int idRegion = Convert.ToInt32(e.Node.Name); _regionData = RegionHelper.Get(idRegion); ShowShapeChilds(_regionData); } else { _selectedNode = e.Node; tvRegions.ContextMenuStrip = cmEditRegions; cmEditRegions.Show(tvRegions, e.X, e.Y); } }
private void EditRiskAndAction_Load(object sender, EventArgs e) { //TREEVIEW Model model = ERMTSession.Instance.CurrentModel; if (model != null) { tvRegions.Nodes.Clear(); Region current = RegionHelper.Get(model.IDRegion); List <Region> regions = new List <Region>(); regions.Add(RegionHelper.Get(1)); if (current.IDParent.HasValue && current.IDParent != 1) { regions.Add(RegionHelper.Get(current.IDParent.Value)); } regions.Add(current); regions.AddRange(RegionHelper.GetAllChilds(current.IDRegion)); TreeNode node = new TreeNode() { Text = current.RegionName, Name = current.IDRegion.ToString(), Tag = current }; int mainRegionLevel = RegionHelper.GetLevel(current.IDRegion); tvRegions.Nodes.Add(node); AddChildRegions(tvRegions.Nodes[0], regions, mainRegionLevel); tvRegions.SelectedNode = tvRegions.Nodes[0]; tvRegions.ExpandAll(); } //Electoral Phase cbElectoralPhases.Items.Add(new ComboBoxItemFace(null)); cbElectoralPhases.Items.AddRange(PhaseHelper.GetAll().Select(p => new ComboBoxItemFace(p)).ToArray()); cbElectoralPhases.SelectedIndex = 0; // Add data from alert: if (_alert.IDModel != 0) { tbCode.Text = _alert.Code; tbTitle.Text = _alert.Title; dtpDateFrom.Value = _alert.DateFrom; dtpDateTo.Value = _alert.DateTo; tbDescription.Text = _alert.RiskDescription; tbAction.Text = _alert.Action; tbResult.Text = _alert.Result; rbStatusActive.Checked = _alert.Active; rbStatusInactive.Checked = !_alert.Active; // Phases: List <ModelRiskAlertPhase> modelRiskAlertPhaseList = ModelRiskAlertHelper.GetPhases(_alert); foreach (ModelRiskAlertPhase mrap in modelRiskAlertPhaseList) { foreach (var cboPhase in cbElectoralPhases.Items) { if (((ComboBoxItemFace)cboPhase).IFase != null) { if (((ComboBoxItemFace)cboPhase).IFase.IDPhase == mrap.IDPhase) { lbElectoralPhases.Items.Add(cboPhase); } } } } // Regions: List <ModelRiskAlertRegion> modelRiskAlertRegionList = ModelRiskAlertHelper.GetModelRiskAlertRegions(_alert); foreach (ModelRiskAlertRegion region in modelRiskAlertRegionList) { foreach (TreeNode node in tvRegions.Nodes) { CheckRegion(node, region); } } // Add analysis: List <ModelRiskAlertAttachment> modelRiskAlertAttachment = ModelRiskAlertHelper.GetModelRiskAlertAttachments(_alert); foreach (ModelRiskAlertAttachment att in modelRiskAlertAttachment) { addUpdater(att); } // And a last button to add more: addUpdater(); } else { Label newLabel = new Label { Text = ResourceHelper.GetResourceText("RiskAndActionSaveWarning"), ForeColor = Color.Red, Width = 500 }; analysisPanel.Controls.Add(newLabel); } }
private void LoadModelAndRegions() { Model model = ERMTSession.Instance.CurrentModel; if (model == null) { return; } if (!IsMasterRAR) { // Load tree: tvRegions.Nodes.Clear(); Region current = RegionHelper.Get(model.IDRegion); List <Region> regions = new List <Region>(); regions.Add(RegionHelper.Get(1)); if (current.IDParent.HasValue && current.IDParent != 1) { regions.Add(RegionHelper.Get(current.IDParent.Value)); } regions.Add(current); regions.AddRange(RegionHelper.GetAllChilds(current.IDRegion)); TreeNode node = new TreeNode() { Text = current.RegionName, Name = current.IDRegion.ToString(), Tag = current }; int mainRegionLevel = RegionHelper.GetLevel(current.IDRegion); // node.ContextMenuStrip = NodeMenu; tvRegions.Nodes.Add(node); AddChildRegions(tvRegions.Nodes[0], regions, mainRegionLevel); tvRegions.ExpandAll(); tvRegions.SelectedNode = tvRegions.Nodes[0]; } else { // Load tree: tvRegions.Nodes.Clear(); //Region current = RegionHelper.Get(model.IDRegion); //List<Region> regions = ModelRiskAlertHelper.GetAllRegionsWithAlerts(); List <Region> regions = RegionHelper.GetAll().OrderBy(r => r.RegionLevel).ToList(); //regions.Add(RegionHelper.GetWorld()); if (regions.Count == 0) { return; } TreeNode node = new TreeNode { Text = regions[0].RegionName, Name = regions[0].IDRegion.ToString(), Tag = regions[0] }; int mainRegionLevel = RegionHelper.GetLevel(regions[0].IDRegion); // node.ContextMenuStrip = NodeMenu; tvRegions.Nodes.Add(node); AddChildRegions(tvRegions.Nodes[0], regions, mainRegionLevel); tvRegions.ExpandAll(); tvRegions.SelectedNode = tvRegions.Nodes[0]; } }
private void tsmiEditRegionAddChildRegion_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog { Filter = "Shape Files (*.shp)|*.shp" }; DialogResult result = openFileDialog.ShowDialog(); if (result == DialogResult.OK) { FileInfo shapeFileInfo = new FileInfo(openFileDialog.FileName); try { int count = (LayerOverlay)winformsMap1.Overlays[0] != null ? ((LayerOverlay)winformsMap1.Overlays[0]).Layers.Count : 0; if (!File.Exists(shapeFileInfo.ToString().Replace(".shp", ".dbf")) || !File.Exists(shapeFileInfo.ToString().Replace(".shp", ".shx"))) { //if there's no DBF / SHX file, can't use this .shp. //http://thinkgeo.com/forums/MapSuite/tabid/143/aft/2947/Default.aspx //1) In real life, how those files (.shp .shx .dbf) are generated ? //1. These files are automatically created upon creation of a shapefile, using the CreateShapeFile method of Map Suite or another shapefile creation application. These three files are required for a shapefile to function as dictated by ESRI shapefile standard. CustomMessageBox.ShowMessage(ResourceHelper.GetResourceText("EditRegionShapeFileMissingFiles")); } else { ShapeFileFeatureLayer newRegion = MapHelper.GetRegionFeatureLayer(shapeFileInfo); DataTable table = GetDataTable(newRegion); PickColumnForm pck = new PickColumnForm(table); if (pck.ShowDialog() == DialogResult.OK) { LoadingForm.ShowLoading(); _columnName = pck.SelectedColumn; string parentColumnName = pck.SelectedParentColumn; try { int regionCount = 0; List <Region> siblingRegions = null; String newRegionFileName = string.Empty; Region parent = null; foreach (DataRow row in table.Rows) { Boolean saveRegion = false; Region region = NewRegionData; region.RegionName = row[_columnName].ToString(); if (parentColumnName != "No parent column") //If la segunda columna esta seleccionada parentNameColumnIndex!=-1 { //Quien es el pais? int idCountry = GetCountry(RegionHelper.Get(region.IDParent.Value)); if (region.IDParent != null) { Region parentRegion = RegionHelper.Get(region.IDParent.Value); if (parentRegion.IDParent != null) { if (idCountry == _regionData.IDRegion) { region.IDParent = _regionData.IDRegion; saveRegion = true; } else { if (siblingRegions == null) { siblingRegions = RegionHelper.GetChildsAtLevel(idCountry, _regionData.RegionLevel); } foreach (Region r in siblingRegions) //Hermanos { if (r.RegionName != (string)row[parentColumnName]) { continue; } region.IDParent = r.IDRegion; saveRegion = true; break; } } } else { region.IDParent = parentRegion.IDRegion; } } } else { saveRegion = true; } parent = RegionHelper.Get(region.IDParent.Value); if (saveRegion) { region.RegionLevel = parent.RegionLevel + 1; if (newRegionFileName == string.Empty) { newRegionFileName = SaveShapefiles(shapeFileInfo, region); } region.ShapeFileName = newRegionFileName; if (table.Rows.Count == 1) { //it's the only region in the shapefile. So, no need to specify an index region.ShapeFileIndex = null; } else { //it's a shapefile that contains more than 1 regions. Index is needed. region.ShapeFileIndex = regionCount; } RegionHelper.Save(region); regionCount++; } } //Reload map and tree LoadRegions(); if (parent != null) { ShowShapeChilds(parent); } LoadingForm.Fadeout(); CustomMessageBox.ShowMessage(regionCount + " " + ResourceHelper.GetResourceText("NewRegionsHaveBeenImported")); } catch (Exception ex) { LogHelper.LogError(ex); throw; } finally { LoadingForm.Fadeout(); } } } } catch (Exception ex) { //Shape was not valid } finally { } } }