/src/mpv5/ui/frames/MPBabelFish.java
Java | 552 lines | 438 code | 73 blank | 41 comment | 17 complexity | 055e4b02f79731caaa723148af2a19a4 MD5 | raw file
Possible License(s): LGPL-3.0, Apache-2.0, GPL-3.0, GPL-2.0, AGPL-3.0, JSON, BSD-3-Clause
- /*
- * This file is part of YaBS.
- *
- * YaBS 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.
- *
- * YaBS 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 YaBS. If not, see <http://www.gnu.org/licenses/>.
- */
- /*
- * MPBabelFish.java
- *
- * Created on 01.02.2009, 17:33:56
- */
- package mpv5.ui.frames;
- import javax.swing.DefaultComboBoxModel;
- import mpv5.db.common.NodataFoundException;
- import mpv5.globals.Headers;
- import mpv5.globals.Messages;
- import mpv5.i18n.LanguageManager;
- import mpv5.ui.dialogs.DialogForFile;
- import java.awt.Cursor;
- import java.io.File;
- import javax.swing.JTextField;
- import javax.swing.SwingWorker;
- import javax.swing.table.DefaultTableModel;
- import mpv5.db.common.Context;
- import mpv5.db.common.QueryHandler;
- import mpv5.db.objects.User;
- import mpv5.globals.Constants;
- import mpv5.globals.GlobalSettings;
- import mpv5.logging.Log;
- import mpv5.ui.dialogs.Popup;
- import mpv5.ui.dialogs.PropertyDialog;
- import mpv5.ui.misc.Position;
- import mpv5.usermanagement.MPSecurityManager;
- import mpv5.utils.models.MPComboBoxModelItem;
- import mpv5.utils.models.MPTableModel;
- import mpv5.utils.arrays.ArrayUtilities;
- import mpv5.utils.files.FileReaderWriter;
- import mpv5.utils.tables.ExcelAdapter;
- import mpv5.utils.text.RandomText;
- import mpv5.utils.ui.TextFieldUtils;
- /**
- *
- *
- */
- public class MPBabelFish extends javax.swing.JFrame {
- private String url;
- /** Creates new form MPBabelFish */
- public MPBabelFish() {
- initComponents();
- new ExcelAdapter(data);
- setToolBar();
- new Position(this);
- setAlwaysOnTop(false);
- setVisible(rootPaneCheckingEnabled);
- setLanguageSelection();
- // Translate.setHttpReferrer(Constants.VERSION);
- }
- private void setLanguage() {
- setCursor(new Cursor(Cursor.WAIT_CURSOR));
- data.setModel(new MPTableModel(
- new Class[]{String.class, String.class, String.class},
- new boolean[]{false, true, true},
- LanguageManager.getEditorModel(((MPComboBoxModelItem) languages.getSelectedItem()).getId()),
- Headers.BABELFISH.getValue()));
- setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
- }
- private void setLanguageSelection() {
- languages.setModel(LanguageManager.getLanguagesAsComboBoxModel());
- languages.setSelectedIndex(MPComboBoxModelItem.getItemID(mpv5.db.objects.User.getCurrentUser().__getLanguage(),
- languages.getModel()));
- setLanguage();
- }
- /** This method is called from within the constructor to
- * initialize the form.
- * WARNING: Do NOT modify this code. The content of this method is
- * always regenerated by the Form Editor.
- */
- @SuppressWarnings("unchecked")
- // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
- private void initComponents() {
- jPanel1 = new javax.swing.JPanel();
- jLabel1 = new javax.swing.JLabel();
- jScrollPane1 = new javax.swing.JScrollPane();
- data = new javax.swing.JTable();
- jLabel2 = new javax.swing.JLabel();
- languages = new javax.swing.JComboBox();
- langName = new mpv5.ui.beans.LabeledTextField();
- jLabel7 = new javax.swing.JLabel();
- GooogleTranslator = new javax.swing.JToolBar();
- jLabel5 = new javax.swing.JLabel();
- webserviceurl = new javax.swing.JTextField();
- jLabel3 = new javax.swing.JLabel();
- from = new javax.swing.JComboBox();
- jLabel4 = new javax.swing.JLabel();
- to = new javax.swing.JComboBox();
- translate = new javax.swing.JButton();
- progress = new javax.swing.JProgressBar();
- jMenuBar1 = new javax.swing.JMenuBar();
- jMenu1 = new javax.swing.JMenu();
- jMenuItem4 = new javax.swing.JMenuItem();
- jMenuItem2 = new javax.swing.JMenuItem();
- jMenuItem1 = new javax.swing.JMenuItem();
- jMenuItem3 = new javax.swing.JMenuItem();
- setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
- java.util.ResourceBundle bundle = mpv5.i18n.LanguageManager.getBundle(); // NOI18N
- setTitle(bundle.getString("MPBabelFish.title_1")); // NOI18N
- setAlwaysOnTop(true);
- setName("Form"); // NOI18N
- jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("MPBabelFish.jPanel1.border.title_1"))); // NOI18N
- jPanel1.setName("jPanel1"); // NOI18N
- jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/32/babelfish.png"))); // NOI18N
- jLabel1.setName("jLabel1"); // NOI18N
- jScrollPane1.setName("jScrollPane1"); // NOI18N
- data.setModel(new javax.swing.table.DefaultTableModel(
- new Object [][] {
- {},
- {},
- {},
- {}
- },
- new String [] {
- }
- ));
- data.setAutoCreateRowSorter(true);
- data.setColumnSelectionAllowed(true);
- data.setDoubleBuffered(true);
- data.setDragEnabled(true);
- data.setName("data"); // NOI18N
- data.setSurrendersFocusOnKeystroke(true);
- jScrollPane1.setViewportView(data);
- data.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.SINGLE_INTERVAL_SELECTION);
- jLabel2.setText(bundle.getString("MPBabelFish.jLabel2.text_1")); // NOI18N
- jLabel2.setName("jLabel2"); // NOI18N
- languages.setName("languages"); // NOI18N
- languages.addMouseListener(new java.awt.event.MouseAdapter() {
- public void mouseClicked(java.awt.event.MouseEvent evt) {
- languagesMouseClicked(evt);
- }
- public void mouseExited(java.awt.event.MouseEvent evt) {
- languagesMouseExited(evt);
- }
- });
- languages.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- languagesActionPerformed(evt);
- }
- });
- langName.set_Label(bundle.getString("MPBabelFish.langName._Label")); // NOI18N
- langName.setName("langName"); // NOI18N
- jLabel7.setText(bundle.getString("MPBabelFish.jLabel7.text")); // NOI18N
- jLabel7.setName("jLabel7"); // NOI18N
- GooogleTranslator.setRollover(true);
- GooogleTranslator.setName("GooogleTranslator"); // NOI18N
- jLabel5.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
- jLabel5.setText(bundle.getString("MPBabelFish.jLabel5.text")); // NOI18N
- jLabel5.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 0, 1, 5));
- jLabel5.setEnabled(false);
- jLabel5.setName("jLabel5"); // NOI18N
- GooogleTranslator.add(jLabel5);
- webserviceurl.setText(bundle.getString("MPBabelFish.webserviceurl.text")); // NOI18N
- webserviceurl.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 5, 1, 5));
- webserviceurl.setEnabled(false);
- webserviceurl.setName("webserviceurl"); // NOI18N
- GooogleTranslator.add(webserviceurl);
- jLabel3.setText(bundle.getString("MPBabelFish.jLabel3.text")); // NOI18N
- jLabel3.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 5, 1, 5));
- jLabel3.setEnabled(false);
- jLabel3.setName("jLabel3"); // NOI18N
- GooogleTranslator.add(jLabel3);
- from.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 5, 1, 5));
- from.setEnabled(false);
- from.setName("from"); // NOI18N
- GooogleTranslator.add(from);
- jLabel4.setText(bundle.getString("MPBabelFish.jLabel4.text")); // NOI18N
- jLabel4.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 5, 1, 5));
- jLabel4.setEnabled(false);
- jLabel4.setName("jLabel4"); // NOI18N
- GooogleTranslator.add(jLabel4);
- to.setAutoscrolls(true);
- to.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 5, 1, 5));
- to.setEnabled(false);
- to.setName("to"); // NOI18N
- GooogleTranslator.add(to);
- translate.setText(bundle.getString("MPBabelFish.translate.text")); // NOI18N
- translate.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 5, 1, 5));
- translate.setEnabled(false);
- translate.setFocusable(false);
- translate.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
- translate.setName("translate"); // NOI18N
- translate.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
- translate.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- translateActionPerformed(evt);
- }
- });
- GooogleTranslator.add(translate);
- progress.setName("progress"); // NOI18N
- javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
- jPanel1.setLayout(jPanel1Layout);
- jPanel1Layout.setHorizontalGroup(
- jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
- .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jLabel2)
- .addComponent(languages, javax.swing.GroupLayout.PREFERRED_SIZE, 195, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGap(36, 36, 36)
- .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel1Layout.createSequentialGroup()
- .addComponent(langName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(progress, javax.swing.GroupLayout.DEFAULT_SIZE, 258, Short.MAX_VALUE))
- .addComponent(jLabel7, javax.swing.GroupLayout.DEFAULT_SIZE, 446, Short.MAX_VALUE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(jLabel1)
- .addContainerGap())
- .addComponent(GooogleTranslator, javax.swing.GroupLayout.DEFAULT_SIZE, 725, Short.MAX_VALUE)
- .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 725, Short.MAX_VALUE)
- );
- jPanel1Layout.setVerticalGroup(
- jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel1Layout.createSequentialGroup()
- .addContainerGap()
- .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
- .addComponent(jLabel2)
- .addComponent(jLabel7))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER, false)
- .addComponent(languages, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(langName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(progress, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 244, Short.MAX_VALUE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(GooogleTranslator, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGroup(jPanel1Layout.createSequentialGroup()
- .addComponent(jLabel1)
- .addContainerGap(307, Short.MAX_VALUE))
- );
- jMenuBar1.setName("jMenuBar1"); // NOI18N
- jMenu1.setText(bundle.getString("MPBabelFish.jMenu1.text_1")); // NOI18N
- jMenu1.setName("jMenu1"); // NOI18N
- jMenuItem4.setText(bundle.getString("MPBabelFish.jMenuItem4.text")); // NOI18N
- jMenuItem4.setName("jMenuItem4"); // NOI18N
- jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- jMenuItem4ActionPerformed(evt);
- }
- });
- jMenu1.add(jMenuItem4);
- jMenuItem2.setText(bundle.getString("MPBabelFish.jMenuItem2.text_1")); // NOI18N
- jMenuItem2.setName("jMenuItem2"); // NOI18N
- jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- jMenuItem2ActionPerformed(evt);
- }
- });
- jMenu1.add(jMenuItem2);
- jMenuItem1.setText(bundle.getString("MPBabelFish.jMenuItem1.text_1")); // NOI18N
- jMenuItem1.setName("jMenuItem1"); // NOI18N
- jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- jMenuItem1ActionPerformed(evt);
- }
- });
- jMenu1.add(jMenuItem1);
- jMenuItem3.setText(bundle.getString("MPBabelFish.jMenuItem3.text_1")); // NOI18N
- jMenuItem3.setName("jMenuItem3"); // NOI18N
- jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- jMenuItem3ActionPerformed(evt);
- }
- });
- jMenu1.add(jMenuItem3);
- jMenuBar1.add(jMenu1);
- setJMenuBar(jMenuBar1);
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
- getContentPane().setLayout(layout);
- layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- );
- layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- );
- pack();
- }// </editor-fold>//GEN-END:initComponents
- private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
- if (MPSecurityManager.checkAdminAccess()
- && QueryHandler.instanceOf().clone(Context.getLanguage()).checkUniqueness("longname", new JTextField[]{langName.getTextField()})) {
- if (langName.hasText()) {
- Runnable runnable = new Runnable() {
- public void run() {
- try {
- setCursor(new Cursor(Cursor.WAIT_CURSOR));
- LanguageManager.importLanguage(langName.get_Text(), ArrayUtilities.tableModelToFile(data, new int[]{0, 2}, "=", RandomText.getText() + "language", "yabs"));
- setLanguageSelection();
- } catch (Exception e) {
- Log.Debug(e);
- } finally {
- setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
- }
- }
- };
- new Thread(runnable).start();
- } else {
- TextFieldUtils.blinkerRed(langName.getTextField());
- }
- }
- }//GEN-LAST:event_jMenuItem2ActionPerformed
- private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed
- DialogForFile dialog = new DialogForFile(DialogForFile.FILES_ONLY);
- // MPTableModel mpdel = DataModelUtils.getModelCopy(data);
- dialog.saveFile(ArrayUtilities.tableModelToFile(data, new int[]{0, 1}, "=", String.valueOf(languages.getSelectedItem()), "yabs"));
- // data.setModel(mpdel);
- // setLanguageSelection();
- }//GEN-LAST:event_jMenuItem1ActionPerformed
- private void translateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_translateActionPerformed
- new Job(this).execute();
- }//GEN-LAST:event_translateActionPerformed
- private void languagesMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_languagesMouseExited
- }//GEN-LAST:event_languagesMouseExited
- private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem3ActionPerformed
- if (MPSecurityManager.checkAdminAccess()) {
- if (Popup.Y_N_dialog(Messages.REALLY_WIPE + ": " + ((MPComboBoxModelItem) languages.getSelectedItem()).getValue())) {
- try {
- LanguageManager.removeLanguage(((MPComboBoxModelItem) languages.getSelectedItem()).getId());
- } catch (NodataFoundException ex) {
- Log.Debug(this, ex);
- }
- }
- }
- setLanguageSelection();
- }//GEN-LAST:event_jMenuItem3ActionPerformed
- private void languagesMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_languagesMouseClicked
- }//GEN-LAST:event_languagesMouseClicked
- private void languagesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_languagesActionPerformed
- setLanguage();
- }//GEN-LAST:event_languagesActionPerformed
- private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem4ActionPerformed
- DialogForFile d = new DialogForFile(DialogForFile.FILES_ONLY);
- if (d.chooseFile()) {
- new Job3(this, d.getFile()).execute();
- }
- }//GEN-LAST:event_jMenuItem4ActionPerformed
- // Variables declaration - do not modify//GEN-BEGIN:variables
- private javax.swing.JToolBar GooogleTranslator;
- private javax.swing.JTable data;
- private javax.swing.JComboBox from;
- private javax.swing.JLabel jLabel1;
- private javax.swing.JLabel jLabel2;
- private javax.swing.JLabel jLabel3;
- private javax.swing.JLabel jLabel4;
- private javax.swing.JLabel jLabel5;
- private javax.swing.JLabel jLabel7;
- private javax.swing.JMenu jMenu1;
- private javax.swing.JMenuBar jMenuBar1;
- private javax.swing.JMenuItem jMenuItem1;
- private javax.swing.JMenuItem jMenuItem2;
- private javax.swing.JMenuItem jMenuItem3;
- private javax.swing.JMenuItem jMenuItem4;
- private javax.swing.JPanel jPanel1;
- private javax.swing.JScrollPane jScrollPane1;
- private mpv5.ui.beans.LabeledTextField langName;
- private javax.swing.JComboBox languages;
- private javax.swing.JProgressBar progress;
- private javax.swing.JComboBox to;
- private javax.swing.JButton translate;
- private javax.swing.JTextField webserviceurl;
- // End of variables declaration//GEN-END:variables
- private void setToolBar() {
- // from.setModel(new DefaultComboBoxModel(Language.values()));
- // to.setModel(new DefaultComboBoxModel(Language.values()));
- }
- class Job extends SwingWorker<Object, Object> {
- private MPBabelFish parent;
- private Job(MPBabelFish aThis) {
- this.parent = aThis;
- }
- @Override
- public Object doInBackground() {
- parent.setCursor(new Cursor(Cursor.WAIT_CURSOR));
- String[] dat = ArrayUtilities.SmallObjectToStringArray(ArrayUtilities.getColumnAsArray(data, 1));
- String[] translated = new String[dat.length];
- mpv5.YabsViewProxy.instance().setProgressMaximumValue(dat.length);
- progress.setStringPainted(true);
- progress.setMaximum(dat.length);
- for (int i = 0; i < dat.length; i++) {
- String string = dat[i];
- try {
- if (string != null && string.length() > 0) {
- Log.Debug(this, "Translating: " + string);
- // translated[i] = Translate.execute(string, (Language) from.getSelectedItem(), (Language) to.getSelectedItem());
- mpv5.YabsViewProxy.instance().setProgressValue(i + 1);
- progress.setValue(i + 1);
- } else {
- translated[i] = "";
- mpv5.YabsViewProxy.instance().setProgressValue(i + 1);
- progress.setValue(i + 1);
- }
- } catch (Exception ex) {
- Log.Debug(this, ex.getMessage());
- }
- }
- ArrayUtilities.replaceColumn(data, 2, translated);
- return null;
- }
- @Override
- public void done() {
- parent.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
- mpv5.YabsViewProxy.instance().setProgressReset();
- progress.setValue(0);
- Popup.notice(Messages.DONE);
- }
- }
- class Job3 extends SwingWorker<Object, Object> {
- private MPBabelFish parent;
- private File f;
- private Job3(MPBabelFish aThis, File f) {
- this.parent = aThis;
- this.f = f;
- }
- @Override
- public Object doInBackground() {
- parent.setCursor(new Cursor(Cursor.WAIT_CURSOR));
- String[] originallanguage = ArrayUtilities.SmallObjectToStringArray(ArrayUtilities.getColumnAsArray(data, 1));
- String[] components = ArrayUtilities.SmallObjectToStringArray(ArrayUtilities.getColumnAsArray(data, 0));
- FileReaderWriter fr = new FileReaderWriter(f, "UTF8");
- String[] imported = fr.readLinesWCharset();
- mpv5.YabsViewProxy.instance().setProgressMaximumValue(imported.length);
- progress.setStringPainted(true);
- progress.setMaximum(imported.length);
- for (int i = 0; i < originallanguage.length; i++) {
- String component = components[i];
- try {
- for (int j = 0; j < imported.length; j++) {
- String string = imported[j];
- if (string.split("=").length == 2) {
- if (string.split("=")[0].equals(component)) {
- originallanguage[i] = string.split("=")[1];
- mpv5.YabsViewProxy.instance().setProgressValue(i + 1);
- progress.setValue(i + 1);
- }
- }
- }
- } catch (Exception ex) {
- Log.Debug(this,
- "\n'I refuse to prove that I exist', says God, \n"
- + "'for proof denies faith, and without faith I am nothing'. \n"
- + "'But,' says man, 'The Babel fish is a dead giveaway, isn't it? \n"
- + "It could not have evolved by chance. \n"
- + "It proves you exist, and so therefore, by your own arguments, you don't.\n"
- + "The Hitchhiker's Guide to the Galaxy: Babelfish\n");
- Log.Debug(this, ex);
- }
- }
- ArrayUtilities.replaceColumn(data, 2, originallanguage);
- return null;
- }
- @Override
- public void done() {
- ((MPTableModel)data.getModel()).setCanEdits(false, true, true);
- parent.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
- mpv5.YabsViewProxy.instance().setProgressReset();
- progress.setValue(0);
- Popup.notice(Messages.DONE);
- }
- }
- }