private void DynamoView_Loaded(object sender, EventArgs e)
{
// Do an initial load of the cursor collection
CursorLibrary.GetCursor(CursorSet.ArcSelect);
//Backing up IsFirstRun to determine whether to show Gallery
var isFirstRun = dynamoViewModel.Model.PreferenceSettings.IsFirstRun;
// If first run, Collect Info Prompt will appear
UsageReportingManager.Instance.CheckIsFirstRun(this, dynamoViewModel.BrandingResourceProvider);
WorkspaceTabs.SelectedIndex = 0;
dynamoViewModel = (DataContext as DynamoViewModel);
dynamoViewModel.Model.RequestLayoutUpdate += vm_RequestLayoutUpdate;
dynamoViewModel.RequestViewOperation += DynamoViewModelRequestViewOperation;
dynamoViewModel.PostUiActivationCommand.Execute(null);
_timer.Stop();
dynamoViewModel.Model.Logger.Log(String.Format(Wpf.Properties.Resources.MessageLoadingTime,
_timer.Elapsed, dynamoViewModel.BrandingResourceProvider.ProductName));
InitializeLogin();
InitializeShortcutBar();
InitializeStartPage(isFirstRun);
#if !__NO_SAMPLES_MENU
LoadSamplesMenu();
#endif
#region Search initialization
var search = new SearchView(
dynamoViewModel.SearchViewModel,
dynamoViewModel);
sidebarGrid.Children.Add(search);
dynamoViewModel.SearchViewModel.Visible = true;
#endregion
#region Package manager
dynamoViewModel.RequestPackagePublishDialog += DynamoViewModelRequestRequestPackageManagerPublish;
dynamoViewModel.RequestManagePackagesDialog += DynamoViewModelRequestShowInstalledPackages;
dynamoViewModel.RequestPackageManagerSearchDialog += DynamoViewModelRequestShowPackageManagerSearch;
dynamoViewModel.RequestPackagePathsDialog += DynamoViewModelRequestPackagePaths;
#endregion
#region Node view injection
// scan for node view overrides
#endregion
//FUNCTION NAME PROMPT
dynamoViewModel.Model.RequestsFunctionNamePrompt += DynamoViewModelRequestsFunctionNamePrompt;
//Preset Name Prompt
dynamoViewModel.Model.RequestPresetsNamePrompt += DynamoViewModelRequestPresetNamePrompt;
dynamoViewModel.RequestPresetsWarningPrompt += DynamoViewModelRequestPresetWarningPrompt;
dynamoViewModel.RequestClose += DynamoViewModelRequestClose;
dynamoViewModel.RequestSaveImage += DynamoViewModelRequestSaveImage;
dynamoViewModel.RequestSave3DImage += DynamoViewModelRequestSave3DImage;
dynamoViewModel.SidebarClosed += DynamoViewModelSidebarClosed;
dynamoViewModel.Model.RequestsCrashPrompt += Controller_RequestsCrashPrompt;
dynamoViewModel.Model.RequestTaskDialog += Controller_RequestTaskDialog;
DynamoSelection.Instance.Selection.CollectionChanged += Selection_CollectionChanged;
dynamoViewModel.RequestUserSaveWorkflow += DynamoViewModelRequestUserSaveWorkflow;
dynamoViewModel.Model.ClipBoard.CollectionChanged += ClipBoard_CollectionChanged;
//ABOUT WINDOW
dynamoViewModel.RequestAboutWindow += DynamoViewModelRequestAboutWindow;
//SHOW or HIDE GALLERY
dynamoViewModel.RequestShowHideGallery += DynamoViewModelRequestShowHideGallery;
LoadNodeViewCustomizations();
SubscribeNodeViewCustomizationEvents();
// Kick start the automation run, if possible.
dynamoViewModel.BeginCommandPlayback(this);
var loadedParams = new ViewLoadedParams(this, dynamoViewModel);
foreach (var ext in viewExtensionManager.ViewExtensions)
{
try
{
ext.Loaded(loadedParams);
}
catch (Exception exc)
{
Log(ext.Name + ": " + exc.Message);
}
}
BackgroundPreview = new Watch3DView {Name = BackgroundPreviewName};
background_grid.Children.Add(BackgroundPreview);
BackgroundPreview.DataContext = dynamoViewModel.BackgroundPreviewViewModel;
BackgroundPreview.Margin = new System.Windows.Thickness(0,20,0,0);
var vizBinding = new Binding
{
Source = dynamoViewModel.BackgroundPreviewViewModel,
Path = new PropertyPath("Active"),
Mode = BindingMode.TwoWay,
Converter = new BooleanToVisibilityConverter()
};
BackgroundPreview.SetBinding(VisibilityProperty, vizBinding);
TrackStartupAnalytics();
// In native host scenario (e.g. Revit), the "Application.Current" will be "null". Therefore, the InCanvasSearchControl.OnRequestShowInCanvasSearch
// will not work. Instead, we have to check if the Owner Window (DynamoView) is deactivated or not.
if (Application.Current == null)
{
this.Deactivated += (s, args) => { HidePopupWhenWindowDeactivated(); };
}
}