Package joshua.ui.hypergraph_visualizer

Source Code of joshua.ui.hypergraph_visualizer.Browser

package joshua.ui.hypergraph_visualizer;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Scanner;

import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;

import joshua.decoder.JoshuaConfiguration;
import joshua.decoder.JoshuaDecoder;
import joshua.decoder.hypergraph.HyperGraph;

public class Browser {
  private static ArrayList<String> sourceSentences;
  private static ArrayList<String> referenceTranslations;
 
  static JList sentenceList;
  static String sourceFile;
  static JoshuaDecoder decoder;
 
  public static final String USAGE = String.format("USAGE: %s <config> <source> <reference>", Browser.class.getName());

  public static final int DEFAULT_HEIGHT = 480;
  public static final int DEFAULT_WIDTH = 640;
  /**
   * @param args
   */
  public static void main(String[] args) {
    if (args.length < 3) {
      System.err.println(USAGE);
      System.exit(1);
    }
    decoder = new JoshuaDecoder(args[0]);
    JFrame mainFrame = new JFrame("Joshua Decoder / Hypergraph Visualizer");
    mainFrame.setLayout(new BorderLayout());
    sentenceList = new JList(new DefaultListModel());
    mainFrame.getContentPane().add(new JScrollPane(sentenceList), BorderLayout.CENTER);
    JButton decodeButton = new JButton("Decode");
    mainFrame.getContentPane().add(decodeButton, BorderLayout.SOUTH);
    try {
      sourceFile = args[1];
      sourceSentences = populateListFromFile(args[1]);
      referenceTranslations = populateListFromFile(args[2]);
    }
    catch (IOException e) {
      System.err.println(e.getMessage());
      System.exit(1);
    }
    DefaultListModel sentenceListModel = (DefaultListModel) sentenceList.getModel();
    for (String ref : referenceTranslations) {
      sentenceListModel.addElement(ref);
    }
    mainFrame.setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
    mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    mainFrame.setVisible(true);
   
    decodeButton.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        for (int i : sentenceList.getSelectedIndices()) {
          decoder.visualizeHyperGraphForSentence(sourceSentences.get(i));
        }
      }
    });
    return;
  }

  private static ArrayList<String> populateListFromFile(String filename) throws IOException
  {
    ArrayList<String> retValue = new ArrayList<String>();
    Scanner fileScanner = new Scanner(new File(filename));
    while (fileScanner.hasNextLine()) {
      retValue.add(fileScanner.nextLine());
    }
    return retValue;
  }
}
TOP

Related Classes of joshua.ui.hypergraph_visualizer.Browser

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.