Révision 558

tmp/org.txm.specificities.core/src/org/txm/specificities/core/functions/Specificities.java (revision 558)
109 109
	
110 110
	protected int pMaxScore;
111 111
	
112
	
113 112
	/**
114 113
	 * Specificities.
115 114
	 *
......
123 122
		this.lexicalTable = lexicalTable;
124 123
		this.pMaxScore = maxScore;
125 124
	}
126

  
127

  
128

  
129 125
	
130 126
	@Override
131 127
	protected boolean _compute(boolean update) throws Exception {
132 128
		
133 129
		// compute the lexical table
134
		lexicalTable.compute(update);
130
		parent.compute(update);
135 131
		
136 132
		if (lexicalTable.getNColumns() < 2) {
137 133
			Log.severe(SpecificitiesCoreMessages.ComputeError_NEED_AT_LEAST_2_PARTS);
tmp/org.txm.core/src/java/org/txm/core/preferences/TXMPreferences.java (revision 558)
932 932
		if(keyExists)	{
933 933
			nodeQualifier = result.getUUID();
934 934
		}
935
		
935 936
		// look in the global alternative preferences nodes
936 937
		else if(!keyExists(nodeQualifier, key))	{
937 938
			for(int i = 0; i < alternativeNodesQualifiers.size(); i++) {
......
942 943
			}
943 944
		}
944 945

  
945
		if(nodeQualifier == null)	{
946
		if (nodeQualifier == null)	{
946 947
			try {
947 948
				System.err.println("TXMPreferences.findNodeQualifier(): no node qualifier has been founded (key = " + key + ", TXMResult = " + result + ").");
948 949
			}
949 950
			catch(Exception e) {
950 951
			}
951 952
		}
952

  
953
		System.out.println("NODE QUALIFIER FOUND: "+nodeQualifier);
953 954
		return nodeQualifier;
954 955
	}
955 956

  
tmp/org.txm.core/src/java/org/txm/core/results/TXMResult.java (revision 558)
15 15

  
16 16
import org.apache.commons.lang.StringUtils;
17 17
import org.eclipse.core.runtime.IProgressMonitor;
18
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
18 19
import org.osgi.framework.FrameworkUtil;
19 20
import org.osgi.service.prefs.BackingStoreException;
20 21
import org.txm.core.preferences.TXMPreferences;
22
import org.txm.objects.Base;
21 23
import org.txm.utils.logger.Log;
22 24

  
23 25
/**
......
74 76
	 * The command preferences node qualifier.
75 77
	 */
76 78
	protected String preferencesNodeQualifier;
79
	//protected IEclipsePreferences preferencesNode;
77 80

  
78 81
	/**
79 82
	 * If set, allows the command to notify its progress.
......
85 88
	private Semaphore progressSemaphore = new Semaphore(1);
86 89

  
87 90
	/**
88
	 * This variable ensure the TXMResult class constructor has been called. A lot of necessary things are done in the TXMREsult constructor.
89
	 */
90
	private boolean constructorCalled;
91

  
92
	/**
93 91
	 * Creates a new TXMResult, child of the specified parent.
94 92
	 * 
95 93
	 * @param parent
96 94
	 */
97 95
	public TXMResult(TXMResult parent) {
96
		if (parent == this) {
97
			throw new IllegalArgumentException("YOU MAD BRO? parent == this");
98
		}
98 99
		this.parent = parent;
99 100
		this.createUUID();
100 101

  
......
104 105
			parent.addChild(this);
105 106
		}
106 107
		this.children = new ArrayList<TXMResult>(1);
108
		//		Base binaryCorpus = this.getBinaryCorpus();
109
		//		if (binaryCorpus != null && this.getClass() != Base.class) {
110
		//			this.preferencesNode = binaryCorpus.getPreferenceScope().getNode(FrameworkUtil.getBundle(getClass()).getSymbolicName());
107 111
		this.preferencesNodeQualifier = FrameworkUtil.getBundle(getClass()).getSymbolicName();
112
		//		}
108 113

  
109
		this.constructorCalled = true; // if not set the compute method will
110 114
		// always return false
111 115
		// FIXME: Debug
112 116
		// System.out.println("TXMResult.TXMResult(): default preferences node qualifier = "
......
121 125
	public TXMResult() {
122 126
		this(null);
123 127
	}
124
	
128

  
125 129
	/**
126 130
	 * Creates and stores an UUID dedicated to persistence for this result.
127 131
	 */
......
230 234
	public void setParameterValue(String key, Object value) {
231 235
		TXMPreferences.putLocal(this, key, value);
232 236
	}
