/************************************************************************** OmegaT - Computer Assisted Translation (CAT) tool with fuzzy matching, translation memory, keyword search, glossaries, and translation leveraging into updated projects. Copyright (C) 2015 Aaron Madlon-Kay Home page: http://www.omegat.org/ Support center: http://groups.yahoo.com/group/OmegaT/ This file is part of OmegaT. OmegaT 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 3 of the License, or (at your option) any later version. OmegaT 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, see <http://www.gnu.org/licenses/>. **************************************************************************/ package org.omegat.gui.search; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import javax.swing.JComboBox; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JTextField; import javax.swing.KeyStroke; import javax.swing.text.BadLocationException; import org.omegat.core.Core; import org.omegat.gui.shortcuts.PropertiesShortcuts; import org.omegat.util.OStrings; import org.omegat.util.StringUtil; import org.openide.awt.Mnemonics; @SuppressWarnings("serial") public class SearchWindowMenu extends JMenuBar { private final SearchWindowForm form; private final SearchWindowController controller; public SearchWindowMenu(SearchWindowForm form, SearchWindowController controller) { this.form = form; this.controller = controller; init(); } private void init() { JMenu fileMenu = add(new JMenu()); Mnemonics.setLocalizedText(fileMenu, OStrings.getString("SW_FILE_MENU")); JMenuItem item; item = fileMenu.add(new JMenuItem()); Mnemonics.setLocalizedText(item, OStrings.getString("SW_FILE_MENU_SELECT_SEARCH_FIELD")); item.setActionCommand("editFindInProjectMenuItem"); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String selection = form.m_viewer.getSelectedText(); JComboBox<String> field = form.m_searchField; if (!StringUtil.isEmpty(selection)) { JTextField editor = (JTextField) field.getEditor().getEditorComponent(); editor.setText(selection); } field.requestFocus(); field.getEditor().selectAll(); } }); item = fileMenu.add(new JMenuItem()); Mnemonics.setLocalizedText(item, OStrings.getString("SW_FILE_MENU_CLOSE")); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { controller.doCancel(); } }); JMenu editMenu = add(new JMenu()); Mnemonics.setLocalizedText(editMenu, OStrings.getString("SW_EDIT_MENU")); // "Action Commands" must be the same as equivalent MainWindowMenu // members in order to get matching shortcuts. item = editMenu.add(new JMenuItem()); Mnemonics.setLocalizedText(item, OStrings.getString("TF_MENU_EDIT_SOURCE_INSERT")); item.setActionCommand("editInsertSourceMenuItem"); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JComboBox<String> currentBox = form.m_searchField; if (form.m_replaceField.hasFocus()) { currentBox = form.m_replaceField; } JTextField editor = (JTextField) currentBox.getEditor().getEditorComponent(); int offset = editor.getCaretPosition(); String source = Core.getEditor().getCurrentEntry().getSrcText(); try { editor.getDocument().insertString(offset, source, null); } catch (BadLocationException ignore) { } } }); item = editMenu.add(new JMenuItem()); Mnemonics.setLocalizedText(item, OStrings.getString("TF_MENU_EDIT_SOURCE_OVERWRITE")); item.setActionCommand("editOverwriteSourceMenuItem"); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JComboBox<String> currentBox = form.m_searchField; if (form.m_replaceField.hasFocus()) { currentBox = form.m_replaceField; } JTextField editor = (JTextField) currentBox.getEditor().getEditorComponent(); editor.setText(Core.getEditor().getCurrentEntry().getSrcText()); } }); editMenu.addSeparator(); item = editMenu.add(new JMenuItem()); Mnemonics.setLocalizedText(item, OStrings.getString("TF_MENU_EDIT_CREATE_GLOSSARY_ENTRY")); item.setActionCommand("editCreateGlossaryEntryMenuItem"); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Core.getGlossary().showCreateGlossaryEntryDialog(form); } }); PropertiesShortcuts.getMainMenuShortcuts().bindKeyStrokes(this); } }