package jeql.workbench;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.SystemColor;
import java.awt.event.MouseEvent;
import java.io.File;
import javax.swing.BorderFactory;
import javax.swing.JDialog;
import javax.swing.JEditorPane;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.SwingConstants;
import jeql.engine.EngineContext;
import jeql.man.ManGenerator;
import jeql.util.ImageUtil;
import jeql.util.SwingUtil;
import jeql.workbench.ui.geomview.GeometryViewPanel;
import jeql.workbench.ui.geomview.LayerList;
public class GeometryViewFrame extends JFrame
{
JPanel statusBarPanel = new JPanel();
JLabel lblMousePos = new JLabel();
GeometryViewPanel geomViewPanel = new GeometryViewPanel();
GeometryViewToolBar toolbar = new GeometryViewToolBar(this);
String manText;
public GeometryViewFrame(Frame frame)
{
super("Geometry Viewer");
try {
initUI();
pack();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
private void initUI()
{
lblMousePos.setBackground(SystemColor.text);
lblMousePos.setBorder(BorderFactory.createLoweredBevelBorder());
lblMousePos.setPreferredSize(new Dimension(21, 21));
lblMousePos.setHorizontalAlignment(SwingConstants.RIGHT);
statusBarPanel.setLayout(new GridLayout(1,2));
//statusBarPanel.add(testCaseIndexLabel);
//statusBarPanel.add(lblPrecisionModel);
statusBarPanel.add(lblMousePos);
setLayout(new BorderLayout());
add(toolbar, BorderLayout.NORTH);
add(geomViewPanel, BorderLayout.CENTER);
add(statusBarPanel, BorderLayout.SOUTH);
getContentPane().setPreferredSize(new Dimension(600, 600));
geomViewPanel.addMouseMotionListener(
new java.awt.event.MouseMotionAdapter() {
public void mouseMoved(MouseEvent e) {
viewPanel_mouseMoved(e);
}
public void mouseDragged(MouseEvent e) {
viewPanel_mouseMoved(e);
}
});
}
void viewPanel_mouseMoved(MouseEvent e) {
String cursorPos = geomViewPanel.cursorLocation(e.getPoint());
lblMousePos.setText(cursorPos);
// System.out.println(cursorPos);
}
public GeometryViewPanel geomView()
{
return geomViewPanel;
}
public void saveAsPNG() {
initFileChoosers();
try {
String fullFileName = SwingUtil.chooseFilenameWithConfirm(this, pngFileChooser);
if (fullFileName == null) return;
ImageUtil.writeImage(geomViewPanel,
fullFileName,
ImageUtil.IMAGE_FORMAT_NAME_PNG);
}
catch (Exception x) {
SwingUtil.reportException(this, x);
}
}
private JFileChooser pngFileChooser;
private void initFileChoosers() {
if (pngFileChooser == null) {
pngFileChooser = new JFileChooser();
pngFileChooser.addChoosableFileFilter(SwingUtil.PNG_FILE_FILTER);
pngFileChooser.setDialogTitle("Save PNG");
pngFileChooser.setSelectedFile(new File("image.png"));
}
}
}