/* Copyright (C) 2012 JabRef contributors. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ package net.sf.jabref.specialfields; import javax.swing.ImageIcon; import javax.swing.JLabel; import javax.swing.JMenuItem; import net.sf.jabref.Globals; import net.sf.jabref.JabRefFrame; public class SpecialFieldValue { private final SpecialField field; // keyword used at keyword field private final String keyword; // action belonging to this value private final String actionName; // localized menu string used at menu / button private String menuString; private SpecialFieldAction action = null; private SpecialFieldMenuAction menuAction = null; private ImageIcon icon; private String toolTipText; // value when used in a separate vield //private String fieldValue; /** * * @param field The special field this value is a value of * @param keyword - The keyword to be used at BibTex's keyword field * @param actionName - the action to call * @param menuString - the string to display at a menu * @param icon - the icon of this value * @param toolTipText - the tool tip text */ public SpecialFieldValue( SpecialField field, String keyword, String actionName, String menuString, ImageIcon icon, String toolTipText) { this.field = field; this.keyword = keyword; this.actionName = actionName; this.menuString = menuString; this.icon = icon; this.toolTipText = toolTipText; } public String getKeyword() { return this.keyword; } public String getActionName() { return this.actionName; } public String getMenuString() { return this.menuString; } public JLabel createLabel() { JLabel label = new JLabel(this.icon); label.setToolTipText(this.toolTipText); return label; } public String getFieldValue() { return this.keyword; } public ImageIcon getIcon() { return this.icon; } public String getToolTipText() { return this.toolTipText; } public SpecialFieldAction getAction(JabRefFrame frame) { if (this.action == null) { action = new SpecialFieldAction( frame, this.field, this.getFieldValue(), // if field contains only one value, it has to be nulled // otherwise, another setting does not empty the field this.field.getValues().size() == 1, this.getMenuString(), this.field.TEXT_DONE_PATTERN); } return action; } public SpecialFieldMenuAction getMenuAction(JabRefFrame frame) { if (this.menuAction == null) { this.menuAction = new SpecialFieldMenuAction(this, frame); } return this.menuAction; } }