/**
   * Get the latest (edited) literature/dbxref qualifiers
   *
   * @return
   */
  public QualifierVector getQualifiers() {
    QualifierVector referenceQualifier = null;
    String literatureTxt = literatureTextArea.getText().trim();

    if (!literatureTxt.equals("")) {
      referenceQualifier = new QualifierVector();
      String[] lits = getValues(literatureTxt);
      StringVector litValues = new StringVector(lits);
      Qualifier literature = new Qualifier("literature", litValues);
      referenceQualifier.setQualifier(literature);
    }

    String dbxrefTxt = dbxrefTextArea.getText().trim();
    if (!dbxrefTxt.equals("")) {
      if (referenceQualifier == null) referenceQualifier = new QualifierVector();
      String[] dbxrefs = getValues(dbxrefTxt);
      StringVector dbxrefsValues = new StringVector(dbxrefs);
      Qualifier dbxrefsQualifier = new Qualifier("Dbxref", dbxrefsValues);
      referenceQualifier.setQualifier(dbxrefsQualifier);
    }

    return referenceQualifier;
  }
  private void updateFromFeature(Feature feature) {
    GridBagConstraints c = new GridBagConstraints();
    JPanel gridPanel = new JPanel(new GridBagLayout());
    gridPanel.setBackground(Color.white);

    //
    // literature & dbxref
    literatureTextArea = new QualifierTextArea();
    literatureTextArea.setBorder(BorderFactory.createLineBorder(Color.gray));
    dbxrefTextArea = new QualifierTextArea();
    dbxrefTextArea.setBorder(BorderFactory.createLineBorder(Color.gray));

    literatureTextArea
        .getDocument()
        .addDocumentListener(new TextAreaDocumentListener(literatureTextArea));

    dbxrefTextArea.getDocument().addDocumentListener(new TextAreaDocumentListener(dbxrefTextArea));

    final QualifierVector qualifiers = feature.getQualifiers().copy();
    final StringBuffer litBuffer = new StringBuffer();
    final StringBuffer dbxrefBuffer = new StringBuffer();

    for (int i = 0; i < qualifiers.size(); ++i) {
      Qualifier this_qualifier = (Qualifier) qualifiers.elementAt(i);
      if (this_qualifier.getName().equals("literature"))
        appendToBuffer(this_qualifier.getValues(), litBuffer);
      else if (this_qualifier.getName().equalsIgnoreCase("Dbxref"))
        appendToBuffer(this_qualifier.getValues(), dbxrefBuffer);
    }

    c.gridx = 0;
    c.gridy = 0;
    c.ipadx = 5;
    c.ipady = 5;
    c.anchor = GridBagConstraints.NORTHWEST;
    c.fill = GridBagConstraints.NONE;
    gridPanel.add(new JLabel("Literature"), c);
    c.gridx = 1;
    gridPanel.add(literatureTextArea, c);

    c.gridx = 0;
    c.gridy = 1;
    gridPanel.add(new JLabel("Dbxref"), c);
    c.gridx = 1;
    gridPanel.add(dbxrefTextArea, c);

    add(gridPanel);

    literatureTextArea.setText(litBuffer.toString() + "\n");
    dbxrefTextArea.setText(dbxrefBuffer.toString() + "\n");
  }