Beispiel #1
0
  /**
   * Runs a sample test procedure
   *
   * @param robot the robot attached to the screen device
   */
  public static void runTest(Robot robot) {
    // simulate a space bar press
    robot.keyPress(' ');
    robot.keyRelease(' ');

    // simulate a tab key followed by a space
    robot.delay(2000);
    robot.keyPress(KeyEvent.VK_TAB);
    robot.keyRelease(KeyEvent.VK_TAB);
    robot.keyPress(' ');
    robot.keyRelease(' ');

    // simulate a mouse click over the rightmost button
    robot.delay(2000);
    robot.mouseMove(200, 50);
    robot.mousePress(InputEvent.BUTTON1_MASK);
    robot.mouseRelease(InputEvent.BUTTON1_MASK);

    // capture the screen and show the resulting image
    robot.delay(2000);
    BufferedImage image = robot.createScreenCapture(new Rectangle(0, 0, 400, 300));

    ImageFrame frame = new ImageFrame(image);
    frame.setVisible(true);
  }
Beispiel #2
0
  /** remakes all the connections between dots. */
  public static void remakeConnections() {
    int popPathState = im.paths; // Pop it like a stack
    boolean popDotState = im.showDots;

    im.paths = ImageFrame.NO_PATHS;
    im.showDots = false;

    for (int i = 0; i < trackers.length - 1; i++) {
      trackers[i].assignAllBecomes(trackers[i + 1]);
    }

    im.paths = popPathState;
    im.showDots = popDotState;
  }
Beispiel #3
0
  /** remakes all the dots. Perhaps their was an algorithm change. */
  public static void remakeDots() {
    int popPathState = im.paths; // Pop it like a stack (SPOILERS: IT IS)
    boolean popDotState = im.showDots;

    im.paths = ImageFrame.NO_PATHS;
    im.showDots = false;
    for (DotTracker tracker : trackers) {
      tracker.assignDots();
    }
    remakeConnections();

    im.paths = popPathState;
    im.showDots = popDotState;
  }
