Révision 1707
tmp/org.txm.ahc.core/src/org/txm/ahc/core/functions/AHC.java (revision 1707) | ||
---|---|---|
683 | 683 |
|
684 | 684 |
@Override |
685 | 685 |
public String getSimpleName() { |
686 |
// FIXME: to define |
|
687 |
// StringBuffer buffer = new StringBuffer(); |
|
688 |
// buffer.append(this.columnsComputing ? "cols" : "rows"); //$NON-NLS-1$ |
|
689 |
// buffer.append(this.method); |
|
690 |
// buffer.append(this.metric); |
|
691 |
// buffer.append(this.numberOfClusters); |
|
692 |
if(this.hasBeenComputedOnce) { |
|
693 |
return this.getName(); |
|
686 |
try { |
|
687 |
return this.getName(); |
|
694 | 688 |
} |
695 |
else {
|
|
689 |
catch (Exception e) {
|
|
696 | 690 |
return this.getEmptyName(); |
697 |
} |
|
698 |
|
|
691 |
} |
|
699 | 692 |
} |
700 | 693 |
|
701 | 694 |
@Override |
tmp/org.txm.core/src/java/org/txm/objects/Project.java (revision 1707) | ||
---|---|---|
176 | 176 |
|
177 | 177 |
initRCPStuffs(); |
178 | 178 |
|
179 |
// FIXME: SJ: this code doesn't flush the other nodes (EditionsPreferences, Tokenizer, etc. see if it's a problem at this stage or not) |
|
180 | 179 |
this.autoSaveParametersFromAnnotations(); |
181 | 180 |
this.saveParameters(); |
182 | 181 |
TXMPreferences.flush(this); |
... | ... | |
367 | 366 |
} |
368 | 367 |
|
369 | 368 |
/** |
370 |
* Loads and create the persisted results from the preferences service. |
|
369 |
* Loads and creates the persisted results from the preferences service.
|
|
371 | 370 |
*/ |
372 | 371 |
public void loadResults(Class clazz) { |
373 |
// if (TBXPreferences.getInstance().getBoolean(TBXPreferences.AUTO_PERSISTENCE_ENABLED)) { |
|
372 |
|
|
374 | 373 |
Log.finest("*** Project.loadResults(): reloading project persitent results..."); |
375 | 374 |
|
376 |
IWorkspace rcpWorkspace = ResourcesPlugin.getWorkspace(); |
|
377 |
// IProject projects[] = rcpWorkspace.getRoot().getProjects(); |
|
378 |
|
|
379 |
// Log.fine("Toolbox.initialize(): " + projects.length + " project(s) found in workspace."); |
|
380 |
|
|
381 | 375 |
ArrayList<String> resultNodePaths = TXMPreferences.getAllResultsNodePaths(this.getParametersNodeRootPath()); |
382 | 376 |
|
383 | 377 |
Log.fine("Loading " + resultNodePaths.size() + " result(s) from project " + this.getName() + "..."); |
384 | 378 |
|
385 |
|
|
379 |
//TXMPreferences.dump(); |
|
380 |
|
|
386 | 381 |
ArrayList<String> errors = new ArrayList<String>(); |
387 |
for (String parametersNodePath : resultNodePaths) {
|
|
382 |
for (String resultNodePath : resultNodePaths) {
|
|
388 | 383 |
|
389 |
// skip non-TXMResult preference node |
|
390 |
// if (TXMPreferences.getString(TXMPreferences.BUNDLE_ID, nodeQualifier).isEmpty()) { |
|
391 |
// continue; |
|
392 |
// } |
|
393 |
|
|
394 | 384 |
try { |
395 |
Preferences node = TXMPreferences.preferencesRootNode.node(parametersNodePath); |
|
396 |
String className = node.get("class", ""); //$NON-NLS-1$ |
|
385 |
Preferences node = TXMPreferences.preferencesRootNode.node(resultNodePath); |
|
397 | 386 |
|
387 |
|
|
388 |
String className = node.get("class", ""); //$NON-NLS-1$ //$NON-NLS-2$ |
|
389 |
|
|
398 | 390 |
// Skip Project object |
399 | 391 |
if (Project.class.getName().equals(className)) { // already loaded in loadProjectFromProjectScope |
400 | 392 |
continue; |
401 | 393 |
} |
402 | 394 |
|
403 | 395 |
if (className == null || className.length() == 0) { |
404 |
errors.add(NLS.bind("Warning: can not restore object with no class name set with path={0}.", parametersNodePath)); //$NON-NLS-1$
|
|
396 |
errors.add(NLS.bind("Warning: can not restore object with no class name set with path={0}.", resultNodePath)); //$NON-NLS-1$
|
|
405 | 397 |
node.removeNode(); |
406 | 398 |
continue; |
407 | 399 |
} |
... | ... | |
410 | 402 |
continue; // only load the result of class=clazz |
411 | 403 |
} |
412 | 404 |
|
413 |
Log.fine("\nProject.loadResults(): loading from result node qualifier " + parametersNodePath);
|
|
405 |
Log.fine("\nProject.loadResults(): loading from result node qualifier " + resultNodePath);
|
|
414 | 406 |
//Log.finest("Toolbox.initialize(): class = " + TXMPreferences.getString("class", nodeQualifier)); |
415 | 407 |
//TXMPreferences.dump(); |
416 |
TXMResult result = TXMResult.getResult(this, parametersNodePath);
|
|
408 |
TXMResult result = TXMResult.getResult(this, resultNodePath);
|
|
417 | 409 |
if (result != null) { // result already restored |
418 | 410 |
continue; |
419 | 411 |
} |
... | ... | |
436 | 428 |
|
437 | 429 |
Class<?> cl = bundle.loadClass(className); |
438 | 430 |
Constructor<?> cons = cl.getConstructor(String.class); |
439 |
result = (TXMResult) cons.newInstance(parametersNodePath);
|
|
431 |
result = (TXMResult) cons.newInstance(resultNodePath);
|
|
440 | 432 |
|
441 | 433 |
// not an internal persistence (eg. corpus or partition) |
442 | 434 |
if (!result.isInternalPersistable()) { |
... | ... | |
449 | 441 |
} |
450 | 442 |
if (errors.size() > 0) { |
451 | 443 |
for (int i = 0 ; i < 20 && i < errors.size() ; i++) { |
452 |
Log.warning(errors.get(i));
|
|
444 |
Log.fine(errors.get(i));
|
|
453 | 445 |
} |
454 | 446 |
if (errors.size() > 20) { |
455 |
Log.warning("more: "+(errors.size()-20)+"...");
|
|
447 |
Log.fine("more: "+(errors.size()-20)+"...");
|
|
456 | 448 |
} |
457 | 449 |
} |
458 | 450 |
|
tmp/org.txm.chartsengine.svgbatik.rcp/src/org/txm/chartsengine/svgbatik/rcp/swing/SVGPanel.java (revision 1707) | ||
---|---|---|
51 | 51 |
import org.w3c.dom.svg.SVGDocument; |
52 | 52 |
|
53 | 53 |
/** |
54 |
* SVG Batik Swing panel. |
|
54 |
* SVG Batik SVG canvas swing panel.
|
|
55 | 55 |
*/ |
56 |
public class SVGPanel extends JPanel implements IChartComponent {
|
|
56 |
public class SVGPanel extends JSVGCanvas implements IChartComponent {
|
|
57 | 57 |
|
58 | 58 |
protected boolean squareOffEnabled; |
59 | 59 |
|
... | ... | |
70 | 70 |
/** |
71 | 71 |
* The Batik SVG canvas. |
72 | 72 |
*/ |
73 |
protected JSVGCanvas svgCanvas; |
|
73 |
//protected JSVGCanvas svgCanvas;
|
|
74 | 74 |
|
75 | 75 |
|
76 | 76 |
/** |
... | ... | |
90 | 90 |
* @param frame the frame |
91 | 91 |
*/ |
92 | 92 |
public SVGPanel() { |
93 |
super(new BorderLayout()); |
|
93 |
//super(new BorderLayout()); |
|
94 |
super(null, true, false); |
|
95 |
|
|
96 |
//this.svgCanvas = new JSVGCanvas(null, true, false); |
|
97 |
//this.add("Center", svgCanvas); //$NON-NLS-1$ |
|
94 | 98 |
|
95 |
this.svgCanvas = new JSVGCanvas(null, true, false); |
|
96 |
this.add("Center", svgCanvas); //$NON-NLS-1$ |
|
97 |
|
|
98 | 99 |
// TODO: needed for automatic refresh after dynamically modifying the SVG DOM |
99 | 100 |
//svgCanvas.setDocumentState(JSVGCanvas.ALWAYS_DYNAMIC); |
100 | 101 |
|
101 |
List<Interactor> list = svgCanvas.getInteractors();
|
|
102 |
List<Interactor> list = this.getInteractors();
|
|
102 | 103 |
list.clear(); |
103 | 104 |
|
104 | 105 |
|
... | ... | |
216 | 217 |
|
217 | 218 |
|
218 | 219 |
|
220 |
// |
|
221 |
// |
|
222 |
// /** |
|
223 |
// * Loads SVG document from the specified URL. |
|
224 |
// * |
|
225 |
// * @param url the url |
|
226 |
// */ |
|
227 |
// public void loadSVGDocument(String url) { |
|
228 |
// this.svgCanvas.loadSVGDocument(url); |
|
229 |
// } |
|
230 |
// |
|
231 |
// |
|
232 |
// /** |
|
233 |
// * Returns the SVG document. |
|
234 |
// * @return |
|
235 |
// */ |
|
236 |
// public SVGDocument getSVGDocument() { |
|
237 |
// return this.svgCanvas.getSVGDocument(); |
|
238 |
// } |
|
219 | 239 |
|
220 | 240 |
|
221 |
/** |
|
222 |
* Loads SVG document from the specified URL. |
|
223 |
* |
|
224 |
* @param url the url |
|
225 |
*/ |
|
226 |
public void loadSVGDocument(String url) { |
|
227 |
this.svgCanvas.loadSVGDocument(url); |
|
228 |
} |
|
229 |
|
|
230 |
|
|
231 |
/** |
|
232 |
* Returns the SVG document. |
|
233 |
* @return |
|
234 |
*/ |
|
235 |
public SVGDocument getSVGDocument() { |
|
236 |
return this.svgCanvas.getSVGDocument(); |
|
237 |
} |
|
238 |
|
|
239 |
|
|
240 | 241 |
// ---------------------------------------------------------------------- |
241 | 242 |
// Interactors |
242 | 243 |
// ---------------------------------------------------------------------- |
... | ... | |
303 | 304 |
}; |
304 | 305 |
|
305 | 306 |
|
306 |
/** |
|
307 |
* @return the svgCanvas |
|
308 |
*/ |
|
309 |
public JSVGCanvas getSVGCanvas() { |
|
310 |
return svgCanvas; |
|
311 |
} |
|
307 |
// /** |
|
308 |
// * @return the svgCanvas |
|
309 |
// */ |
|
310 |
// public JSVGCanvas getSVGCanvas() { |
|
311 |
// return svgCanvas; |
|
312 |
// } |
|
313 |
// |
|
312 | 314 |
|
313 | 315 |
|
314 | 316 |
|
315 |
|
|
316 | 317 |
/** |
317 | 318 |
* Resets pan and zoom. |
318 | 319 |
*/ |
... | ... | |
320 | 321 |
this.zoom = 0; |
321 | 322 |
AffineTransform trans = AffineTransform.getTranslateInstance(0, 0); |
322 | 323 |
trans.scale(1, 1); |
323 |
this.svgCanvas.setRenderingTransform(trans);
|
|
324 |
this.setRenderingTransform(trans); |
|
324 | 325 |
|
325 | 326 |
// Square unit axis ratio constraint |
326 | 327 |
if(this.squareOffEnabled) { |
... | ... | |
344 | 345 |
|
345 | 346 |
|
346 | 347 |
if(zoomIn) { |
347 |
trans.scale(this.svgCanvas.getRenderingTransform().getScaleX() * 1.1, this.svgCanvas.getRenderingTransform().getScaleY() * 1.1);
|
|
348 |
trans.scale(this.getRenderingTransform().getScaleX() * 1.1, this.getRenderingTransform().getScaleY() * 1.1);
|
|
348 | 349 |
} |
349 | 350 |
else { |
350 |
trans.scale(this.svgCanvas.getRenderingTransform().getScaleX() * 0.9, this.svgCanvas.getRenderingTransform().getScaleY() * 0.9);
|
|
351 |
trans.scale(this.getRenderingTransform().getScaleX() * 0.9, this.getRenderingTransform().getScaleY() * 0.9);
|
|
351 | 352 |
} |
352 | 353 |
|
353 | 354 |
// trans.translate(-x + this.svgCanvas.getRenderingTransform().getTranslateX(), -y + this.svgCanvas.getRenderingTransform().getTranslateY()); |
... | ... | |
358 | 359 |
|
359 | 360 |
|
360 | 361 |
if(trans.getDeterminant() != 0) { |
361 |
this.svgCanvas.setRenderingTransform(trans);
|
|
362 |
this.setRenderingTransform(trans); |
|
362 | 363 |
} |
363 | 364 |
} |
364 | 365 |
|
... | ... | |
389 | 390 |
trans.translate(-x, -y); |
390 | 391 |
|
391 | 392 |
if(trans.getDeterminant() != 0) { |
392 |
this.svgCanvas.setRenderingTransform(trans);
|
|
393 |
this.setRenderingTransform(trans); |
|
393 | 394 |
} |
394 | 395 |
} |
395 | 396 |
|
... | ... | |
397 | 398 |
@Override |
398 | 399 |
public void pan(double srcX, double srcY, double dstX, double dstY, double panFactor) { |
399 | 400 |
|
400 |
AffineTransform trans = this.svgCanvas.getRenderingTransform();
|
|
401 |
AffineTransform trans = this.getRenderingTransform(); |
|
401 | 402 |
trans.translate(-dstX * panFactor, dstY * panFactor); |
402 |
this.svgCanvas.setRenderingTransform(trans);
|
|
403 |
this.setRenderingTransform(trans); |
|
403 | 404 |
|
404 | 405 |
} |
405 | 406 |
|
tmp/org.txm.chartsengine.svgbatik.rcp/src/org/txm/chartsengine/svgbatik/rcp/swt/SVGComposite.java (revision 1707) | ||
---|---|---|
1 | 1 |
package org.txm.chartsengine.svgbatik.rcp.swt; |
2 |
import java.awt.Component; |
|
3 |
import java.awt.Graphics2D; |
|
4 |
import java.awt.Toolkit; |
|
5 |
import java.awt.datatransfer.DataFlavor; |
|
6 |
import java.awt.datatransfer.Transferable; |
|
7 |
import java.awt.datatransfer.UnsupportedFlavorException; |
|
8 |
import java.awt.image.BufferedImage; |
|
9 | 2 |
import java.io.File; |
10 |
import java.io.IOException; |
|
11 | 3 |
import java.net.MalformedURLException; |
12 | 4 |
|
13 | 5 |
import org.eclipse.swt.widgets.Composite; |
14 |
import org.txm.chartsengine.rcp.IChartComponent; |
|
15 | 6 |
import org.txm.chartsengine.rcp.editors.ChartEditor; |
16 | 7 |
import org.txm.chartsengine.rcp.swt.SwingChartComposite; |
17 | 8 |
import org.txm.chartsengine.svgbatik.rcp.swing.SVGPanel; |
tmp/org.txm.chartsengine.svgbatik.rcp/src/org/txm/chartsengine/svgbatik/rcp/SVGSWTChartsComponentsProvider.java (revision 1707) | ||
---|---|---|
152 | 152 |
//((Element)this.composite.getSVGDocument().getFirstChild()).setAttribute("viewBox", "20 20 400 350"); // FIXME : how to get the correct area after the charts has been zoomed or moved ? |
153 | 153 |
|
154 | 154 |
// Adjust dimensions from component |
155 |
((Element)composite.getSVGDocument().getFirstChild()).setAttribute("width", String.valueOf(composite.getPanel().getSVGCanvas().getWidth()));
|
|
156 |
((Element)composite.getSVGDocument().getFirstChild()).setAttribute("height", String.valueOf(composite.getPanel().getSVGCanvas().getHeight()));
|
|
155 |
((Element)composite.getSVGDocument().getFirstChild()).setAttribute("width", String.valueOf(composite.getPanel().getWidth())); |
|
156 |
((Element)composite.getSVGDocument().getFirstChild()).setAttribute("height", String.valueOf(composite.getPanel().getHeight())); |
|
157 | 157 |
|
158 | 158 |
|
159 | 159 |
TranscoderInput input = new TranscoderInput(composite.getSVGDocument()); |
Formats disponibles : Unified diff