233
	
237

  
234 238
	/**
235 239
	 * sets the value of the specified key in parameters, local result node or
236 240
	 * default preferences nodes.
......
241 245
	public void setParameterValue(String key, List<?> values) {
242 246
		TXMPreferences.putLocal(this, key, StringUtils.join(values, UNDERSCORE));
243 247
	}
244
	
248

  
245 249
	/**
246 250
	 * Gets the value of the specified key in parameters, local result node or
247 251
	 * default preferences nodes.
......
324 328
	 * @return
325 329
	 */
326 330
	public abstract boolean setParameters(TXMParameters parameters);
327
	
331

  
328 332
	/**
329 333
	 * Initialize the @Parameter class members objects using values persisted in the Preference Store
330 334
	 * @return
331 335
	 */
332 336
	public abstract boolean loadParameters();
333 337

  
334
	
338

  
335 339
	/**
336 340
	 * Deletes the object from its parent, also deletes the children. The <code>TXMResult.clean()</code> methods of this result and children results are applied before the deletion.
337 341
	 * 
......
583 587
		} while (parent != null && node == null);
584 588

  
585 589
		return node;
590
	}
586 591

  
592
	/**
593
	 * Gets the first parent of the specified class, eg. this.getFirstParent(Partition.class);
594
	 * Returns the object itself if it is of the specified class.
595
	 * @param type
596
	 * @return null if the TXMResult is not attached to a BinaryCorpus
597
	 */
598
	synchronized public Base getBinaryCorpus() {
599
		Object o = getFirstParent(Base.class);
600
		if (o != null) {
601
			return (Base)o;
602
		} else {
603
			return null;
604
		}
587 605
	}
588 606

  
589 607
	/**
......
870 888
			return true;
871 889
		}
872 890

  
873
		if (!hasBeenConstructorCalled()) {
874
			return false;
875
		}
876

  
877 891
		if (!canCompute()) {
878 892
			// FIXME: Debug
879 893
			System.err.println("TXMResult.compute(): missing or wrong parameters, computing aborted.");
......
881 895
			return false;
882 896
		}
883 897

  
898
//		// TODO THIS IS FUCKING LAZY LINE CODES OH YEAH YOU MAD BRO
899
		// TODO where do we put this parent compute ? :o
900
		//		if (parent != null && !parent.getHasBeenComputedOnce()) { // parent must be computed at least one time
901
		//			this.parent.compute(update, monitor);
902
		//		}
903

  
904
		
884 905
		if (!_compute(update)) {
885 906

  
886 907
			// FIXME: Debug
......
925 946
	// return this.compute(monitor);
926 947
	// }
927 948

  
928
	
929
	
930 949
	/**
931
	 * 
932
	 * @return
933
	 */
934
	protected boolean hasBeenConstructorCalled() {
935
		// TODO Auto-generated method stub
936
		return constructorCalled;
937
	}
938

  
939
	/**
940 950
	 * Copies the parameters from the local preference node if exists. Also fills the non existent parameters with the command default preferences.
941 951
	 */
942 952
	//public abstract void loadParameters();
tmp/org.txm.core/src/java/org/txm/objects/Base.java (revision 558)
68 68
	BaseParameters params;
69 69

  
70 70
	private HashMap<String, Alignement> links = new HashMap<String, Alignement>();
71

  
72
	private BasePreferenceScope scope;
71 73
	
72 74
	public String toString() { return params.name;};
73 75
	
......
88 90
		if (!name.equals(name.toUpperCase())) {
89 91
			System.out.println("Warning in Base.init: binary corpus name contains lower case letters: "+this.name);
90 92
		}
93
		
94
		this.scope = new BasePreferenceScope(this);
91 95
	}
96
	
97
	public BasePreferenceScope getPreferenceScope() {
98
		return scope;
99
	}
92 100

  
93 101
	/**
94 102
	 * Gets the project.
tmp/org.txm.core/src/java/org/txm/objects/BasePreferenceScope.java (revision 558)
1
package org.txm.objects;
2

  
3
import org.eclipse.core.internal.preferences.EclipsePreferences;
4
import org.eclipse.core.runtime.IPath;
5
import org.eclipse.core.runtime.Path;
6
import org.eclipse.core.runtime.Platform;
7
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
8
import org.eclipse.core.runtime.preferences.IScopeContext;
9

  
10
public class BasePreferenceScope implements IScopeContext {
11

  
12
	/**
13
	 * String constant (value of <code>"project"</code>) used for the 
14
	 * scope name for this preference scope.
15
	 */
