Advertisement
KosIvantsov

show_same_segments.groovy

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