Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.swing.JOptionPane.*
- import org.omegat.util.Platform.*
- import groovy.swing.SwingBuilder
- import java.awt.Component
- import javax.swing.JButton
- import javax.swing.JTable
- import javax.swing.table.*
- import javax.swing.event.*
- import java.awt.event.*
- import java.awt.BorderLayout as BL
- // make a Closure to show message dialog
- def showMessage = { msg -> showMessageDialog null, msg, 'Show untranslated segments', INFORMATION_MESSAGE }
- // abort if a project is not opened yet
- def prop = project.projectProperties
- if (!prop) {
- showMessage 'Please try again after you open a project.'
- return
- }
- data = []
- uniqdata = []
- def segment_count = 0
- project.projectFiles
- .each {
- it.entries
- .findAll {!project.getTranslationInfo(it).isTranslated()}
- .each {
- segment_count++;
- source = it.getSrcText();
- data.add([ seg: it.entryNum(), source: source ]);
- uniqdata.add([ source ])
- }
- }
- uniqdata = uniqdata.unique()
- console.println "\n${'-'*10}\n$segment_count untranslated segments"
- console.println "${'-'*10}\n$uniqdata.size unique untranslated segments"
- swing = new SwingBuilder()
- //
- frame = swing.frame(title:'Untranslated Segments', preferredSize: [720, 500]) {
- scrollPane {
- table() {
- tableModel(list:data) {
- propertyColumn(editable: true, header:'Segment', propertyName:'seg', minWidth: 80, maxWidth: 80, preferredWidth: 80,
- cellEditor: new TableCellEditor()
- {
- public void cancelCellEditing() {}
- public boolean stopCellEditing() { return false; }
- public Object getCellEditorValue() { return value; }
- public boolean isCellEditable(EventObject anEvent) { return true; }
- public boolean shouldSelectCell(EventObject anEvent) { return true; }
- public void addCellEditorListener(CellEditorListener l) {}
- public void removeCellEditorListener(CellEditorListener l) {}
- public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column)
- {
- println("value: " + value);
- org.omegat.core.Core.getEditor().gotoEntry(value);
- }
- //
- },
- cellRenderer: new TableCellRenderer()
- {
- public Component getTableCellRendererComponent(JTable table,
- Object value,
- boolean isSelected,
- boolean hasFocus,
- int row,
- int column)
- {
- def btn = new JButton()
- btn.setText(value.toString())
- return btn
- //
- }
- }
- )
- propertyColumn(editable: false, header:'Source',propertyName:'source', minWidth: 200, preferredWidth: 640)
- }
- }
- }
- panel(constraints: BL.SOUTH){
- button('Quit', actionPerformed:{
- frame.visible = false
- })
- }
- }
- frame.pack()
- frame.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement