public void Clone_OK() { var rows = 1; var cols = 2; var d = new Dimension(rows, cols); var clone = (Dimension)d.Clone(); Assert.AreEqual(d.Rows, clone.Rows, "Incorrect row count on cloned dimension."); Assert.AreEqual(d.Columns, clone.Columns, "Incorrect column count on cloned dimension."); }
/// <summary> /// Raises the <see cref="E:System.Windows.Forms.Control.Resize"/> event. /// </summary> /// <param name="e">An <see cref="T:System.EventArgs"/> that contains the event data.</param> protected override void OnResize(EventArgs e) { base.OnResize(e); if (this.SuspendLayouting) { return; } if (this.ControlAnchors.Left != null && this.ControlAnchors.Right != null) { this.ControlAnchors.Left.SetX(this.Left, this.Parent); this.ControlAnchors.Right.SetX(this.Right, this.Parent); } if (this.ControlAnchors.Top != null && this.ControlAnchors.Bottom != null) { this.ControlAnchors.Top.SetY(this.Top, this.Parent); this.ControlAnchors.Bottom.SetY(this.Bottom, this.Parent); } if (this.ControlAnchors.Center != null) { this.ControlAnchors.Center.SetX((this.Right + this.Left) / 2, this.Parent); this.ControlAnchors.Center.SetY((this.Top + this.Bottom) / 2, this.Parent); } Dimension.Size dimension = Dimension.Clone <Dimension.Size>(this.TypedSerializationObject.SizeDimension); if (dimension == null) { dimension = new Dimension.Size(); } dimension.Update(this.Width, this.Height); this.TypedSerializationObject.SizeDimension = dimension; ChangeLayoutOfDependencies(); this.OnPropertyChanged(new PropertyChangedEventArgs("size")); }
private void ExecDimension(ProjectItem pi) { try { Dimension dim = pi.Object as Dimension; Program.ASFlattener = new frmASFlattener(); Program.ASFlattener.dim = dim; frmASFlattenerOptions Options = new frmASFlattenerOptions(); Options.lbHierarchies.Items.Clear(); Options.lbAttributes.Items.Clear(); if (dim != null) { foreach (Hierarchy hier in dim.Hierarchies) { Options.lbHierarchies.Items.Add(new ctlFancyCheckedListBoxItem(hier.Name, true)); } foreach (DimensionAttribute attr in dim.Attributes) { if (attr.Usage == AttributeUsage.Regular) { if (ASPCDimNaturalizer.IsAttributeRelated(attr, dim.KeyAttribute)) { Options.lbAttributes.Items.Add(attr.Name); } Options.lbHierarchies.Items.Add(new ctlFancyCheckedListBoxItem(attr.Name, false)); } } } for (int i = 0; i < Options.lbAttributes.Items.Count; i++) { Options.lbAttributes.SetItemChecked(i, true); } for (int i = 0; i < Options.lbHierarchies.Items.Count; i++) { Options.lbHierarchies.SetItemChecked(i, true); } Options.tabControl1.SelectedIndex = 0; Options.numMinLevels.Value = 0; Options.trkActionLevel.Value = 4; if (Options.ShowDialog() == DialogResult.OK) { ProjectItem piDsv = null; foreach (ProjectItem piTemp in pi.ContainingProject.ProjectItems) { if (piTemp.Object == dim.DataSourceView) { piDsv = piTemp; break; } } //close all project windows foreach (ProjectItem piTemp in pi.ContainingProject.ProjectItems) { bool bIsOpen = piTemp.get_IsOpen(BIDSViewKinds.Designer); if (bIsOpen) { Window win = piTemp.Open(BIDSViewKinds.Designer); win.Close(vsSaveChanges.vsSaveChangesYes); } } Microsoft.DataWarehouse.Design.DataSourceConnection openedDataSourceConnection = GetOpenedDataSourceConnection(dim.DataSource); Program.ASFlattener.db = Program.ASFlattener.dim.Parent; Program.ASFlattener.DataSourceConnection = openedDataSourceConnection; Program.SQLFlattener = null; asAlias::Microsoft.DataWarehouse.VsIntegration.Shell.Project.IFileProjectHierarchy projectService = (asAlias::Microsoft.DataWarehouse.VsIntegration.Shell.Project.IFileProjectHierarchy)((System.IServiceProvider)pi.ContainingProject).GetService(typeof(asAlias::Microsoft.DataWarehouse.VsIntegration.Shell.Project.IFileProjectHierarchy)); sharedDataWarehouseInterfaces::Microsoft.DataWarehouse.Interfaces.IConfigurationSettings settings = (sharedDataWarehouseInterfaces::Microsoft.DataWarehouse.Interfaces.IConfigurationSettings)((System.IServiceProvider)pi.ContainingProject).GetService(typeof(sharedDataWarehouseInterfaces::Microsoft.DataWarehouse.Interfaces.IConfigurationSettings)); asAlias::Microsoft.DataWarehouse.Project.DataWarehouseProjectManager projectManager = (asAlias::Microsoft.DataWarehouse.Project.DataWarehouseProjectManager)settings.GetType().InvokeMember("ProjectManager", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.GetProperty | System.Reflection.BindingFlags.FlattenHierarchy, null, settings, null); Dimension dimNew = dim.Clone(); dimNew.Name = dim.Name + "_Naturalized"; dimNew.ID = dimNew.Name; string sNewDimProjectItemName = dimNew.Name + ".dim"; if (dim.ParentServer != null) { sNewDimProjectItemName = dimNew.Name; } if (dim.Parent.Dimensions.ContainsName(dimNew.Name)) { projectManager.GetProjectItemFromName(sNewDimProjectItemName).Delete(); //deletes the project item and the dimension from the AMO dimensions collection } if (dim.ParentServer == null) { string sFullPath = pi.get_FileNames(0); sFullPath = sFullPath.Substring(0, sFullPath.Length - System.IO.Path.GetFileName(sFullPath).Length) + sNewDimProjectItemName; XmlWriter writer = new System.Xml.XmlTextWriter(sFullPath, Encoding.UTF8); Microsoft.AnalysisServices.Utils.Serialize(writer, dimNew, false); writer.Close(); asAlias::Microsoft.DataWarehouse.VsIntegration.Shell.Project.IFileProjectNode parentNode = null; asAlias::Microsoft.DataWarehouse.VsIntegration.Shell.Project.IFileProjectNode projNode = projectManager.CreateFileProjectNode(ref parentNode, 1, sNewDimProjectItemName, sFullPath, 0, 0); projectService.Add(projNode, parentNode); ((asAlias::Microsoft.DataWarehouse.VsIntegration.Shell.Project.ComponentModel.IFileProjectComponentManager)projectManager).UpdateComponentModel(asAlias::Microsoft.DataWarehouse.VsIntegration.Shell.Project.ComponentModel.UpdateOperationType.AddObject, projNode); } else { dim.Parent.Dimensions.Add(dimNew); } Program.Progress = new frmProgress(); Program.Progress.ShowDialog(); // The Progress form actually launches the naturalizer... if (piDsv != null && dim.ParentServer == null) { Window winDesigner = piDsv.Open(BIDSViewKinds.Designer); winDesigner.Activate(); System.ComponentModel.Design.IDesignerHost host = (System.ComponentModel.Design.IDesignerHost)(winDesigner.Object); asAlias::Microsoft.AnalysisServices.Design.DataSourceDesigner designer = (asAlias::Microsoft.AnalysisServices.Design.DataSourceDesigner)host.GetDesigner(dim.DataSourceView); designer.MakeDesignerDirty(); } ProjectItem piNew = projectManager.GetProjectItemFromName(sNewDimProjectItemName); if (dim.ParentServer == null) { piNew.Save(null); //piNew.ContainingProject.Save(null); //didn't work } else { //already processed inside the ASPCDimNaturalizer code } Window winNew = piNew.Open(BIDSViewKinds.Designer); winNew.Activate(); } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } }