All Downloads are FREE. Search and download functionalities are using the official Maven repository.

gate.gui.SingleConcatenatedFileInputDialog Maven / Gradle / Ivy

Go to download

GATE - general achitecture for text engineering - is open source software capable of solving almost any text processing problem. This artifact enables you to embed the core GATE Embedded with its essential dependencies. You will able to use the GATE Embedded API and load and store GATE XML documents. This artifact is the perfect dependency for CREOLE plugins or for applications that need to customize the GATE dependencies due to confict with their own dependencies or for lower footprint.

The newest version!
/*
 *  Copyright (c) 1995-2012, The University of Sheffield. See the file
 *  COPYRIGHT.txt in the software or at http://gate.ac.uk/gate/COPYRIGHT.txt
 *
 *  This file is part of GATE (see http://gate.ac.uk/), and is free
 *  software, licenced under the GNU Library General Public License,
 *  Version 2, June 1991 (in the distribution as file licence.html,
 *  and also available at http://gate.ac.uk/gate/licence.html).
 *
 *  Niraj Aswani, 14/Feb/2008
 *
 *  $Id: SingleConcatenatedFileInputDialog.java $
 */
package gate.gui;

import gate.Gate;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;

/**
 * A simple component that allows the user to select a trec web file and
 * encoding
 */
@SuppressWarnings("serial")
public class SingleConcatenatedFileInputDialog extends JPanel {

  public SingleConcatenatedFileInputDialog() {
    initGUIComponents();
    initListeners();
  }

  /**
   * Creates the UI
   */
  protected void initGUIComponents() {
    setLayout(new GridBagLayout());
    // first row
    GridBagConstraints constraints = new GridBagConstraints();
    constraints.gridx = GridBagConstraints.RELATIVE;
    constraints.gridy = 0;
    constraints.gridwidth = 2;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.fill = GridBagConstraints.NONE;
    constraints.insets = new Insets(0, 0, 0, 5);
    add(new JLabel("File URL:"), constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = GridBagConstraints.RELATIVE;
    constraints.gridy = 0;
    constraints.gridwidth = 5;
    constraints.fill = GridBagConstraints.HORIZONTAL;
    constraints.insets = new Insets(0, 0, 0, 10);
    add(urlTextField = new JTextField(40), constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = GridBagConstraints.RELATIVE;
    constraints.gridy = 0;
    constraints.gridwidth = 1;
    constraints.anchor = GridBagConstraints.NORTHWEST;
    add(filerBtn = new JButton(MainFrame.getIcon("open-file")), constraints);

    // second row
    constraints = new GridBagConstraints();
    constraints.gridx = GridBagConstraints.RELATIVE;
    constraints.gridy = 1;
    constraints.gridwidth = 2;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.fill = GridBagConstraints.NONE;
    constraints.insets = new Insets(0, 0, 0, 5);
    add(new JLabel("Encoding:"), constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = GridBagConstraints.RELATIVE;
    constraints.gridy = 1;
    constraints.gridwidth = 4;
    constraints.fill = GridBagConstraints.HORIZONTAL;
    add(encodingTextField = new JTextField(40), constraints);

    // third row
    constraints = new GridBagConstraints();
    constraints.gridx = GridBagConstraints.RELATIVE;
    constraints.gridy = 2;
    constraints.gridwidth = 2;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.fill = GridBagConstraints.NONE;
    constraints.insets = new Insets(0, 0, 0, 5);
    add(new JLabel("Root Element:"), constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = GridBagConstraints.RELATIVE;
    constraints.gridy = 2;
    constraints.gridwidth = 4;
    constraints.fill = GridBagConstraints.HORIZONTAL;
    add(documentRootElementTextField = new JTextField("DOC", 40), constraints);

    // fifth row
    constraints = new GridBagConstraints();
    constraints.gridx = GridBagConstraints.RELATIVE;
    constraints.gridy = 3;
    constraints.gridwidth = 2;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.fill = GridBagConstraints.NONE;
    constraints.insets = new Insets(0, 0, 0, 5);
    add(new JLabel("Include Root Element:"), constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = GridBagConstraints.RELATIVE;
    constraints.gridy = 3;
    constraints.gridwidth = 4;
    constraints.fill = GridBagConstraints.HORIZONTAL;
    add(chkIncludeRoot = new JCheckBox(), constraints);
    chkIncludeRoot.setSelected(true);
    
    // fourth row
    constraints = new GridBagConstraints();
    constraints.gridx = GridBagConstraints.RELATIVE;
    constraints.gridy = 4;
    constraints.gridwidth = 2;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.fill = GridBagConstraints.NONE;
    constraints.insets = new Insets(0, 0, 0, 5);
    add(new JLabel("Document Mime Type:"), constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = GridBagConstraints.RELATIVE;
    constraints.gridy = 4;
    constraints.gridwidth = 4;
    constraints.fill = GridBagConstraints.HORIZONTAL;
    add(documentMimeTypeTextField = new JTextField("text/html", 40), constraints);
    
    // fifth row
    constraints = new GridBagConstraints();
    constraints.gridx = GridBagConstraints.RELATIVE;
    constraints.gridy = 5;
    constraints.gridwidth = 2;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.fill = GridBagConstraints.NONE;
    constraints.insets = new Insets(0, 0, 0, 5);
    add(new JLabel("No. of Docs:"), constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = GridBagConstraints.RELATIVE;
    constraints.gridy = 5;
    constraints.gridwidth = 4;
    constraints.fill = GridBagConstraints.HORIZONTAL;
    add(numOfDocumentsToFetchTextField = new JTextField("-1", 40), constraints);

    // sixth row
    constraints = new GridBagConstraints();
    constraints.gridx = GridBagConstraints.RELATIVE;
    constraints.gridy = 6;
    constraints.gridwidth = 2;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.fill = GridBagConstraints.NONE;
    constraints.insets = new Insets(0, 0, 0, 5);
    add(new JLabel("Prefix for documents:"), constraints);

    constraints = new GridBagConstraints();
    constraints.gridx = GridBagConstraints.RELATIVE;
    constraints.gridy = 6;
    constraints.gridwidth = 4;
    constraints.fill = GridBagConstraints.HORIZONTAL;
    add(documentNamePrefixTextField = new JTextField("Document", 40),
            constraints);
  }

  /**
   * Adds listeners for UI components
   */
  protected void initListeners() {
    filerBtn.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        JFileChooser filer = MainFrame.getFileChooser();
        filer.setFileSelectionMode(JFileChooser.FILES_ONLY);
        filer.setDialogTitle("Select a file");

        filer.resetChoosableFileFilters();
        filer.setAcceptAllFileFilterUsed(true);
        filer.setFileFilter(filer.getAcceptAllFileFilter());
        int res = filer.showOpenDialog(SingleConcatenatedFileInputDialog.this);
        if(res == JFileChooser.APPROVE_OPTION) {
          try {
            urlTextField.setText(filer.getSelectedFile().toURI().toURL()
                    .toExternalForm());
          }
          catch(IOException ioe) {
          }
        }
      }
    });
  }

  /**
   * Sets the values for the URL string. This value is not cached so the
   * set will actually the text in the text field itself
   */
  public void setUrlString(String urlString) {
    urlTextField.setText(urlString);
  }

  /**
   * Gets the current text in the URL text field.
   */
  public String getUrlString() {
    return urlTextField.getText();
  }

  /**
   * Gets the encoding selected by the user.
   */
  public String getEncoding() {
    return encodingTextField.getText();
  }

  /**
   * Sets the initila value for the encoding field.
   */
  public void setEncoding(String enc) {
    encodingTextField.setText(enc);
  }

  /**
   * Gets the document root element set by user
   */
  public String getDocumentRootElement() {
    return documentRootElementTextField.getText();
  }

  /**
   * Sets the value for documentRootElement field
   */
  public void setDocumentRootElement(String documentRootElement) {
    this.documentRootElementTextField.setText(documentRootElement);
  }

  /**
   * Gets the document name prefix set by user
   */
  public String getDocumentNamePrefix() {
    return documentNamePrefixTextField.getText();
  }

  /**
   * Sets the value for document name prefix
   */
  public void setDocumentNamePrefix(String documentNamePrefix) {
    this.documentNamePrefixTextField.setText(documentNamePrefix);
  }

  /**
   * Gets the selected document type.
   */
  public String getDocumentMimeType() {
    return this.documentMimeTypeTextField.getText();
  }

  /**
   * Sets the document type
   */
  public void setDocumentMimeType(String mimeType) {
    this.documentMimeTypeTextField.setText(mimeType);
  }
  
  public boolean includeRootElement() {
    return chkIncludeRoot.isSelected();
  }

  /**
   * Returns the number of documents to fetch
   */
  public int getNumOfDocumentsToFetch() {
    if(this.numOfDocumentsToFetchTextField.getText().trim().length() == 0) {
      return -1;
    }
    else {
      // if error in parsing the text as integer, lets obtain all the documents
      try {
        return Integer.parseInt(this.numOfDocumentsToFetchTextField.getText()
                .trim());
      }
      catch(NumberFormatException nfe) {
        return -1;
      }
    }
  }

  /**
   * Sets the number of documents to fetch
   */
  public void setNumOfDocumentsToFetch(int numOfDocumentsToFetch) {
    this.numOfDocumentsToFetchTextField.setText("" + numOfDocumentsToFetch);
  }
  
  public void reset() {
    setEncoding("");
  }

  /**
   * Test code
   */
  static public void main(String[] args) {
    try {
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
      Gate.init();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
    JFrame frame = new JFrame("Foo");
    SingleConcatenatedFileInputDialog comp = new SingleConcatenatedFileInputDialog();
    frame.getContentPane().add(comp);
    frame.pack();
    frame.setResizable(false);
    frame.setVisible(true);
  }

  /**
   * The text field for the directory URL
   */
  JTextField urlTextField;

  /**
   * The buttons that opens the file chooser
   */
  JButton filerBtn;

  /**
   * The textField for the encoding
   */
  JTextField encodingTextField;

  /**
   * The textField for the document root element
   */
  JTextField documentRootElementTextField;

  /**
   * The textField for the document name prefix
   */
  JTextField documentNamePrefixTextField;

  /**
   * Dropdown box with available document types
   */
  JTextField documentMimeTypeTextField;

  /**
   * Number of documents to extract from the big document
   */
  JTextField numOfDocumentsToFetchTextField;
  
  JCheckBox chkIncludeRoot;

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy