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();
}