private void CommandCreateDynamicBrush() { if (CommandCanCreateDynamicBrush()) { using (DynamicBrushForm form = new DynamicBrushForm()) { PresenterManager manager = new PresenterManager(); manager.Register <EditorPresenter>(_editor); using (TilePoolListPresenter tilePoolList = new TilePoolListPresenter()) { tilePoolList.Initialize(manager); tilePoolList.BindTilePoolManager(_editor.Project.TilePoolManager); form.BindTileController(tilePoolList); foreach (TileBrush item in TileBrushManager.Brushes) { form.ReservedNames.Add(item.Name); } if (form.ShowDialog() == DialogResult.OK) { if (TileBrushManager.DynamicBrushCollections.Count(c => c.GetBrush(form.Brush.Uid) != null) == 0) { TileBrushManager.DefaultDynamicBrushCollection.Brushes.Add(form.Brush); } OnSyncTileBrushCollection(EventArgs.Empty); SelectBrush(form.Brush.Uid); OnTileBrushSelected(EventArgs.Empty); } } } } }
public void ActionEditBrush(Guid brushId) { TileBrush brush = TileBrushManager.GetBrush(brushId) as TileBrush; if (brush == null) { return; } if (brush is DynamicTileBrush) { using (DynamicBrushForm form = new DynamicBrushForm(brush as DynamicTileBrush)) { PresenterManager manager = new PresenterManager(); manager.Register <EditorPresenter>(_editor); using (TilePoolListPresenter tilePoolList = new TilePoolListPresenter()) { tilePoolList.Initialize(manager); tilePoolList.BindTilePoolManager(_editor.Project.TilePoolManager); form.BindTileController(tilePoolList); foreach (TileBrush item in TileBrushManager.Brushes) { if (item.Name != brush.Name) { form.ReservedNames.Add(item.Name); } } if (form.ShowDialog() == DialogResult.OK) { OnSyncTileBrushCollection(EventArgs.Empty); SelectBrush(form.Brush.Uid); OnTileBrushSelected(EventArgs.Empty); } } } } else if (brush is StaticTileBrush) { using (StaticBrushForm form = new StaticBrushForm(brush as StaticTileBrush)) { PresenterManager manager = new PresenterManager(); manager.Register <EditorPresenter>(_editor); using (TilePoolListPresenter tilePoolList = new TilePoolListPresenter()) { tilePoolList.Initialize(manager); tilePoolList.BindTilePoolManager(_editor.Project.TilePoolManager); form.BindTileController(tilePoolList); foreach (TileBrush item in TileBrushManager.Brushes) { if (item.Name != brush.Name) { form.ReservedNames.Add(item.Name); } } if (form.ShowDialog() == DialogResult.OK) { OnSyncTileBrushCollection(EventArgs.Empty); SelectBrush(form.Brush.Uid); OnTileBrushSelected(EventArgs.Empty); } } } } }