Implement right-click popup in rocket view

This commit is contained in:
SiboVG 2022-05-31 03:07:04 +02:00
parent 2ab1bee92c
commit 9e1602b1c9
2 changed files with 17 additions and 9 deletions

View File

@ -911,7 +911,7 @@ public class BasicFrame extends JFrame {
this.setJMenuBar(menubar);
}
protected void doComponentTreePopup(MouseEvent e) {
public void doComponentTreePopup(MouseEvent e) {
popupMenu.show(e.getComponent(), e.getX(), e.getY());
}

View File

@ -510,16 +510,24 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change
public static final int CYCLE_SELECTION_MODIFIER = InputEvent.SHIFT_DOWN_MASK;
private void handleMouseClick(MouseEvent event) {
if (event.getButton() != MouseEvent.BUTTON1)
return;
Point p0 = event.getPoint();
Point p1 = scrollPane.getViewport().getViewPosition();
int x = p0.x + p1.x;
int y = p0.y + p1.y;
if (event.getButton() == MouseEvent.BUTTON1) {
// Get the component that is clicked on
Point p0 = event.getPoint();
Point p1 = scrollPane.getViewport().getViewPosition();
int x = p0.x + p1.x;
int y = p0.y + p1.y;
RocketComponent[] clicked = figure.getComponentsByPoint(x, y);
RocketComponent[] clicked = figure.getComponentsByPoint(x, y);
handleComponentClick(clicked, event);
handleComponentClick(clicked, event);
} else if (event.getButton() == MouseEvent.BUTTON3) {
List<RocketComponent> selectedComponents = Arrays.stream(selectionModel.getSelectionPaths())
.map(c -> (RocketComponent) c.getLastPathComponent()).collect(Collectors.toList());
if (selectedComponents.size() == 0) return;
basicFrame.doComponentTreePopup(event);
}
}
private void handleComponentClick(RocketComponent[] clicked, MouseEvent event) {