public void Configure(TransformManagerDataControl transformManagerDataControl) { var previousPositionManager = transformManagerDataControl.GUIMapPositionManager as AbstractGuiMapPositionManager; this.transformManagerDataControl = transformManagerDataControl; if (previousPositionManager != null && MapEditor.Current != null) { var rect = new Rect(-500, -1000, 1000, 1000); var screenRect = rect.ToPoints().Select(p => previousPositionManager.ToScreenPoint(MapEditor.Current, p)).ToArray().ToRect(); GuiMapPositionManagerUtility.InsertDefaults(transformManagerDataControl.ParameterDescription, transformManagerDataControl, true); UpdateValues(); previousPositionManager.updateNotifier.Dispose(); var previousScreenRect = rect.ToPoints().Select(p => ToScreenPoint(MapEditor.Current, p)).ToArray().ToRect(); OnRectChanged(MapEditor.Current, previousScreenRect, screenRect); } else { GuiMapPositionManagerUtility.InsertDefaults(transformManagerDataControl.ParameterDescription, transformManagerDataControl, false); UpdateValues(); } updateNotifier = this.transformManagerDataControl.Subscribe(this); }
public ChangeParameterTool(TransformManagerDataControl transformManagerDataControl, params KeyValuePair <string, object>[] newValues) { this.transformManagerDataControl = transformManagerDataControl; this.newValues = newValues; this.oldValues = new Dictionary <string, object>(); foreach (var kv in newValues) { oldValues[kv.Key] = transformManagerDataControl.ContainsParameter(kv.Key) ? transformManagerDataControl[kv.Key] : null; } }
public static T GetValue <T>(this TransformManagerDataControl transformManagerDataControl, T @default, Converter <T>[] converters, params string[] names) { var value = names.Where(n => transformManagerDataControl.ContainsParameter(n)) .Select(n => transformManagerDataControl[n]).DefaultIfEmpty(@default).First(); if (value is T) { return((T)value); } if (converters != null) { var validConverter = converters.Where(c => c.OriginType == value.GetType()); if (validConverter.Any()) { return(validConverter.First().Convert(value)); } } return(@default); }
public IGuiMapPositionManager CreateInstance(ITransformManagerDescriptor element, TransformManagerDataControl transformManagerDataControl) { var elem = (IGuiMapPositionManager)Activator.CreateInstance(guiMapPositionManagers.Find(g => g.ForType == element.Type).GetType()); elem.Configure(transformManagerDataControl); return(elem); }
public static void InsertDefaults(Dictionary <string, ParameterDescription> parameterDescriptions, TransformManagerDataControl into, bool overriding) { foreach (var param in parameterDescriptions) { if (!into.ContainsParameter(param.Key) || overriding) { into[param.Key] = param.Value.DefaultValue; } } }
public static T GetValue <T>(this TransformManagerDataControl transformManagerDataControl, T @default, params string[] names) { return(transformManagerDataControl.GetValue(@default, null, names)); }
public ExtElementRefDataControl(ExtElemReference extElemReference) : base(extElemReference) { this.extElemReference = extElemReference; type = getReferenceType(extElemReference.getTargetId()); this.transformManagerDataControl = new TransformManagerDataControl(this); }
public ExtElementRefDataControl(ExtElemReference extElemReference) : base(extElemReference) { this.extElemReference = extElemReference; type = getReferenceType(extElemReference.getTargetId()); this.transformManagerDataControl = new TransformManagerDataControl(this); geoActionDataControls = new ListDataControl <ExtElementRefDataControl, GeoActionDataControl>(this, extElemReference.Actions, new [] { new ListDataControl <ExtElementRefDataControl, GeoActionDataControl> .ElementFactoryView { Titles = { { GeoElementDataControl.ENTER_ACTION, "Geo.Create.Title.EnterAction" }, { GeoElementDataControl.EXIT_ACTION, "Geo.Create.Title.ExitAction" }, { GeoElementDataControl.LOOK_TO_ACTION, "Geo.Create.Title.LookToAction" } }, Messages = { { GeoElementDataControl.ENTER_ACTION, "Geo.Create.Message.EnterAction" }, { GeoElementDataControl.EXIT_ACTION, "Geo.Create.Message.ExitAction" }, { GeoElementDataControl.LOOK_TO_ACTION, "Geo.Create.Message.LookToAction" } }, Errors = { { GeoElementDataControl.ENTER_ACTION, "Geo.Create.Error.EnterAction" }, { GeoElementDataControl.EXIT_ACTION, "Geo.Create.Error.ExitAction" }, { GeoElementDataControl.LOOK_TO_ACTION, "Geo.Create.Error.LookToAction" } }, ElementFactory = new DefaultElementFactory <GeoActionDataControl>(new DefaultElementFactory <GeoActionDataControl> .ElementCreator() { TypeDescriptors = new [] { new TD { Type = GeoElementDataControl.ENTER_ACTION, ContentType = typeof(EnterAction) }, new TD { Type = GeoElementDataControl.EXIT_ACTION, ContentType = typeof(ExitAction) }, new TD { Type = GeoElementDataControl.LOOK_TO_ACTION, ContentType = typeof(InspectAction) } }, CreateDataControl = action => new GeoActionDataControl(action as GeoAction), CreateElement = (type, id, _) => { switch (type) { case GeoElementDataControl.ENTER_ACTION: return(new GeoActionDataControl(new EnterAction())); case GeoElementDataControl.EXIT_ACTION: return(new GeoActionDataControl(new ExitAction())); case GeoElementDataControl.LOOK_TO_ACTION: return(new GeoActionDataControl(new LookToAction())); default: return(null); } } }) } }); }