Révision 1529

tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/editors/CAEditor.java (revision 1529)
78 78
	 */
79 79
	private CA ca;
80 80

  
81
	public static String SEPARATOR = ""; //$NON-NLS-1$
82 81

  
83
	public static String COL_TYPE = "Double"; //$NON-NLS-1$
84

  
85

  
86

  
87 82
	@Override
88 83
	protected void createPages() {
89 84
		
......
136 131
		editors = new ArrayList<EditorPart>();
137 132
		inputs = new ArrayList<IEditorInput>();
138 133

  
139
		TXMResultEditorInput caInput = (TXMResultEditorInput) this.getEditorInput();
140
		this.ca = (CA) caInput.getResult();
134
		this.ca = ((TXMResultEditorInput<CA>) this.getEditorInput()).getResult();
141 135

  
142 136
		// Initialize the editor parts and editor inputs
143 137
		this.initCAFactorialMapEditor();
tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/editors/ColsRowsInfosEditor.java (revision 1529)
27 27
//
28 28
package org.txm.ca.rcp.editors;
29 29

  
30
import java.util.ArrayList;
31
import java.util.List;
32

  
33
import org.eclipse.core.runtime.IProgressMonitor;
34
import org.eclipse.jface.action.MenuManager;
35 30
import org.eclipse.jface.viewers.ArrayContentProvider;
36
import org.eclipse.jface.viewers.IStructuredContentProvider;
37
import org.eclipse.jface.viewers.LabelProvider;
38 31
import org.eclipse.jface.viewers.TableViewer;
39 32
import org.eclipse.jface.viewers.TableViewerColumn;
40
import org.eclipse.jface.viewers.Viewer;
41 33
import org.eclipse.osgi.util.NLS;
42 34
import org.eclipse.swt.SWT;
43
import org.eclipse.swt.events.SelectionAdapter;
44
import org.eclipse.swt.events.SelectionEvent;
45
import org.eclipse.swt.layout.FillLayout;
46 35
import org.eclipse.swt.layout.GridData;
47
import org.eclipse.swt.widgets.Composite;
48
import org.eclipse.swt.widgets.Menu;
49 36
import org.eclipse.swt.widgets.Table;
50
import org.eclipse.swt.widgets.TableColumn;
51 37
import org.eclipse.swt.widgets.TableItem;
52
import org.eclipse.ui.IEditorInput;
53
import org.eclipse.ui.IEditorSite;
54
import org.eclipse.ui.PartInitException;
55 38
import org.txm.Toolbox;
56
import org.txm.ca.core.functions.CA;
57 39
import org.txm.ca.rcp.messages.CAUIMessages;
58 40
import org.txm.core.results.TXMResult;
59
import org.txm.rcp.StatusLine;
60
import org.txm.rcp.editors.ITablableEditorInput;
61 41
import org.txm.rcp.editors.TXMEditor;
62 42
import org.txm.rcp.editors.TXMResultEditorInput;
63 43
import org.txm.rcp.editors.TableKeyListener;
64 44
import org.txm.rcp.editors.TableLinesViewerComparator;
65
import org.txm.rcp.editors.TableSorter;
66
import org.txm.rcp.editors.input.AbstractTablableEditorInput;
67
import org.txm.rcp.messages.TXMUIMessages;
68 45
import org.txm.rcp.swt.GLComposite;
69 46

  
70 47
/**
......
115 92

  
116 93
		String[] titles = this.getTableTitles();
117 94
		
118
		List<String> coltypes = new ArrayList<String>();
119
		coltypes.add(TXMUIMessages.integer);
120
		coltypes.add("");
121
		coltypes.add(CAEditor.COL_TYPE);
122
		coltypes.add(CAEditor.COL_TYPE);
123
		coltypes.add(CAEditor.COL_TYPE);
124
		coltypes.add(CAEditor.COL_TYPE);
125
		coltypes.add(CAEditor.COL_TYPE);
126
		for (int c = 0; c < 3; c++)// seulement les 3 premiers axes
127
		{
128
			coltypes.add(CAEditor.SEPARATOR);
129
			coltypes.add(CAEditor.COL_TYPE);
130
			coltypes.add(CAEditor.COL_TYPE);
131
		}
132
		coltypes.add(CAEditor.SEPARATOR);
133
		coltypes.add(CAEditor.COL_TYPE);
134
		coltypes.add(CAEditor.COL_TYPE);
135
		coltypes.add(CAEditor.COL_TYPE);
136
		coltypes.add(CAEditor.SEPARATOR);
95
		//List<String> coltypes = new ArrayList<String>();
96
//		coltypes.add(TXMUIMessages.integer);
97
//		coltypes.add("");
98
//		coltypes.add(CAEditor.COL_TYPE);
99
//		coltypes.add(CAEditor.COL_TYPE);
100
//		coltypes.add(CAEditor.COL_TYPE);
101
//		coltypes.add(CAEditor.COL_TYPE);
102
//		coltypes.add(CAEditor.COL_TYPE);
103
//		for (int c = 0; c < 3; c++)// seulement les 3 premiers axes
104
//		{
105
//			coltypes.add(CAEditor.SEPARATOR);
106
//			coltypes.add(CAEditor.COL_TYPE);
107
//			coltypes.add(CAEditor.COL_TYPE);
108
//		}
109
//		coltypes.add(CAEditor.SEPARATOR);
110
//		coltypes.add(CAEditor.COL_TYPE);
111
//		coltypes.add(CAEditor.COL_TYPE);
112
//		coltypes.add(CAEditor.COL_TYPE);
113
//		coltypes.add(CAEditor.SEPARATOR);
114
//		
115
		//String[] types = coltypes.toArray(new String[] {});
137 116
		
138
		String[] types = coltypes.toArray(new String[] {});
139 117
		
140
		
141 118
		for (int i = 0; i < titles.length; i++) {
142 119
			final int index = i;
143 120
			final TableViewerColumn column;
tmp/org.txm.core/src/java/org/txm/core/results/TXMResult.java (revision 1529)
135 135
	private Semaphore progressSemaphore = new Semaphore(1);
136 136

  
137 137
	/**
138
	 * To keep track of the parameters used for the last computing and to determine if the result is dirty. 
138
	 * To keep track of the parameters used for the last computing and to determine if the result is dirty.
139
	 * Also permits to optimize computing by testing if a specific parameter value has changed since last computing and skip or not some computing steps. 
139 140
	 */
140 141
	// FIXME: SJ: actually only used by the chart results. Purpose here is that the chart creators need to know if a computing parameter has changed to recreate or not some entity.
141 142
	// The problem is since the result is already computing, the parameters are already updated and the method hasParameterChanged() will always return false. Using this stack fix the problem.
......
2196 2197
			this.updateLastParameters();
2197 2198

  
2198 2199

  
2199
			if(!skipComputing
2200
					|| this.altered // FIXME: SJ: fix for computing LexicalTable children even if the LT is not dirty but only altered, need to define if it's a temporary fix or not
2201
					)	{
2200
			if(!skipComputing)	{
2202 2201

  
2203 2202
				// store last used parameters
2204 2203
//				this.updateLastParameters();
......
2228 2227
				this.altered = false;
2229 2228
				
2230 2229
				Log.finest("TXMResult.compute(): " + this.getClass().getSimpleName() + ": computing of result type " + this.getClass() + " done.");
2231

  
2230
			}
2231
			
2232
			
2233
			// Children computing
2234
			if(!skipComputing
2235
					|| this.altered // FIXME: SJ: fix for computing LexicalTable children even if the LT is not dirty but only altered, need to define if it's a temporary fix or not
2236
					)	{
2237
			
2232 2238
				// set the children as dirty since the result has changed
2233 2239
				for (int i = 0; i < this.children.size(); i++) {
2234 2240
					this.children.get(i).setDirty();
2235 2241
				}
2236

  
2242
	
2237 2243
				// Children cascade computing (if parent == null then it is the Workspace (Tree root))
2238 2244
				if (deepComputing && this.parent != null) {
2239

  
2245
	
2240 2246
					Log.finest("TXMResult.compute(): " + this.getClass().getSimpleName() + ": cascade computing of " + this.children.size() + " child(ren).");
2241

  
2247
	
2242 2248
					for (int i = 0; i < this.children.size(); i++) {
2243 2249
						this.children.get(i).compute(monitor, deepComputing);
2244 2250
					}
2245

  
2251
	
2246 2252
					// FIXME: SJ: this code generates concurrent modification exceptions when deep computing
2247 2253
					// here for tests purpose, the code above does not generates exceptions
2248 2254
					//				for (TXMResult child : this.getChildren()) {
2249 2255
					//					// recompute only children that has been opened once
2250 2256
					//					child.compute(monitor, deepComputing);
2251 2257
					//				}
2252

  
2258
	
2253 2259
				}
2254 2260
			}
2261
			
2255 2262
		}
2256 2263
		catch (Exception e) {
2257 2264
			e.printStackTrace();
tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java (revision 1529)
821 821
							if(update)	{
822 822

  
823 823
								// popup alert to inform user that the result has been manually edited
824
								if (TXMEditor.this.getResult().isAltered() && !MessageDialog.openQuestion(getShell(), "Warning", "The result have been edited. Changes will be lost. Do you want to continue?")) {
824
								if (TXMEditor.this.getResult().isAltered() && !MessageDialog.openQuestion(getShell(), "Warning", TXMCoreMessages.bind("The {0} has been edited. Its changes will be lost. Do you want to continue?", TXMEditor.this.getResult().getResultype()))) {
825 825
										setCanceled(true);
826 826
								}
827 827
								else	{
828
									
828

  
829
									// FIXME: SJ: this code doesn't work well, commented because a rendering parameter change in CA display the popup because of the Eigenvalues children
829 830
									// popup alert to inform user that children results will be recomputed
830
									if(!TBXPreferences.getInstance().getBoolean(TBXPreferences.EXPERT_USER)
831
											&& TXMEditor.this.getResult().hasChildren() && !MessageDialog.openQuestion(getShell(), "Warning", "All children results based on this one will be recomputed. Do you want to continue?"))	{
832
										setCanceled(true);
833
									}
831
//									if(!TBXPreferences.getInstance().getBoolean(TBXPreferences.EXPERT_USER)
832
//											&& TXMEditor.this.getResult().hasChildren() && !MessageDialog.openQuestion(getShell(), "Warning", "All descendant results will be updated. Do you want to continue?"))	{
833
//										setCanceled(true);
834
//									}
834 835
									
835 836

  
836 837
									// subclasses manual result updating from editor fields
tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/handlers/DeleteLines.java (revision 1529)
38 38
import org.eclipse.ui.handlers.HandlerUtil;
39 39
import org.txm.lexicaltable.rcp.editors.LexicalTableEditor;
40 40
import org.txm.rcp.messages.TXMUIMessages;
41

  
41 42
/**
42
 * Allow the user to delete lines in a Lexical Table.
43
 * Allows the user to delete lines in a Lexical Table.
43 44
 * 
44 45
 * @author mdecorde
45 46
 * @author sjacquot
......
70 71
		return null;
71 72
	}
72 73

  
73
	public static void deleteLexicalTableLines(LexicalTableEditor LTeditor) throws Exception {
74
		int[] selection = LTeditor.getlineTableViewer().getTable()
75
				.getSelectionIndices();
74
	/**
75
	 * 
76
	 * @param editor
77
	 * @throws Exception
78
	 */
79
	public static void deleteLexicalTableLines(LexicalTableEditor editor) throws Exception {
80
		int[] selection = editor.getlineTableViewer().getTable().getSelectionIndices();
76 81
		if (selection.length == 0)
77 82
			return;
78 83

  
79
		if (selection.length == LTeditor.getLexicalTable().getNRows()) {
84
		if (selection.length == editor.getLexicalTable().getNRows()) {
80 85
			System.out.println(TXMUIMessages.theTableMustContainAtLeastOneLine);
81 86
			return;
82 87
		}
......
84 89
		Display d = Display.getCurrent();
85 90
		if (d != null) {
86 91
			Shell shell = d.getActiveShell();
87
			MessageBox messageBox = new MessageBox(shell, SWT.ICON_QUESTION
88
					| SWT.YES | SWT.NO);
92
			MessageBox messageBox = new MessageBox(shell, SWT.ICON_QUESTION | SWT.YES | SWT.NO);
89 93
			messageBox.setMessage(TXMUIMessages.common_areYouSure);
90
			int response = messageBox.open();
91
			if (response != SWT.YES)
94
			if (messageBox.open() != SWT.YES)
92 95
				return;
93 96
		}
94 97

  
95
		LTeditor.getLexicalTable().getData().removeRows(selection);
96
		LTeditor.getLexicalTable().setAltered();
97
		LTeditor.compute(false);
98
		editor.getLexicalTable().getData().removeRows(selection);
99
		editor.getLexicalTable().setAltered();
100
		editor.compute(false);
98 101
	}
99 102

  
100 103
}

Formats disponibles : Unified diff