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. |