Author: kaiyi4
Date: Thu Aug 28 15:02:21 2008
New Revision: 2658

Modified:
trunk/src/ca/sqlpower/architect/swingui/olap/action/CreateDimensionUsageAction.java

Log:
fixed a bug where the same table is added as a child twice. Now a new copy is created and added, excluding its children.

We don't have a copy constructor for tables, so I had to copy properties by hand.

Modified: trunk/src/ca/sqlpower/architect/swingui/olap/action/CreateDimensionUsageAction.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/olap/action/CreateDimensionUsageAction.java (original) +++ trunk/src/ca/sqlpower/architect/swingui/olap/action/CreateDimensionUsageAction.java Thu Aug 28 15:02:21 2008
@@ -34,6 +34,7 @@
 import ca.sqlpower.architect.olap.MondrianModel.Dimension;
 import ca.sqlpower.architect.olap.MondrianModel.DimensionUsage;
 import ca.sqlpower.architect.olap.MondrianModel.Hierarchy;
+import ca.sqlpower.architect.olap.MondrianModel.Table;
 import ca.sqlpower.architect.swingui.ArchitectSwingSession;
 import ca.sqlpower.architect.swingui.PlayPen;
 import ca.sqlpower.architect.swingui.olap.CubePane;
@@ -76,7 +77,13 @@
if (!dimension.getHierarchies().isEmpty() && dimension.getHierarchies().get(0).getName()==null) { Hierarchy hierarchy = dimension.getHierarchies().get(0); hierarchy.startCompoundEdit("Set lowest level hierarchy to conform to cube fact table.");
-                            hierarchy.setRelation(cube.getFact());
+                            Table fact = (Table) cube.getFact();
+                            Table rel = new Table();
+                            rel.setAlias(fact.getAlias());
+                            rel.setFilter(fact.getFilter());
+                            rel.setName(fact.getName());
+                            rel.setSchema(fact.getSchema());
+                            hierarchy.setRelation(rel);
                             hierarchy.setPrimaryKey(du.getForeignKey());
                             hierarchy.endCompoundEdit();
                         }

Reply via email to