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