Example #1
0
        /// <summary>
        /// Initialize editor - extensions and environment is loaded, event handlers hooked.
        /// </summary>
        internal void Initialize()
        {
            _settings   = new MachineSettings(true);
            _machine    = new Machine(_settings);
            _guiManager = new GUIManager(GUI, _vs);

            //try to load users extensions
            Exception loadingException = null;

            try
            {
                //install recommended extensions if required
                if (Installer.NeedInstall())
                {
                    Installer.Install();
                }
            }
            catch (Exception ex)
            {
                loadingException = ex;
            }

            try
            {
                loadUserExtensions();
                _settings.Runtime.BuildAssembly();
            }
            catch (Exception ex)
            {
                loadingException = ex;
            }

            //try to initialize gui manager
            try
            {
                var factory = new DiagramFactory(_joinFactory, _connectorFactories, _contentDrawers);
                _guiManager.Initialize(_loader.AppDomain, factory);

                if (loadingException != null)
                {
                    //we can report failing loading now
                    var entry = _vs.LogException(loadingException, "Loading user extensions failed with exception");
                    _guiManager.DisplayEntry(entry);
                }
            }
            catch (Exception ex)
            {
                loadingException = ex;
                _vs.LogException(ex, "GUI initialization failed");
            }

            //hook handlers if loading was successful
            if (loadingException == null)
            {
                hookHandlers();
                _vs.Log.Message("EDITOR INITIALIZED");
            }
        }
Example #2
0
        /// <summary>
        /// Initialize assembly.
        /// </summary>
        private void initializeAssembly()
        {
            try
            {
                var outputType = VS.GetOutputType(_assemblyProject.Project);
                var extension  = outputType == "2" ? ".dll" : ".exe";
                var name       = getAssemblyName();
                var outputPath = VS.GetOutputPath(_assemblyProject.Project);

                var assemblyDir = Path.GetDirectoryName(getAssemblyFullPath());
                FullPathMapping = Path.GetFullPath(Path.Combine(assemblyDir, outputPath, name + extension));

                hookChangesHandler();
                initializeReferences();
            }
            catch (Exception ex)
            {
                VS.LogException(ex, "Initilizing assembly {0} failed", Name);
            }
        }