private void RemoveComponent(object sender, RoutedEventArgs e) { this.validSourceElements = new List <Type> { typeof(FaultTreeAndGateNode), typeof(FaultTreeOrGateNode), typeof(FaultTreeTerminalNode) }; this.EditorMode = VisualEditorMode.MODE_REMOVE_CONTENT; }
private void PathMouseDown(object sender, MouseEventArgs e) { var edge = (Edge <FaultTreeNode>)((EdgeViewModel)((FrameworkElement)sender).DataContext).Edge; if (edge.Source is FaultTreeTerminalNode) { return; } FaultTreeNode node; switch (this.EditorMode) { case VisualEditorMode.MODE_ADD_AND_GATE: node = new FaultTreeAndGateNode(this.ViewModel.FaultTree.NextId()); break; case VisualEditorMode.MODE_ADD_OR_GATE: node = new FaultTreeOrGateNode(this.ViewModel.FaultTree.NextId()); break; default: return; } edge.Source.Childs.Add(node); edge.Source.Childs.Remove(edge.Destination); node.Childs.Add(edge.Destination); this.ViewModel.RaisePropertyChanged("FaultTree"); this.EditorMode = VisualEditorMode.MODE_VIEW_ONLY; }
/// <summary> /// Parameters for mapping an IPageViewModel using an /// IPageViewModelBuilder implementation. /// </summary> /// <param name="pageModel">The page data to include in the view model.</param> /// <param name="visualEditorMode">The view mode requested by the visual editor or a default value.</param> public PageViewModelBuilderParameters( PageRenderDetails pageModel, VisualEditorMode visualEditorMode ) { PageModel = pageModel; VisualEditorMode = visualEditorMode; }
/// <summary> /// Gets the publish status that should be used to query any /// entities that are not the primary target of the visual /// editor, e.g. a related entity or entities not directly associated /// with an entity being edited. /// </summary> /// <remarks> /// In most cases this would be the same for both primary and ambient /// entity, but in some cases it is different e.g. if the primary /// entity has been requested as a specific version then ambient entities /// cannot also be a specific version and should show the latest. /// </remarks> public static PublishStatusQuery ToAmbientEntityPublishStatusQuery(this VisualEditorMode visualEditorMode) { if (visualEditorMode == VisualEditorMode.Live) { return(PublishStatusQuery.Published); } return(PublishStatusQuery.Latest); }
/// <summary> /// Parameters for mapping an ICustomEntityPageViewModel using an /// IPageViewModelMapper implementation. /// </summary> /// <param name="page">The page data to include in the view model.</param> /// <param name="visualEditorMode">The view mode requested by the visual editor or a default value.</param> /// <param name="customEntityModel">he custom entity model data to use in the mapping.</param> public CustomEntityPageViewModelBuilderParameters( PageRenderDetails page, VisualEditorMode visualEditorMode, CustomEntityRenderDetails customEntityModel ) : base(page, visualEditorMode) { CustomEntityModel = customEntityModel; }
private void AddMarkovChain(object sender, RoutedEventArgs e) { this.validSourceElements = new List <Type> { typeof(FaultTreeTerminalNode) }; this.validDestinationElements = new List <Type> { typeof(FaultTreeTerminalNode) }; this.EditorMode = VisualEditorMode.MODE_ADD_MARKOV_CHAIN; }
private void AddGateConnection(object sender, RoutedEventArgs e) { this.validSourceElements = new List <Type> { typeof(FaultTreeAndGateNode), typeof(FaultTreeOrGateNode) }; this.validDestinationElements = new List <Type> { typeof(FaultTreeAndGateNode), typeof(FaultTreeOrGateNode), typeof(FaultTreeTerminalNode) }; this.EditorMode = VisualEditorMode.MODE_ADD_GATE_CONNECTION; }
public IEditablePageViewModel MapCustomEntityModel( Type displayModelType, PageRenderDetails page, CustomEntityRenderDetails customEntityRenderDetails, VisualEditorMode siteViewerMode) { return((IEditablePageViewModel)_mapMethod .MakeGenericMethod(displayModelType) .Invoke(this, new object[] { page, customEntityRenderDetails, siteViewerMode })); }
public T Map <T>(PageRenderDetails page, VisualEditorMode siteViewerMode) where T : IEditablePageViewModel, IPageRoutableViewModel, new() { var vm = new T(); vm.Page = page; vm.PageRoutingHelper = CreatePageRoutingHelper(page.PageId, page.PageVersionId, siteViewerMode); vm.IsPageEditMode = siteViewerMode == VisualEditorMode.Edit; return(vm); }
private void AddBasicEvent(object sender, RoutedEventArgs e) { if (!this.GraphLayout.Graph.Vertices.Any()) { return; } this.EditorMode = VisualEditorMode.MODE_ADD_BASIC_EVENT; this.validSourceElements = new List <Type> { typeof(FaultTreeOrGateNode), typeof(FaultTreeAndGateNode), typeof(FaultTreeTerminalNode) }; }
private void AddOrGate(object sender, RoutedEventArgs e) { if (!this.GraphLayout.Graph.Vertices.Any()) { this.ViewModel.FaultTree = new FaultTree(new FaultTreeOrGateNode(0)); } else { this.EditorMode = VisualEditorMode.MODE_ADD_OR_GATE; this.validSourceElements = new List <Type> { typeof(FaultTreeOrGateNode), typeof(FaultTreeAndGateNode) }; } }
public PageRoutingHelper( ICollection <PageRoute> pageRoutes, ICollection <PageDirectoryRoute> pageDirectoryRoutes, PageRoute currentPageRoute, VisualEditorMode visualEditorMode, int?currentPageVersionId ) { PageRoutes = pageRoutes; PageDirectoryRoutes = pageDirectoryRoutes; CurrentPageRoute = currentPageRoute; VisualEditorMode = visualEditorMode; CurrentPageVersionId = currentPageVersionId; }
public PageRoutingHelper( IEnumerable <PageRoute> pageRoutes, IEnumerable <WebDirectoryRoute> webDirectoryRoutes, PageRoute currentPageRoute, VisualEditorMode visualEditorMode, int?currentPageVersionId ) { PageRoutes = pageRoutes; WebDirectoryRoutes = webDirectoryRoutes; CurrentPageRoute = currentPageRoute; VisualEditorMode = visualEditorMode; CurrentPageVersionId = currentPageVersionId; }
public static PublishStatusQuery ToPublishStatusQuery(this VisualEditorMode siteViewerMode) { switch (siteViewerMode) { case VisualEditorMode.Draft: case VisualEditorMode.Edit: return(PublishStatusQuery.Draft); case VisualEditorMode.Any: return(PublishStatusQuery.Latest); case VisualEditorMode.SpecificVersion: return(PublishStatusQuery.SpecificVersion); default: return(PublishStatusQuery.Published); } }
/// <summary> /// Try and find a page route for a 404 page. /// </summary> private async Task <PageRoutingInfo> TryFindNotFoundPageRoute(string path, VisualEditorMode siteViewerMode) { var notFoundQuery = new GetNotFoundPageRouteByPathQuery() { Path = path, IncludeUnpublished = siteViewerMode != VisualEditorMode.Live }; var pageRoute = await _queryExecutor.ExecuteAsync(notFoundQuery); if (pageRoute == null) { return(null); } return(new PageRoutingInfo() { PageRoute = pageRoute }); }
private void EditorDownGate(FrameworkElement sender) { FaultTreeNode vertex; switch (this.EditorMode) { case VisualEditorMode.MODE_ADD_AND_GATE: vertex = new FaultTreeAndGateNode(this.ViewModel.FaultTree.NextId()); break; case VisualEditorMode.MODE_ADD_OR_GATE: vertex = new FaultTreeOrGateNode(this.ViewModel.FaultTree.NextId()); break; case VisualEditorMode.MODE_ADD_BASIC_EVENT: FaultTreeTerminalNode node = sender.DataContext as FaultTreeTerminalNode; if (node != null) { vertex = new FaultTreeTerminalNode(this.ViewModel.FaultTree.NextId(), this.ViewModel.FaultTree.NextBasicEvent()); this.ViewModel.FaultTree.MarkovChain.InitialDistribution[(FaultTreeTerminalNode)vertex] = 1.0; this.ViewModel.FaultTree.MarkovChain[node, (FaultTreeTerminalNode)vertex] = 1.0; this.ViewModel.FaultTree.MarkovChain[(FaultTreeTerminalNode)vertex, node] = 1.0; this.ViewModel.RaisePropertyChanged("FaultTree"); this.EditorMode = VisualEditorMode.MODE_VIEW_ONLY; return; } vertex = new FaultTreeTerminalNode(this.ViewModel.FaultTree.NextId(), this.ViewModel.FaultTree.NextBasicEvent()); this.ViewModel.FaultTree.MarkovChain.InitialDistribution[(FaultTreeTerminalNode)vertex] = 1.0; break; default: return; } this.ViewModel.NewEdgeStart = (FaultTreeNode)sender.DataContext; this.ViewModel.NewEdgeEnd = vertex; this.ViewModel.CreateEdge(); this.EditorMode = VisualEditorMode.MODE_VIEW_ONLY; }
private CustomEntityDetailsPageViewModel <TDisplayModel> MapCustomEntityModel <TDisplayModel>( PageRenderDetails page, CustomEntityRenderDetails customEntityRenderDetails, VisualEditorMode siteViewerMode ) where TDisplayModel : ICustomEntityDetailsDisplayViewModel { var vm = Map <CustomEntityDetailsPageViewModel <TDisplayModel> >(page, siteViewerMode); var customModel = new CustomEntityRenderDetailsViewModel <TDisplayModel>(); customModel.CustomEntityId = customEntityRenderDetails.CustomEntityId; customModel.CustomEntityVersionId = customEntityRenderDetails.CustomEntityVersionId; customModel.Locale = customEntityRenderDetails.Locale; customModel.Sections = customEntityRenderDetails.Sections; customModel.Title = customEntityRenderDetails.Title; customModel.UrlSlug = customEntityRenderDetails.UrlSlug; customModel.WorkFlowStatus = customEntityRenderDetails.WorkFlowStatus; customModel.Model = _customEntityDisplayModelMapper.MapDetails <TDisplayModel>(customEntityRenderDetails); vm.CustomEntity = customModel; return(vm); }
private PageRoutingHelper CreatePageRoutingHelper(int pageId, int pageVersionId, VisualEditorMode siteViewerMode) { var allRoutes = _queryExecutor.GetAll <PageRoute>(); var allDirectories = _queryExecutor.GetAll <WebDirectoryRoute>(); var currentRoute = allRoutes.Single(p => p.PageId == pageId); var router = new PageRoutingHelper(allRoutes, allDirectories, currentRoute, siteViewerMode, pageVersionId); return(router); }
private void AnalyzeClick(object sender, RoutedEventArgs e) { this.EditorMode = VisualEditorMode.MODE_ANALYZE_CLICK; }
public PageViewModel Map(PageRenderDetails page, VisualEditorMode siteViewerMode) { return(Map <PageViewModel>(page, siteViewerMode)); }
/// <summary> /// Gets the url for a page, formatted with specific visual editor /// parameters. Note that this method does not validate permissions /// in any way, it simply formats the route correctly. /// </summary> /// <param name="route">The page to link to.</param> /// <param name="visualEditorMode"> /// The mode to set the visual editor to. Note that this method cannot be /// used for VisualEditorMode.SpecificVersion and will throw an exception if /// you try. To get the url for a specific version, you need to use the overload /// accepting an IVersionRoute parameter. /// </param> /// <param name="isEditingCustomEntity"> /// For custom entity pages, this option indicates whether the editing context /// should be the custom entity rather than the (default) page. /// </param> public string VisualEditor( PageRoutingInfo route, VisualEditorMode visualEditorMode, bool isEditingCustomEntity = false ) { if (route == null) { return(string.Empty); } var baseUrl = Page(route); var queryParams = new Dictionary <string, string>(2); switch (visualEditorMode) { case VisualEditorMode.Any: var latestVersion = route.GetVersionRoute(isEditingCustomEntity, PublishStatusQuery.Latest, null); if (latestVersion.WorkFlowStatus == WorkFlowStatus.Draft || !route.IsPublished()) { queryParams.Add(VISUAL_EDITOR_QS_MODE, VISUAL_EDITOR_QS_MODE_PREVIEW); } else { queryParams.Add(VISUAL_EDITOR_QS_MODE, VISUAL_EDITOR_QS_MODE_LIVE); } break; case VisualEditorMode.Preview: queryParams.Add(VISUAL_EDITOR_QS_MODE, VISUAL_EDITOR_QS_MODE_PREVIEW); break; case VisualEditorMode.Edit: queryParams.Add(VISUAL_EDITOR_QS_MODE, VISUAL_EDITOR_QS_MODE_EDIT); break; case VisualEditorMode.Live: queryParams.Add(VISUAL_EDITOR_QS_MODE, VISUAL_EDITOR_QS_MODE_LIVE); break; case VisualEditorMode.SpecificVersion: throw new Exception($"To create a url for {nameof(VisualEditorMode)}.{nameof(VisualEditorMode.SpecificVersion)} you should use the overload that takes an {nameof(IVersionRoute)} parameter"); default: throw new Exception($"{nameof(VisualEditorMode)}.{visualEditorMode} not supported by {nameof(PageRouteLibrary)}.{nameof(VisualEditor)}()"); } if (isEditingCustomEntity) { queryParams.Add(VISUAL_EDITOR_QS_EDITTYPE, VISUAL_EDITOR_QS_EDITTYPE_ENTITY); } else if (route.CustomEntityRoute != null) { queryParams.Add(VISUAL_EDITOR_QS_EDITTYPE, VISUAL_EDITOR_QS_EDITTYPE_PAGE); } var url = QueryHelpers.AddQueryString(baseUrl, queryParams); return(url); }
public VisualEditorState( VisualEditorMode visualEditorMode ) { VisualEditorMode = visualEditorMode; }