Advertisement
KosIvantsov

show_untranslated.groovy

Jun 12th, 2013
439
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Groovy 3.49 KB | None | 0 0
  1. import javax.swing.JOptionPane.*
  2. import org.omegat.util.Platform.*
  3. import groovy.swing.SwingBuilder
  4. import java.awt.Component
  5. import javax.swing.JButton
  6. import javax.swing.JTable
  7. import javax.swing.table.*
  8. import javax.swing.event.*
  9. import java.awt.event.*
  10. import java.awt.BorderLayout as BL
  11.  
  12. // make a Closure to show message dialog
  13. def showMessage = { msg -> showMessageDialog null, msg, 'Show untranslated segments', INFORMATION_MESSAGE }
  14.  
  15. // abort if a project is not opened yet
  16. def prop = project.projectProperties
  17. if (!prop) {
  18.   showMessage 'Please try again after you open a project.'
  19.   return
  20. }
  21.  
  22. data = []
  23. uniqdata = []
  24. def segment_count = 0
  25.  
  26. project.projectFiles
  27. .each {
  28. it.entries
  29. .findAll {!project.getTranslationInfo(it).isTranslated()}
  30. .each {
  31.     segment_count++;
  32.     source = it.getSrcText();
  33.     data.add([ seg: it.entryNum(), source: source ]);
  34.     uniqdata.add([ source ])
  35.     }
  36. }
  37. uniqdata = uniqdata.unique()
  38. console.println "\n${'-'*10}\n$segment_count untranslated segments"
  39. console.println "${'-'*10}\n$uniqdata.size unique untranslated segments"
  40.  
  41. swing = new SwingBuilder()
  42. //
  43. frame = swing.frame(title:'Untranslated Segments', preferredSize: [720, 500]) {
  44.     scrollPane {
  45.         table() {
  46.             tableModel(list:data) {
  47.                 propertyColumn(editable: true, header:'Segment', propertyName:'seg', minWidth: 80, maxWidth: 80, preferredWidth: 80,
  48.                         cellEditor: new TableCellEditor()
  49.                         {
  50.                             public void cancelCellEditing()                             {}
  51.                             public boolean stopCellEditing()                            {   return false;   }
  52.                             public Object getCellEditorValue()                          {   return value;   }
  53.                             public boolean isCellEditable(EventObject anEvent)          {   return true;    }
  54.                             public boolean shouldSelectCell(EventObject anEvent)        {   return true;   }
  55.                             public void addCellEditorListener(CellEditorListener l)     {}
  56.                             public void removeCellEditorListener(CellEditorListener l)  {}
  57.                             public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column)
  58.                             {
  59.                                 println("value: " + value);
  60.                                 org.omegat.core.Core.getEditor().gotoEntry(value);
  61.                             }
  62. //
  63.                         },
  64.                         cellRenderer: new TableCellRenderer()
  65.                         {
  66.                             public Component getTableCellRendererComponent(JTable table,
  67.                             Object value,
  68.                             boolean isSelected,
  69.                             boolean hasFocus,
  70.                             int row,
  71.                             int column)
  72.                             {
  73.                                 def btn = new JButton()
  74.                                 btn.setText(value.toString())
  75.                                 return btn
  76. //
  77.                             }
  78.                         }
  79.                         )
  80.                 propertyColumn(editable: false, header:'Source',propertyName:'source', minWidth: 200, preferredWidth: 640)
  81.             }
  82.         }
  83.  
  84.     }
  85.  
  86.     panel(constraints: BL.SOUTH){
  87.         button('Quit', actionPerformed:{
  88.         frame.visible = false
  89.         })
  90.         }
  91. }
  92. frame.pack()
  93. frame.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement