示例#1
0
  /**
   * Creates the dialog.
   *
   * @param corpus - true initializes a new corpus, false creates a new text
   * @param textImport - true opens existing file, false creates a new one. If set to true,
   *     <b>fileToBeImported</b> must not be null
   * @param fileToBeImported - file that is imported, null if it is being created
   */
  public TextCorpusDialog(
      boolean corpus, boolean textImport, JInternalFrame frame, File fileToBeImported) {
    setBounds(100, 100, 494, 443);
    getContentPane().setLayout(new BorderLayout());
    contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
    getContentPane().add(contentPanel, BorderLayout.CENTER);
    contentPanel.setLayout(null);

    JPanel pnlLang = new JPanel();
    pnlLang.setBorder(
        new TitledBorder(
            UIManager.getBorder("TitledBorder.border"),
            "(1) Select:",
            TitledBorder.LEADING,
            TitledBorder.TOP,
            null,
            new Color(0, 0, 0)));
    pnlLang.setBounds(10, 11, 119, 240);
    contentPanel.add(pnlLang);
    pnlLang.setLayout(null);

    listLanguages = new JList(Language.getAllLanguages());
    listLanguages.setSelectedValue(Launcher.preferences.deflanguage, false);
    listLanguages.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    listLanguages.setBorder(new BevelBorder(BevelBorder.LOWERED, null, null, null, null));
    JScrollPane scrollLanguages = new JScrollPane(listLanguages);
    scrollLanguages.setBounds(10, 24, 99, 205);
    pnlLang.add(scrollLanguages);

    JPanel pnlFileFormat = new JPanel();
    pnlFileFormat.setBorder(
        new TitledBorder(
            null, "(2) Enter file format:", TitledBorder.LEADING, TitledBorder.TOP, null, null));
    pnlFileFormat.setBounds(139, 11, 329, 240);
    contentPanel.add(pnlFileFormat);
    pnlFileFormat.setLayout(null);

    ButtonGroup grpTextFormat = new ButtonGroup();
    rdbtnAsciiUnicode =
        new JRadioButton("<html>ASCII or Byte-Marked Unicode (UTF-8, UTF-16B or UTF-16L)</html>");
    rdbtnAsciiUnicode.setBounds(6, 18, 307, 37);
    pnlFileFormat.add(rdbtnAsciiUnicode);
    grpTextFormat.add(rdbtnAsciiUnicode);
    rdbtnAsciiUnicode.setSelected(true);
    rdbtnAsciiUnicode.addActionListener(new TextCorpusDialogEncodingActionListener());

    int n = SystemEnvironment.encodings.length;
    rdbtnOtherRawText = new JRadioButton("Other raw text formats(" + n + ")");
    rdbtnOtherRawText.setBounds(6, 58, 171, 23);
    pnlFileFormat.add(rdbtnOtherRawText);
    grpTextFormat.add(rdbtnOtherRawText);
    rdbtnOtherRawText.addActionListener(new TextCorpusDialogEncodingActionListener());

    DefaultListModel model = new DefaultListModel();
    listFFormats = new JList(model);
    listFFormats.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    listFFormats.setBorder(new BevelBorder(BevelBorder.LOWERED, null, null, null, null));

    JScrollPane scrollFileFormats = new JScrollPane(listFFormats);
    scrollFileFormats.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    scrollFileFormats.setBounds(6, 88, 161, 141);
    pnlFileFormat.add(scrollFileFormats);
    for (int i = 0; i < n; i++) {
      String e = SystemEnvironment.encodings[i];
      Charset c = Charset.forName(e);
      e += c.aliases().toString();
      model.add(i, e);
    }
    listFFormats.setEnabled(false);
    scrollFileFormats.setEnabled(false);

    rdbtnRichTextFormat = new JRadioButton("Rich Text Format");
    rdbtnRichTextFormat.setBounds(183, 58, 146, 23);
    pnlFileFormat.add(rdbtnRichTextFormat);
    grpTextFormat.add(rdbtnRichTextFormat);
    rdbtnRichTextFormat.addActionListener(new TextCorpusDialogEncodingActionListener());

    rdbtnHtmlPage = new JRadioButton("HTML page");
    rdbtnHtmlPage.setBounds(183, 85, 119, 23);
    pnlFileFormat.add(rdbtnHtmlPage);
    grpTextFormat.add(rdbtnHtmlPage);
    rdbtnHtmlPage.addActionListener(new TextCorpusDialogEncodingActionListener());

    rdbtnPdfDocument = new JRadioButton("PDF document");
    rdbtnPdfDocument.setBounds(183, 111, 119, 23);
    pnlFileFormat.add(rdbtnPdfDocument);
    grpTextFormat.add(rdbtnPdfDocument);
    rdbtnPdfDocument.addActionListener(new TextCorpusDialogEncodingActionListener());

    rdbtndoc = new JRadioButton(".doc");
    rdbtndoc.setBounds(183, 137, 119, 23);
    pnlFileFormat.add(rdbtndoc);
    grpTextFormat.add(rdbtndoc);
    rdbtndoc.addActionListener(new TextCorpusDialogEncodingActionListener());

    JPanel pnlDelimiter = new JPanel();
    pnlDelimiter.setBorder(
        new TitledBorder(
            UIManager.getBorder("TitledBorder.border"),
            "(3) Enter Text Unit Delimiter:",
            TitledBorder.LEADING,
            TitledBorder.TOP,
            null,
            new Color(0, 0, 0)));
    pnlDelimiter.setBounds(10, 262, 374, 137);
    contentPanel.add(pnlDelimiter);
    pnlDelimiter.setLayout(null);

    ButtonGroup grpDelimiter = new ButtonGroup();

    rdbtnNoDelimiterwhole = new JRadioButton("No Delimiter (whole text is processed as one unit)");
    rdbtnNoDelimiterwhole.setBounds(6, 20, 270, 23);
    pnlDelimiter.add(rdbtnNoDelimiterwhole);
    grpDelimiter.add(rdbtnNoDelimiterwhole);
    if (Launcher.getCorpusTextRadioButtonSelectionMemory() == 1)
      rdbtnNoDelimiterwhole.setSelected(true);
    rdbtnNoDelimiterwhole.addActionListener(new TextCorpusDialogDelimiterActionListener());

    rdbtnLineDelimiter = new JRadioButton("Text Units are lines/paragraphs (\"\\n\")");
    rdbtnLineDelimiter.setBounds(6, 46, 270, 23);
    rdbtnLineDelimiter.setActionCommand("EOL");
    pnlDelimiter.add(rdbtnLineDelimiter);
    grpDelimiter.add(rdbtnLineDelimiter);
    if (Launcher.getCorpusTextRadioButtonSelectionMemory() == 2)
      rdbtnLineDelimiter.setSelected(true);
    rdbtnLineDelimiter.addActionListener(new TextCorpusDialogDelimiterActionListener());

    comboPerl = new JComboBox(Launcher.getRegexMemoryList().toArray());
    comboPerl.setEditable(true);
    comboPerl.setEnabled(false);
    comboPerl.setPrototypeDisplayValue("XXX");
    comboPerl.setBounds(121, 73, 243, 23);
    comboPerl.setSelectedIndex(-1);
    pnlDelimiter.add(comboPerl);

    comboXml = new JComboBox(Launcher.getXmlMemoryList().toArray());
    comboXml.setEditable(true);
    comboXml.setPrototypeDisplayValue("XXX");
    comboXml.setEnabled(false);
    comboXml.setBounds(121, 99, 243, 22);
    comboXml.setSelectedIndex(-1);
    pnlDelimiter.add(comboXml);

    rdbtnPerlRegExpr = new JRadioButton("PERL Reg. Exp.:");
    rdbtnPerlRegExpr.setBounds(6, 72, 109, 23);
    rdbtnPerlRegExpr.setActionCommand("Perl");
    pnlDelimiter.add(rdbtnPerlRegExpr);
    grpDelimiter.add(rdbtnPerlRegExpr);
    if (Launcher.getCorpusTextRadioButtonSelectionMemory() == 3) {
      rdbtnPerlRegExpr.setSelected(true);
      comboPerl.setEnabled(true);
      comboPerl.setSelectedIndex(Launcher.getRegexMemoryIndex());
    }
    rdbtnPerlRegExpr.addActionListener(new TextCorpusDialogDelimiterActionListener());

    rdbtnXmlTextNodes = new JRadioButton("XML Text Nodes:");
    rdbtnXmlTextNodes.setBounds(6, 98, 109, 23);
    rdbtnXmlTextNodes.setActionCommand("XML");
    pnlDelimiter.add(rdbtnXmlTextNodes);
    grpDelimiter.add(rdbtnXmlTextNodes);
    if (Launcher.getCorpusTextRadioButtonSelectionMemory() == 4) {
      rdbtnXmlTextNodes.setSelected(true);
      comboXml.setEnabled(true);
      comboXml.setSelectedIndex(Launcher.getXmlMemoryIndex());
    }
    rdbtnXmlTextNodes.addActionListener(new TextCorpusDialogDelimiterActionListener());

    final JButton okButton = new JButton("OK");
    okButton.setBounds(394, 361, 64, 23);
    contentPanel.add(okButton);
    okButton.setActionCommand("OK");
    getRootPane().setDefaultButton(okButton);

    ActionListener actionListener;

    if (corpus) {
      setTitle(NewTextCorpusActionListener.getChosenFileName());

      actionListener = new ImportTextActionListener(listLanguages, this, true, fileToBeImported);
      okButton.addActionListener(actionListener);
    } else {
      if (textImport) {
        setTitle(NewTextCorpusActionListener.getChosenFileName());

        actionListener = new ImportTextActionListener(listLanguages, this, false, fileToBeImported);
        okButton.addActionListener(actionListener);
      } else {
        disableAllButDefaultEncoding();
        okButton.addActionListener(new TextNewActionListener(this));
      }
    }
  }