16
	public static final String SCOPE = "binarycorpus"; //$NON-NLS-1$
17

  
18
	private Base context;
19
	
20
	/**
21
	 * Create and return a new project scope for the given project. The given
22
	 * project must not be <code>null</code>.
23
	 * 
24
	 * @param context the project
25
	 * @exception IllegalArgumentException if the project is <code>null</code>
26
	 */
27
	public BasePreferenceScope(Base context) {
28
		super();
29
		if (context == null) {
30
			throw new IllegalArgumentException("NULL context");
31
		}
32
		this.context = context;
33
	}
34
	
35
	/*
36
	 * @see org.eclipse.core.runtime.IScopeContext#getNode(java.lang.String)
37
	 */
38
	@Override
39
	public IEclipsePreferences getNode(String qualifier) {
40
		if (qualifier == null) {
41
			throw new IllegalArgumentException();
42
		}
43
		return (IEclipsePreferences) Platform.getPreferencesService().getRootNode().node(SCOPE).node(context.getName()).node(qualifier);
44
	}
45

  
46
	/*
47
	 * @see org.eclipse.core.runtime.preferences.IScopeContext#getLocation()
48
	 */
49
	@Override
50
	public IPath getLocation() {
51
		Path location = new Path(context.getBaseDirectory().getAbsolutePath());
52
		return location == null ? null : location.append(EclipsePreferences.DEFAULT_PREFERENCES_DIRNAME);
53
	}
54

  
55
	/*
56
	 * @see org.eclipse.core.runtime.preferences.IScopeContext#getName()
57
	 */
58
	@Override
59
	public String getName() {
60
		return SCOPE;
61
	}
62

  
63
	/* (non-Javadoc)
64
	 * @see java.lang.Object#equals(java.lang.Object)
65
	 */
66
	@Override
67
	public boolean equals(Object obj) {
68
		if (this == obj) {
69
			return true;
70
		}
71
		if (!super.equals(obj)) {
72
			return false;
73
		}
74
		if (!(obj instanceof BasePreferenceScope)) {
75
			return false;
76
		}
77
		BasePreferenceScope other = (BasePreferenceScope) obj;
78
		return context.equals(other.context);
79
	}
80

  
81
	/* (non-Javadoc)
82
	 * @see java.lang.Object#hashCode()
83
	 */
84
	@Override
85
	public int hashCode() {
86
		return super.hashCode() + context.getName().hashCode();
87
	}
88
}
0 89

  
tmp/org.txm.core/src/java/org/txm/objects/Project.java (revision 558)
48 48

  
49 49
/**
50 50
 * The Class Project.
51
 * TODO: remove this class, to be replace with the usage of a IProject
51 52
 */
52 53
public class Project extends TxmObject {
53 54

  
tmp/org.txm.searchengine.cqp.rcp/src/org/txm/searchengine/cqp/rcp/editor/DiagnosticEditor.java (revision 558)
30 30
			this.diag = (Diagnostic) getResultData();
31 31
	}
32 32
	
33
	
34 33
	@Override
35 34
	public void createPartControl(Composite parent) {
36 35
		super.createPartControl(parent);
......
51 50
		
52 51
		browser = new Browser(displayArea, SWT.NONE);
53 52
		browser.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
54
		
55 53
	}
56 54
	
57 55
	@Override
