public override void Execute(object parameter) { Window window = parameter as Window; ElementDialog dialog = new ElementDialog(); dialog.Owner = window; dialog.ShowDialog(); }
/// <summary> /// <c>EA_MenuClick</c> events are received by an Add-In in response to user selection of a menu option. /// The event is raised when the user clicks on a particular menu option. When a user clicks on one of your non-parent menu options, your Add-In receives a <c>MenuClick</c> event. /// Notice that your code can directly access Enterprise Architect data and UI elements using Repository methods. /// </summary> /// <param name="repository"><c>An EA.Repository</c> object representing the currently open Enterprise Architect model. Poll its members to retrieve model data and user interface status information.</param> /// <param name="location">Not used</param> /// <param name="menuName">The name of the parent menu for which sub-items are to be defined. /// In the case of the top-level menu this is an empty string.</param> /// <param name="itemName">The name of the option actually clicked.</param> public void EA_MenuClick(Repository repository, string location, string menuName, string itemName) { var itemType = repository.GetContextItemType(); switch (itemType) { case ObjectType.otElement: _window = new ElementDialog(); _viewModel = new ElementDialogViewModel { Repository = repository }; break; case ObjectType.otPackage: _window = new PackageDialog(); _viewModel = new PackageDialogViewModel { Repository = repository }; break; case ObjectType.otAttribute: _window = new AttributeDialog(); _viewModel = new AttributeDialogViewModel { Repository = repository }; break; case ObjectType.otConnector: _window = new ConnectorDialog(); _viewModel = new ConnectorDialogViewModel { Repository = repository }; break; } //Create new ResourceDictionary and set source for language matching the selected menu option var dict = new ResourceDictionary(); switch (itemName) { case DanishMenuOption: dict.Source = new Uri("pack://application:,,,/PlusprofilAddin;component/Resources/StringResources.da-DK.xaml", UriKind.Absolute); break; case EnglishMenuOption: dict.Source = new Uri("pack://application:,,,/PlusprofilAddin;component/Resources/StringResources.en-US.xaml", UriKind.Absolute); break; default: throw new ArgumentException("Invalid Menu Option selected"); } _window.Resources.MergedDictionaries.Add(dict); _viewModel.ResourceDictionary = dict; _viewModel.Initialize(); _window.DataContext = _viewModel; // Set window size _window.MinHeight = _window.Height = 512; _window.MinWidth = _window.Width = 576; // Increase size for Connector dialogs if (_window is ConnectorDialog) { _window.MinHeight = _window.Height = 512; _window.MinWidth = _window.Width = 768; } _window.Closing += _viewModel.OnWindowClosing; _window.ShowDialog(); }