Package net.sf.jabref

Source Code of net.sf.jabref.ContentSelectorDialog_fieldSelector_actionAdapter

package net.sf.jabref;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.TreeSet;
import java.util.Vector;

import javax.swing.*;
import javax.swing.border.TitledBorder;

public class ContentSelectorDialog extends JDialog {
    JPanel panel1 = new JPanel();
    JPanel jPanel2 = new JPanel();
    JButton Close = new JButton();
    GridBagLayout gridBagLayout1 = new GridBagLayout();
    JPanel jPanel1 = new JPanel();
    JLabel lab = new JLabel();
    JTextField fieldTf = new JTextField();
    JButton add = new JButton();
    JPanel jPanel3 = new JPanel();
    JButton remove = new JButton();
    JComboBox fieldSelector = new JComboBox();
    GridBagLayout gridBagLayout2 = new GridBagLayout();
    //HelpAction help;
    JButton help;
    JPanel jPanel4 = new JPanel();
    GridBagLayout gridBagLayout3 = new GridBagLayout();
    GridBagLayout gridBagLayout4 = new GridBagLayout();
    TitledBorder titledBorder1;
    TitledBorder titledBorder2;
    JLabel jLabel1 = new JLabel();
    JComboBox wordSelector = new JComboBox();
    JTextField wordTf = new JTextField();
    JPanel jPanel5 = new JPanel();
    GridBagLayout gridBagLayout5 = new GridBagLayout();
    JButton addWord = new JButton();
    JPanel jPanel6 = new JPanel();
    JButton removeWord = new JButton();
    GridBagLayout gridBagLayout6 = new GridBagLayout();
    JButton select = new JButton();

    final String
  WORD_EMPTY_TEXT = Globals.lang("<no field>"),
  WORD_FIRSTLINE_TEXT = Globals.lang("<select word>"),
  FIELD_FIRST_LINE = Globals.lang("<field name>");
    MetaData metaData;
    String currentField = null;
    TreeSet<String> fieldSet, wordSet;
    JabRefFrame frame;

    public ContentSelectorDialog(JabRefFrame frame, boolean modal, MetaData metaData) {
  super(frame, Globals.lang("Setup selectors"), modal);
  this.metaData = metaData;
  this.frame = frame;
  help = new JButton(Globals.lang("Help"));
  help.addActionListener(new HelpAction(frame.helpDiag, GUIGlobals.contentSelectorHelp, "Help"));
  //help = new HelpAction(frame.helpDiag, GUIGlobals.contentSelectorHelp, "Help");
  try {
      jbInit();
      wordSelector.addItem(WORD_EMPTY_TEXT);
      pack();
  }
  catch(Exception ex) {
      ex.printStackTrace();
  }
    }

    public ContentSelectorDialog(JabRefFrame frame, boolean modal, MetaData metaData,
         String fieldName) {
  this(frame, modal, metaData);

  try {
      fieldSelector.setSelectedItem(fieldName);
  } catch (Exception ex) {
      ex.printStackTrace();
  }

  // The next two lines remove the part of the interface allowing
  // the user to control which fields have a selector. I think this
  // makes the dialog more intuitive. When the user opens this dialog
  // from the Tools menu, the full interface will be available.
  panel1.remove(jPanel1);
  pack();
    }

    /**
     * Set the contents of the field selector combobox.
     *
     */
    private void setupFieldSelector() {
  fieldSelector.removeAllItems();
  fieldSelector.addItem(FIELD_FIRST_LINE);
  for (String s : metaData){
      if (s.startsWith(Globals.SELECTOR_META_PREFIX))
    fieldSelector.addItem(s.substring(Globals.SELECTOR_META_PREFIX.length()));
  }

    }


    private void updateWordPanel() {
  if (currentField == null) {
      titledBorder2.setTitle("");
      jPanel3.repaint();
      return;
  }
  titledBorder2.setTitle(Globals.lang("Field")+": "+currentField);
  jPanel3.repaint();
  fillWordSelector();
  wordTf.setText("");
    }

    private void fillWordSelector() {
    wordSelector.removeAllItems();
    wordSelector.addItem(WORD_FIRSTLINE_TEXT);
    Vector<String> items = metaData.getData(Globals.SELECTOR_META_PREFIX
      + currentField);
    if ((items != null)) { // && (items.size() > 0)) {
      wordSet = new TreeSet<String>(items);
      for (String word : wordSet)
        wordSelector.addItem(word);
    }
  }

    private void addWord() {
  if (currentField == null)
      return;
  String word = wordTf.getText().trim();

  if (!wordSet.contains(word)) {
      Util.pr(Globals.SELECTOR_META_PREFIX+currentField);
      wordSet.add(word);
      // Create a new Vector for this word list, and update the MetaData.
      metaData.putData(Globals.SELECTOR_META_PREFIX+currentField,
           new Vector<String>(wordSet));
      fillWordSelector();
      frame.basePanel().markNonUndoableBaseChanged();
      //wordTf.selectAll();
      wordTf.setText("");
      wordTf.requestFocus();
  }
    }

    private void addField() {
  currentField = fieldTf.getText().trim().toLowerCase();
  if (metaData.getData(Globals.SELECTOR_META_PREFIX+currentField) == null) {
      metaData.putData(Globals.SELECTOR_META_PREFIX+currentField,
           new Vector<String>());
      frame.basePanel().markNonUndoableBaseChanged();
      setupFieldSelector();
      updateWordPanel();
  }
    }

