// ======================================== // property // ======================================== // ======================================== // method // ======================================== public override void ConfigureDetailForm(DetailSettingsForm detailForm) { if (_detailFormConfigurator != null) { _detailFormConfigurator(detailForm); } }
// ======================================== // method // ======================================== public override void ConfigureDetailForm(DetailSettingsForm detailForm) { /// file detail page var memoFile = _owner.Model; var filePage = new FileDetailPage(_owner.Host); filePage.Title = memoFile.Name; filePage.Path = memoFile.IsEmbedded? "": memoFile.Path; filePage.IsModified = false; detailForm.RegisterPage("ファイル", filePage); }
public override void ConfigureDetailForm(DetailSettingsForm detailForm) { var fig = _owner.Figure; /// line detail page var borderPage = new EdgeLineDetailPage(new [] { _owner.Host }); borderPage.LineColor = fig.LineColor; borderPage.LineWidth = fig.LineWidth; borderPage.LineDashStyle = fig.LineDashStyle; borderPage.IsModified = false; detailForm.RegisterPage("線", borderPage); }
// ======================================== // property // ======================================== // ======================================== // method // ======================================== public override void ConfigureDetailForm(DetailSettingsForm detailForm) { /// property detail page var propObj = new PropObj() { Name = _operation.Name, Stereotype = _operation.Stereotype, Type = _operation.TypeName, Parameters = _operation.Parameters, IsAbstract = _operation.IsAbstract, IsStatic = _operation.IsStatic, Visibility = _operation.Visibility, }; Func <object, ICommand> updateCmdProvider = obj => { var old = new PropObj() { Name = _operation.Name, Stereotype = _operation.Stereotype, Type = _operation.TypeName, Parameters = _operation.Parameters, IsAbstract = _operation.IsAbstract, IsStatic = _operation.IsStatic, Visibility = _operation.Visibility, }; return(new DelegatingCommand( () => { _operation.Name = propObj.Name; _operation.Stereotype = propObj.Stereotype; _operation.TypeName = propObj.Type; _operation.Parameters = propObj.Parameters; _operation.IsAbstract = propObj.IsAbstract; _operation.IsStatic = propObj.IsStatic; _operation.Visibility = propObj.Visibility; }, () => { _operation.Name = old.Name; _operation.Stereotype = old.Stereotype; _operation.TypeName = old.Type; _operation.Parameters = old.Parameters; _operation.IsAbstract = old.IsAbstract; _operation.IsStatic = old.IsStatic; _operation.Visibility = old.Visibility; } )); }; var propPage = new PropertyDetailSettingsPage(propObj, updateCmdProvider); detailForm.RegisterPage("モデル", propPage); }
public override void ConfigureDetailForm(DetailSettingsForm detailForm) { var fig = _owner.Figure; /// border detail page var borderPage = new NodeBorderDetailPage(new[] { _owner.Host }); borderPage.IsBorderEnabled = fig.IsForegroundEnabled; borderPage.LineColor = fig.Foreground; borderPage.LineWidth = fig.BorderWidth; borderPage.LineDashStyle = fig.BorderDashStyle; borderPage.IsModified = false; detailForm.RegisterPage("枠線", borderPage); }
private void _optionToolStripMenuItem_Click(object sender, EventArgs e) { var form = new DetailSettingsForm(); try { form.Text = "オプション"; form.Size = new Size(500, 400); form.Theme = _theme; var basic = new BasicSettingsDetailPage( _app.Settings, _app.WindowSettings, _app.MainForm.ToolRegistry ); form.RegisterPage("基本", basic); var background = new BackgroundSettingsDetailPage(_app.Settings, _app.WindowSettings); form.RegisterPage("背景", background); var confirm = new ConfirmSettingsDetailPage(_app.Settings); form.RegisterPage("確認", confirm); var folder = new FolderSettingsDetailPage(_app.BootstrapSettings, _app.WindowSettings); form.RegisterPage("フォルダ", folder); var hotkey = new HotKeySettingsDetailPage(_app.HotKey, _app.WindowSettings); form.RegisterPage("ホットキー", hotkey); var abbrev = new AbbrevSettingDetailPage(_app._AbbrevWordPersister); form.RegisterPage("単語補完", abbrev); var misc = new MiscSettingsDetailPage(_app.Settings, _app.WindowSettings); form.RegisterPage("その他", misc); if (form.ShowDialog(this) == DialogResult.OK) { var cmd = form.GetUpdateCommand(); if (cmd != null) { cmd.Execute(); MessageBox.Show(this, "一部の設定はアプリケーションを再起動するまで反映されません。", "設定の変更"); } } } finally { form.Dispose(); } }
public override void ConfigureDetailForm(DetailSettingsForm detailForm) { /// property detail page var propObj = new PropObj() { Name = _Classifier.Name, Stereotype = _Classifier.Stereotype, IsAbstract = _Classifier.IsAbstract, Visibility = _Classifier.Visibility, }; Func <object, ICommand> updateCmdProvider = obj => { var old = new PropObj() { Name = _Classifier.Name, Stereotype = _Classifier.Stereotype, IsAbstract = _Classifier.IsAbstract, Visibility = _Classifier.Visibility, }; return(new DelegatingCommand( () => { _Classifier.Name = propObj.Name; _Classifier.Stereotype = propObj.Stereotype; _Classifier.IsAbstract = propObj.IsAbstract; _Classifier.Visibility = propObj.Visibility; }, () => { _Classifier.Name = old.Name; _Classifier.Stereotype = old.Stereotype; _Classifier.IsAbstract = old.IsAbstract; _Classifier.Visibility = old.Visibility; } )); }; var propPage = new PropertyDetailSettingsPage(propObj, updateCmdProvider); detailForm.RegisterPage("モデル", propPage); base.ConfigureDetailForm(detailForm); }
public override void ConfigureDetailForm(DetailSettingsForm detailForm) { /// background detail page var bgPage = new NodeBackgroundDetailPage(new[] { _owner.Host }); bgPage.Background = _node.IsBackgroundEnabled? _node.Background: null; bgPage.IsModified = false; detailForm.RegisterPage("背景", bgPage); /// border detail page var borderPage = new NodeBorderLineDetailPage( new [] { _owner.Host, _owner.Host.Children.ElementAt(0), _owner.Host.Children.ElementAt(1), } ); borderPage.LineColor = _node.Foreground; borderPage.LineWidth = _node.BorderWidth; borderPage.LineDashStyle = _node.BorderDashStyle; borderPage.IsModified = false; detailForm.RegisterPage("枠線", borderPage); }
private void InitItems() { _remove = new ToolStripMenuItem(); _remove.Text = "削除(&R)"; _remove.Click += (sender, e) => { using (_owner.CommandExecutor.BeginChain()) { var req = new RemoveRequest(); var cmds = new CompositeCommand(); var parent = default(IEditor); foreach (var editor in _owner.SelectionManager.SelectedEditors) { if (parent == null) { parent = editor.Parent; } if (editor.CanUnderstand(req)) { cmds.Children.Add(editor.GetCommand(req)); } } _owner.CommandExecutor.Execute(cmds); if (parent != null) { parent.RequestSelect(SelectKind.True, true); } } }; _clone = new ToolStripMenuItem(); _clone.Text = "複製(&C)"; _clone.Click += (sender, e) => { var cloning = new List <IEditor>(_owner.SelectionManager.SelectedEditors); var req = new CloneRequest(cloning); req.MoveDelta = CloneMoveDelta; if (cloning.Any()) { var target = cloning.First().Parent; var cmd = target.PerformRequest(req) as CloneCommand; if (cmd != null && cmd.ClonedEditors != null) { _owner.SelectionManager.DeselectAll(); foreach (var cloned in cmd.ClonedEditors) { cloned.RequestSelect(SelectKind.True, false); } } } }; _cut = new ToolStripMenuItem(); _cut.Text = "切り取り(&X)"; _cut.Click += (sender, e) => { var cmd = GetCutCommand(); _owner.CommandExecutor.Execute(cmd); }; _copy = new ToolStripMenuItem(); _copy.Text = "コピー(&C)"; _copy.Click += (sender, e) => { var targets = _owner.SelectionManager.SelectedEditors; var req = new CopyRequest(targets); var list = new EditorBundle(targets); list.PerformGroupRequest(req, _owner.CommandExecutor); }; _copyAsImage = new ToolStripMenuItem(); _copyAsImage.Text = "画像としてコピー(&I)"; _copyAsImage.Click += (sender, e) => { _owner.CopySelectedAsImage(); }; _paste = new ToolStripMenuItem(); _paste.Text = "貼り付け(&P)"; _paste.Click += (sender, e) => { var found = _owner.RootEditor.FindEnabledEditor( _currentEvent.Location ); if (found != null) { var cmd = found.RequestPaste(_currentEvent.Location, null) as PasteCommand; if (cmd != null && cmd.PastedEditors != null) { _owner.SelectionManager.DeselectAll(); foreach (var editor in cmd.PastedEditors) { editor.RequestSelect(SelectKind.True, false); } } } }; _pasteInBlock = new ToolStripMenuItem(); _pasteInBlock.Text = "段落内に貼り付け(&P)"; _pasteInBlock.Click += (sender, e) => { var found = _owner.RootEditor.FindEnabledEditor( _currentEvent.Location ); if (found != null) { var cmd = found.RequestPaste( _currentEvent.Location, EditorConsts.InBlockPasteDescription ) as PasteCommand; if (cmd != null && cmd.PastedEditors != null) { _owner.SelectionManager.DeselectAll(); foreach (var editor in cmd.PastedEditors) { editor.RequestSelect(SelectKind.True, false); } } } }; _front = new ToolStripMenuItem(); _front.Text = "前面に移動(&F)"; _front.Click += (sender, e) => { var found = _owner.RootEditor.FindEnabledEditor( _currentEvent.Location ); if (found != null) { found.RequestReorder(ReorderKind.Front); } }; _frontMost = new ToolStripMenuItem(); _frontMost.Text = "最前面に移動(&F)"; _frontMost.Click += (sender, e) => { var found = _owner.RootEditor.FindEnabledEditor( _currentEvent.Location ); if (found != null) { found.RequestReorder(ReorderKind.FrontMost); } }; _back = new ToolStripMenuItem(); _back.Text = "背面に移動(&B)"; _back.Click += (sender, e) => { var found = _owner.RootEditor.FindEnabledEditor( _currentEvent.Location ); if (found != null) { found.RequestReorder(ReorderKind.Back); } }; _backMost = new ToolStripMenuItem(); _backMost.Text = "最背面に移動(&B)"; _backMost.Click += (sender, e) => { var found = _owner.RootEditor.FindEnabledEditor( _currentEvent.Location ); if (found != null) { found.RequestReorder(ReorderKind.BackMost); } }; _arrangeHLeft = new ToolStripMenuItem("左揃え(&L)"); _arrangeHLeft.Click += (sender, e) => { var editors = _owner.SelectionManager.SelectedEditors; var rect = editors.Select(ed => ed.Figure.Bounds).Aggregate((r1, r2) => Rectangle.Union(r1, r2)); using (_owner.CommandExecutor.BeginChain()) { foreach (var edi in editors) { var left = rect.Left; edi.RequestMove(new Size(left - edi.Figure.Left, 0)); } } }; _arrangeHCenter = new ToolStripMenuItem("左右中央揃え(&C)"); _arrangeHCenter.Click += (sender, e) => { var editors = _owner.SelectionManager.SelectedEditors; var rect = editors.Select(ed => ed.Figure.Bounds).Aggregate((r1, r2) => Rectangle.Union(r1, r2)); var center = RectUtil.GetCenter(rect); using (_owner.CommandExecutor.BeginChain()) { foreach (var edi in editors) { var left = center.X - edi.Figure.Width / 2; edi.RequestMove(new Size(left - edi.Figure.Left, 0)); } } }; _arrangeHRight = new ToolStripMenuItem("右揃え(&R)"); _arrangeHRight.Click += (sender, e) => { var editors = _owner.SelectionManager.SelectedEditors; var rect = editors.Select(ed => ed.Figure.Bounds).Aggregate((r1, r2) => Rectangle.Union(r1, r2)); using (_owner.CommandExecutor.BeginChain()) { foreach (var edi in editors) { var left = rect.Right - edi.Figure.Width; edi.RequestMove(new Size(left - edi.Figure.Left, 0)); } } }; _arrangeVTop = new ToolStripMenuItem("上揃え(&T)"); _arrangeVTop.Click += (sender, e) => { var editors = _owner.SelectionManager.SelectedEditors; var rect = editors.Select(ed => ed.Figure.Bounds).Aggregate((r1, r2) => Rectangle.Union(r1, r2)); using (_owner.CommandExecutor.BeginChain()) { foreach (var edi in editors) { var top = rect.Top; edi.RequestMove(new Size(0, top - edi.Figure.Top)); } } }; _arrangeVMiddle = new ToolStripMenuItem("上下中央揃え(&M)"); _arrangeVMiddle.Click += (sender, e) => { var editors = _owner.SelectionManager.SelectedEditors; var rect = editors.Select(ed => ed.Figure.Bounds).Aggregate((r1, r2) => Rectangle.Union(r1, r2)); var center = RectUtil.GetCenter(rect); using (_owner.CommandExecutor.BeginChain()) { foreach (var edi in editors) { var top = center.Y - edi.Figure.Height / 2; edi.RequestMove(new Size(0, top - edi.Figure.Top)); } } }; _arrangeVBottom = new ToolStripMenuItem("下揃え(&B)"); _arrangeVBottom.Click += (sender, e) => { var editors = _owner.SelectionManager.SelectedEditors; var rect = editors.Select(ed => ed.Figure.Bounds).Aggregate((r1, r2) => Rectangle.Union(r1, r2)); using (_owner.CommandExecutor.BeginChain()) { foreach (var edi in editors) { var top = rect.Bottom - edi.Figure.Height; edi.RequestMove(new Size(0, top - edi.Figure.Top)); } } }; _detailForm = new ToolStripMenuItem(); _detailForm.Text = "設定(&S)"; _detailForm.Click += (sender, e) => { var found = _owner.RootEditor.FindEnabledEditor( _currentEvent.Location ); if (found != null) { if (found.Controller != null && found.Controller.UIProvider != null) { var ui = found.Controller.UIProvider; var form = new DetailSettingsForm(); try { form.Size = _detailFormSize; form.Theme = _owner.Theme; ui.ConfigureDetailForm(form); if (form.ShowDialog() == DialogResult.OK) { var cmd = form.GetUpdateCommand(); if (cmd != null) { _owner.CommandExecutor.Execute(cmd); } } } finally { form.Dispose(); } } } }; }
// ======================================== // property // ======================================== // ======================================== // method // ======================================== public override void ConfigureDetailForm(DetailSettingsForm detailForm) { /// property detail page var propObj = new PropObj() { Name = _property.Name, Stereotype = _property.Stereotype, Type = _property.TypeName, IsStatic = _property.IsStatic, IsDerived = _property.IsDerived, IsReadOnly = _property.IsReadOnly, IsUnique = _property.IsUnique, IsOrdered = _property.IsOrdered, IsUpperUnlimited = _property.IsUpperUnlimited, Upper = _property.Upper, Lower = _property.Lower, Default = _property.Default, Visibility = _property.Visibility, }; Func <object, ICommand> updateCmdProvider = obj => { var old = new PropObj() { Name = _property.Name, Stereotype = _property.Stereotype, Type = _property.TypeName, IsStatic = _property.IsStatic, IsDerived = _property.IsDerived, IsReadOnly = _property.IsReadOnly, IsUnique = _property.IsUnique, IsOrdered = _property.IsOrdered, IsUpperUnlimited = _property.IsUpperUnlimited, Upper = _property.Upper, Lower = _property.Lower, Default = _property.Default, Visibility = _property.Visibility, }; return(new DelegatingCommand( () => { _property.Name = propObj.Name; _property.Stereotype = propObj.Stereotype; _property.TypeName = propObj.Type; _property.IsStatic = propObj.IsStatic; _property.IsDerived = propObj.IsDerived; _property.IsReadOnly = propObj.IsReadOnly; _property.IsUnique = propObj.IsUnique; _property.IsOrdered = propObj.IsOrdered; _property.IsUpperUnlimited = propObj.IsUpperUnlimited; _property.Upper = propObj.Upper; _property.Lower = propObj.Lower; _property.Default = propObj.Default; _property.Visibility = propObj.Visibility; }, () => { _property.Name = old.Name; _property.Stereotype = old.Stereotype; _property.TypeName = old.Type; _property.IsStatic = old.IsStatic; _property.IsDerived = old.IsDerived; _property.IsReadOnly = old.IsReadOnly; _property.IsUnique = old.IsUnique; _property.IsOrdered = old.IsOrdered; _property.IsUpperUnlimited = old.IsUpperUnlimited; _property.Upper = old.Upper; _property.Lower = old.Lower; _property.Default = old.Default; _property.Visibility = old.Visibility; } )); }; var propPage = new PropertyDetailSettingsPage(propObj, updateCmdProvider); detailForm.RegisterPage("モデル", propPage); }
// ======================================== // method // ======================================== public virtual void ConfigureDetailForm(DetailSettingsForm detailForm) { }
public override void ConfigureDetailForm(DetailSettingsForm detailForm) { }
public override void ConfigureDetailForm(DetailSettingsForm detailForm) { var fig = _owner.Figure; var assoc = _owner.Model; var source = assoc.SourceMemberEnd; var target = assoc.TargetMemberEnd; /// property detail page var propObj = new PropObj() { IsSourceNavigable = assoc.IsSourceNavigable, IsTargetNavigable = assoc.IsTargetNavigable, SourceMemberEnd = new MemberEnd() { Name = source.Name, Stereotype = source.Stereotype, Aggregation = source.Aggregation, IsUpperUnlimited = source.IsUpperUnlimited, Upper = source.Upper, Lower = source.Lower, Visibility = source.Visibility, }, TargetMemberEnd = new MemberEnd() { Name = target.Name, Stereotype = target.Stereotype, Aggregation = target.Aggregation, IsUpperUnlimited = target.IsUpperUnlimited, Upper = target.Upper, Lower = target.Lower, Visibility = target.Visibility, }, }; Func <object, ICommand> updateCmdProvider = obj => { var old = new PropObj() { IsSourceNavigable = assoc.IsSourceNavigable, IsTargetNavigable = assoc.IsTargetNavigable, SourceMemberEnd = new MemberEnd() { Name = source.Name, Stereotype = source.Stereotype, Aggregation = source.Aggregation, IsUpperUnlimited = source.IsUpperUnlimited, Upper = source.Upper, Lower = source.Lower, Visibility = source.Visibility, }, TargetMemberEnd = new MemberEnd() { Name = target.Name, Stereotype = target.Stereotype, Aggregation = target.Aggregation, IsUpperUnlimited = target.IsUpperUnlimited, Upper = target.Upper, Lower = target.Lower, Visibility = target.Visibility, }, }; return(new DelegatingCommand( () => { assoc.IsSourceNavigable = propObj.IsSourceNavigable; assoc.IsTargetNavigable = propObj.IsTargetNavigable; source.Name = propObj.SourceMemberEnd.Name; source.Stereotype = propObj.SourceMemberEnd.Stereotype; source.Aggregation = propObj.SourceMemberEnd.Aggregation; source.IsUpperUnlimited = propObj.SourceMemberEnd.IsUpperUnlimited; source.Upper = propObj.SourceMemberEnd.Upper; source.Lower = propObj.SourceMemberEnd.Lower; source.Visibility = propObj.SourceMemberEnd.Visibility; target.Name = propObj.TargetMemberEnd.Name; target.Stereotype = propObj.TargetMemberEnd.Stereotype; target.Aggregation = propObj.TargetMemberEnd.Aggregation; target.IsUpperUnlimited = propObj.TargetMemberEnd.IsUpperUnlimited; target.Upper = propObj.TargetMemberEnd.Upper; target.Lower = propObj.TargetMemberEnd.Lower; target.Visibility = propObj.TargetMemberEnd.Visibility; }, () => { assoc.IsSourceNavigable = old.IsSourceNavigable; assoc.IsTargetNavigable = old.IsTargetNavigable; source.Name = old.SourceMemberEnd.Name; source.Stereotype = old.SourceMemberEnd.Stereotype; source.Aggregation = old.SourceMemberEnd.Aggregation; source.IsUpperUnlimited = old.SourceMemberEnd.IsUpperUnlimited; source.Upper = old.SourceMemberEnd.Upper; source.Lower = old.SourceMemberEnd.Lower; source.Visibility = old.SourceMemberEnd.Visibility; target.Name = old.TargetMemberEnd.Name; target.Stereotype = old.TargetMemberEnd.Stereotype; target.Aggregation = old.TargetMemberEnd.Aggregation; target.IsUpperUnlimited = old.TargetMemberEnd.IsUpperUnlimited; target.Upper = old.TargetMemberEnd.Upper; target.Lower = old.TargetMemberEnd.Lower; target.Visibility = old.TargetMemberEnd.Visibility; } )); }; var propPage = new PropertyDetailSettingsPage(propObj, updateCmdProvider); detailForm.RegisterPage("モデル", propPage); /// line detail page var borderPage = new EdgeLineDetailPage(new[] { _owner.Host }); borderPage.LineColor = fig.LineColor; borderPage.LineWidth = fig.LineWidth; borderPage.LineDashStyle = fig.LineDashStyle; borderPage.IsModified = false; detailForm.RegisterPage("線", borderPage); }