/** * It overrides the default behavior of the JMapPane of geotools by trying to maintain the extent * of the map while resizing. */ @Override protected void setForNewSize() { if (this.getDisplayArea() != null && this.pendingDisplayArea == null) { this.pendingDisplayArea = this.getDisplayArea(); } super.setForNewSize(); }
/** * Overrides the method to call the event of onSelectionChanged of tools. * * @param tool The tool to set active for the map */ @Override public void setCursorTool(CursorTool tool) { if (this.activeTool != null && this.activeTool instanceof ExtendedTool) { ((ExtendedTool) this.activeTool).onSelectionChanged(false); } super.setCursorTool(tool); this.activeTool = tool; if (this.activeTool != null && this.activeTool instanceof ExtendedTool) { ((ExtendedTool) this.activeTool).onSelectionChanged(true); } this.setFocusable(true); }
public Main() { try { this.configureDisplay(); mapPane.setForeground(Color.BLUE); refreshBtn.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { JMapFrame.splitPane.resetToPreferredSizes(); JMapFrame.leftSplitPane.resetToPreferredSizes(); JMapFrame.leftSplitPane.setBottomComponent(null); getMapPane().removeAll(); } }); queryBtn.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Thread t = new Thread( new Runnable() { public void run() { new QueryWindow(getMapContent(), getMapContent().layers().get(0)) .setVisible(true); } }); if (getMapContent().layers().size() != 0) t.start(); else JOptionPane.showMessageDialog(null, "No Layers are added !"); } }); printBtn.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { saveNewImage(getMapContent(), "TEST"); saveImage(getMapContent(), "TEST", 1000); } }); } catch (Exception ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(null, ex.getMessage()); } }
/** * It overrides the default behavior of drawLayers by resetting always the labelcache. * * @param createNewImage */ @Override protected void drawLayers(boolean createNewImage) { clearLabelCache.set(true); super.drawLayers(createNewImage); }
private void configureDisplay() { content = new MapContent(); mapPane = new JMapPane(content); mapPane.setEnabled(true); content.setTitle("GIS APPLICATION"); mapPane.setToolTipText("Map Area"); this.setMapContent(content); // Create Buttons printBtn = new JButton("Print"); refreshBtn = new JButton("Reset"); refreshBtn.setToolTipText("Reset layout of window"); queryBtn = new JButton("Query"); // Main Panel mainPanel = new JPanel(); Container contentPane = this.getContentPane(); contentPane.setLayout(new BorderLayout()); contentPane.add(mainPanel, BorderLayout.SOUTH); this.setTitle("GIS Application"); this.enableToolBar(true); this.enableStatusBar(true); this.enableLayerTable(true); JToolBar toolbar = this.getToolBar(); toolbar.addSeparator(); toolbar.add(refreshBtn); toolbar.addSeparator(); // toolbar.add(printBtn); toolbar.add(queryBtn); // JButton distance = new JButton("Distance"); // toolbar.add(distance); // distance.addActionListener(new ActionListener() { // // public void actionPerformed(ActionEvent e) { // distanceflag = true; // distance_and_scalefalg = true; // dis = 0.0; // numberofpoint = 0; // final JFrame ftemp = new JFrame("Distance"); // final JLabel flabel = new JLabel(); // String step = "To mesuare Distance between two points: \n (1)-Press Mouse Left // button on start point. \n (2)-Press Mouse Left button on destination point. \n (3)-For new // session press mouse right button."; // JOptionPane.showMessageDialog(null, step); // getMapPane().setCursorTool( // new CursorTool() { // // private int x1,px1,py1,y1,lx1,ly1,x2,y2,px2,py2; // private double tempdistance; // private int tnumberofpixel; // private int lineincentimeter; // private double scale; // // @Override // public void onMouseClicked(MapMouseEvent ev) { // if (SwingUtilities.isLeftMouseButton(ev)) { // if (distanceflag == true) { // distanceflag = false; // x1 = ev.getMapPosition().getX(); // px1 = ev.getX(); // py1 = ev.getY(); // y1 = ev.getMapPosition().getY(); // lx1 = ev.getXOnScreen(); // ly1 = ev.getYOnScreen(); // } else { // String str; // //JFrame ftemp=new JFrame("Distance"); // ftemp.setVisible(false); // Graphics g = getGraphics(); // //Graphics scaleg=scalepanel.getGraphics(); // // g.drawLine(lx1, ly1, ev.getXOnScreen(), // ev.getYOnScreen()); // lx1 = ev.getXOnScreen(); // ly1 = ev.getYOnScreen(); // x2 = ev.getMapPosition().getX(); // y2 = ev.getMapPosition().getY(); // px2 = ev.getX(); // py2 = ev.getY(); // dis = dis + Math.sqrt(Math.pow(x1 - x2, 2) + // Math.pow(y1 - y2, 2)); //// tempdistance=dis; // numberofpoint += Math.sqrt(Math.pow(px1 - px2, 2) + // Math.pow(py1 - py2, 2)); // System.out.println("numberofpoint = " + // numberofpoint); // if (distance_and_scalefalg == true) { // distance_and_scalefalg = false; // tempdistance = dis; // tnumberofpixel = numberofpoint; // lineincentimeter = tnumberofpixel / 28; // scale = tempdistance / lineincentimeter; // } //// // System.out.println("lineincentimeter = " + // lineincentimeter); // x1 = ev.getMapPosition().getX(); // y1 = ev.getMapPosition().getY(); // px1 = ev.getX(); // py1 = ev.getY(); // System.out.println("x1=" + x1 + " " + "y1=" + y1); // System.out.println("x2=" + x2 + " " + "y2=" + y2); // System.out.println("distance=" + dis + " Meters"); // scalevalue.setVisible(true); // scalevalue.setText("Scale : 1 cm = " + scale + " // Meters"); // toolbar.add(scalevalue, BorderLayout.EAST); // flabel.setText("Distance = " + dis + " Meters"); // JPanel fpanel = new JPanel(new FlowLayout()); // JButton meterbtn = new JButton("Meters"); // JButton kmbtn = new JButton("KiloMeters"); // JButton milebtn = new JButton("Miles"); // JButton yardbtn = new JButton("Yards"); // meterbtn.addActionListener(new ActionListener() { // // public void actionPerformed(ActionEvent e) { // flabel.setText("Distance = " + dis + " // Meters"); // scalevalue.setText("Scale : 1 cm = " + scale // + " Meters"); // } // }); // // kmbtn.addActionListener(new ActionListener() { // // public void actionPerformed(ActionEvent e) { // flabel.setText("Distance = " + dis / 1000 + " // KiloMeters"); // scalevalue.setText("Scale : 1 cm = " + scale // / 1000 + " Km"); // } // }); // // milebtn.addActionListener(new ActionListener() { // // public void actionPerformed(ActionEvent e) { // flabel.setText("Distance = " + dis * 0.00062 + // " Miles"); // scalevalue.setText("Scale : 1 cm = " + scale // * 0.00062 + " Miles"); // } // }); // // // yardbtn.addActionListener(new ActionListener() { // // public void actionPerformed(ActionEvent e) { // flabel.setText("Distance = " + dis * 1.094 + " // Yards"); // scalevalue.setText("Scale : 1 cm = " + scale // * 1.094 + " Yards"); // } // }); // // fpanel.add(meterbtn); // fpanel.add(kmbtn); // fpanel.add(milebtn); // fpanel.add(yardbtn); // ftemp.add(flabel, BorderLayout.CENTER); // ftemp.add(fpanel, BorderLayout.SOUTH); // ftemp.setSize(400, 200); // ftemp.setVisible(true); // // } // } else { // distanceflag = true; // distance_and_scalefalg = true; // scalevalue.setVisible(false); // dis = 0.0; // numberofpoint = 0; // setMapContext(context); // repaint(); // } // } // }); // } // }); this.setJMenuBar(new CustomMenuBar(mapPane)); this.setExtendedState(MAXIMIZED_BOTH); this.setMinimumSize(new Dimension(800, 800)); this.setIconImage(java.awt.Toolkit.getDefaultToolkit().createImage("res\\img\\icon.png")); this.setVisible(true); }