    private void removeWord() {
  String word = wordTf.getText().trim();
  if (wordSet.contains(word)) {
      wordSet.remove(word);
      // Create a new Vector for this word list, and update the MetaData.
      metaData.putData(Globals.SELECTOR_META_PREFIX+currentField,
           new Vector<String>(wordSet));
      fillWordSelector();
      frame.basePanel().markNonUndoableBaseChanged();
      //wordTf.selectAll();
      wordTf.setText("");
      wordTf.requestFocus();
  }
    }

    void fieldSelector_actionPerformed(ActionEvent e) {
  if (fieldSelector.getSelectedIndex() > 0) {
      //fieldTf.setText((String)fieldSelector.getSelectedItem());
      currentField = (String)fieldSelector.getSelectedItem();
      updateWordPanel();
  }
    }

    private void jbInit() {
  titledBorder1 = new TitledBorder(BorderFactory.createEtchedBorder(Color.white,new Color(142, 142, 142)),Globals.lang("Selector enabled fields"));
  titledBorder2 = new TitledBorder(BorderFactory.createEtchedBorder(Color.white,new Color(142, 142, 142)),Globals.lang("Item list for field"));
  //jPanel1.setBackground(GUIGlobals.lightGray);
  //jPanel2.setBackground(GUIGlobals.lightGray);
  //panel1.setBackground(GUIGlobals.lightGray);
  panel1.setLayout(gridBagLayout1);
  Close.setText(Globals.lang("Close"));
  Close.addActionListener(new ContentSelectorDialog_Close_actionAdapter(this));
  lab.setRequestFocusEnabled(true);
  lab.setText(Globals.lang("Field name")+":");
  fieldTf.setSelectionEnd(8);
  add.setText(Globals.lang("Add"));
  remove.setText(Globals.lang("Remove"));
  jPanel1.setLayout(gridBagLayout2);
  jPanel1.setBorder(titledBorder1);
  jPanel3.setBorder(titledBorder2);
  jPanel3.setLayout(gridBagLayout4);
  jPanel4.setLayout(gridBagLayout3);
  jLabel1.setText(Globals.lang("Word")+":");
  jPanel5.setLayout(gridBagLayout5);
  addWord.setText(Globals.lang("Add"));
  removeWord.setText(Globals.lang("Remove"));
  jPanel6.setLayout(gridBagLayout6);
  select.setText(Globals.lang("Select"));
  fieldSelector.addActionListener(new ContentSelectorDialog_fieldSelector_actionAdapter(this));
  getContentPane().add(panel1);
  this.getContentPane().add(jPanel2, BorderLayout.SOUTH);
  //JToolBar tlb = new JToolBar();
  //tlb.setLayout(new GridLayout(1,1));
  //tlb.setPreferredSize(new Dimension(28, 28));
  //tlb.setFloatable(false);
  //tlb.add(help);
  jPanel2.add(help, null);
  jPanel2.add(Close, null);

  panel1.add(jPanel1,   new GridBagConstraints(0, 0, 1, 1, 1.0, 0.0
                 ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 0));
  jPanel1.add(lab,      new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
                 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
  jPanel1.add(fieldTf,        new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0
                     ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 1, 0));
  panel1.add(jPanel3,    new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0
                  ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 0));
  jPanel3.add(jLabel1,             new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
                ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
  jPanel1.add(fieldSelector,       new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0
                ,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0));
  jPanel1.add(jPanel4,    new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0
                   ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
  jPanel4.add(add,     new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
                ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 0));
  jPanel4.add(remove,  new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0
                ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 0, 5, 5), 0, 0));
  jPanel3.add(wordSelector,             new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0
                     ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
  jPanel3.add(wordTf,                  new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0
                   ,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0));
  jPanel3.add(jPanel5,       new GridBagConstraints(2, 2, 1, 1, 0.0, 0.0
                ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
  jPanel3.add(jPanel6,    new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0
                   ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
  jPanel6.add(addWord,   new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
                  ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
  jPanel6.add(removeWord,  new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0
              ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 0, 5, 5), 0, 0));
  jPanel1.add(select,  new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0
                ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));


  add.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        addField();
    }
      });

  wordTf.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        addWord();
    }
      });
  addWord.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        addWord();
    }
      });
  removeWord.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        removeWord();
    }
      });
  wordSelector.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        if (wordSelector.getSelectedIndex() > 0) {
      wordTf.setText((String)wordSelector.getSelectedItem());
      wordTf.requestFocus();
        }
    }
      });



  setupFieldSelector();
    }

    void Close_actionPerformed(ActionEvent e) {
  dispose();
    }

}

class ContentSelectorDialog_Close_actionAdapter implements java.awt.event.ActionListener {
    ContentSelectorDialog adaptee;

    ContentSelectorDialog_Close_actionAdapter(ContentSelectorDialog adaptee) {
  this.adaptee = adaptee;
    }
    public void actionPerformed(ActionEvent e) {
  adaptee.Close_actionPerformed(e);
    }
}

class ContentSelectorDialog_fieldSelector_actionAdapter implements java.awt.event.ActionListener {
    ContentSelectorDialog adaptee;

    ContentSelectorDialog_fieldSelector_actionAdapter(ContentSelectorDialog adaptee) {
  this.adaptee = adaptee;
    }
    public void actionPerformed(ActionEvent e) {
  adaptee.fieldSelector_actionPerformed(e);
    }
}
TOP

Related Classes of net.sf.jabref.ContentSelectorDialog_fieldSelector_actionAdapter

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.