/*
* Copyright (c) 2016 Vivid Solutions.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Eclipse Distribution License v. 1.0 which accompanies this distribution.
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
*
* http://www.eclipse.org/org/documents/edl-v10.php.
*/
package org.locationtech.jtstest.testbuilder;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jtstest.testbuilder.controller.JTSTestBuilderController;
public class GeometryPopupMenu extends JPopupMenu
{
Coordinate clickCoord;
public GeometryPopupMenu(){
initUI();
}
private void initUI()
{
JMenuItem extractComponentItem = new JMenuItem("Extract Component");
extractComponentItem.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
JTSTestBuilderController.extractComponentsToTestCase(clickCoord);
}
});
add(extractComponentItem);
JMenuItem copyComponentItem = new JMenuItem("Copy Component");
copyComponentItem.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
JTSTestBuilderController.copyComponentToClipboard(clickCoord);
}
});
add(copyComponentItem);
JMenuItem infoItem = new JMenuItem("Info");
infoItem.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
JTSTestBuilderFrame.instance().displayInfo(clickCoord);
}
});
add(infoItem);
}
/**
* Record model coordinate of click point for use in menu operations
*/
public void show(Component invoker, int x, int y)
{
GeometryEditPanel editPanel = (GeometryEditPanel) invoker;
clickCoord = editPanel.getViewport().toModelCoordinate(new java.awt.Point(x, y));
super.show(invoker, x, y);
}
}