Author: kevin1219
Date: Wed Aug 27 15:31:59 2008
New Revision: 2642

Modified:
   trunk/src/ca/sqlpower/architect/swingui/olap/CubePane.java
   trunk/src/ca/sqlpower/architect/swingui/olap/UsageComponent.java

Log:
Changed back what happens when you click a DimensionUsage inside a Cube to open the referenced Dimension's edit panel again. To open the DimensionUsage edit panel, click on the usage.

Modified: trunk/src/ca/sqlpower/architect/swingui/olap/CubePane.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/olap/CubePane.java  (original)
+++ trunk/src/ca/sqlpower/architect/swingui/olap/CubePane.java Wed Aug 27 15:31:59 2008
@@ -97,8 +97,7 @@
             } else if (coord.getItem() instanceof DimensionUsage) {
UsageComponent usageComp = (UsageComponent) getPlayPen().findPPComponent(coord.getItem()); Dimension dimension = (Dimension) usageComp.getPane1().getModel(); - DimensionUsage dimensionUsage = (DimensionUsage) usageComp.getModel(); - panel = new DimensionUsageEditPanel(dimensionUsage, dimension);
+                panel = new DimensionEditPanel(dimension);
             } else {
throw new IllegalArgumentException("Edit dialog for type " + coord.getItem().getClass() + " cannot be created!");
             }

Modified: trunk/src/ca/sqlpower/architect/swingui/olap/UsageComponent.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/olap/UsageComponent.java (original) +++ trunk/src/ca/sqlpower/architect/swingui/olap/UsageComponent.java Wed Aug 27 15:31:59 2008
@@ -20,17 +20,26 @@
 package ca.sqlpower.architect.swingui.olap;

 import java.awt.Color;
+import java.awt.Window;
 import java.awt.event.MouseEvent;

+import javax.swing.JDialog;
+import javax.swing.SwingUtilities;
+
 import ca.sqlpower.architect.layout.LayoutEdge;
 import ca.sqlpower.architect.layout.LayoutNode;
 import ca.sqlpower.architect.olap.OLAPObject;
+import ca.sqlpower.architect.olap.MondrianModel.Dimension;
+import ca.sqlpower.architect.olap.MondrianModel.DimensionUsage;
+import ca.sqlpower.architect.swingui.ASUtils;
 import ca.sqlpower.architect.swingui.PlayPen;
 import ca.sqlpower.architect.swingui.PlayPenComponent;
 import ca.sqlpower.architect.swingui.PlayPenContentPane;
 import ca.sqlpower.architect.swingui.event.PlayPenContentEvent;
 import ca.sqlpower.architect.swingui.event.PlayPenContentListener;
 import ca.sqlpower.architect.swingui.event.SelectionEvent;
+import ca.sqlpower.swingui.DataEntryPanel;
+import ca.sqlpower.swingui.DataEntryPanelBuilder;

 /**
* A component that visually indicates a usage of one olap pane by another. For example,
@@ -90,6 +99,33 @@
             }
} else if (evt.getID() == MouseEvent.MOUSE_MOVED || evt.getID() == MouseEvent.MOUSE_DRAGGED) { setSelected(getUI().intersects(pp.getRubberBand()), SelectionEvent.SINGLE_SELECT);
+        } else if (evt.getID() == MouseEvent.MOUSE_CLICKED) {
+ if (evt.getClickCount() == 2 && evt.getButton() == MouseEvent.BUTTON1) {
+                if (model instanceof DimensionUsage) {
+                    try {
+                        DimensionUsage du = (DimensionUsage) model;
+                        Dimension d;
+                        if (pane1.getModel() instanceof Dimension) {
+                            d = (Dimension) pane1.getModel();
+                        } else if (pane2.getModel() instanceof Dimension) {
+                            d = (Dimension) pane2.getModel();
+                        } else {
+ throw new IllegalStateException("Couldn't find referenced Dimension of: " + du);
+                        }
+ DataEntryPanel panel = new DimensionUsageEditPanel(du, d);
+                        if (panel != null) {
+ Window owner = SwingUtilities.getWindowAncestor(getPlayPen()); + JDialog dialog = DataEntryPanelBuilder.createDataEntryPanelDialog(panel, owner,
+                                    "Modify Properties", "OK");
+                            dialog.setLocationRelativeTo(owner);
+                            dialog.setVisible(true);
+                        }
+                    } catch (Exception e) {
+ ASUtils.showExceptionDialogNoReport(SwingUtilities.getWindowAncestor(getPlayPen()),
+                                "Failed to create edit dialog!", e);
+                    }
+                }
+            }
         }
     }

Reply via email to