58 56
	public void refresh(boolean update) {
59
		super.refresh();
60 57
		File file = diag.getHTMLFile();
61 58
		if (file.exists()) {
62 59
			browser.setUrl(file.getAbsolutePath());
tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/results/ChartResult.java (revision 558)
61 61
		// FIXME: Debug
62 62
		System.err.println("ChartResult.compute(): computing result of type " + this.getClass() + "...");
63 63

  
64
		// TODO uncomment this
65
//		if (!this.isDirtyFromHistory()) {
66
//
67
//			// FIXME: Debug
68
//			System.err.println("TXMResult.compute(): result parameters have not changed computing skipped.");
69
//
70
//			return true;
71
//		}
72
		
64 73
		if(!this.isDirty())	{
65 74
			
66 75
			// FIXME: Debug
......
70 79
		}
71 80
		else	{
72 81
		
73
			if(!hasBeenConstructorCalled())	{
74
				return false;
75
			}
76
	
77 82
			if (!canCompute()) {
78 83
				// FIXME: Debug
79 84
				System.err.println("ChartResult.compute(): missing or wrong parameters, computing aborted.");
80 85
	
81 86
				return false;
82 87
			}
88
			
89
//			// TODO THIS IS FUCKING LAZY LINE CODES OH YEAH YOU MAD BRO
90
			// TODO where do we put this parent compute ? :o
91
			//		if (parent != null && !parent.getHasBeenComputedOnce()) { // parent must be computed at least one time
92
			//			this.parent.compute(update, monitor);
93
			//		}
83 94
	
84 95
			if (!_compute(update)) {
85 96
				
tmp/org.txm.ca.core/src/org/txm/ca/core/functions/CA.java (revision 558)
39 39
import org.txm.ca.core.statsengine.r.functions.FactoMineRCA;
40 40
import org.txm.ca.core.statsengine.r.functions.ICA;
41 41
import org.txm.chartsengine.core.results.ChartResult;
42
import org.txm.core.results.Parameter;
42 43
import org.txm.core.results.TXMParameters;
43 44
import org.txm.lexicaltable.core.functions.LexicalTable;
44 45
import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
......
82 83
	/** The rowtitles. */
83 84
	String[] rowtitles; // of the rowinfo table
84 85

  
85
	/** The use Factomine R. */
86
	/** The use Factomine R: change this only if you want to use the default R CA package. */
86 87
	boolean useFactoMineR = true;
87 88

  
88

  
89 89
	/**
90
	 * Analysis property.
91
	 */
92
	protected Property pAnalysisProperty;
93

  
94
	/**
95 90
	 * First dimension.
96 91
	 */
92
	@Parameter
97 93
	protected Integer pFirstDimension = 1;
98 94

  
99 95
	/**
100 96
	 * Second dimension.
101 97
	 */
98
	@Parameter
102 99
	protected Integer pSecondDimension = 2;
103

  
104 100
	
105
	
106 101
	/**
107 102
	 * Create a new empty CA.
108 103
	 *
......
111 106
	 */
112 107
	public CA(LexicalTable lexicalTable) throws StatException {
113 108
		super(lexicalTable);
114
		this.pAnalysisProperty = lexicalTable.getProperty();
115 109

  
116 110
		if (useFactoMineR) {
117 111
			ca = new FactoMineRCA(lexicalTable.getData());
118
		}
119
		else {
112
		} else {
120 113
			ca = new org.txm.ca.core.statsengine.r.functions.CA(lexicalTable.getData());
121 114
		}
122 115
	}
......
670 663

  
671 664
	@Override
672 665
	public String getSimpleName() {
673
		if (pAnalysisProperty != null) {
674
			return pAnalysisProperty.getName() + " (" + this.getIntParameterValue(CAPreferences.FIRST_DIMENSION) + "," + this.getIntParameterValue(CAPreferences.SECOND_DIMENSION) + ")";
666
		if (pFirstDimension != null) {
667
			return getParent().getName() + " " + this.pFirstDimension + "," + this.pSecondDimension + ")";
675 668
		}
676 669
		else {
677 670
			return getParent().getName();
......
837 830
		return 
838 831
				this.parent != null
839 832
				&& this.getLexicalTable().getNColumns() > 3
833
				&& this.pFirstDimension > 0
834
				&& this.pSecondDimension > 0
835
				&& this.pFirstDimension != this.pSecondDimension
840 836
				;
841 837
	}
842 838
	
......
844 840
	public boolean saveParameters() {
845 841
		// TODO Auto-generated method stub
846 842
		System.err.println("CA.saveParameters(): not yet implemented.");
843
		this.setParameterValue(CAPreferences.FIRST_DIMENSION, pFirstDimension);
844
		this.setParameterValue(CAPreferences.SECOND_DIMENSION, pSecondDimension);
847 845
		return true;
848 846
	}
849 847

  
......
853 851
		System.err.println("CA.setParameters(): not yet implemented.");
854 852
		return true;
855 853
	}
856
	
854

  
857 855
	@Override
858 856
	public boolean loadParameters() {
859 857
		System.err.println("CA.loadParameters(): not yet implemented.");
860 858
		return true;
861 859
	}
860

  
862 861
}
tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/ComputeTXMResult.java (revision 558)
16 16
			System.out.println("Active editor is not a TXMEditorPart. Aborting.");
17 17
			return null;
18 18
		}
19
		
20
		TXMEditorPart editor = (TXMEditorPart)page;
19

  
20
		TXMEditorPart editor = (TXMEditorPart) page;
21 21
		editor.updateResultFromEditor();
22 22
		editor.compute(true);
23
		
23

  
24 24
		return null;
25 25
	}
26 26
}

Formats disponibles : Unified diff