Révision 3730
TXM/trunk/bundles/org.txm.core/src/java/org/txm/core/results/TXMResult.java (revision 3730) | ||
---|---|---|
2392 | 2392 |
} |
2393 | 2393 |
|
2394 | 2394 |
if (!skipComputing) { |
2395 |
|
|
2396 |
// Debug |
|
2397 |
Log.finest("+++ TXMResult.compute(): " + this.getClass().getSimpleName() + ": computing result of type " + this.getClass() + "..."); |
|
2395 | 2398 |
|
2396 | 2399 |
// Computing requirements test |
2397 | 2400 |
if (!this.canCompute()) { |
... | ... | |
2429 | 2432 |
this.computing = false; |
2430 | 2433 |
return false; |
2431 | 2434 |
} |
2432 |
else { |
|
2433 |
// Debug |
|
2434 |
Log.finest("+++ TXMResult.compute(): " + this.getClass().getSimpleName() + ": computing result of type " + this.getClass() + "..."); |
|
2435 |
} |
|
2436 | 2435 |
} |
2437 | 2436 |
else { |
2438 | 2437 |
mainSubMonitor.setWorkRemaining(1); |
TXM/trunk/bundles/org.txm.core/src/java/org/txm/core/messages/messages.properties (revision 3730) | ||
---|---|---|
22 | 22 |
common_noResults=No results. |
23 | 23 |
common_numberOfLines=Number of lines |
24 | 24 |
common_ok=OK |
25 |
common_defaultFont=Default font |
|
25 | 26 |
common_P0ItemsForP1Occurrences={0} item for {1} occurrences. |
26 | 27 |
common_P0Occurrences={0} occurrences. |
27 | 28 |
common_P0Positions=Number of occurrences\: [{0}]. |
TXM/trunk/bundles/org.txm.core/src/java/org/txm/core/messages/TXMCoreMessages.java (revision 3730) | ||
---|---|---|
27 | 27 |
|
28 | 28 |
public static String common_cols; |
29 | 29 |
|
30 |
public static String common_defaultFont; |
|
31 |
|
|
30 | 32 |
public static String common_delete; |
31 | 33 |
|
32 | 34 |
public static String common_description; |
TXM/trunk/bundles/org.txm.core/src/java/org/txm/core/messages/messages_fr.properties (revision 3730) | ||
---|---|---|
22 | 22 |
common_noResults=Aucun résultat. |
23 | 23 |
common_numberOfLines=Nombre de lignes |
24 | 24 |
common_ok=OK |
25 |
common_defaultFont=Police par défaut |
|
25 | 26 |
common_P0ItemsForP1Occurrences={0} items pour {1} occurrences. |
26 | 27 |
common_P0Occurrences={0} occurrences. |
27 | 28 |
common_P0Positions=Nombre d'occurrences \: [{0}]. |
TXM/trunk/bundles/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/swt/AdvancedChartEditorToolBar.java (revision 3730) | ||
---|---|---|
118 | 118 |
} |
119 | 119 |
|
120 | 120 |
|
121 |
// Font selection
|
|
121 |
// Logical user-friendly font selection
|
|
122 | 122 |
final Font currentFont = ChartsEngine.createFont(chartEditor.getResult().getFont()); |
123 | 123 |
|
124 |
// FIXME: SJ: may be better here to get the fonts from SWT rather than from Java, see java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts(); |
|
125 | 124 |
final Combo fontCombo = new Combo(this, SWT.READ_ONLY); |
126 |
String fonts[] = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames(); |
|
125 |
|
|
126 |
// transpose logical font name to user-friendly name |
|
127 |
String fonts[] = new String[] {"Arial", "Courier", "Times"}; // SansSerif,Monospaced,Serif |
|
128 |
|
|
127 | 129 |
fontCombo.setItems(fonts); |
128 | 130 |
|
129 | 131 |
this.addControl(fontCombo); |
130 |
|
|
132 |
|
|
131 | 133 |
int currentFontIndex = 0; |
132 |
for (int i = 0; i < fonts.length; i++) { |
|
133 |
if (fonts[i].equals(currentFont.getName())) { |
|
134 |
currentFontIndex = i; |
|
135 |
break; |
|
136 |
} |
|
134 |
if(currentFont.getName().equals("Monospaced")) { |
|
135 |
currentFontIndex = 1; |
|
137 | 136 |
} |
137 |
else if(currentFont.getName().equals("Times")) { |
|
138 |
currentFontIndex = 2; |
|
139 |
} |
|
140 |
|
|
138 | 141 |
fontCombo.select(currentFontIndex); |
139 | 142 |
|
140 | 143 |
|
... | ... | |
244 | 247 |
} |
245 | 248 |
|
246 | 249 |
|
250 |
|
|
251 |
// Advanced font selection |
|
252 |
final Combo advancedFontCombo = new Combo(this, SWT.READ_ONLY); |
|
253 |
if (TBXPreferences.getInstance().getBoolean(TBXPreferences.EXPERT_USER)) { |
|
254 |
|
|
255 |
String advancedFonts[] = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames(); |
|
256 |
|
|
257 |
advancedFontCombo.setItems(advancedFonts); |
|
258 |
this.addControl(advancedFontCombo); |
|
259 |
|
|
260 |
int currentAllFontIndex = 0; |
|
261 |
for (int i = 0; i < advancedFonts.length; i++) { |
|
262 |
if (advancedFonts[i].equals(currentFont.getName())) { |
|
263 |
currentAllFontIndex = i; |
|
264 |
break; |
|
265 |
} |
|
266 |
} |
|
267 |
|
|
268 |
advancedFontCombo.select(currentAllFontIndex); |
|
269 |
|
|
270 |
} |
|
271 |
|
|
247 | 272 |
|
248 | 273 |
|
249 | 274 |
// Listeners |
... | ... | |
270 | 295 |
// end of FIXME |
271 | 296 |
|
272 | 297 |
// Font |
273 |
else if (e.getSource() == fontCombo || e.getSource() == fontSizeCombo || e.getSource() == fontStyleCombo) { |
|
274 |
getEditorPart().getResult().setFont("1|" + fontCombo.getItem(fontCombo.getSelectionIndex()) + "|" + fontSizeCombo.getItem(fontSizeCombo.getSelectionIndex()) + "|" + fontStyleCombo.getSelectionIndex()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ |
|
298 |
else if (e.getSource() == fontCombo || e.getSource() == fontSizeCombo || e.getSource() == fontStyleCombo || e.getSource() == advancedFontCombo) { |
|
299 |
|
|
300 |
String fontName; |
|
301 |
if(e.getSource() == advancedFontCombo) { |
|
302 |
fontName = advancedFontCombo.getItem(advancedFontCombo.getSelectionIndex()); |
|
303 |
} |
|
304 |
// transpose user-friendly name to logical font name |
|
305 |
else { |
|
306 |
if(fontCombo.getSelectionIndex() == 0) { |
|
307 |
fontName = "SansSerif"; |
|
308 |
} |
|
309 |
else if(fontCombo.getSelectionIndex() == 1) { |
|
310 |
fontName = "Monospaced"; |
|
311 |
} |
|
312 |
else { |
|
313 |
fontName = "Serif"; |
|
314 |
} |
|
315 |
} |
|
316 |
|
|
317 |
getEditorPart().getResult().setFont("1|" + fontName + "|" + fontSizeCombo.getItem(fontSizeCombo.getSelectionIndex()) + "|" + fontStyleCombo.getSelectionIndex()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ |
|
318 |
|
|
275 | 319 |
} |
276 | 320 |
// Chart type / chart creators |
277 | 321 |
else if (e.getSource() == chartTypeCombo) { |
... | ... | |
293 | 337 |
|| e.getSource() == renderingModeCombo |
294 | 338 |
|| e.getSource() == fontSizeCombo |
295 | 339 |
|| e.getSource() == fontStyleCombo |
296 |
|| e.getSource() == chartTypeCombo) { |
|
340 |
|| e.getSource() == chartTypeCombo |
|
341 |
|| e.getSource() == advancedFontCombo) { |
|
297 | 342 |
// updates or creates chart |
298 | 343 |
getEditorPart().compute(update); |
299 | 344 |
getEditorPart().setFocus(); |
... | ... | |
331 | 376 |
// if (chartTypeCombo.isVisible()) { |
332 | 377 |
chartTypeCombo.addSelectionListener(listener); |
333 | 378 |
// } |
379 |
advancedFontCombo.addSelectionListener(listener); |
|
334 | 380 |
} |
335 | 381 |
|
336 | 382 |
|
TXM/trunk/bundles/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/preferences/ChartsEnginePreferencePage.java (revision 3730) | ||
---|---|---|
1 | 1 |
package org.txm.chartsengine.rcp.preferences; |
2 | 2 |
|
3 |
import java.util.ArrayList; |
|
4 | 3 |
import java.util.Map; |
5 |
import java.util.TreeSet; |
|
6 | 4 |
|
7 |
import org.eclipse.core.runtime.preferences.InstanceScope; |
|
8 | 5 |
import org.eclipse.jface.preference.ColorFieldEditor; |
9 | 6 |
import org.eclipse.jface.preference.ComboFieldEditor; |
10 | 7 |
import org.eclipse.jface.preference.FontFieldEditor; |
11 |
import org.eclipse.jface.preference.ListEditor;
|
|
8 |
import org.eclipse.jface.resource.JFaceResources;
|
|
12 | 9 |
import org.eclipse.jface.util.PropertyChangeEvent; |
10 |
import org.eclipse.swt.graphics.Font; |
|
13 | 11 |
import org.eclipse.ui.IWorkbench; |
14 | 12 |
import org.txm.chartsengine.core.ChartsEngine; |
15 | 13 |
import org.txm.chartsengine.core.ChartsEnginesManager; |
16 | 14 |
import org.txm.chartsengine.core.preferences.ChartsEnginePreferences; |
17 | 15 |
import org.txm.chartsengine.rcp.SWTChartsComponentsProvider; |
18 | 16 |
import org.txm.chartsengine.rcp.messages.ChartsUIMessages; |
19 |
import org.txm.core.preferences.TXMPreferences;
|
|
17 |
import org.txm.core.messages.TXMCoreMessages;
|
|
20 | 18 |
import org.txm.rcp.preferences.TXMPreferencePage; |
21 | 19 |
import org.txm.rcp.preferences.TXMPreferenceStore; |
22 | 20 |
import org.txm.utils.logger.Log; |
... | ... | |
108 | 106 |
|
109 | 107 |
// Monochrome color |
110 | 108 |
this.addField(new ColorFieldEditor(ChartsEnginePreferences.MONOCHROME_COLOR, ChartsUIMessages.monochromeRenderingColor, this.getFieldEditorParent())); |
109 |
|
|
111 | 110 |
|
112 |
FontFieldEditor font = new FontFieldEditor(ChartsEnginePreferences.FONT, "Font", "Specificities / Spécificités / Специфичность", this.getFieldEditorParent()); //$NON-NLS-1$ //$NON-NLS-2$ |
|
113 |
this.addField(font); |
|
114 |
// FIXME: SJ: preview area tests |
|
115 |
// font.fillIntoGrid(this.getFieldEditorParent(), 4); |
|
116 |
// ((Text)font.getPreviewControl()).setLayoutData(new GridData(GridData.FILL_BOTH)); |
|
117 |
// System.out.println("ChartsEnginePreferencePage.createFieldEditors() " + font.getPreviewControl()); |
|
118 |
|
|
119 |
|
|
111 |
// FontFieldEditor font = new FontFieldEditor(ChartsEnginePreferences.FONT, "Font", "Specificities / Spécificités / Специфичность", this.getFieldEditorParent()); //$NON-NLS-2$ |
|
112 |
// //FontFieldEditor font = new FontFieldEditor(ChartsEnginePreferences.FONT, "Font", "Specificities / Spécificités / Специфичность / 仕様 / 特別說明 / विशिष्टता", this.getFieldEditorParent()); //$NON-NLS-2$ |
|
113 |
// this.addField(font); |
|
114 |
// // FIXME: SJ: preview area tests |
|
115 |
// //font.fillIntoGrid(this.getFieldEditorParent(), 4); |
|
116 |
// // ((Text)font.getPreviewControl()).setLayoutData(new GridData(GridData.FILL_BOTH)); |
|
117 |
// // System.out.println("ChartsEnginePreferencePage.createFieldEditors() " + font.getPreviewControl()); |
|
118 |
|
|
119 |
// transpose logical font name to user-friendly name |
|
120 |
String logicalFonts[][] = new String[3][2]; |
|
121 |
logicalFonts[0][0] = "Arial"; |
|
122 |
logicalFonts[0][1] = "1|SansSerif|14|0"; //$NON-NLS-1$ |
|
123 |
logicalFonts[1][0] = "Courier"; |
|
124 |
logicalFonts[1][1] = "1|Monospaced|14|0"; //$NON-NLS-1$ |
|
125 |
logicalFonts[2][0] = "Times"; |
|
126 |
logicalFonts[2][1] = "1|Serif|14|0"; //$NON-NLS-1$ |
|
127 |
ComboFieldEditor fontComboField = new ComboFieldEditor(ChartsEnginePreferences.FONT, TXMCoreMessages.common_defaultFont, logicalFonts, this.getFieldEditorParent()); |
|
128 |
this.addField(fontComboField); |
|
129 |
|
|
120 | 130 |
} |
131 |
|
|
121 | 132 |
|
122 | 133 |
/** |
123 | 134 |
* Creates the export format combo box according the specified charts engine. |
TXM/trunk/bundles/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/themes/base/JFCTheme.java (revision 3730) | ||
---|---|---|
143 | 143 |
|
144 | 144 |
Font baseFont = ChartsEngine.createFont(result.getFont()); |
145 | 145 |
|
146 |
// System.err.println("JFCTheme.createFonts(): Font = " + baseFont); |
|
147 |
|
|
146 | 148 |
// Titles |
147 | 149 |
this.setExtraLargeFont(baseFont.deriveFont(baseFont.getStyle(), baseFont.getSize() + 5)); |
148 | 150 |
|
TXM/trunk/bundles/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/themes/highcharts/defaulttheme/HighchartsDefaultTheme.java (revision 3730) | ||
---|---|---|
6 | 6 |
import java.awt.Shape; |
7 | 7 |
import java.awt.Stroke; |
8 | 8 |
import java.awt.geom.Ellipse2D; |
9 |
import java.text.DecimalFormat; |
|
10 |
import java.text.DecimalFormatSymbols; |
|
11 |
import java.text.NumberFormat; |
|
9 | 12 |
import java.util.ArrayList; |
10 | 13 |
import java.util.HashMap; |
14 |
import java.util.Locale; |
|
11 | 15 |
|
12 | 16 |
import org.jfree.chart.JFreeChart; |
13 | 17 |
import org.jfree.chart.axis.CategoryLabelPositions; |
18 |
import org.jfree.chart.axis.NumberAxis; |
|
14 | 19 |
import org.jfree.chart.axis.SymbolAxis; |
15 | 20 |
import org.jfree.chart.block.BlockBorder; |
16 | 21 |
import org.jfree.chart.plot.CategoryPlot; |
... | ... | |
283 | 288 |
plot.getRangeAxis().setTickMarkOutsideLength(5); |
284 | 289 |
plot.getRangeAxis().setTickLabelFont(regularFont.deriveFont(Font.BOLD)); |
285 | 290 |
|
291 |
|
|
292 |
// SJ: to fix a bug with unbreakable space thousand separator that is displayed as a white square glyph with some fonts |
|
293 |
NumberAxis range = (NumberAxis) plot.getRangeAxis(); |
|
294 |
DecimalFormat formatter = (DecimalFormat) DecimalFormat.getInstance(); |
|
295 |
DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols(); |
|
296 |
|
|
297 |
if((int)symbols.getGroupingSeparator() == 8239) { //unbreakable space char code |
|
298 |
symbols.setGroupingSeparator(' '); |
|
299 |
formatter.setDecimalFormatSymbols(symbols); |
|
300 |
range.setNumberFormatOverride(formatter); |
|
301 |
} |
|
302 |
|
|
303 |
|
|
286 | 304 |
plot.getDomainAxis().setAxisLinePaint(Color.decode("#C0D0E0")); |
287 | 305 |
plot.getDomainAxis().setTickMarkPaint(Color.decode("#C0D0E0")); |
288 | 306 |
plot.getDomainAxis().setTickMarkOutsideLength(5); |
... | ... | |
453 | 471 |
// Used for item selection mouse over |
454 | 472 |
renderer.setDefaultOutlinePaint(Color.WHITE); |
455 | 473 |
|
474 |
|
|
456 | 475 |
} |
457 | 476 |
|
458 | 477 |
|
TXM/trunk/bundles/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/themes/highcharts/defaulttheme/renderers/ItemSelectionXYBarRenderer.java (revision 3730) | ||
---|---|---|
4 | 4 |
import java.awt.Paint; |
5 | 5 |
import java.awt.Shape; |
6 | 6 |
import java.text.DecimalFormat; |
7 |
import java.text.NumberFormat; |
|
7 | 8 |
|
8 | 9 |
import org.jfree.chart.LegendItem; |
10 |
import org.jfree.chart.axis.NumberAxis; |
|
9 | 11 |
import org.jfree.chart.axis.SymbolAxis; |
10 | 12 |
import org.jfree.chart.labels.XYSeriesLabelGenerator; |
11 | 13 |
import org.jfree.chart.labels.XYToolTipGenerator; |
... | ... | |
45 | 47 |
|
46 | 48 |
// Tooltips |
47 | 49 |
this.initToolTipGenerator(this); |
50 |
|
|
48 | 51 |
} |
49 | 52 |
|
50 | 53 |
|
TXM/trunk/bundles/org.txm.chartsengine.core/src/org/txm/chartsengine/core/preferences/ChartsEnginePreferences.java (revision 3730) | ||
---|---|---|
126 | 126 |
preferences.put(MONOCHROME_COLOR, "0,220,20"); //$NON-NLS-1$ |
127 | 127 |
preferences.putBoolean(MULTIPLE_LINE_STROKES, false); |
128 | 128 |
|
129 |
//FIXME: SJ: old version |
|
129 | 130 |
// Check the target OS and set the default font using encoded String in JFace StringConverter format (?|Font name|size|style|?|?|...) |
130 |
String defaultFont; |
|
131 |
if (OSDetector.isFamilyUnix()) { |
|
132 |
defaultFont = "1|Lucida Sans|11.0|1|GTK|1|"; //$NON-NLS-1$ |
|
133 |
} |
|
134 |
else { |
|
135 |
defaultFont = "1|Lucida Sans Unicode|11.0|1|WINDOWS|1|-16|0|0|0|400|0|0|0|0|3|2|1|34|Lucida Sans Unicode;"; //$NON-NLS-1$ |
|
136 |
} |
|
131 |
// String defaultFont;
|
|
132 |
// if (OSDetector.isFamilyUnix()) {
|
|
133 |
// defaultFont = "1|Lucida Sans|11.0|1|GTK|1|"; //$NON-NLS-1$
|
|
134 |
// }
|
|
135 |
// else {
|
|
136 |
// defaultFont = "1|Lucida Sans Unicode|11.0|1|WINDOWS|1|-16|0|0|0|400|0|0|0|0|3|2|1|34|Lucida Sans Unicode;"; //$NON-NLS-1$
|
|
137 |
// }
|
|
137 | 138 |
|
139 |
String defaultFont = "1|SansSerif|14|0"; |
|
140 |
|
|
141 |
|
|
138 | 142 |
preferences.put(FONT, defaultFont); |
139 | 143 |
} |
140 | 144 |
|
TXM/trunk/bundles/org.txm.chartsengine.core/src/org/txm/chartsengine/core/results/ChartResult.java (revision 3730) | ||
---|---|---|
484 | 484 |
* @param chartType the chartType to set |
485 | 485 |
*/ |
486 | 486 |
public void setChartType(String chartType) { |
487 |
if (!this.chartType.equals(chartType)) { |
|
488 |
// TODO find a better way to switch chart creators. this way previous chart is lost. |
|
489 |
setChart(null); // the chart must be redrawn from scratch |
|
490 |
} |
|
487 |
setChart(null); // the chart must be redrawn from scratch |
|
491 | 488 |
this.chartType = chartType; |
489 |
this.setDirty(); |
|
490 |
this.chartDirty = true; |
|
492 | 491 |
|
493 |
// FIXME: SJ: need to validate this MD: this seems no more necessary since the chart object is reset just before |
|
494 |
HashMap<String, Object> last = this.getLastParametersFromHistory(); |
|
495 |
if (last != null) { |
|
496 |
this.getLastParametersFromHistory().put(ChartsEnginePreferences.CHART_TYPE, "__undef___"); //$NON-NLS-1$ |
|
497 |
} |
|
498 |
|
|
499 |
|
|
500 | 492 |
// this.getLastParametersFromHistory().put(ChartsEnginePreferences.CHART_TYPE, "[Default]"); |
501 | 493 |
|
494 |
// update the chart type of last cycle parameters so hasRenderingParameterChanged() returns true |
|
495 |
// HashMap<String, Object> last = this.getLastParametersFromHistory(); |
|
496 |
// if (last != null) { |
|
497 |
// this.getLastParametersFromHistory().put(ChartsEnginePreferences.CHART_TYPE, "__undef___"); //$NON-NLS-1$ |
|
498 |
// } |
|
499 |
|
|
500 |
// clear all last rendering parameters to force the chart full recreation |
|
501 |
this.clearLastRenderingParameters(); |
|
502 | 502 |
|
503 |
|
|
504 |
// clear all last parameters to force a full recomputing |
|
505 |
// this.clearLastRenderingParameters(); |
|
506 |
// this.clearLastRenderingParameters(); |
|
507 | 503 |
} |
508 | 504 |
|
509 | 505 |
/** |
TXM/trunk/bundles/org.txm.libs.jfreechart/build.properties (revision 3730) | ||
---|---|---|
2 | 2 |
about.html,\ |
3 | 3 |
about_files/,\ |
4 | 4 |
.,\ |
5 |
lib/jfreechart-1.5.0.jar,\ |
|
6 |
OSGI-INF/ |
|
5 |
OSGI-INF/,\ |
|
6 |
lib/jfreechart-1.5.4.jar |
TXM/trunk/bundles/org.txm.libs.jfreechart/about.html (revision 3730) | ||
---|---|---|
1 | 1 |
JFreeChart |
2 | 2 |
========== |
3 | 3 |
|
4 |
Version 1.5.0, 5 November 2017.
|
|
4 |
Version 2.0.0, not yet released.
|
|
5 | 5 |
|
6 | 6 |
[](https://maven-badges.herokuapp.com/maven-central/org.jfree/jfreechart) |
7 | 7 |
|
8 | 8 |
Overview |
9 | 9 |
-------- |
10 |
JFreeChart is a comprehensive free chart library for the Java(tm) platform that
|
|
11 |
can be used on the client-side (JavaFX and Swing) or the server side (with
|
|
12 |
export to multiple formats including SVG, PNG and PDF).
|
|
10 |
JFreeChart is a comprehensive free chart library for the Java™ platform that
|
|
11 |
can be used on the client-side (JavaFX and Swing) or the server side, with
|
|
12 |
export to multiple formats including SVG, PNG and PDF. |
|
13 | 13 |
|
14 | 14 |
 |
15 | 15 |
|
... | ... | |
17 | 17 |
|
18 | 18 |
http://www.jfree.org/jfreechart |
19 | 19 |
|
20 |
JFreeChart requires JDK 1.6.0 or later. If JavaFX support is required, you |
|
21 |
need to also include the JFreeChart-FX extensions: |
|
20 |
JFreeChart requires JDK 11 or later. For Java 8 support, check the `v1.5.x` branch. |
|
22 | 21 |
|
23 |
https://github.com/jfree/jfreechart-fx |
|
24 |
|
|
25 | 22 |
The library is licensed under the terms of the GNU Lesser General Public |
26 | 23 |
License (LGPL) version 2.1 or later. |
27 | 24 |
|
28 | 25 |
|
29 |
Using JFreeChart |
|
30 |
---------------- |
|
26 |
JavaFX |
|
27 |
------ |
|
28 |
JFreeChart can be used with JavaFX via the `JFreeChart-FX` extensions: |
|
29 |
|
|
30 |
https://github.com/jfree/jfreechart-fx |
|
31 |
|
|
32 |
Demos |
|
33 |
----- |
|
34 |
A small set of demo applications can be found in the following projects here |
|
35 |
at GitHub: |
|
36 |
|
|
37 |
* [JFree-Demos](https://github.com/jfree/jfree-demos "JFree-Demos Project Page at GitHub") |
|
38 |
* [JFree-FXDemos](https://github.com/jfree/jfree-fxdemos "JFree-FXDemos Project Page at GitHub") |
|
39 |
|
|
40 |
A more comprehensive set of demos, plus the JFreeChart Developer Guide, is a reward at most |
|
41 |
tiers of the [JFree sponsorship](https://github.com/sponsors/jfree) program. Thanks for supporting the JFree projects! |
|
42 |
|
|
43 |
For Developers |
|
44 |
-------------- |
|
45 |
|
|
46 |
### Using JFreeChart |
|
31 | 47 |
To use JFreeChart in your projects, add the following dependency to your build tool: |
32 | 48 |
|
33 | 49 |
<dependency> |
34 | 50 |
<groupId>org.jfree</groupId> |
35 | 51 |
<artifactId>jfreechart</artifactId> |
36 |
<version>1.5.0</version>
|
|
52 |
<version>1.5.3</version>
|
|
37 | 53 |
</dependency> |
38 | 54 |
|
39 | 55 |
|
40 |
Building JFreeChart |
|
41 |
------------------- |
|
56 |
### Building JFreeChart |
|
42 | 57 |
You can build JFreeChart using Maven by issuing the following command from the root directory of the project: |
43 | 58 |
|
44 | 59 |
mvn clean install |
45 | 60 |
|
46 |
The build requires JDK 1.6.0 or later.
|
|
61 |
The build requires JDK 11 or later.
|
|
47 | 62 |
|
48 | 63 |
|
49 |
Migration from JFreeChart 1.0.x |
|
50 |
------------------------------- |
|
64 |
### Migration |
|
51 | 65 |
When migrating from JFreeChart 1.0.x to JFreeChart 1.5.0, please be aware of the following API changes: |
52 | 66 |
|
53 | 67 |
* all the classes from JCommon that are used by JFreeChart have integrated within the JFreeChart jar file within a different package than before (you will need to change your imports); |
... | ... | |
60 | 74 |
Please refer to [Issue 66](https://github.com/jfree/jfreechart/issues/66) for additional info. |
61 | 75 |
|
62 | 76 |
|
63 |
Demos |
|
64 |
----- |
|
65 |
A small set of demo applications can be found in the following projects here |
|
66 |
at GitHub: |
|
67 |
|
|
68 |
* [JFree-Demos](https://github.com/jfree/jfree-demos "JFree-Demos Project Page at GitHub") |
|
69 |
* [JFree-FXDemos](https://github.com/jfree/jfree-fxdemos "JFree-FXDemos Project Page at GitHub") |
|
70 |
|
|
71 |
|
|
72 | 77 |
History |
73 | 78 |
------- |
74 | 79 |
|
80 |
##### Version 2.0 (not yet released) |
|
81 |
- use `ThreadLocal` for calendars in time series datasets ([#171](https://github.com/jfree/jfreechart/pull/171)); |
|
82 |
- added `valueVisible` flag to `MeterPlot` ([#231](https://github.com/jfree/jfreechart/pull/231)); |
|
83 |
- modify buffer in `ChartPanel` to handle high DPI displays ([#170](https://github.com/jfree/jfreechart/issues/170)); |
|
84 |
- add options to control pan vs zoom in `ChartPanel` ([#172](https://github.com/jfree/jfreechart/pull/172)); |
|
85 |
- observe series visibility flags in `ClusteredXYBarRenderer` ([#89](https://github.com/jfree/jfreechart/pull/89)); |
|
86 |
- observe axis visibility flag in `PeriodAxis` ([#198](https://github.com/jfree/jfreechart/issues/198)); |
|
87 |
- fix for exception on extreme zoom on `NumberAxis` (bug #64); |
|
88 |
- fix tick label font for `LogAxis` with number format override ([#98](https://github.com/jfree/jfreechart/issues/98)); |
|
89 |
- remove alpha channel from copy-to-clipboard (fixes bug #182); |
|
90 |
- apply rendering hints to overlays - fixes bug #187; |
|
91 |
- modify `TextTitle` to throw `IllegalArgumentException` rather than `NullPointerException` ([#205](https://github.com/jfree/jfreechart/issues/205)); |
|
92 |
- fix bugs on crosshair labels ([#189](https://github.com/jfree/jfreechart/pull/189), [#194](https://github.com/jfree/jfreechart/pull/194)); |
|
93 |
- removed `ObjectUtils` class ([#163](https://github.com/jfree/jfreechart/pull/163)); |
|
94 |
- removed unused `URLUtilities` class ([#162](https://github.com/jfree/jfreechart/pull/162)) |
|
95 |
- fixed `LayeredBarRenderer` (bugs [#169](https://github.com/jfree/jfreechart/issues/169) and [#175](https://github.com/jfree/jfreechart/issues/175)); |
|
96 |
- minor fix for `DefaultPieDataset` (bugs [#212](https://github.com/jfree/jfreechart/issues/212)) |
|
97 |
- fix `isJFreeSVGAvailable()` method (bugs [#207](https://github.com/jfree/jfreechart/issues/207)) |
|
98 |
- add new methods to access maps for datasets, renderers and axes in plots ([#201](https://github.com/jfree/jfreechart/issues/201)); |
|
99 |
- update French translations (bug #186); |
|
100 |
- fix "Save_as" entries in localisation files (bug #184); |
|
101 |
- add flags for visibility of outliers in `BoxAndWhiskerRenderer` ([#79](https://github.com/jfree/jfreechart/pull/79)); |
|
102 |
- added generics; |
|
103 |
- `DefaultIntervalCategoryDataset` no longer allows null keys in constructor (this |
|
104 |
is a consequence of introducing generics); |
|
105 |
- update required JDK to version 11. |
|
106 |
|
|
75 | 107 |
##### Version 1.5.0 (5 November 2017) |
76 | 108 |
- all JavaFX classes moved to a separate project; |
77 | 109 |
- added cleaner method to create histograms in `ChartFactory`; |
TXM/trunk/bundles/org.txm.libs.jfreechart/.classpath (revision 3730) | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
<classpath> |
|
3 |
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> |
|
4 |
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> |
|
5 |
<classpathentry exported="true" kind="lib" path="lib/jfreechart-1.5.0.jar"> |
|
6 |
<attributes> |
|
7 |
<attribute name="javadoc_location" value="jar:platform:/resource/org.txm.libs.jfreechart/doc/jfreechart-1.5.0-javadoc.jar!/"/> |
|
8 |
</attributes> |
|
9 |
</classpathentry> |
|
10 |
<classpathentry kind="output" path="bin"/> |
|
11 |
</classpath> |
|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
<classpath> |
|
3 |
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"> |
|
4 |
<attributes> |
|
5 |
<attribute name="module" value="true"/> |
|
6 |
</attributes> |
|
7 |
</classpathentry> |
|
8 |
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> |
|
9 |
<classpathentry exported="true" kind="lib" path="lib/jfreechart-1.5.4.jar"> |
|
10 |
<attributes> |
|
11 |
<attribute name="javadoc_location" value="jar:platform:/resource/org.txm.libs.jfreechart/doc/jfreechart-1.5.0-javadoc.jar!/"/> |
|
12 |
</attributes> |
|
13 |
</classpathentry> |
|
14 |
<classpathentry kind="output" path="bin"/> |
|
15 |
</classpath> |
TXM/trunk/bundles/org.txm.libs.jfreechart/META-INF/MANIFEST.MF (revision 3730) | ||
---|---|---|
2 | 2 |
Bundle-ManifestVersion: 2 |
3 | 3 |
Bundle-Name: JFreeChart |
4 | 4 |
Bundle-SymbolicName: org.txm.libs.jfreechart |
5 |
Bundle-Version: 1.5.0
|
|
5 |
Bundle-Version: 1.5.4
|
|
6 | 6 |
Export-Package: org.jfree.chart, |
7 | 7 |
org.jfree.chart.annotations, |
8 | 8 |
org.jfree.chart.axis, |
... | ... | |
18 | 18 |
org.jfree.chart.panel, |
19 | 19 |
org.jfree.chart.plot, |
20 | 20 |
org.jfree.chart.plot.dial, |
21 |
org.jfree.chart.plot.flow, |
|
21 | 22 |
org.jfree.chart.renderer, |
22 | 23 |
org.jfree.chart.renderer.category, |
23 | 24 |
org.jfree.chart.renderer.xy, |
24 |
org.jfree.chart.resources, |
|
25 |
org.jfree.chart.servlet, |
|
25 |
org.jfree.chart.servlet, |
|
26 | 26 |
org.jfree.chart.text, |
27 | 27 |
org.jfree.chart.title, |
28 | 28 |
org.jfree.chart.ui, |
... | ... | |
30 | 30 |
org.jfree.chart.util, |
31 | 31 |
org.jfree.data, |
32 | 32 |
org.jfree.data.category, |
33 |
org.jfree.data.flow, |
|
33 | 34 |
org.jfree.data.function, |
34 | 35 |
org.jfree.data.gantt, |
35 | 36 |
org.jfree.data.general, |
... | ... | |
46 | 47 |
Bundle-RequiredExecutionEnvironment: JavaSE-16 |
47 | 48 |
Bundle-Vendor: www.jfree.org |
48 | 49 |
Bundle-ClassPath: ., |
49 |
lib/jfreechart-1.5.0.jar
|
|
50 |
lib/jfreechart-1.5.4.jar
|
|
50 | 51 |
Automatic-Module-Name: org.txm.libs.jfreechart |
Formats disponibles : Unified diff