public ucDrawBase(HMCon con, TUC_HMDevXManager.TUC_HMDevXManager hmDevMgr, WpfMapDrawBase map) { _hmCon = con; _hmDevMgr = hmDevMgr; _pop = new frmPopup(hmDevMgr); _map = map; _attrTable = new DataTable(); _attrTable.Columns.Add(new DataColumn("Attribute")); _attrTable.Columns.Add(new DataColumn("Value")); }
public ucDrawPoint(HMCon con, TUC_HMDevXManager.TUC_HMDevXManager hmDevMgr, WpfMapDrawBase map, MapPointLayer layer, int layerIndex) : base(con, hmDevMgr, map) { InitializeComponent(); _layer = layer; _layerIndex = layerIndex; gcAttr.DataSource = _attrTable; InDrawingStatus(false); }
public ucDrawEvents(HMCon con, TUC_HMDevXManager.TUC_HMDevXManager hmDevMgr, WpfMapDrawBase map, MapEventLayer layer, int layerIndex) : base(con, hmDevMgr, map) { InitializeComponent(); _layerList = new Dictionary <MapEventLayer, int>() { { layer, layerIndex } }; cboType.Properties.Items.AddRange(_layerList.Keys); cboType.SelectedIndex = 0; gcAttr.DataSource = _attrTable; InDrawingStatus(false); }
public void Init(HMCon con, TUC_HMDevXManager.TUC_HMDevXManager hmDevMgr, List <DataRow> rowList, List <IMapLayer> layers) { _hmCon = con; _hmDevMgr = hmDevMgr; _layers = layers; _pop = new frmPopup(_hmDevMgr); _map = new WpfMapDrawBase(_hmDevMgr); host.Child = _map; _data = new Dictionary <int, List <IGeoInfo> >(); DrawTabFactory factory = new DrawTabFactory(); for (int i = 0; i < layers.Count; i++) { try { _map.RegisterLayer(i, layers[i]); ucDrawBase ucDraw = factory.CreateInstance(con, hmDevMgr, _map, layers[i], i); if (ucDraw != null) { ucDraw.DrawingStatusChanged += SetDrawingMode; if (ucDraw is ucDrawEvents) { ucDraw.ConvertTo <ucDrawEvents>().EventTypeChanged += FrmMapDraw_EventTypeChanged; ucDraw.ConvertTo <ucDrawEvents>().MarkerChanged += _map.EventMarkerChanged; _map.PointTapped += ucDraw.ConvertTo <ucDrawEvents>().SetPoint; } else if (ucDraw is ucDrawShape) { _map.ItemTapped += ucDraw.ConvertTo <ucDrawShape>().SetItem; } else if (ucDraw is ucDrawLine) { _map.ItemTapped += ucDraw.ConvertTo <ucDrawLine>().SetItem; } var page = tabControl.TabPages.Add(layers[i] is MapEventLayer ? "Event" : layers[i].LayerName); ucDraw.Parent = page; ucDraw.Dock = DockStyle.Fill; } _data.Add(i, MapData.GetDataList(con, rowList, layers[i])); } catch (ConstraintException ex) { _pop.ShowPopup($"Error in loading {layers[i].LinkTable}: {ex.Message}"); } } DataTable dataTable = new DataTable(); dataTable.Columns.Add(new DataColumn("#")); foreach (var layer in layers) { layer.Attributes.ToList().ForEach(attr => { if (dataTable.Columns.IndexOf(attr.LinkField) == -1) { DataColumn col = new DataColumn(attr.LinkField); col.Caption = attr.DisplayName; dataTable.Columns.Add(col); } }); } foreach (var srcRow in rowList) { var row = dataTable.NewRow(); foreach (var layer in layers) { row["#"] = srcRow[layer.LinkColumn]; layer.Attributes.ToList().ForEach(attr => row[attr.LinkField] = attr.LinkDictionary?[$"{srcRow[attr.LinkField]}"] ?? srcRow[attr.LinkField]); } dataTable.Rows.Add(row); } gc.DataSource = dataTable; InDrawingStatus(false); }
public ucDrawBase CreateInstance(HMCon con, TUC_HMDevXManager.TUC_HMDevXManager hmDevMgr, WpfMapDrawBase map, IMapLayer info, int layerIndex) { if (info is MapPointLayer) { return(new ucDrawPoint(con, hmDevMgr, map, info.ConvertTo <MapPointLayer>(), layerIndex)); } else if (info is MapShapeLayer) { return(new ucDrawShape(con, hmDevMgr, map, info.ConvertTo <MapShapeLayer>(), layerIndex)); } else if (info is MapLineLayer) { return(new ucDrawLine(con, hmDevMgr, map, info.ConvertTo <MapLineLayer>(), layerIndex)); } else if (info is MapEventLayer) { if (_eventDrawer == null) { _eventDrawer = new ucDrawEvents(con, hmDevMgr, map, info.ConvertTo <MapEventLayer>(), layerIndex); return(_eventDrawer); } else { _eventDrawer.AddEventLayer(info.ConvertTo <MapEventLayer>(), layerIndex); return(null); } } return(null); }