Author: thomasobrien95
Date: Wed May  6 07:46:08 2009
New Revision: 3041

Modified:
   trunk/src/ca/sqlpower/architect/swingui/PlayPen.java
   trunk/src/ca/sqlpower/architect/swingui/PlayPenComponent.java
   trunk/src/ca/sqlpower/architect/swingui/Relationship.java
   trunk/src/ca/sqlpower/architect/swingui/TablePane.java
   trunk/src/ca/sqlpower/architect/swingui/olap/OLAPPane.java

Log:
Fixed the right-click menus to appear when right clicking inner
components in the play pen. Previously, right clicking on a hierarchy
or level would only show the dimension's menu.

Modified: trunk/src/ca/sqlpower/architect/swingui/PlayPen.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/PlayPen.java        (original)
+++ trunk/src/ca/sqlpower/architect/swingui/PlayPen.java Wed May 6 07:46:08 2009
@@ -2291,7 +2291,6 @@

                public void mousePressed(MouseEvent evt) {
                        requestFocus();
-            maybeShowPopup(evt);
                        Point p = evt.getPoint();
                        unzoomPoint(p);
                        PlayPenComponent c = contentPane.getComponentAt(p);
@@ -2307,6 +2306,7 @@
rubberBand = new Rectangle(rubberBandOrigin.x, rubberBandOrigin.y, 0, 0);
                                }
                        }
+                       maybeShowPopup(evt);
                }

                public void mouseReleased(MouseEvent evt) {

Modified: trunk/src/ca/sqlpower/architect/swingui/PlayPenComponent.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/PlayPenComponent.java       
(original)
+++ trunk/src/ca/sqlpower/architect/swingui/PlayPenComponent.java Wed May 6 07:46:08 2009
@@ -135,7 +135,7 @@
      *            show it at.
      */
     public void showPopup(Point p) {
-       JPopupMenu menu = getPopup();
+       JPopupMenu menu = getPopup(new Point(p));
         if (menu != null) {
final int xAdjust = 5; // ensure menu doesn't appear directly under pointer
             p.translate(getX(), getY());
@@ -148,7 +148,7 @@
      * Returns a component specific popup menu. Defaulted here to null
      * so components that have popup menus must override this class.
      */
-    public JPopupMenu getPopup() {
+    public JPopupMenu getPopup(Point p) {
         return null;
     }


Modified: trunk/src/ca/sqlpower/architect/swingui/Relationship.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/Relationship.java   (original)
+++ trunk/src/ca/sqlpower/architect/swingui/Relationship.java Wed May 6 07:46:08 2009
@@ -511,7 +511,7 @@
     }

     @Override
-    public JPopupMenu getPopup() {
+    public JPopupMenu getPopup(Point p) {
         // Lazy load popup if it isn't created
         // We don't create it in the constructor because the
         // ArchitectFrame instance required won't exist at that time.

Modified: trunk/src/ca/sqlpower/architect/swingui/TablePane.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/TablePane.java      (original)
+++ trunk/src/ca/sqlpower/architect/swingui/TablePane.java Wed May 6 07:46:08 2009
@@ -1007,7 +1007,7 @@
      * manipulating tablepanes.
      */
     @Override
-    public JPopupMenu getPopup() {
+    public JPopupMenu getPopup(Point p) {
         ArchitectFrame af = getPlayPen().getSession().getArchitectFrame();
         JPopupMenu tablePanePopup = new JPopupMenu();


Modified: trunk/src/ca/sqlpower/architect/swingui/olap/OLAPPane.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/olap/OLAPPane.java  (original)
+++ trunk/src/ca/sqlpower/architect/swingui/olap/OLAPPane.java Wed May 6 07:46:08 2009
@@ -388,7 +388,13 @@
         repaint();
     }

-    public JPopupMenu getPopup() {
+    @Override
+    public JPopupMenu getPopup(Point p) {
+ PlayPenCoordinate<T, C> pointToPPCoordinate = getUI().pointToPPCoordinate(p); + List<OLAPObject> itemsFromPoint = getItemsFromCoordinates((List) Collections.singletonList(pointToPPCoordinate));
+        if (!itemsFromPoint.isEmpty()) {
+ return getPlayPen().getPopupFactory().createPopupMenu(itemsFromPoint.get(0));
+        }
return getPlayPen().getPopupFactory().createPopupMenu(this.getModel());
     }

Reply via email to