Example #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);
		}
Example #2
0
		public bool TryFind(IWorkspaceConstruct construct, out int index) {
			index = -1;
			if (construct.WorkspaceID == null) {
				return false;
			}
			for (int i = 0; i < Workspaces.Count; i++) {
				IWorkspaceConstruct item = Workspaces[i];
				if (item.ViewModelType == construct.ViewModelType && object.Equals(item.WorkspaceID, construct.WorkspaceID)) {
					index = i;
					return true;
				}
			}
			return false;
		}
Example #3
0
		public virtual void ShowWorkspace(IWorkspaceConstruct construct) {
			int i;
			if (TryFind(construct, out i)) {
				Workspaces[i].IsActive = true;
			} else {
				construct.Build();
				construct.IsActive = true;
				Workspaces.Add(construct);
				construct.IsAttached = true;
				var handle = Created;
				if (handle != null) {
					handle(construct);
				}
			}
		}