Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package wikipedia;
- import wikipedia.presentation.*;
- import wikipedia.domain.*;
- import wikipedia.persistence.*;
- import java.io.*;
- import g13.*;
- import java.awt.Image;
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.Point;
- import java.awt.Toolkit;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import java.awt.image.BufferedImage;
- import javax.swing.ImageIcon;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.border.EmptyBorder;
- import com.mxgraph.model.mxCell;
- import com.mxgraph.swing.mxGraphComponent;
- import com.mxgraph.util.mxCellRenderer;
- import com.mxgraph.view.mxGraph;
- import javax.swing.SwingUtilities;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- import javax.swing.BorderFactory;
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.event.MouseEvent;
- import java.awt.event.MouseListener;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseMotionListener;
- import java.awt.event.MouseMotionAdapter;
- class MyPanel extends JPanel {
- final private static int PANEL_W = 1080;
- final private static int PANEL_H = 720;
- private BufferedImage orig_img;
- private int img_x = 0;
- private int img_y = 0;
- public MyPanel(OGraph g) {
- final mxGraph mxg = g.toMxGraph();
- final mxGraphComponent mxgc = new mxGraphComponent(mxg);
- orig_img = mxCellRenderer.createBufferedImage(mxg, null, 1, Color.WHITE, true, null);
- final int orig_w = orig_img.getWidth();
- final int orig_h = orig_img.getHeight();
- setBorder(BorderFactory.createLineBorder(Color.black));
- addMouseListener(new MouseAdapter() {
- public void mousePressed(MouseEvent e) {
- moveImage(e.getX(),e.getY());
- }
- });
- addMouseMotionListener(new MouseAdapter() {
- public void mouseDragged(MouseEvent e) {
- moveImage(e.getX(),e.getY());
- }
- });
- }
- private void moveImage(int x, int y) {
- //int OFFSET = 1;
- //if ((squareX!=x) || (squareY!=y)) {
- //repaint(squareX,squareY,squareW+OFFSET,squareH+OFFSET);
- img_x=x;
- img_y=y;
- repaint(img_x, img_y,squareW+OFFSET,squareH+OFFSET);
- //}
- }
- public Dimension getPreferredSize() {
- return new Dimension(PANEL_W, PANEL_H);
- }
- protected void paintComponent(Graphics g) {
- super.paintComponent(g);
- //g.drawString("This is my custom Panel!",10,20);
- //g.setColor(Color.RED);
- //g.fillRect(squareX,squareY,squareW,squareH);
- //g.setColor(Color.BLACK);
- //g.drawRect(squareX,squareY,squareW,squareH);
- g.drawImage(orig_img, img_x, img_y, null);
- }
- }
- /**
- * Main Class
- * @author G13.2
- */
- public class Main
- {
- private static void createAndShowGUI(OGraph g) {
- System.out.println("Created GUI on EDT? "+
- SwingUtilities.isEventDispatchThread());
- JFrame f = new JFrame("Swing Paint Demo");
- f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- f.add(new MyPanel(g));
- f.pack();
- f.setResizable(false);
- f.setVisible(true);
- }
- /**
- * The main method
- * @param args Arguments of main
- */
- public static void main(String[] args) {
- WP wikipedia = new WP();
- wikipedia.setGraph(GraphIO.loadWP(new File("golden/ENTRADAcodigo.txt")));
- final OGraph g = wikipedia.getGraph();
- SwingUtilities.invokeLater(new Runnable() {
- public void run() {
- createAndShowGUI(g);
- }
- });
- /*final mxGraph mxg = g.toMxGraph();
- final mxGraphComponent mxgc = new mxGraphComponent(mxg);
- BufferedImage orig_img = mxCellRenderer.createBufferedImage(mxg, null, 1, Color.WHITE, true, null);
- final int orig_w = orig_img.getWidth();
- final int orig_h = orig_img.getHeight();
- Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
- final int win_width = (int)screenSize.getWidth();
- final int win_height = (int)screenSize.getHeight();
- JLabel label;
- if (orig_w > width || orig_h > height) {
- Image res = orig_img.getScaledInstance(width, height, Image.SCALE_SMOOTH);
- BufferedImage resized_img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
- resized_img.getGraphics().drawImage(res, 0, 0 , null);
- label = new JLabel(new ImageIcon(resized_img));
- } else {
- label = new JLabel(new ImageIcon(orig_img));
- }
- JFrame frame = new JFrame("Graph image");
- frame.getContentPane().add(label);
- frame.pack();
- frame.setVisible(true);
- label.addMouseListener(new MouseAdapter() {
- public void mouseClicked(MouseEvent e) {
- Point p = e.getPoint();
- // Transform coordinates depending on the window's size
- int trans_x = (int)(p.getX() * (orig_w/(double)width));
- int trans_y = (int)(p.getY() * (orig_h/(double)height));
- Object obj = mxgc.getCellAt(trans_x, trans_y);
- System.out.println("x: " + p.getX() + " y: " + p.getY());
- if (obj != null) {
- mxCell cell = (mxCell)obj;
- System.out.println(mxg.getLabel(cell));
- }
- }
- });*/
- /*
- javax.swing.SwingUtilities.invokeLater(new Runnable() {
- public void run() {
- PresentationController pc = new PresentationController();
- pc.run();
- }
- });*/
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement