|
From: <de...@us...> - 2013-07-15 22:54:04
|
Revision: 8440
http://sourceforge.net/p/fudaa/svn/8440
Author: deniger
Date: 2013-07-15 22:54:00 +0000 (Mon, 15 Jul 2013)
Log Message:
-----------
CRUE-483
Modified Paths:
--------------
trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGAxe.java
trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGExportData.java
trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/palette/BPalettePlage.java
trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/palette/PaletteSelecteurCouleurPlage.java
Added Paths:
-----------
trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/palette/ReversedListModel.java
Modified: trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGAxe.java
===================================================================
--- trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGAxe.java 2013-07-15 08:50:44 UTC (rev 8439)
+++ trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGAxe.java 2013-07-15 22:54:00 UTC (rev 8440)
@@ -82,6 +82,7 @@
*/
double longueurPas_;
CtuluNumberFormatI specificFormat_;
+ CtuluNumberFormatI specificFormatExport_;
CtuluNumberFormatI specificDetailFormat_;
String titre_;
boolean titreVisible_ = true;
@@ -277,6 +278,14 @@
return false;
}
+ public CtuluNumberFormatI getSpecificFormatExport() {
+ return specificFormatExport_;
+ }
+
+ public void setSpecificFormatExport(CtuluNumberFormatI specificFormatExport) {
+ this.specificFormatExport_ = specificFormatExport;
+ }
+
/**
* @param _isLegendeCentre true si legende centree sous l'axe
*/
Modified: trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGExportData.java
===================================================================
--- trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGExportData.java 2013-07-15 08:50:44 UTC (rev 8439)
+++ trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGExportData.java 2013-07-15 22:54:00 UTC (rev 8440)
@@ -40,6 +40,9 @@
}
public Object getXValueFor(final double xValue) {
+ if (g_.getModel().getAxeX().getSpecificFormatExport() != null) {
+ return g_.getModel().getAxeX().getSpecificFormatExport().format(xValue);
+ }
if (g_.getModel().getAxeX().getSpecificFormat() != null) {
return g_.getModel().getAxeX().getSpecificFormat().format(xValue);
}
@@ -47,6 +50,9 @@
}
public Object getYValueFor(final EGCourbe courbe, final double yValue) {
+ if (courbe.getAxeY() != null && courbe.getAxeY().getSpecificFormatExport() != null) {
+ return courbe.getAxeY().getSpecificFormatExport().format(yValue);
+ }
if (courbe.getAxeY() != null && courbe.getAxeY().getSpecificFormat() != null) {
return courbe.getAxeY().getSpecificFormat().format(yValue);
}
Modified: trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/palette/BPalettePlage.java
===================================================================
--- trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/palette/BPalettePlage.java 2013-07-15 08:50:44 UTC (rev 8439)
+++ trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/palette/BPalettePlage.java 2013-07-15 22:54:00 UTC (rev 8440)
@@ -22,7 +22,7 @@
/**
* Une palette de couleurs associ\xE9es \xE0 des plages de valeurs. Les valeurs hors plages sont consid\xE9r\xE9es comme "autres".
- *
+ *
* @version $Id: BPalettePlage.java,v 1.22 2007-06-13 12:57:46 deniger Exp $
* @author Bertrand Marchand
*/
@@ -32,12 +32,20 @@
initPlages(_nb, _min, _max, _l, Color.CYAN.darker(), Color.RED, _model);
}
+ public static boolean isDisplayReversed() {
+ return "true".equals(System.getProperty("palettePlage.display.reversed"));
+ }
+
+ public static void setDisplayReversed() {
+ System.setProperty("palettePlage.display.reversed", "true");
+ }
+
/**
* D\xE9finition du nombre de plages.
* <p>
- * Les plages sont red\xE9finies automatiquement entre les 2 bornes min. et max., de mani\xE8re r\xE9guli\xE8re. Les couleurs sont
- * red\xE9finies, les symboles et les tailles, les l\xE9gendes \xE9galement.
- *
+ * Les plages sont red\xE9finies automatiquement entre les 2 bornes min. et max., de mani\xE8re r\xE9guli\xE8re. Les couleurs sont red\xE9finies, les symboles et
+ * les tailles, les l\xE9gendes \xE9galement.
+ *
* @param _nb Le nombre de plages, sup\xE9rieur ou \xE9gal \xE0 1. Si inf\xE9rieur, palette par d\xE9faut.
* @param _min la borne min des plages
* @param _max la borne max des plages
@@ -46,7 +54,7 @@
* @param _colorMax la couleur pour le max
*/
public static void initPlages(final int _nb, final double _min, final double _max, final List _l, final Color _colorMin, final Color _colorMax,
- final BPalettePlage _model) {
+ final BPalettePlage _model) {
int nb = Math.max(_nb, 1);
if (_min == _max) {
nb = 1;
@@ -82,21 +90,16 @@
}
_model.updatePlageLegendes();
}
-
/**
* Plage pour les valeur en dehors des plages d\xE9finies.
*/
BPlage autres_;
-
private boolean autresVisible_;
-
private boolean logScale;
-
/**
* La liste des plages utilis\xE9es.
*/
List plages_;
-
boolean reduit_;
// Le symbole par d\xE9faut pour les plages
@@ -177,14 +180,15 @@
* @return la derniere plage
*/
public final BPlage getLastPlage() {
- if (getNbPlages() == 0)
+ if (getNbPlages() == 0) {
return null;
+ }
return getPlage(getNbPlages() - 1);
}
/**
* Retourne la borne max. de la palette.
- *
+ *
* @return La borne max.
*/
public double getMaxPalette() {
@@ -193,7 +197,7 @@
/**
* Retourne la borne min. de la palette.
- *
+ *
* @return La borne min.
*/
public double getMinPalette() {
@@ -202,7 +206,7 @@
/**
* Retourne le nombre de plages de la palette.
- *
+ *
* @return Le nombre de plages
*/
public int getNbPlages() {
@@ -253,9 +257,9 @@
/**
* Retourne la plage associ\xE9e \xE0 une valeur.
* <p>
- * Si la valeur est en dehors des plages, la plage retourn\xE9e est ou bien la plage "autres" si les valeurs "autres"
- * doivent \xEAtre repr\xE9sent\xE9es, ou bien <i>null </i> si les valeurs "autres" ne doivent pas \xEAtre repr\xE9sent\xE9es.
- *
+ * Si la valeur est en dehors des plages, la plage retourn\xE9e est ou bien la plage "autres" si les valeurs "autres" doivent \xEAtre repr\xE9sent\xE9es, ou
+ * bien <i>null </i> si les valeurs "autres" ne doivent pas \xEAtre repr\xE9sent\xE9es.
+ *
* @param _val la valeur a considerer
* @return La plage associ\xE9e \xE0 la valeur.
*/
@@ -290,9 +294,9 @@
/**
* D\xE9finition du nombre de plages.
* <p>
- * Les plages sont red\xE9finies automatiquement entre les 2 bornes min. et max., de mani\xE8re r\xE9guli\xE8re. Les couleurs sont
- * red\xE9finies, les symboles et les tailles, les l\xE9gendes \xE9galement.
- *
+ * Les plages sont red\xE9finies automatiquement entre les 2 bornes min. et max., de mani\xE8re r\xE9guli\xE8re. Les couleurs sont red\xE9finies, les symboles et
+ * les tailles, les l\xE9gendes \xE9galement.
+ *
* @param _nb Le nombre de plages, sup\xE9rieur ou \xE9gal \xE0 1. Si inf\xE9rieur, palette par d\xE9faut.
* @param _min la borne min des plages
* @param _max la borne max des plages
@@ -309,7 +313,7 @@
/**
* Retourne si les valeurs "autres" sont visibles.
- *
+ *
* @return <i>true </i> Les valeurs hors plages sont visibles.
*/
public boolean isAutresVisible() {
@@ -335,11 +339,10 @@
}
/**
- * Propager les tailles de symboles. Les tailles sont interpol\xE9es d'une taille vers une autre pour toutes les plages
- * de la palette.
+ * Propager les tailles de symboles. Les tailles sont interpol\xE9es d'une taille vers une autre pour toutes les plages de la palette.
* <p>
* La taille <i>_tmin </i> correspond \xE0 la plage 0, la taille <i>_tmax </i> \xE0 la plage getNbPlages()-1.
- *
+ *
* @param _tmin Taille pour la plage 0
* @param _tmax Taille pour la plage getNbPlage()-1
*/
@@ -356,7 +359,7 @@
/**
* D\xE9finit si les valeurs "autres" sont rendues visibles.
- *
+ *
* @param _visible <i>true </i> Les valeurs "autres" sont rendues visibles.
*/
public void setAutresVisible(final boolean _visible) {
@@ -372,9 +375,8 @@
/**
* D\xE9finition de la borne max. de la palette.
* <p>
- * Les bornes des plages ne sont pas red\xE9finies automatiquement. Le r\xE9ajustement peut \xEAtre effectu\xE9 par
- * ajustePlages().
- *
+ * Les bornes des plages ne sont pas red\xE9finies automatiquement. Le r\xE9ajustement peut \xEAtre effectu\xE9 par ajustePlages().
+ *
* @param _max la nouvelle borne max
*/
public void setMaxPalette(final double _max) {
@@ -384,9 +386,8 @@
/**
* D\xE9finition de la borne min. de la palette.
* <p>
- * Les bornes des plages ne sont pas red\xE9finies automatiquement. Le r\xE9ajustement peut \xEAtre effectu\xE9 par
- * ajustePlages().
- *
+ * Les bornes des plages ne sont pas red\xE9finies automatiquement. Le r\xE9ajustement peut \xEAtre effectu\xE9 par ajustePlages().
+ *
* @param _min la nouvelle borne min
*/
public void setMinPalette(final double _min) {
@@ -418,5 +419,4 @@
fireAllPaletteModified();
return true;
}
-
}
\ No newline at end of file
Modified: trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/palette/PaletteSelecteurCouleurPlage.java
===================================================================
--- trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/palette/PaletteSelecteurCouleurPlage.java 2013-07-15 08:50:44 UTC (rev 8439)
+++ trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/palette/PaletteSelecteurCouleurPlage.java 2013-07-15 22:54:00 UTC (rev 8440)
@@ -255,7 +255,11 @@
add(top, BuBorderLayout.NORTH);
list_ = new BuEmptyList();
model_ = new PlageTableModel();
- list_.setModel(model_);
+ if (BPalettePlage.isDisplayReversed()) {
+ list_.setModel(new ReversedListModel(model_));
+ } else {
+ list_.setModel(model_);
+ }
list_.setCellRenderer(new BPalettePlageLegende.PlageCellRenderer());
list_.getSelectionModel().addListSelectionListener(this);
list_.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
@@ -411,7 +415,7 @@
private void actionRemove() {
// pour garder la bonne selection
- int i = list_.getSelectedIndex();
+ int i = plages_.indexOf(plageEnCours_);
plages_.remove(i);
model_.fireRemoved(i);
plageEnCours_ = null;
@@ -420,7 +424,7 @@
i = nb - 1;
}
if (nb != 0) {
- list_.setSelectedIndex(i);
+ list_.setSelectedValue(plages_.get(i), false);
plageEnCours_ = getSelectedPlage();
updatePanel();
}
@@ -445,16 +449,16 @@
}
final double min = plageEnCours_.getMin();
final double max = plageEnCours_.getMax();
- final int lengthMin = plageEnCours_.getMinString().length();
- final int lengthMax = plageEnCours_.getMaxString().length();
double step = (max - min) / nb;
((BPlage) plageEnCours_).setMax(Double.parseDouble(default_.formatter_.format(min + step)));
plageEnCours_.ajusteLegendes(default_.formatter_, default_.sep_);
- final int idx = list_.getSelectedIndex();
+ final int idx = plages_.indexOf(plageEnCours_);
+ ((BPlage) plages_.get(idx)).setMax(Double.parseDouble(default_.formatter_.format(min + step)));
+ ((BPlage) plages_.get(idx)).ajusteLegendes(default_.formatter_, default_.sep_);
Color sup = Color.MAGENTA;
- boolean isLast = idx == (plages_.size() - 1);
- if (!isLast) {
- sup = ((BPlage) plages_.get(idx + 1)).getCouleur();
+ boolean isFirst = idx == 0;
+ if (!isFirst) {
+ sup = ((BPlage) plages_.get(idx - 1)).getCouleur();
}
// au cas ou la couleur est prise
if (plageEnCours_.getCouleur() == sup) {
@@ -472,14 +476,11 @@
Double.parseDouble(default_.formatter_.format(maxi)));
nplage.ajusteLegendes(default_.formatter_, default_.sep_);
nplage.setCouleur(BPalettePlageAbstract.getCouleur(minColor, sup, (double) i / nb));
- if (isLast) {
- plages_.add(nplage);
- } else {
- plages_.add(idx + i, nplage);
- }
+ plages_.add(idx, nplage);
}
+ updatePanel();
model_.fireAdd(idx + 1, idx + nb - 1);
- updatePanel();
+ model_.fireModified(idx, idx);
// setModified();
}
@@ -580,7 +581,7 @@
if (list_.getModel().getSize() == 0) {
return null;
}
- return (BPlageAbstract) list_.getModel().getElementAt(0);
+ return (BPlageAbstract) model_.getElementAt(0);
}
double[] getMinMax() {
@@ -609,7 +610,7 @@
if (list_.getModel().getSize() == 0) {
return null;
}
- return (BPlageAbstract) list_.getModel().getElementAt(list_.getModel().getSize() - 1);
+ return (BPlageAbstract) model_.getElementAt(list_.getModel().getSize() - 1);
}
BPlageAbstract getSelectedPlage() {
Added: trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/palette/ReversedListModel.java
===================================================================
--- trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/palette/ReversedListModel.java (rev 0)
+++ trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/palette/ReversedListModel.java 2013-07-15 22:54:00 UTC (rev 8440)
@@ -0,0 +1,64 @@
+/*
+ GPL 2
+ */
+package org.fudaa.ebli.palette;
+
+import javax.swing.AbstractListModel;
+import javax.swing.ListModel;
+import javax.swing.event.ListDataEvent;
+import javax.swing.event.ListDataListener;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class ReversedListModel extends AbstractListModel implements ListDataListener {
+
+ private final ListModel init;
+ int oldSize;
+
+ public ReversedListModel(ListModel init) {
+ this.init = init;
+ extractOldSize(init);
+ init.addListDataListener(this);
+ }
+
+ public void intervalAdded(ListDataEvent e) {
+ extractOldSize(init);
+ int min = getReversedIdx(e.getIndex0());
+ int max = getReversedIdx(e.getIndex1());
+ fireIntervalAdded(e.getSource(), Math.min(min, max), Math.max(min, max));
+ }
+
+ public void intervalRemoved(ListDataEvent e) {
+ if (oldSize == 0) {
+ return;
+ }
+ int min = getReversedIdx(e.getIndex0());
+ int max = getReversedIdx(e.getIndex1());
+ fireIntervalRemoved(e.getSource(), Math.min(min, max), Math.max(min, max));
+ extractOldSize(init);
+ }
+
+ public void contentsChanged(ListDataEvent e) {
+ int min = getReversedIdx(e.getIndex0());
+ int max = getReversedIdx(e.getIndex1());
+ fireContentsChanged(e.getSource(), Math.min(min, max), Math.max(min, max));
+ }
+
+ public int getSize() {
+ return init.getSize();
+ }
+
+ public Object getElementAt(int index) {
+ return init.getElementAt(getSize() - index - 1);
+ }
+
+ protected int getReversedIdx(int index) {
+ return Math.min(Math.max(0, oldSize - index - 1), getSize());
+ }
+
+ protected void extractOldSize(ListModel init) {
+ oldSize = init.getSize();
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|