/// <summary> /// Creates new table panel for the layer. /// </summary> public TablePanelInfo CreateTablePanel(ILegendLayer layer) { var grid = CreateGrid(); grid.SetTableSource(layer.FeatureSet, layer.Handle, layer.LayerType == Api.Enums.LayerType.VectorLayer); grid.ColumnContextNeeded += (s, e) => ShowContextMenu(s, e.ColumnIndex); grid.CellContextMenuStripNeeded += (s, e) => ShowContextMenu(s, e.ColumnIndex); var first = Panels.FirstOrDefault(); var panel = Panels.Add(grid, layer.Handle); panel.Caption = layer.Name; int size; DockPanelState state; GetLayoutSpecs(AppConfig.Instance.TableEditorLayout, out size, out state); if (first != null) { panel.DockTo(first, state, size); panel.TabPosition = 0; } return(new TablePanelInfo(grid, layer, panel)); }
public static bool SaveSettings(ILegendLayer layer) { if (!CheckFilename(layer.Filename)) { return(false); } var xml = new XmlLayer(layer); string state = xml.Serialize(false); try { string filename = layer.Filename + FileExtension; using (var writer = new StreamWriter(filename)) { writer.Write(state); writer.Flush(); MessageService.Current.Info("Layer settings were saved: " + filename); return(true); } } catch (Exception ex) { MessageService.Current.Warn("Failed to save project: " + ex.Message); } return(false); }
/// <summary> /// Creates a new instance of PolygonForm class /// </summary> public PolygonForm(IAppContext context, ILegendLayer layer, IGeometryStyle style, bool applyDisabled) : base(context) { if (layer == null) { throw new ArgumentNullException("layer"); } if (style == null) { throw new ArgumentNullException("style"); } InitializeComponent(); _style = style; _metadata = SymbologyPlugin.GetMetadata(layer.Handle); _legend = context.Legend; _layer = layer; _initState = style.Serialize(); _noEvents = true; Initialize(); btnApply.Visible = !applyDisabled; tabControl1.SelectedIndex = _tabPage; }
public XmlLayer(ILegendLayer layer, bool selected = false) { if (ProjectStorage) { OcxLayer = LayerToXmlElement(layer); } else { if (layer.SaveOptions("", true, "")) { Logger.Current.Warn("Failed to save layer options: " + layer.Name); } } Identity = layer.Identity; Expanded = layer.Expanded; HideFromLegend = layer.HideFromLegend; ColorSchemeCaption = layer.SymbologyCaption; Guid = layer.Guid; LayerType = layer.LayerType; Name = layer.Name; SkipLoading = false; Selected = selected; SerializeCustomObjects(layer); }
private XmlElement LayerToXmlElement(ILegendLayer layer) { string xml = layer.Serialize(); XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); return(doc.DocumentElement); }
private void CreateNewTable(ILegendLayer layer) { var info = View.CreateTablePanel(layer); info.Grid.CellValueEdited += GridCellValueEdited; _tables.Add(layer.Handle, info); // TODO: shouldn't we remove these handlers on closing the layer info.Grid.SelectionChanged += (s, e) => OnViewSelectionChanged(layer.Handle); info.Grid.KeyDown += OnGridKeyDown; }
private static void DisplayStylesNotFound(ILegendLayer layer) { string msg = "No styles were found for the datasource." + Environment.NewLine + Environment.NewLine + "Filenames checked: " + Environment.NewLine; foreach (var ext in Extensions) { msg += layer.Filename + ext + Environment.NewLine; } MessageService.Current.Info(msg); }
public CategoriesSubViewModel(ILegendLayer layer, SymbologyMetadata metadata) { if (layer == null) { throw new ArgumentNullException("layer"); } if (metadata == null) { throw new ArgumentNullException("metadata"); } Layer = layer; Metadata = metadata; }
private void RestoreCustomObjects(ILegendLayer layer) { var legendLayer = layer as LegendLayer; if (legendLayer == null) { return; } legendLayer.ClearCustomObjects(); foreach (var cob in CustomObjects) { legendLayer.RestoreCustomObject(cob.Object, cob.Guid); } }
public static void RemoveSettings(ILegendLayer layer, bool silent) { if (!CheckFilename(layer.Filename)) { return; } bool existed = false; foreach (var ext in Extensions) { string filename = layer.Filename + ext; if (!File.Exists(filename)) { continue; } existed = true; try { File.Delete(filename); } catch (Exception ex) { Logger.Current.Info("Failed to remove style for layer.", ex); if (!silent) { MessageService.Current.Warn("Failed to remove style: " + filename); } return; } } if (existed) { MessageService.Current.Info("Layer style was removed."); } else { DisplayStylesNotFound(layer); } }
public void OpenTable(ILegendLayer layer) { if (layer == null) { throw new ArgumentNullException("layer"); } if (_tables.ContainsKey(layer.Handle)) { View.Panels.ActivatePanel(layer.Handle); return; } CreateNewTable(layer); View.UpdateView(); }
public FindReplaceModel(TableEditorGrid grid, ILegendLayer layer, bool replace) { if (grid == null) { throw new ArgumentNullException("grid"); } if (layer == null) { throw new ArgumentNullException("layer"); } Grid = grid; Replace = replace; Table = layer.FeatureSet.Table; SearchInfo = new SearchInfo(); _layerName = layer.Name; }
/// <summary> /// Creates a new instance of PointsForm class /// </summary> public PointsForm(IAppContext context, ILegendLayer layer, IGeometryStyle options, bool applyDisabled) : base(context) { if (layer == null) { throw new ArgumentNullException("layer"); } if (options == null) { throw new ArgumentNullException("options"); } InitializeComponent(); _legend = context.Legend; _layer = layer; _style = options; // setting values to the controls _initState = _style.Serialize(); _noEvents = true; btnApply.Visible = !applyDisabled; pointIconControl1.Initialize(_style.Marker); dynamicVisibilityControl1.Initialize(_style, _context.Map.CurrentZoom, _context.Map.CurrentScale); dynamicVisibilityControl1.ValueChanged += (s, e) => { btnApply.Enabled = true; dynamicVisibilityControl1.ApplyChanges(); }; InitControls(); Options2Gui(); _noEvents = false; InitFonts(); DrawPreview(); AttachListeners(); UpdateDefaultColor(); tabControl1.SelectedIndex = _tabIndex; }
public TablePanelInfo(TableEditorGrid grid, ILegendLayer layer, ITablePanel panel) { if (grid == null) { throw new ArgumentNullException("grid"); } if (layer == null) { throw new ArgumentNullException("layer"); } if (panel == null) { throw new ArgumentNullException("panel"); } Grid = grid; Layer = layer; Panel = panel; }
public void AddLayer(ILegendLayer layer) { if (layer == null) { throw new ArgumentNullException("layer"); } if (!(layer is LegendLayer)) { throw new InvalidCastException("LegendLayer class is expected"); } _layers.Add((LegendLayer)layer); RecalcHeight(); UpdateGroupVisibility(); }
/// <summary> /// Creates a new instance of PointsForm class /// </summary> public PointsForm(IMuteLegend legend, ILegendLayer layer, IGeometryStyle options, bool applyDisabled) { if (layer == null) { throw new ArgumentNullException("layer"); } if (options == null) { throw new ArgumentNullException("options"); } if (legend == null) { throw new ArgumentNullException("legend"); } InitializeComponent(); _legend = legend; _layer = layer; _style = options; // setting values to the controls _initState = _style.Serialize(); _noEvents = true; btnApply.Visible = !applyDisabled; pointIconControl1.Initialize(_style.Marker); InitControls(); Options2Gui(); _noEvents = false; InitFonts(); DrawPreview(); AttachListeners(); UpdateDefaultColor(); tabControl1.SelectedIndex = _tabIndex; }
/// <summary> /// Creates a new instance of PolygonsForm class /// </summary> public LinesForm(IAppContext _context, ILegendLayer layer, IGeometryStyle style, bool applyDisabled) : base(_context) { if (layer == null) { throw new ArgumentNullException("layer"); } if (style == null) { throw new ArgumentNullException("style"); } InitializeComponent(); _style = style; _legend = _context.Legend; _layer = layer; _initState = style.Serialize(); btnApply.Visible = !applyDisabled; Initialize(); }
private void SerializeCustomObjects(ILegendLayer layer) { CustomObjects = new List <XmlCustomObject>(); var legendLayer = layer as LegendLayer; if (legendLayer == null) { return; } foreach (var item in legendLayer.CustomObjects) { var cob = new XmlCustomObject() { Object = item.Value, Guid = item.Key, }; CustomObjects.Add(cob); } }
public void InsertLayer(int position, ILegendLayer layer) { if (position < 0) { position = 0; } if (position > _layers.Count) { position = _layers.Count; } if (!(layer is LegendLayer)) { throw new InvalidCastException("LegendLayer class is expected"); } _layers.Insert(position, (LegendLayer)layer); RecalcHeight(); UpdateGroupVisibility(); }
public void RestoreLayer(ILegendLayer layer, IBroadcasterService broadcaster) { AttributeTable table = null; if (layer.FeatureSet != null) { table = layer.FeatureSet.Table; table.UpdateJoin += table_UpdateJoin; _broadcaster = broadcaster; } if (OcxLayer != null) { layer.Deserialize(OcxLayer.OuterXml); } else { if (!ProjectStorage) { string description = string.Empty; layer.LoadOptions("", ref description); } } if (table != null) { table.UpdateJoin -= table_UpdateJoin; _broadcaster = null; } RestoreCustomObjects(layer); layer.Name = Name; layer.Expanded = Expanded; layer.HideFromLegend = HideFromLegend; layer.SymbologyCaption = ColorSchemeCaption; layer.Guid = Guid; }
public static bool LoadSettings(ILegendLayer layer, IBroadcasterService broadcaster, bool silent) { if (!CheckFilename(layer.Filename)) { return(false); } string filename = layer.Filename + FileExtension; if (!File.Exists(filename)) { return(false); // nothing to load } try { using (var reader = new StreamReader(filename)) { string xml = reader.ReadToEnd(); var xmlLayer = xml.Deserialize <XmlLayer>(); xmlLayer.RestoreLayer(layer, broadcaster); return(true); } } catch (Exception ex) { const string msg = "Failed to deserialize layer"; Logger.Current.Warn(msg, ex); if (!silent) { MessageService.Current.Warn(msg + ": " + ex.Message); } } return(false); }
/// <summary> /// Draws layer icon. /// </summary> /// <returns>Height of icon in screen coordinates.</returns> private int DrawLayerIcon(ILegendLayer layer, IGeometryStyle options, Graphics g, float left, float top) { int width = _thumbnailWidth; int height = _thumbnailHeight; var fs = layer.FeatureSet; if (fs == null) { return(height + 3); } var hdc = g.GetHdc(); GetIconWidthAndHeight(options, ref width, ref height); left = (int)(left + 0.5); top = (int)(top + 0.5); if (fs.PointOrMultiPoint) { options.DrawPoint(hdc, left, top, width, height, _backColor); } else if (fs.IsPolyline) { options.DrawLine(hdc, left, top, width, height, false, width, height, _backColor); } else if (fs.IsPolygon) { options.DrawRectangle(hdc, left, top, width - 1, height - 1, false, width + 1, height + 1, _backColor); } g.ReleaseHdc(hdc); return(height + 3); }