Révision 2018

tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xtz/XTZPager.groovy (revision 2018)
210 210
					continue;
211 211
				}
212 212

  
213

  
214 213
				def pages = ed.getPageFiles()
215 214
				for (i = 0 ; i < pages.size();) {
216 215
					File f = pages[i][0];
......
280 279
			xslParams["number-words-per-page"] = Integer.parseInt(s);
281 280
			xslParams["pagination-element"] = project.getEditionDefinition("default").getPageElement();
282 281
			xslParams["import-xml-path"] = project.getProjectDirectory()
283
			//println "XSL PARAMS: "+xslParams
282
			println "XSL PARAMS: "+xslParams
284 283

  
285 284
			def xslFiles = xslDirectory.listFiles()
286 285
			xslFiles = xslFiles.sort() { f -> 
tmp/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/xtz/XTZDefaultPagerStep.groovy (revision 2018)
300 300
				return false;
301 301
			}
302 302

  
303
			println "DEBUG: start parsing"
304 303
			for (int event = parser.next(); event != XMLStreamConstants.END_DOCUMENT; event = parser.next()) {
305 304
				rend = "";
306 305
				switch (event) {
tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/editors/ConcordanceEditor.java (revision 2018)
352 352
		displayArea.setLayout(new FormLayout());
353 353

  
354 354
		viewerLeft = new TableViewer(displayArea, SWT.MULTI | SWT.BORDER | SWT.VIRTUAL);
355
		viewerLeft.getTable().addKeyListener(new TableKeyListener(viewerLeft));
355
		
356 356
		viewerLeft.setLabelProvider(new LineLabelProvider(this) {
357 357
			@Override
358 358
			public String getColumnText(Object element, int columnIndex) {
......
408 408
		viewerRight = new TableViewer(displayArea, SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER
409 409
				//				| SWT.VIRTUAL
410 410
				);
411
		viewerRight.getTable().addKeyListener(new TableKeyListener(viewerRight));
411

  
412 412
		//viewer.setLabelProvider(new LineLabelProvider(this));
413 413
		viewerRight.setContentProvider(new ConcordancesProvider());
414 414
		viewerRight.getTable().setLinesVisible(true);
......
454 454
		viewerRight.getTable().addKeyListener(kldelete);
455 455
		viewerLeft.getTable().addKeyListener(kldelete);
456 456

  
457
		TableKeyListener tlistener = new TableKeyListener(viewerLeft, viewerRight);
458
		viewerRight.getTable().addKeyListener(tlistener);
459
		viewerLeft.getTable().addKeyListener(tlistener);
460
		
457 461
		firstColumn = new TableColumn(viewerRight.getTable(), SWT.LEFT);
458 462
		firstColumn.setWidth(0);
459 463
		firstColumn.setResizable(false);
tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TableKeyListener.java (revision 2018)
17 17
import org.txm.utils.logger.Log;
18 18

  
19 19
public class TableKeyListener implements KeyListener {
20
	TableViewer viewer;
20
	TableViewer[] viewers;
21 21

  
22
	public TableKeyListener(TableViewer viewer) {
23
		this.viewer = viewer;
22
	public TableKeyListener(TableViewer... viewers) {
23
		this.viewers = viewers;
24 24
	}
25 25

  
26 26
	@Override
......
32 32
	public void keyPressed(KeyEvent e) {
33 33
		//System.out.println("key code: "+e.keyCode);
34 34
		if ((e.stateMask & SWT.CTRL) != 0 && e.keyCode == 99 ) { // CTRL + C
35
			copyLinesToClipboard();
35
			copyLinesToClipboard(e);
36 36
		} else if ((e.stateMask & SWT.CTRL) != 0 && e.keyCode == 102 ) { // CTRL + F
37
			searchInLines();
37
			searchInLines(e);
38 38
		} else if ((e.stateMask & SWT.COMMAND) != 0 && e.keyCode == 99 ) { // CMD + C
39
			copyLinesToClipboard();
39
			copyLinesToClipboard(e);
40 40
		} else if ((e.stateMask & SWT.COMMAND) != 0 && e.keyCode == 102 ) { // CMD + F
41
			searchInLines();
41
			searchInLines(e);
42 42
		}
43 43
	}
44 44

  
45 45
	/**
46 46
	 * Opens a dialog box to enter a REGEX that selects lines in the table.
47 47
	 */
48
	public void searchInLines() {
49
		TableItem[] items = viewer.getTable().getItems();
50
		//System.out.println("search in tablein items: "+Arrays.toString(items));
48
	public void searchInLines(KeyEvent e) {
49
		
50
		InputDialog dialog = new InputDialog(viewers[0].getTable().getShell(), "Compute", TXMUIMessages.common_enterRegularExpressionOfYourSearch, "", null);  //$NON-NLS-1$
51
		if (dialog.open() == Window.OK) {
52
			for (TableViewer viewer : viewers) {
53
				TableItem[] items = viewer.getTable().getItems();
54
				//System.out.println("search in tablein items: "+Arrays.toString(items));
51 55

  
52
		TableColumn[] cols = viewer.getTable().getColumns();
53
		InputDialog dialog = new InputDialog(viewer.getTable().getShell(), "Compute", TXMUIMessages.common_enterRegularExpressionOfYourSearch, "", null);  //$NON-NLS-1$
54
		if (dialog.open() == Window.OK) {
55
			String reg = dialog.getValue();
56
			Pattern p = Pattern.compile(reg);
57
			// TODO: useless ?
58
			//ArrayList<TableItem> matchingItem = new ArrayList<TableItem>();
59
			ArrayList<Integer> matchingIndexes = new ArrayList<Integer>();
60
			for (int l = 0 ; l < items.length ; l++) {
61
				TableItem item = items[l];
62
				for (int i = 0 ; i < cols.length ; i++) {
63
					if (p.matcher(item.getText(i)).matches()) {
64
						// TODO: useless
65
						//matchingItem.add(item);
66
						matchingIndexes.add(l);
67
						break; // next line
56
				TableColumn[] cols = viewer.getTable().getColumns();
57
					String reg = dialog.getValue();
58
					Pattern p = Pattern.compile(reg);
59
					// TODO: useless ?
60
					//ArrayList<TableItem> matchingItem = new ArrayList<TableItem>();
61
					ArrayList<Integer> matchingIndexes = new ArrayList<Integer>();
62
					for (int l = 0 ; l < items.length ; l++) {
63
						TableItem item = items[l];
64
						for (int i = 0 ; i < cols.length ; i++) {
65
							if (p.matcher(item.getText(i)).matches()) {
66
								// TODO: useless
67
								//matchingItem.add(item);
68
								matchingIndexes.add(l);
69
								break; // next line
70
							}
71
						}
68 72
					}
69
				}
70
			}
71
			Log.fine(TXMCoreMessages.bind(TXMUIMessages.foundLinesColon, matchingIndexes));
73
					Log.fine(TXMCoreMessages.bind(TXMUIMessages.foundLinesColon, matchingIndexes));
72 74

  
73
			// TODO: useless ?
74
//			int[] indexes = new int[matchingIndexes.size()];
75
//			TableItem[] mitems = new TableItem[matchingItem.size()];
76
//			int i = 0;
77
//			for(int index : matchingIndexes) {
78
//				indexes[i++] = index;
79
//			}
80
//			i = 0;
81
//			for(TableItem item : matchingItem) {
82
//				mitems[i++] = item;
83
//			}
75
					// TODO: useless ?
76
//					int[] indexes = new int[matchingIndexes.size()];
77
//					TableItem[] mitems = new TableItem[matchingItem.size()];
78
//					int i = 0;
79
//					for(int index : matchingIndexes) {
80
//						indexes[i++] = index;
81
//					}
82
//					i = 0;
83
//					for(TableItem item : matchingItem) {
84
//						mitems[i++] = item;
85
//					}
84 86

  
85
			// TODO: old version which doesn't trigger selection event
86
//			if (mitems.length > 0) {
87
//				viewer.getTable().showItem(mitems[0]); // useless: viewer.getTable().setSelection(indexes) can replace these 3 lines of code
88
//				viewer.getTable().deselectAll(); // useless: viewer.getTable().setSelection(indexes) can replace these 3 lines of code
89
//				viewer.getTable().select(indexes); // useless: viewer.getTable().setSelection(indexes) can replace these 3 lines of code
90
			
91
			// trigger selection event on viewer
92
			if (matchingIndexes.size() > 0) {
93
				ArrayList elements = new ArrayList(matchingIndexes.size());
94
				for(int j = 0; j < matchingIndexes.size(); j++) {
95
					elements.add(viewer.getElementAt(matchingIndexes.get(j)));
96
				}
97
				viewer.setSelection(new StructuredSelection(elements), true);
87
					// TODO: old version which doesn't trigger selection event
88
//					if (mitems.length > 0) {
89
//						viewer.getTable().showItem(mitems[0]); // useless: viewer.getTable().setSelection(indexes) can replace these 3 lines of code
90
//						viewer.getTable().deselectAll(); // useless: viewer.getTable().setSelection(indexes) can replace these 3 lines of code
91
//						viewer.getTable().select(indexes); // useless: viewer.getTable().setSelection(indexes) can replace these 3 lines of code
92
					
93
					// trigger selection event on viewer
94
					if (matchingIndexes.size() > 0) {
95
						ArrayList elements = new ArrayList(matchingIndexes.size());
96
						for(int j = 0; j < matchingIndexes.size(); j++) {
97
							elements.add(viewer.getElementAt(matchingIndexes.get(j)));
98
						}
99
						viewer.setSelection(new StructuredSelection(elements), true);
100
						for (TableViewer oViewer : viewers) {
101
							if (oViewer != viewer) {
102
								oViewer.getTable().deselectAll();
103
								oViewer.getTable().select(viewer.getTable().getSelectionIndices());
104
							}
105
						}
106
						return;
107
					}
98 108
			}
99 109
		}
100 110
	}
......
102 112
	/**
103 113
	 * Copies the current lines selection to the clipboard.
104 114
	 */
105
	public void copyLinesToClipboard() {
106
		TableItem[] items = viewer.getTable().getSelection();
107
		String str = ""; //$NON-NLS-1$
108
		TableColumn[] cols = viewer.getTable().getColumns();
109
		for (int l = 0 ; l < items.length ; l++) {
110
			TableItem item = items[l];
111
			if (l > 0) str += "\n"; //$NON-NLS-1$
112
			for (int i = 0 ; i < cols.length ; i++) {
113
				if (cols[i].getText().trim().length() >0) {
114
					if (i > 0) str += "\t"; //$NON-NLS-1$
115
					str += item.getText(i);
115
	public void copyLinesToClipboard(KeyEvent e) {
116
		
117
		StringBuffer str = new StringBuffer(); //$NON-NLS-1$
118
	
119
		for (int l = 0 ; l < viewers[0].getTable().getSelection().length ; l++) {
120
			
121
			if (l > 0) str.append("\n"); //$NON-NLS-1$
122
			
123
			for (TableViewer viewer : viewers) {
124
				TableColumn[] cols = viewer.getTable().getColumns();
125
				TableItem[] items = viewer.getTable().getSelection();
126
				TableItem item = items[l];
127
				
128
				for (int i = 0 ; i < cols.length ; i++) {
129
					if (cols[i].getText().trim().length() >0) {
130
						if (i > 0) str.append("\t"); //$NON-NLS-1$
131
						str.append(item.getText(i));
132
					}
116 133
				}
117 134
			}
135
			
118 136
		}
119
		org.txm.rcp.utils.IOClipboard.write(str);
120
		Log.info(TXMCoreMessages.bind(TXMUIMessages.copiedLinesColon, str));
137
		String strr = str.toString();
138
		org.txm.rcp.utils.IOClipboard.write(strr);
139
		Log.info(TXMCoreMessages.bind(TXMUIMessages.copiedLinesColon, strr));
121 140
	}
122 141
}
tmp/org.txm.rcp/src/main/java/org/txm/rcp/swt/widget/SuperTableViewer.java (revision 2018)
2 2

  
3 3
import java.util.ArrayList;
4 4

  
5
import org.eclipse.jface.util.Util;
5 6
import org.eclipse.jface.viewers.TableViewer;
7
import org.eclipse.jface.viewers.TableViewerColumn;
6 8
import org.eclipse.swt.SWT;
9
import org.eclipse.swt.events.KeyListener;
10
import org.eclipse.swt.events.MouseListener;
7 11
import org.eclipse.swt.events.SelectionAdapter;
8 12
import org.eclipse.swt.events.SelectionEvent;
13
import org.eclipse.swt.events.SelectionListener;
9 14
import org.eclipse.swt.layout.FormAttachment;
10 15
import org.eclipse.swt.layout.FormData;
11 16
import org.eclipse.swt.layout.FormLayout;
12 17
import org.eclipse.swt.widgets.Composite;
18
import org.eclipse.swt.widgets.Event;
19
import org.eclipse.swt.widgets.Listener;
13 20
import org.eclipse.swt.widgets.Sash;
21
import org.eclipse.swt.widgets.ScrollBar;
22
import org.eclipse.swt.widgets.Table;
23
import org.eclipse.swt.widgets.TableColumn;
14 24

  
15 25
public class SuperTableViewer extends Composite {
16 26

  
......
30 40
	public SuperTableColumn newColumn(String name) {
31 41
		return newColumn(name, -1);
32 42
	}
33
	
43

  
34 44
	public SuperTableColumn newColumn(String name, int position) {
35 45
		SuperTableColumn col = new SuperTableColumn(this, name);
36 46
		if (position > 0) {
......
42 52
		return col;
43 53
	}
44 54

  
55
	public void setInput(Object input) {
56
		for (SuperTableColumn column : columns) {
57
			column.setInput(input);
58
		}
59
	}
60

  
61
	public void addKeyListener(KeyListener listener) {
62
//		for (SuperTableColumn column : columns) {
63
//			column.getTable().addKeyListener(listener);
64
//		}
65
		super.addKeyListener(listener);
66
	}
67

  
68
	public void addMouseListener(MouseListener listener) {
69
//		for (SuperTableColumn column : columns) {
70
//			column.getTable().addMouseListener(listener);
71
//		}
72
		super.addMouseListener(listener);
73
	}
74

  
45 75
	public class SuperTableColumn extends TableViewer {
46 76
		SuperTableViewer table;
77
		Table t;
47 78
		Sash sash;
48 79
		FormData data = new FormData();
49 80
		FormData data2 = new FormData();
50 81
		String name;
51 82
		int position;
52 83

  
53
		protected SuperTableColumn(SuperTableViewer table, String name) {
54
			super(table, SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER);
84
		protected SuperTableColumn(SuperTableViewer table2, String name) {
85
			super(table2, SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER);
55 86

  
56
			this.table = table;
87
			this.table = table2;
88
			this.t = this.getTable();
89
			getTable().setLinesVisible(true);
90
			getTable().setHeaderVisible(true);
57 91

  
92
			TableColumn firstColumn = new TableColumn(getTable(), SWT.LEFT);
93
			firstColumn.setWidth(0);
94
			firstColumn.setResizable(false);
95

  
58 96
			sash = new Sash(table, SWT.VERTICAL);
59 97
			sash.addSelectionListener(new SelectionAdapter() {
60 98
				public void widgetSelected(SelectionEvent event) {
......
62 100
					sash.getParent().layout();
63 101
				}
64 102
			});
103

  
104
			t.addSelectionListener(new SelectionListener() {
105
				@Override
106
				public void widgetSelected(SelectionEvent e) {
107
					for (SuperTableColumn col : table.columns) {
108
						if (col != SuperTableColumn.this) {
109
							col.getTable().deselectAll();
110
							col.getTable().select(t.getSelectionIndices());
111
						}
112
					}
113

  
114
				}
115
				@Override
116
				public void widgetDefaultSelected(SelectionEvent e) { }
117
			});
118
			ScrollBar vBarLeft = t.getVerticalBar();
119
			vBarLeft.addListener(SWT.Selection, new Listener() {
120
				@Override
121
				public void handleEvent(Event event) {
122
					for (SuperTableColumn col : table.columns) {
123
						if (col != SuperTableColumn.this) {
124
							if (Util.isLinux()) {
125
								col.setSelection(getSelection());
126
							} else {
127
								col.getTable().setTopIndex(t.getTopIndex());
128
							}
129
						}
130
					}
131

  
132
				}
133
			});
65 134
		}
66 135

  
67 136
		public void updatePosition(int position) {
......
85 154
			}
86 155
			sash.setLayoutData(data2);
87 156
		}
157

  
158
		public TableViewerColumn newColumn(int style) {
159
			TableViewerColumn col = new TableViewerColumn(this, style);
160
			return col;
161
		}
162

  
163
		public void setWidth(int w) {
164
			data2.left = new FormAttachment(w);
165
		}
88 166
	}
89 167

  
90 168
	public SuperTableColumn getColumn(int i) {

Formats disponibles : Unified diff