protected override void OnDocumentWindowChanged(ModelingDocView oldView, ModelingDocView newView) { PanZoomPanel panel = this.Window as PanZoomPanel; if (panel != null) { // detach from previous document view if (m_currentDocView != null) { UnsubscribeFromEvents(m_currentDocView); m_currentDocView = null; } DiagramDocView docView = newView as DiagramDocView; if (docView != null && docView.CurrentDesigner != null) { // attach to the new document view SubscribeToEvents(docView); m_currentDocView = docView; // make sure thumbnail image is updated panel.InvalidateImage(docView.CurrentDesigner.DiagramClientView); } else { // document is not recognized - erase the image panel.InvalidateImage(null); } } }
public static void SelectCompartmentItem(DiagramDocView docView, ModelElement compartmentOwner, string compartmentListName, ModelElement compartmentItem) { var shapeElement = DiagramUtil.GetModelElementFirstShape(compartmentOwner); ElementListCompartment compartment = null; foreach (ShapeElement shape in shapeElement.NestedChildShapes) { if (shape is ElementListCompartment) { if ((shape as ElementListCompartment).Name == compartmentListName) { compartment = (ElementListCompartment)shape; } } } if (compartment != null) { var listField = compartment.ListField; var child = listField.FindFirstChild(compartment, true); while (child != null && !child.RepresentedElements.OfType <ModelElement>().Any(element => element == compartmentItem)) { child = listField.FindNextChild(child, true); } var selectedShapesCollection = docView.CurrentDesigner.Selection; selectedShapesCollection.Clear(); selectedShapesCollection.Set(child); } }
private void SubscribeToEvents(DiagramDocView docView) { Debug.Assert(docView != null); if (docView != null) { if (docView.CurrentDesigner != null) { DiagramClientView diagramClientView = docView.CurrentDesigner.DiagramClientView; Debug.Assert(diagramClientView != null); if (diagramClientView != null) { // Watch scroll and zoom changes so that view bounds are updated // when user scrolls/zooms the diagram via usual means. diagramClientView.ScrollPositionChanged += OnScrollPositionChanged; diagramClientView.ZoomChanged += OnZoomChanged; m_needsRefresh = true; } } if (docView.CurrentDiagram != null) { Store store = docView.CurrentDiagram.Store; Debug.Assert(store != null && IsValidModelStore(store)); if (store != null && IsValidModelStore(store)) { // Watch any transactions so that image itself is updated when changes // are made to the diagram. store.EventManagerDirectory.TransactionCommitted.Add(m_transactionHandler); } } } }
private void UnsubscribeFromEvents(DiagramDocView docView) { Debug.Assert(docView != null); if (docView != null) { if (docView.CurrentDesigner != null) { DiagramClientView diagramClientView = docView.CurrentDesigner.DiagramClientView; Debug.Assert(diagramClientView != null); if (diagramClientView != null) { diagramClientView.ScrollPositionChanged -= OnScrollPositionChanged; diagramClientView.ZoomChanged -= OnZoomChanged; } } if (docView.CurrentDiagram != null) { Store store = docView.CurrentDiagram.Store; Debug.Assert(store != null && IsValidModelStore(store)); if (store != null && IsValidModelStore(store)) { store.EventManagerDirectory.TransactionCommitted.Remove(m_transactionHandler); } } } }
public override void ExecCommand(MenuCommand menuCommand) { DiagramDocView diagramDocView = GetCurrentSelectedPersistentType().DiagramDocView; Diagram currentDiagram = diagramDocView.CurrentDiagram; new DiagramUtil().GetDiagramClientView(currentDiagram) .SetZoomFactor(ZoomFactor, currentDiagram.Center, true); }
/// <summary> /// Gets the surface area. /// </summary> /// <param name="provider">The provider.</param> /// <returns></returns> public static bool IsDiagramSelected(IServiceProvider provider) { DiagramDocView docView = DesignerHelper.GetDiagramDocView(provider); if (docView != null) { if (docView.SelectionCount == 1) { foreach (object component in docView.GetSelectedComponents()) { return(component is Diagram); } } } return(false); }
protected override void Dispose(bool disposing) { try { if (disposing) { if (m_currentDocView != null) { UnsubscribeFromEvents(m_currentDocView); m_currentDocView = null; } } } finally { base.Dispose(disposing); } }
public void SetupObjects(nHydrate.Dsl.nHydrateModel model, DiagramDocView diagram, ModelingDocData docView) { _model = model; _diagram = diagram; _docData = docView; _modelElements.Clear(); //Add Entities foreach (var item in _model.Entities.OrderBy(x => x.Name)) { _modelElements.Add(item); } //Add Views foreach (var item in _model.Views.OrderBy(x => x.Name)) { _modelElements.Add(item); } this.DisplayObjects(); }
/// <summary> /// Gets the selected shape. /// </summary> /// <param name="provider">The provider.</param> /// <returns></returns> public static ShapeElement GetSelectedShape(IServiceProvider provider) { Guard.ArgumentNotNull(provider, "provider"); DiagramDocView docView = DesignerHelper.GetDiagramDocView(provider); if (docView != null) { if (docView.SelectionCount == 1) { foreach (object component in docView.GetSelectedComponents()) { ShapeElement selectedShape = component as ShapeElement; if (selectedShape != null) { return(selectedShape); } } } } return(null); }
public void SetupObjects(nHydrate.Dsl.nHydrateModel model, DiagramDocView diagram, ModelingDocData docView) { _model = model; _diagram = diagram; _docView = docView; }
protected override void OnDocumentWindowChanged(ModelingDocView oldView, ModelingDocView newView) { if (newView == null && oldView != null) { //The model is being unloaded var m = oldView.DocData.RootElement as nHydrate.Dsl.nHydrateModel; if (m == null) { return; } _loadedModels.Remove(m.Id); oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.nHydrateModel)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ModelChanged)); #region Entity oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Entity)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); oldView.DocData.Store.EventManagerDirectory.ElementAdded.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Entity)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); oldView.DocData.Store.EventManagerDirectory.ElementDeleted.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Entity)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #region Field oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Field)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); oldView.DocData.Store.EventManagerDirectory.ElementAdded.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Field)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); oldView.DocData.Store.EventManagerDirectory.ElementDeleted.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Field)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #endregion #region View oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.View)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); oldView.DocData.Store.EventManagerDirectory.ElementAdded.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.View)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); oldView.DocData.Store.EventManagerDirectory.ElementDeleted.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.View)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #region Field oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.ViewField)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); oldView.DocData.Store.EventManagerDirectory.ElementAdded.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.ViewField)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); oldView.DocData.Store.EventManagerDirectory.ElementDeleted.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.ViewField)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #endregion #region Stored Procedure oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedure)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); oldView.DocData.Store.EventManagerDirectory.ElementAdded.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedure)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); oldView.DocData.Store.EventManagerDirectory.ElementDeleted.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedure)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #region Field oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureField)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); oldView.DocData.Store.EventManagerDirectory.ElementAdded.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureField)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); oldView.DocData.Store.EventManagerDirectory.ElementDeleted.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureField)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #region Parameter oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureParameter)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); oldView.DocData.Store.EventManagerDirectory.ElementAdded.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureParameter)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); oldView.DocData.Store.EventManagerDirectory.ElementDeleted.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureParameter)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #endregion #region Function oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Function)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); oldView.DocData.Store.EventManagerDirectory.ElementAdded.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Function)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); oldView.DocData.Store.EventManagerDirectory.ElementDeleted.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Function)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #region Field oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionField)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); oldView.DocData.Store.EventManagerDirectory.ElementAdded.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionField)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); oldView.DocData.Store.EventManagerDirectory.ElementDeleted.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionField)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #region Parameter oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionParameter)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); oldView.DocData.Store.EventManagerDirectory.ElementAdded.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionParameter)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); oldView.DocData.Store.EventManagerDirectory.ElementDeleted.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionParameter)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #endregion return; } //When the old view is null this is the first time. Only load the first time if (newView == null) { return; } //Reload model if necessary _model = newView.DocData.RootElement as nHydrate.Dsl.nHydrateModel; if (_model == null) { return; } _diagram = ((Microsoft.VisualStudio.Modeling.Shell.SingleDiagramDocView)newView).CurrentDesigner.DocView; _docView = newView.DocData; //This model is already hooked if (!_loadedModels.Contains(_model.Id)) { _loadedModels.Add(_model.Id); newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.nHydrateModel)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ModelChanged)); #region Entity newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Entity)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); newView.DocData.Store.EventManagerDirectory.ElementAdded.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Entity)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); newView.DocData.Store.EventManagerDirectory.ElementDeleted.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Entity)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #region Field newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Field)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); newView.DocData.Store.EventManagerDirectory.ElementAdded.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Field)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); newView.DocData.Store.EventManagerDirectory.ElementDeleted.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Field)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #endregion #region View newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.View)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); newView.DocData.Store.EventManagerDirectory.ElementAdded.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.View)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); newView.DocData.Store.EventManagerDirectory.ElementDeleted.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.View)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #region Field newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.ViewField)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); newView.DocData.Store.EventManagerDirectory.ElementAdded.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.ViewField)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); newView.DocData.Store.EventManagerDirectory.ElementDeleted.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.ViewField)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #endregion #region Stored Procedure newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedure)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); newView.DocData.Store.EventManagerDirectory.ElementAdded.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedure)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); newView.DocData.Store.EventManagerDirectory.ElementDeleted.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedure)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #region Field newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureField)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); newView.DocData.Store.EventManagerDirectory.ElementAdded.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureField)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); newView.DocData.Store.EventManagerDirectory.ElementDeleted.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureField)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #region Parameter newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureParameter)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); newView.DocData.Store.EventManagerDirectory.ElementAdded.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureParameter)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); newView.DocData.Store.EventManagerDirectory.ElementDeleted.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureParameter)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #endregion #region Function newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Function)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); newView.DocData.Store.EventManagerDirectory.ElementAdded.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Function)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); newView.DocData.Store.EventManagerDirectory.ElementDeleted.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Function)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #region Field newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionField)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); newView.DocData.Store.EventManagerDirectory.ElementAdded.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionField)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); newView.DocData.Store.EventManagerDirectory.ElementDeleted.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionField)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #region Parameter newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionParameter)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); newView.DocData.Store.EventManagerDirectory.ElementAdded.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionParameter)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); newView.DocData.Store.EventManagerDirectory.ElementDeleted.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionParameter)), new EventHandler <Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #endregion } _findControl.SetupObjects(_model, _diagram, _docView); base.OnDocumentWindowChanged(oldView, newView); }
public void SetupObjects(nHydrate.Dsl.nHydrateModel model, DiagramDocView diagram, ModelingDocData docView) { _model = model; _diagram = diagram; _docView = docView; }
public void SetupObjects(nHydrate.Dsl.nHydrateModel model, DiagramDocView diagram, ModelingDocData docView) { _model = model; _diagram = diagram; _docData = docView; _modelElements.Clear(); //Add Entities foreach (var item in _model.Entities.OrderBy(x => x.Name)) { _modelElements.Add(item); } //if ((_model.DiagramVisibility & Dsl.VisibilityTypeConstants.View) == Dsl.VisibilityTypeConstants.View) { //Add Views foreach (var item in _model.Views.OrderBy(x => x.Name)) { _modelElements.Add(item); } } //if ((_model.DiagramVisibility & Dsl.VisibilityTypeConstants.StoredProcedure) == Dsl.VisibilityTypeConstants.StoredProcedure) { //Add StoredProcedures foreach (var item in _model.StoredProcedures.OrderBy(x => x.Name)) { _modelElements.Add(item); } } //if ((_model.DiagramVisibility & Dsl.VisibilityTypeConstants.Function) == Dsl.VisibilityTypeConstants.Function) { //Add Functions foreach (var item in _model.Functions.OrderBy(x => x.Name)) { _modelElements.Add(item); } } DisplayObjects(); }
public override void ExecCommand(MenuCommand menuCommand) { DiagramDocView diagramDocView = GetCurrentSelectedPersistentType().DiagramDocView; new DiagramUtil().GetDiagramClientView(diagramDocView.CurrentDiagram).ZoomToFit(); }
protected override void OnDocumentWindowChanged(ModelingDocView oldView, ModelingDocView newView) { if (newView == null && oldView != null) { //The model is being unloaded var m = oldView.DocData.RootElement as nHydrate.Dsl.nHydrateModel; if (m == null) return; _loadedModels.Remove(m.Id); oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.nHydrateModel)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ModelChanged)); #region Entity oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Entity)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); oldView.DocData.Store.EventManagerDirectory.ElementAdded.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Entity)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); oldView.DocData.Store.EventManagerDirectory.ElementDeleted.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Entity)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #region Field oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Field)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); oldView.DocData.Store.EventManagerDirectory.ElementAdded.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Field)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); oldView.DocData.Store.EventManagerDirectory.ElementDeleted.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Field)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #endregion #region View oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.View)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); oldView.DocData.Store.EventManagerDirectory.ElementAdded.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.View)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); oldView.DocData.Store.EventManagerDirectory.ElementDeleted.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.View)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #region Field oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.ViewField)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); oldView.DocData.Store.EventManagerDirectory.ElementAdded.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.ViewField)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); oldView.DocData.Store.EventManagerDirectory.ElementDeleted.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.ViewField)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #endregion #region Stored Procedure oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedure)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); oldView.DocData.Store.EventManagerDirectory.ElementAdded.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedure)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); oldView.DocData.Store.EventManagerDirectory.ElementDeleted.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedure)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #region Field oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureField)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); oldView.DocData.Store.EventManagerDirectory.ElementAdded.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureField)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); oldView.DocData.Store.EventManagerDirectory.ElementDeleted.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureField)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #region Parameter oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureParameter)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); oldView.DocData.Store.EventManagerDirectory.ElementAdded.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureParameter)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); oldView.DocData.Store.EventManagerDirectory.ElementDeleted.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureParameter)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #endregion #region Function oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Function)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); oldView.DocData.Store.EventManagerDirectory.ElementAdded.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Function)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); oldView.DocData.Store.EventManagerDirectory.ElementDeleted.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Function)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #region Field oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionField)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); oldView.DocData.Store.EventManagerDirectory.ElementAdded.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionField)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); oldView.DocData.Store.EventManagerDirectory.ElementDeleted.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionField)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #region Parameter oldView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionParameter)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); oldView.DocData.Store.EventManagerDirectory.ElementAdded.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionParameter)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); oldView.DocData.Store.EventManagerDirectory.ElementDeleted.Remove( oldView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionParameter)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #endregion return; } //When the old view is null this is the first time. Only load the first time if (newView == null) return; //Reload model if necessary _model = newView.DocData.RootElement as nHydrate.Dsl.nHydrateModel; if (_model == null) return; _diagram = ((Microsoft.VisualStudio.Modeling.Shell.SingleDiagramDocView)newView).CurrentDesigner.DocView; _docView = newView.DocData; //This model is already hooked if (!_loadedModels.Contains(_model.Id)) { _loadedModels.Add(_model.Id); newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.nHydrateModel)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ModelChanged)); #region Entity newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Entity)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); newView.DocData.Store.EventManagerDirectory.ElementAdded.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Entity)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); newView.DocData.Store.EventManagerDirectory.ElementDeleted.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Entity)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #region Field newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Field)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); newView.DocData.Store.EventManagerDirectory.ElementAdded.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Field)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); newView.DocData.Store.EventManagerDirectory.ElementDeleted.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Field)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #endregion #region View newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.View)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); newView.DocData.Store.EventManagerDirectory.ElementAdded.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.View)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); newView.DocData.Store.EventManagerDirectory.ElementDeleted.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.View)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #region Field newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.ViewField)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); newView.DocData.Store.EventManagerDirectory.ElementAdded.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.ViewField)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); newView.DocData.Store.EventManagerDirectory.ElementDeleted.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.ViewField)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #endregion #region Stored Procedure newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedure)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); newView.DocData.Store.EventManagerDirectory.ElementAdded.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedure)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); newView.DocData.Store.EventManagerDirectory.ElementDeleted.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedure)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #region Field newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureField)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); newView.DocData.Store.EventManagerDirectory.ElementAdded.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureField)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); newView.DocData.Store.EventManagerDirectory.ElementDeleted.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureField)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #region Parameter newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureParameter)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); newView.DocData.Store.EventManagerDirectory.ElementAdded.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureParameter)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); newView.DocData.Store.EventManagerDirectory.ElementDeleted.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.StoredProcedureParameter)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #endregion #region Function newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Function)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); newView.DocData.Store.EventManagerDirectory.ElementAdded.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Function)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); newView.DocData.Store.EventManagerDirectory.ElementDeleted.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.Function)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #region Field newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionField)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); newView.DocData.Store.EventManagerDirectory.ElementAdded.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionField)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); newView.DocData.Store.EventManagerDirectory.ElementDeleted.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionField)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #region Parameter newView.DocData.Store.EventManagerDirectory.ElementPropertyChanged.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionParameter)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementPropertyChangedEventArgs>(ElementChanged)); newView.DocData.Store.EventManagerDirectory.ElementAdded.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionParameter)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementAddedEventArgs>(ElementAddHandler)); newView.DocData.Store.EventManagerDirectory.ElementDeleted.Add( newView.DocData.Store.DomainDataDirectory.FindDomainClass(typeof(nHydrate.Dsl.FunctionParameter)), new EventHandler<Microsoft.VisualStudio.Modeling.ElementDeletedEventArgs>(ElementDeleteHandler)); #endregion #endregion } _findControl.SetupObjects(_model, _diagram, _docView); base.OnDocumentWindowChanged(oldView, newView); }