package interfaces.JGUI; import java.awt.*; public class SubmitPanel extends Panel { TextField m_nameField, m_distanceURLField; Button m_submitButton; QueryPanel m_queryPanel; SubmitPanel(QueryPanel queryPanel, String middleLabel) { m_queryPanel = queryPanel; setLayout(new FlowLayout(FlowLayout.LEFT)); add(new Label("Name: ")); m_nameField = new TextField(10); add(m_nameField); add(new Label(middleLabel)); m_distanceURLField = new TextField(10); add(m_distanceURLField); m_submitButton = new Button("SQL"); add(m_submitButton); } public String getPredicate(double currentX, double currentY, int currentSize) { String predicate = new String(); String name = m_nameField.getText(); if (name.length() != 0) predicate += " " + Globals.selectedTable + ".name = \"" + name + "\" AND"; String distField = m_distanceURLField.getText(); int distance = (distField.length() == 0) ? (currentSize/2) : Integer.parseInt(distField); double offset = distance * Globals.m_mileToDeg; currentX = (distField.length() == 0) ? m_queryPanel.m_mapApplet.m_mapPanel.m_map.m_cornerX + offset : currentX; currentY = (distField.length() == 0) ? m_queryPanel.m_mapApplet.m_mapPanel.m_map.m_cornerY + offset : currentY; predicate += " " + Globals.selectedTable + ".x >= " + (currentX - offset) + " AND " + Globals.selectedTable + ".x <= " + (currentX + offset) + " AND " + Globals.selectedTable + ".y >= " + (currentY - offset) + " AND " + Globals.selectedTable + ".y <= " + (currentY + offset) + " AND"; return predicate.substring(0, predicate.lastIndexOf(" ") + 1); } public boolean action(Event evt, Object arg) { if (evt.target == m_submitButton) { m_queryPanel.m_mapApplet.submitQuery(); } return true; } }