Beispiel #4
0
  public static void main(String[] args) throws IOException {

    settupArgs(args);

    settupImages();

    im.showDots = true;
    im.paths = ImageFrame.SHOWN_PATHS;

    settupInput();

    save();

    System.out.println("done");
  }
  @Override
  public void run() {
    while (!client1Queue.isEmpty() || !client2Queue.isEmpty()) {
      ImageFrame client1Image = client1Queue.poll();
      ImageFrame client2Image = client2Queue.poll();

      System.out.println(
          "client1Image="
              + client1Image.getNumber()
              + " ; client2Image="
              + client2Image.getNumber());
      displayImage(client1ImageView, client1Image);
      displayImage(client2ImageView, client2Image);

      try {
        System.out.println("sleeping ... ");
        Thread.sleep(timeout * 1000);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
    }
  }
  public void render(File file) {
    w = new World<RGBColor>();
    builder = new WorldBuilder<RGBColor>(w);
    builder.build(file);
    w.initialize();

    vp = w.getViewPlane();
    imf = new ImageFrame(vp.resolution, false, null);

    if (w.isDynamic()) {

      //            w.render(imf);
      //            imf.repaint();
      //            imf.finish();

      w.set();
      while (w.hasNext()) {
        w.render(imf);
        imf.repaint();
        w.step();
        SwingUtilities.invokeLater(
            new Runnable() {
              @Override
              public void run() {}
            });
      }
      imf.finish();
    } else {
      w.render(imf);

      String fileName2 = GuiUtilities.getOutputPngFileName(file.getName());
      PngFilm png = new PngFilm(fileName2, imf.getFilm());
      png.finish();

      imf.repaint();
      imf.finish();
    }
  }
 private void displayImage(ImageView imageView, ImageFrame imageFrame) {
   byte[] bytes = imageFrame.getBytes();
   ByteArrayInputStream byteArrayStream = new ByteArrayInputStream(bytes);
   Image image = new Image(byteArrayStream);
   imageView.setImage(image);
 }
Beispiel #8
0
  /** initializes all the UI elements */
  public static void settupInput() {
    final JPopupMenu rightClick = new JPopupMenu();
    final JMenu paths = new JMenu("Paths");
    rightClick.add(paths);
    ButtonGroup pathGroup = new ButtonGroup();
    final JRadioButtonMenuItem allPaths = new JRadioButtonMenuItem("Show all");
    paths.add(allPaths);
    pathGroup.add(allPaths);
    final JRadioButtonMenuItem currentPaths = new JRadioButtonMenuItem("Show visible");
    paths.add(currentPaths);
    pathGroup.add(currentPaths);
    final JRadioButtonMenuItem somePaths = new JRadioButtonMenuItem("Show range");
    paths.add(somePaths);
    pathGroup.add(somePaths);
    final JRadioButtonMenuItem noPaths = new JRadioButtonMenuItem("Show none");
    paths.add(noPaths);
    pathGroup.add(noPaths);
    final JCheckBoxMenuItem showDots = new JCheckBoxMenuItem("Show dots");
    paths.add(showDots);
    showDots.setSelected(true);
    currentPaths.setSelected(true);
    final JMenu image = new JMenu("Image");
    rightClick.add(paths);
    rightClick.add(image);
    ButtonGroup imageGroup = new ButtonGroup();
    final JRadioButtonMenuItem refined = new JRadioButtonMenuItem("Refined");
    image.add(refined);
    imageGroup.add(refined);
    final JRadioButtonMenuItem blank = new JRadioButtonMenuItem("Blank");
    image.add(blank);
    imageGroup.add(blank);
    refined.setSelected(true);

    im.addMouseListener(
        new MouseAdapter() {

          public void mouseClicked(final MouseEvent e) {
            if (e.getButton() == 3) {
              rightClick.show(im, e.getX(), e.getY());
            } else if (e.getButton() == 1) {
              for (DotTracker t : trackers) {
                t.highlighted = null;
              }

              ArrayList<Dot> generation = new ArrayList<Dot>();
              generation.add(
                  trackers[im.frame].closestDot(e.getX() / im.scaleX(), e.getY() / im.scaleY()));
              int i = im.frame;
              while (!generation.isEmpty()) {
                trackers[i].highlighted = generation;
                ArrayList<Dot> newGen = new ArrayList<Dot>();
                for (Dot d : generation) {
                  for (Dot childDot : d.getChildren()) {
                    if (!newGen.contains(childDot)) {
                      newGen.add(childDot);
                    }
                  }
                }
                generation = newGen;
                i++;
              }
            }
          }
        });
    im.addKeyListener(
        new KeyAdapter() {
          public void keyPressed(KeyEvent e) {
            if (e.getKeyCode() == KeyEvent.VK_LEFT) {
              if (im.frame > 0) {
                im.frame--;
                im.repaint();
              }
            } else if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
              if (im.frame < im.frames - 1) {
                im.frame++;
                im.repaint();
              }
            }
          }
        });

    JFrame controls = new JFrame("Controls");
    controls.getContentPane().setLayout(new GridLayout(0, 2));
    JLabel intenLabel = new JLabel("Minimum dot intensity (0 for is black, 1 is white)");
    controls.add(intenLabel);
    final JTextField intensity = new JTextField(DotTracker.DOT_PEAK_INTENSITY_CUTOFF + "");
    controls.add(intensity);
    JLabel distLabel = new JLabel("Maximum travel distance (pixels)");
    controls.add(distLabel);
    final JTextField distance = new JTextField(DotTracker.DOT_DISTANCE_CUTOFF + "");
    controls.add(distance);

    controls.add(new JLabel(" "));
    controls.add(new JLabel(" "));

    JLabel rStartLabel = new JLabel("Range Start");
    controls.add(rStartLabel);
    final JTextField rStart = new JTextField(im.rangeStart + "");
    controls.add(rStart);
    rStart.setEnabled(false);
    JLabel rEndLabel = new JLabel("Range End");
    controls.add(rEndLabel);
    final JTextField rEnd = new JTextField(im.rangeEnd + "");
    controls.add(rEnd);
    rEnd.setEnabled(false);
    controls.pack();
    controls.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    controls.setVisible(true);

    ActionListener l =
        new ActionListener() {

          public void actionPerformed(ActionEvent e) {
            Object source = e.getSource();
            if (source == allPaths) {
              im.paths = ImageFrame.ALL_PATHS;
            } else if (source == currentPaths) {
              im.paths = ImageFrame.SHOWN_PATHS;
            } else if (source == somePaths) {
              im.paths = ImageFrame.BETWEEN;
            } else if (source == noPaths) {
              im.paths = ImageFrame.NO_PATHS;
            } else if (source == showDots) {
              im.showDots = showDots.isSelected();
            } else if (source == refined) {
              im.image = ImageFrame.REFINED;
            } else if (source == blank) {
              im.image = ImageFrame.BLANK;
            }

            rStart.setEnabled(somePaths.isSelected());
            rEnd.setEnabled(somePaths.isSelected());
          }
        };

    allPaths.addActionListener(l);
    currentPaths.addActionListener(l);
    noPaths.addActionListener(l);
    somePaths.addActionListener(l);
    showDots.addActionListener(l);

    refined.addActionListener(l);
    blank.addActionListener(l);

    final ActionListener controlListener =
        new ActionListener() {

          public void actionPerformed(ActionEvent e) {
            try {
              Object source = e.getSource();
              if (source == intensity) {
                double newIntensity = Double.parseDouble(intensity.getText());
                if (newIntensity != DotTracker.DOT_PEAK_INTENSITY_CUTOFF) {
                  DotTracker.DOT_PEAK_INTENSITY_CUTOFF = newIntensity;
                  remakeDots();
                }
              } else if (source == distance) {
                double newDist = Double.parseDouble(distance.getText());
                if (newDist != DotTracker.DOT_DISTANCE_CUTOFF) {
                  DotTracker.DOT_DISTANCE_CUTOFF = newDist;
                  remakeConnections();
                }
              } else if (source == rStart) {
                im.rangeStart = Integer.parseInt(rStart.getText());
              } else if (source == rEnd) {
                im.rangeEnd = Integer.parseInt(rEnd.getText());
              }
            } catch (Exception er) {

            }
          }
        };
    FocusListener prentendJavascript =
        new FocusListener() // in javascript, a field losing focus is an action. I make it so here,
        // so that changing the controls will have effect immediately
        {

          public void focusGained(FocusEvent e) {}

          public void focusLost(FocusEvent e) {
            Object source = e.getSource();
            controlListener.actionPerformed(new ActionEvent(source, 0, "Focus Lost"));
          }
        };
    intensity.addActionListener(controlListener);
    distance.addActionListener(controlListener);
    rStart.addActionListener(controlListener);
    rEnd.addActionListener(controlListener);

    intensity.addFocusListener(prentendJavascript);
    distance.addFocusListener(prentendJavascript);
    rStart.addFocusListener(prentendJavascript);
    rEnd.addFocusListener(prentendJavascript);
  }