Author: kaiyi4
Date: Wed Aug 27 14:13:16 2008
New Revision: 2636

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

Log:
trim down last commit. A user absolutelly must always choose foreign key when creating a dimensionusage.

Also if a dimension is public, it absolutely cannot have a foreignKey specified.

Modified: trunk/src/ca/sqlpower/architect/swingui/olap/DimensionUsageEditPanel.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/olap/DimensionUsageEditPanel.java (original) +++ trunk/src/ca/sqlpower/architect/swingui/olap/DimensionUsageEditPanel.java Wed Aug 27 14:13:16 2008
@@ -91,7 +91,6 @@
SQLColumn selectedCol = (SQLColumn) foreignKeyChooser.getSelectedItem();
         String pk = selectedCol.getName();
         dimensionUsage.setForeignKey(pk);
-        dimension.setForeignKey(pk);
         dimensionUsage.endCompoundEdit();
         return true;
     }

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 Wed Aug 27 14:13:16 2008
@@ -19,7 +19,6 @@

 package ca.sqlpower.architect.swingui.olap.action;

-import java.util.List;
 import java.util.concurrent.Callable;

 import javax.swing.JDialog;
@@ -30,16 +29,10 @@

 import ca.sqlpower.architect.ArchitectException;
 import ca.sqlpower.architect.ArchitectRuntimeException;
-import ca.sqlpower.architect.SQLColumn;
-import ca.sqlpower.architect.SQLRelationship;
-import ca.sqlpower.architect.SQLTable;
-import ca.sqlpower.architect.SQLRelationship.ColumnMapping;
 import ca.sqlpower.architect.olap.OLAPUtil;
 import ca.sqlpower.architect.olap.MondrianModel.Cube;
 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;
@@ -75,48 +68,27 @@
playpen.getContentPane().add(uc, playpen.getContentPane().getComponentCount());

             try {
- SQLTable factTable = OLAPUtil.getSQLTableFromOLAPTable(OLAPUtil.getSession(cube).getDatabase(), (Table) (cube.getFact()));
-                SQLColumn defaultFK;
- // If there is a relationship between the fact table and the dimension table,
-                // by default, the usage takes the mapped foreign key.
-                if (!factTable.getExportedKeys().isEmpty()) {
- SQLRelationship relationship = factTable.getExportedKeys().get(0); - List<ColumnMapping> mappings = relationship.getMappings();
-                    defaultFK = mappings.get(0).getFkColumn();
-                    du.setForeignKey(defaultFK.toString());
-                    dimension.setForeignKey(defaultFK.toString());
- // Further set all the hierarchy primary key to default value. - for (Hierarchy hierarchy : dimension.getHierarchies()) {
-                        hierarchy.setPrimaryKey(defaultFK.toString());
+ final DataEntryPanel mep = new DimensionUsageEditPanel(du, dimension);
+                Callable<Boolean> okCall = new Callable<Boolean>() {
+                    public Boolean call() throws Exception {
+                        return mep.applyChanges();
                     }
-                } else {
-
- final DataEntryPanel mep = new DimensionUsageEditPanel(du, dimension);
-                    Callable<Boolean> okCall = new Callable<Boolean>() {
-                        public Boolean call() throws Exception {
- // Further set all the hierarchy primary key to default value on the first run. - for (Hierarchy hierarchy : dimension.getHierarchies()) { - hierarchy.setPrimaryKey(dimension.getForeignKey());
-                            }
-                            return mep.applyChanges();
-                        }
-                    };
- Callable<Boolean> cancelCall = new Callable<Boolean>() {
-                        public Boolean call() throws Exception {
-                            du.getParent().removeChild(du);
-                            return true;
-                        }
-                    };
- JDialog d = DataEntryPanelBuilder.createDataEntryPanelDialog(
-                            mep,
-                            SwingUtilities.getWindowAncestor(playpen),
-                            "Dimension Usage Properties",
-                            "OK",
-                            okCall,
-                            cancelCall);
-                    d.setLocationRelativeTo(playpen);
-                    d.setVisible(true);
-                }
+                };
+                Callable<Boolean> cancelCall = new Callable<Boolean>() {
+                    public Boolean call() throws Exception {
+                        du.getParent().removeChild(du);
+                        return true;
+                    }
+                };
+ JDialog d = DataEntryPanelBuilder.createDataEntryPanelDialog(
+                        mep,
+                        SwingUtilities.getWindowAncestor(playpen),
+                        "Dimension Usage Properties",
+                        "OK",
+                        okCall,
+                        cancelCall);
+                d.setLocationRelativeTo(playpen);
+                d.setVisible(true);
             } catch (ArchitectException e) {
                 throw new ArchitectRuntimeException(e);
             }

Modified: trunk/src/ca/sqlpower/architect/swingui/olap/action/CreateHierarchyAction.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/olap/action/CreateHierarchyAction.java (original) +++ trunk/src/ca/sqlpower/architect/swingui/olap/action/CreateHierarchyAction.java Wed Aug 27 14:13:16 2008
@@ -22,7 +22,6 @@
 import ca.sqlpower.architect.ArchitectException;
 import ca.sqlpower.architect.ArchitectRuntimeException;
 import ca.sqlpower.architect.olap.OLAPUtil;
-import ca.sqlpower.architect.olap.MondrianModel.Dimension;
 import ca.sqlpower.architect.olap.MondrianModel.Hierarchy;
 import ca.sqlpower.architect.swingui.ArchitectSwingSession;
 import ca.sqlpower.architect.swingui.PlayPen;
@@ -50,15 +49,6 @@
         h.setName("New Hierarchy " + count);

         pane.getModel().addHierarchy(h);
-        /*
- * If parent dimension is a private dimension, then first default the - * parimaryKey value to the foreignKey value of the parent dimension. A
-         * user is still able to modify this property.
-         */
-        Dimension dimension = (Dimension) h.getParent();
-        if (dimension.getForeignKey() != null) {
-            h.setPrimaryKey(dimension.getForeignKey());
-        }

         return h;
     }

Reply via email to