예제 #1
0
 public SerializationMixin(
     Diagram diagram,
     MessageSystem messageSystem,
     ApplicationSettings applicationSettings)
 {
     _diagram = diagram;
     _messageSystem = messageSystem;
     _applicationSettings = applicationSettings;
     _fileName = applicationSettings.LastFile;
 }
예제 #2
0
        public RendererViewModel(
            Diagram diagram,
            ApplicationSettings settings,
            MessageSystem messageSystem)
        {
            _diagram = diagram;
            _settings = settings;
            _yumleHttpConnection.BaseAddress = new Uri(settings.YumlBaseUrl);
            _yumleHttpConnection.DefaultRequestHeaders.Add("Accept-Language", "en-GB,en-US,de-DE,de-AT;q=0.8,en;q=0.6,ru;q=0.4");

            RegisterForDomainChanges(messageSystem);
            // update the diagram the first time
            UpdateDiagram();
        }
예제 #3
0
        private void ConfigureDomainModel()
        {
            var diagram = new Diagram();
            var classifierDictionary = diagram.Classifiers;
       
            _container.Instance(diagram);
            _container.Instance(classifierDictionary);

            _container.Singleton<MessageSystem>();
            _container.Singleton<DeletionService>();
            _container.Singleton<IRelationService,RelationService>();
            _container.Singleton<IAskUserBeforeDeletionService, AskUserBeforeDeletionService>();
            _container.Singleton<ViewModelContext>();
            _container.Singleton<CommandFactory>();
            _container.PerRequest<DiagramCommands>();

            // load application settings
            var applicationSettings = new ApplicationSettings();
            var applicationSettingsPath = Combine(
                GetFolderPath(SpecialFolder.ApplicationData),
                "umlsketch");
            if (!Exists(applicationSettingsPath))
            {
                try
                {
                    CreateDirectory(applicationSettingsPath);
                }
                catch (Exception)
                {
                    // could not create the application folder, so 
                    // use the appdata folder directly
                    applicationSettingsPath = GetFolderPath(SpecialFolder.ApplicationData);
                }
            }
            var settingsFilePath = Combine(applicationSettingsPath,"umlsketch.settings");
            applicationSettings.Load(settingsFilePath);
           
            _container.Instance(applicationSettings);
        }
예제 #4
0
        public MainViewModel(
            DiagramCommands commands,
            Diagram diagram,
            ViewModelContext context,
            ApplicationSettings applicationSettings)
        {
            Requires(commands != null);
            Requires(diagram != null);
            Requires(applicationSettings != null);
            Requires(context != null);

            _context = context;
            _commands = commands;
            _diagram = diagram;
            _applicationSettings = applicationSettings;
            _serialization = new SerializationMixin(diagram, _context.MessageSystem,applicationSettings);

            // reload the view models when the classifiers are reset after
            // a load operation
            _context.MessageSystem.Subscribe<ClassifiersResetEvent>(diagram.Classifiers,_ => UpdateViewModels());

            // try to load the last file that was edited by the user
            LoadLastFile();
        }