/************************************************************************** OmegaT - Computer Assisted Translation (CAT) tool with fuzzy matching, translation memory, keyword search, glossaries, and translation leveraging into updated projects. Copyright (C) 2014 Alex Buloichik 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.glossary.taas; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.MessageFormat; import java.util.Collections; import java.util.Comparator; import java.util.Enumeration; import java.util.List; import java.util.concurrent.ExecutionException; import javax.swing.AbstractButton; import javax.swing.JRadioButton; import javax.swing.SwingWorker; import org.omegat.core.Core; import org.omegat.util.Log; import org.omegat.util.OStrings; import org.omegat.util.Preferences; import org.omegat.util.StringUtil; import org.omegat.util.gui.StaticUIUtils; import gen.taas.TaasDomain; /** * Controller for select TaaS domains. * * @author Alex Buloichik (alex73mail@gmail.com) */ public class SelectDomainController { static SelectDomainUI dialog; public static void show() { dialog = new SelectDomainUI(Core.getMainWindow().getApplicationFrame(), true); dialog.scrollPane.getVerticalScrollBar().setUnitIncrement(16); dialog.labelStatus.setText(OStrings.getString("TAAS_STATUS_DOMAIN_LIST")); new SwingWorker<List<TaasDomain>, Void>() { @Override protected List<TaasDomain> doInBackground() throws Exception { List<TaasDomain> result = TaaSPlugin.getClient().getDomainsList(); Collections.sort(result, new Comparator<TaasDomain>() { @Override public int compare(TaasDomain d1, TaasDomain d2) { return d1.getName().compareToIgnoreCase(d2.getName()); } }); return result; } @Override protected void done() { try { List<TaasDomain> list = get(); String previouslySelected = Preferences.getPreference(Preferences.TAAS_DOMAIN); if (StringUtil.isEmpty(previouslySelected)) { previouslySelected = null; dialog.rbAll.setSelected(true); } for (TaasDomain d : list) { JRadioButton btn = new JRadioButton(d.getName()); btn.setName(d.getId()); dialog.buttonGroup.add(btn); dialog.list.add(btn); if (previouslySelected != null && previouslySelected.equals(btn.getName())) { btn.setSelected(true); } } dialog.list.revalidate(); dialog.labelStatus.setText(" "); } catch (ExecutionException e) { Throwable ex = e.getCause(); if (ex instanceof TaaSClient.FormatError) { Log.logErrorRB(ex, "TAAS_FORMAT_ERROR", ex.getMessage()); dialog.labelStatus.setText(OStrings.getString("TAAS_FORMAT_ERROR")); } else if (ex instanceof TaaSClient.Unauthorized) { Log.logErrorRB(ex, "TAAS_UNAUTHORIZED_ERROR"); dialog.labelStatus.setText(OStrings.getString("TAAS_UNAUTHORIZED_ERROR")); } else { Log.logErrorRB(ex, "TAAS_GENERAL_ERROR", ex.getMessage()); dialog.labelStatus.setText(MessageFormat.format( OStrings.getString("TAAS_GENERAL_ERROR"), ex.getMessage())); } } catch (InterruptedException ex) { } } }.execute(); dialog.btnSelect.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (dialog.rbAll.isSelected()) { Preferences.setPreference(Preferences.TAAS_DOMAIN, ""); } else { for (Enumeration<AbstractButton> en = dialog.buttonGroup.getElements(); en .hasMoreElements();) { AbstractButton btn = en.nextElement(); if (btn.isSelected()) { Preferences.setPreference(Preferences.TAAS_DOMAIN, btn.getName()); break; } } } Preferences.save(); dialog.dispose(); } }); StaticUIUtils.setEscapeClosable(dialog); dialog.btnClose.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { dialog.dispose(); } }); dialog.setLocationRelativeTo(Core.getMainWindow().getApplicationFrame()); dialog.setVisible(true); } }