예제 #1
0
		public virtual bool CloseWorkspace(IViewServiceProvider provider, IWorkspaceConstruct construct) {
			bool? confirmation = (construct.ViewModel as IWorkspaceViewModel)?.Closing(provider);
			if (confirmation.HasValue && !confirmation.Value) {
				return false;
			}
			return Workspaces.Remove(construct);
		}
예제 #2
0
		public virtual bool CloseWorkspace(IViewServiceProvider provider, IWorkspaceViewModel vm) {
			if (vm.Closing(provider)) {
				for (int i = 0; i < Workspaces.Count; i++) {
					if (Workspaces[i].ViewModel == vm) {
						Workspaces.RemoveAt(i);
						return true;
					}
				}
			}
			return false;
		}
예제 #3
0
        public static void AddService <T>(IViewServiceProvider provider, Func <T> serviceFactory, string?key = null)
            where T : IViewService
        {
            var container = provider as IViewServiceContainer;

            if (container == null)
            {
                throw new InvalidCastException();
            }

            container.AddService <T>(serviceFactory, key);
        }
예제 #4
0
        public MainWindowViewModel(IViewServiceProvider viewServiceProvider)
        {
            _viewService = viewServiceProvider;
            _errorMessages.CollectionChanged += (_, __) => HasErrorMessages = _errorMessages.Count > 0;
            _host     = new CsvEditSharpConfigurationHost();
            Workspace = new CsvEditSharpWorkspace(_host, _errorMessages);

            ConfigurationDoc = new TextDocument(StringTextSource.Empty);
            QueryDoc         = new TextDocument(new StringTextSource("Query<FieldData>( records => records.Where(row => true).OrderBy(row => row) );"));

            CurrentFilePath   = string.Empty;
            CurrentFileName   = "(Empty)";
            CurrentConfigName = "(Empty)";
            SelectedTemplate  = ConfigFileTemplates.First();
            SelectedTab       = 0;
        }
 public static void AddService <T>(this IViewServiceProvider self, Func <T> serviceFactory, string?key = null)
     where T : IViewService =>
 ViewService.AddService <T>(self, serviceFactory, key);
예제 #6
0
		/// <summary>
		/// The view service will invoke this method to determine if it is OK to close the workspace.
		/// </summary>
		/// <param name="svcs">use the view service to display any confirmation</param>
		/// <param name="prompt"></param>
		/// <returns></returns>
		public virtual bool Closing(IViewServiceProvider provider) { return true; }
예제 #7
0
		public virtual async Task LoadAsync(IViewServiceProvider provider) {
			await Task.Run(new Action(() => { }));
		}