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