Advertisement
xerpi

aids

May 20th, 2015
430
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.11 KB | None | 0 0
  1. package wikipedia;
  2.  
  3. import wikipedia.presentation.*;
  4. import wikipedia.domain.*;
  5. import wikipedia.persistence.*;
  6. import java.io.*;
  7. import g13.*;
  8. import java.awt.Image;
  9. import java.awt.BorderLayout;
  10. import java.awt.Color;
  11. import java.awt.Dimension;
  12. import java.awt.Point;
  13. import java.awt.Toolkit;
  14. import java.awt.event.MouseAdapter;
  15. import java.awt.event.MouseEvent;
  16. import java.awt.image.BufferedImage;
  17. import javax.swing.ImageIcon;
  18. import javax.swing.JFrame;
  19. import javax.swing.JLabel;
  20. import javax.swing.JPanel;
  21. import javax.swing.border.EmptyBorder;
  22. import com.mxgraph.model.mxCell;
  23. import com.mxgraph.swing.mxGraphComponent;
  24. import com.mxgraph.util.mxCellRenderer;
  25. import com.mxgraph.view.mxGraph;
  26. import javax.swing.SwingUtilities;
  27. import javax.swing.JFrame;
  28. import javax.swing.JPanel;
  29. import javax.swing.BorderFactory;
  30. import java.awt.Color;
  31. import java.awt.Dimension;
  32. import java.awt.Graphics;
  33. import java.awt.event.MouseEvent;
  34. import java.awt.event.MouseListener;
  35. import java.awt.event.MouseAdapter;
  36. import java.awt.event.MouseMotionListener;
  37. import java.awt.event.MouseMotionAdapter;
  38.  
  39.  
  40. class MyPanel extends JPanel {
  41.  
  42.     final private static int PANEL_W = 1080;
  43.     final private static int PANEL_H = 720;
  44.  
  45.     private BufferedImage orig_img;
  46.     private int img_x = 0;
  47.     private int img_y = 0;
  48.  
  49.     public MyPanel(OGraph g) {
  50.  
  51.         final mxGraph mxg = g.toMxGraph();
  52.         final mxGraphComponent mxgc = new mxGraphComponent(mxg);
  53.  
  54.         orig_img = mxCellRenderer.createBufferedImage(mxg, null, 1, Color.WHITE, true, null);
  55.         final int orig_w = orig_img.getWidth();
  56.         final int orig_h = orig_img.getHeight();
  57.  
  58.  
  59.         setBorder(BorderFactory.createLineBorder(Color.black));
  60.  
  61.         addMouseListener(new MouseAdapter() {
  62.             public void mousePressed(MouseEvent e) {
  63.                 moveImage(e.getX(),e.getY());
  64.             }
  65.         });
  66.  
  67.         addMouseMotionListener(new MouseAdapter() {
  68.             public void mouseDragged(MouseEvent e) {
  69.                 moveImage(e.getX(),e.getY());
  70.             }
  71.         });
  72.  
  73.     }
  74.  
  75.     private void moveImage(int x, int y) {
  76.         //int OFFSET = 1;
  77.         //if ((squareX!=x) || (squareY!=y)) {
  78.             //repaint(squareX,squareY,squareW+OFFSET,squareH+OFFSET);
  79.             img_x=x;
  80.             img_y=y;
  81.             repaint(img_x, img_y,squareW+OFFSET,squareH+OFFSET);
  82.         //}
  83.     }
  84.  
  85.  
  86.     public Dimension getPreferredSize() {
  87.         return new Dimension(PANEL_W, PANEL_H);
  88.     }
  89.  
  90.     protected void paintComponent(Graphics g) {
  91.         super.paintComponent(g);      
  92.         //g.drawString("This is my custom Panel!",10,20);
  93.         //g.setColor(Color.RED);
  94.         //g.fillRect(squareX,squareY,squareW,squareH);
  95.         //g.setColor(Color.BLACK);
  96.         //g.drawRect(squareX,squareY,squareW,squareH);
  97.         g.drawImage(orig_img, img_x, img_y, null);
  98.     }  
  99. }
  100.  
  101. /**
  102.  * Main Class
  103.  * @author G13.2
  104.  */
  105. public class Main
  106. {
  107.     private static void createAndShowGUI(OGraph g) {
  108.         System.out.println("Created GUI on EDT? "+
  109.         SwingUtilities.isEventDispatchThread());
  110.         JFrame f = new JFrame("Swing Paint Demo");
  111.         f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  112.         f.add(new MyPanel(g));
  113.         f.pack();
  114.         f.setResizable(false);
  115.         f.setVisible(true);
  116.     }
  117.  
  118.    
  119.     /**
  120.     * The main method
  121.     * @param args Arguments of main
  122.     */
  123.     public static void main(String[] args) {
  124.  
  125.  
  126.         WP wikipedia = new WP();
  127.         wikipedia.setGraph(GraphIO.loadWP(new File("golden/ENTRADAcodigo.txt")));
  128.  
  129.         final OGraph g = wikipedia.getGraph();
  130.  
  131.         SwingUtilities.invokeLater(new Runnable() {
  132.             public void run() {
  133.                 createAndShowGUI(g);
  134.             }
  135.         });
  136.        
  137.         /*final mxGraph mxg = g.toMxGraph();
  138.         final mxGraphComponent mxgc = new mxGraphComponent(mxg);
  139.  
  140.         BufferedImage orig_img = mxCellRenderer.createBufferedImage(mxg, null, 1, Color.WHITE, true, null);
  141.         final int orig_w = orig_img.getWidth();
  142.         final int orig_h = orig_img.getHeight();
  143.  
  144.         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  145.         final int win_width = (int)screenSize.getWidth();
  146.         final int win_height = (int)screenSize.getHeight();
  147.  
  148.         JLabel label;
  149.         if (orig_w > width || orig_h > height) {
  150.             Image res = orig_img.getScaledInstance(width, height, Image.SCALE_SMOOTH);
  151.  
  152.             BufferedImage resized_img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
  153.             resized_img.getGraphics().drawImage(res, 0, 0 , null);
  154.  
  155.             label = new JLabel(new ImageIcon(resized_img));
  156.         } else {
  157.             label = new JLabel(new ImageIcon(orig_img));
  158.         }
  159.  
  160.         JFrame frame = new JFrame("Graph image");
  161.         frame.getContentPane().add(label);
  162.         frame.pack();
  163.         frame.setVisible(true);
  164.  
  165.         label.addMouseListener(new MouseAdapter() {
  166.             public void mouseClicked(MouseEvent e) {
  167.                 Point p = e.getPoint();
  168.                 // Transform coordinates depending on the window's size
  169.                 int trans_x = (int)(p.getX() * (orig_w/(double)width));
  170.                 int trans_y = (int)(p.getY() * (orig_h/(double)height));
  171.  
  172.                 Object obj = mxgc.getCellAt(trans_x, trans_y);
  173.                 System.out.println("x: " + p.getX() + "  y: " + p.getY());
  174.                 if (obj != null) {
  175.                     mxCell cell = (mxCell)obj;
  176.                     System.out.println(mxg.getLabel(cell));
  177.                 }
  178.             }
  179.         });*/
  180.         /*
  181.         javax.swing.SwingUtilities.invokeLater(new Runnable() {
  182.             public void run() {
  183.                 PresentationController pc = new PresentationController();
  184.                 pc.run();
  185.             }
  186.         });*/
  187.     }
  188. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement