This is an automated email from the git hooks/post-receive script. New commit to branch feature/couleur_onglets in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 017ea49e3d89f33ef4326cce22cfc4fdde8fd32c Author: Kevin Morin <morin@codelutin.com> Date: Thu Mar 17 15:22:15 2016 +0100 - ajout d'un painter sur les jxtitledpanes pour colorer les barres de titre - mise en couleur des barres de titre en fonction de l'onglet - contraste d'ecriture en fonction de la couleur de fond de la barre de titre --- .../operation/FishingOperationsUIHandler.java | 7 +-- .../content/operation/catches/EditCatchesUI.jaxx | 24 +++++----- .../content/operation/catches/EditCatchesUI.jcss | 12 +++++ .../operation/catches/EditCatchesUIHandler.java | 25 ++++++---- .../OpenAddBenthosBatchSampleCategoryUIAction.java | 3 +- .../actions/OpenSplitBenthosBatchUIAction.java | 3 +- .../OpenAddSpeciesBatchSampleCategoryUIAction.java | 3 +- .../actions/OpenSplitSpeciesBatchUIAction.java | 3 +- .../ui/swing/util/AbstractTuttiUIHandler.java | 56 ++++++++++++++++------ .../ifremer/tutti/ui/swing/util/TuttiUIUtil.java | 28 +++++++++++ 10 files changed, 122 insertions(+), 42 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java index 8a22e9b..15ab18e 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java @@ -33,6 +33,7 @@ import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel; import fr.ifremer.tutti.ui.swing.content.operation.fishing.actions.EditFishingOperationAction; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiTabContainerUIHandler; +import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -170,9 +171,9 @@ public class FishingOperationsUIHandler extends AbstractTuttiTabContainerUIHandl EditCatchesUI ecUI = getUI().getCatchesTabContent(); ecUI.getCatchesCaracteristicsTabPane().setTitle(fishingOperationText); - ecUI.getSpeciesTabFishingOperationReminderLabel().setTitle(fishingOperationText); - ecUI.getBenthosTabFishingOperationReminderLabel().setTitle(fishingOperationText); - ecUI.getMarineLitterTabFishingOperationReminderLabel().setTitle(fishingOperationText); + ecUI.getSpeciesTabFishingOperationReminderLabel().setTitle(TuttiUIUtil.toHtml(fishingOperationText, getConfig().getColorSpecies())); + ecUI.getBenthosTabFishingOperationReminderLabel().setTitle(TuttiUIUtil.toHtml(fishingOperationText, getConfig().getColorBenthos())); + ecUI.getMarineLitterTabFishingOperationReminderLabel().setTitle(TuttiUIUtil.toHtml(fishingOperationText, getConfig().getColorMarineLitter())); ecUI.getAccidentalTabFishingOperationReminderLabel().setTitle(fishingOperationText); }); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx index 6a8ff08..bd02ea8 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx @@ -118,26 +118,26 @@ public EditCatchesUI(FishingOperationsUI parentUI) { </tab> <tab id='speciesTab'> <JPanel id='speciesTabPanel'> - <JXTitledPanel id='speciesTabFishingOperationReminderLabel' + <JXTitledPanel id='speciesTabFishingOperationReminderLabel' styleClass="speciesTitlePanel" constraints='EditCatchesUIHandler.MAIN_CARD'> <SpeciesBatchUI id='speciesTabContent' constructorParams='this'/> </JXTitledPanel> - <JXTitledPanel id='speciesTabCreateBatchReminderLabel' + <JXTitledPanel id='speciesTabCreateBatchReminderLabel' styleClass="speciesTitlePanel" constraints='EditCatchesUIHandler.CREATE_BATCH_CARD'> <CreateSpeciesBatchUI id='speciesTabCreateBatch' constructorParams='this'/> </JXTitledPanel> - <JXTitledPanel id='speciesTabSplitBatchReminderLabel' + <JXTitledPanel id='speciesTabSplitBatchReminderLabel' styleClass="speciesTitlePanel" constraints='EditCatchesUIHandler.SPLIT_BATCH_CARD'> <SplitSpeciesBatchUI id='speciesTabSplitBatch' constructorParams='this'/> </JXTitledPanel> - <JXTitledPanel id='speciesTabAddSampleCategoryBatchReminderLabel' + <JXTitledPanel id='speciesTabAddSampleCategoryBatchReminderLabel' styleClass="speciesTitlePanel" constraints='EditCatchesUIHandler.ADD_SAMPLE_CATEGORY_BATCH_CARD'> <SplitSpeciesBatchUI id='speciesTabAddSampleCategoryBatch' constructorParams='this'/> </JXTitledPanel> - <JXTitledPanel id='speciesTabFrequencyEditorReminderLabel' + <JXTitledPanel id='speciesTabFrequencyEditorReminderLabel' styleClass="speciesTitlePanel" constraints='EditCatchesUIHandler.EDIT_FREQUENCY_CARD'> <SpeciesFrequencyUI id='speciesTabFrequencyEditor' constructorParams='speciesTabContent'/> @@ -146,26 +146,26 @@ public EditCatchesUI(FishingOperationsUI parentUI) { </tab> <tab id='benthosTab'> <JPanel id='benthosTabPanel'> - <JXTitledPanel id='benthosTabFishingOperationReminderLabel' + <JXTitledPanel id='benthosTabFishingOperationReminderLabel' styleClass="benthosTitlePanel" constraints='EditCatchesUIHandler.MAIN_CARD'> <BenthosBatchUI id='benthosTabContent' constructorParams='this'/> </JXTitledPanel> - <JXTitledPanel id='benthosTabCreateBatchReminderLabel' + <JXTitledPanel id='benthosTabCreateBatchReminderLabel' styleClass="benthosTitlePanel" constraints='EditCatchesUIHandler.CREATE_BATCH_CARD'> <CreateBenthosBatchUI id='benthosTabCreateBatch' constructorParams='this'/> </JXTitledPanel> - <JXTitledPanel id='benthosTabSplitBatchReminderLabel' + <JXTitledPanel id='benthosTabSplitBatchReminderLabel' styleClass="benthosTitlePanel" constraints='EditCatchesUIHandler.SPLIT_BATCH_CARD'> <SplitBenthosBatchUI id='benthosTabSplitBatch' constructorParams='this'/> </JXTitledPanel> - <JXTitledPanel id='benthosTabAddSampleCategoryBatchReminderLabel' + <JXTitledPanel id='benthosTabAddSampleCategoryBatchReminderLabel' styleClass="benthosTitlePanel" constraints='EditCatchesUIHandler.ADD_SAMPLE_CATEGORY_BATCH_CARD'> <SplitBenthosBatchUI id='benthosTabAddSampleCategoryBatch' constructorParams='this'/> </JXTitledPanel> - <JXTitledPanel id='benthosTabFrequencyEditorReminderLabel' + <JXTitledPanel id='benthosTabFrequencyEditorReminderLabel' styleClass="benthosTitlePanel" constraints='EditCatchesUIHandler.EDIT_FREQUENCY_CARD'> <BenthosFrequencyUI id='benthosTabFrequencyEditor' constructorParams='benthosTabContent'/> @@ -174,12 +174,12 @@ public EditCatchesUI(FishingOperationsUI parentUI) { </tab> <tab id='marineLitterTab' title='tutti.label.tab.marineLitter'> <JPanel id='marineLitterTabPanel'> - <JXTitledPanel id='marineLitterTabFishingOperationReminderLabel' + <JXTitledPanel id='marineLitterTabFishingOperationReminderLabel' styleClass="marineLitterTitlePanel" constraints='EditCatchesUIHandler.MAIN_CARD'> <MarineLitterBatchUI id='marineLitterTabContent' constructorParams='this'/> </JXTitledPanel> - <JXTitledPanel id='marineLitterTabCreateBatchReminderLabel' + <JXTitledPanel id='marineLitterTabCreateBatchReminderLabel' styleClass="marineLitterTitlePanel" constraints='EditCatchesUIHandler.CREATE_BATCH_CARD'> <CreateMarineLitterBatchUI id='marineLitterTabCreateBatch' constructorParams='this'/> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jcss b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jcss index a0113b2..4ab5ca5 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jcss +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jcss @@ -36,6 +36,18 @@ ComputableDataEditor { computedDataColor: {handler.getConfig().getColorComputedWeights()}; } +.speciesTitlePanel { + _background: {getHandler().getConfig().getColorSpecies()}; +} + +.benthosTitlePanel { + _background: {getHandler().getConfig().getColorBenthos()}; +} + +.marineLitterTitlePanel { + _background: {getHandler().getConfig().getColorMarineLitter()}; +} + #editCatchesTopPanel { _help: {"tutti.editCatchBatch.help"}; } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java index e251162..1e57019 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java @@ -35,6 +35,7 @@ import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.Spe import fr.ifremer.tutti.ui.swing.util.AbstractTuttiTabContainerUIHandler; import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; import fr.ifremer.tutti.ui.swing.util.TuttiUI; +import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; import fr.ifremer.tutti.util.Weights; import jaxx.runtime.swing.CardLayout2Ext; import jaxx.runtime.validator.swing.SwingValidator; @@ -456,10 +457,11 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi SpeciesBatchRowModel editRow = editor.getEditRow(); String frequenciesTitle = buildReminderLabelTitle(editRow.getSpecies(), - editRow, - ui.getSpeciesTabFishingOperationReminderLabel().getTitle(), - "", - false); + editRow, + ui.getSpeciesTabFishingOperationReminderLabel().getTitle(), + "", + getConfig().getColorSpecies(), + false); frequencyEditor.getHandler().editBatch(editor, Optional.of(frequenciesTitle)); // open frequency editor @@ -469,7 +471,8 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi String title = buildReminderLabelTitle(editRow.getSpecies(), editRow, ui.getSpeciesTabFishingOperationReminderLabel().getTitle(), - t("tutti.editSpeciesFrequencies.title")); + t("tutti.editSpeciesFrequencies.title"), + getConfig().getColorSpecies()); ui.getSpeciesTabFrequencyEditorReminderLabel().setTitle(title); } @@ -542,7 +545,8 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi registerValidators(tuttiUi.getHandler().getValidator()); } if (titlePanel != null) { - titlePanel.setTitle(ui.getSpeciesTabFishingOperationReminderLabel().getTitle() + " - " + t(title)); + String speciesTabTitle = TuttiUIUtil.unHtml(ui.getSpeciesTabFishingOperationReminderLabel().getTitle()); + titlePanel.setTitle(TuttiUIUtil.toHtml(speciesTabTitle + " - " + t(title), getConfig().getColorSpecies())); } } } @@ -612,7 +616,8 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi String title = buildReminderLabelTitle(editRow.getSpecies(), editRow, ui.getBenthosTabFishingOperationReminderLabel().getTitle(), - t("tutti.editBenthosFrequencies.title")); + t("tutti.editBenthosFrequencies.title"), + getConfig().getColorBenthos()); ui.getBenthosTabFrequencyEditorReminderLabel().setTitle(title); } @@ -687,7 +692,8 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi registerValidators(tuttiUi.getHandler().getValidator()); } if (titlePanel != null) { - titlePanel.setTitle(ui.getBenthosTabFishingOperationReminderLabel().getTitle() + " - " + t(title)); + String benthosTabTitle = TuttiUIUtil.unHtml(ui.getBenthosTabFishingOperationReminderLabel().getTitle()); + titlePanel.setTitle(TuttiUIUtil.toHtml(benthosTabTitle + " - " + t(title), getConfig().getColorBenthos())); } } } @@ -720,7 +726,8 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi registerValidators(tuttiUi.getHandler().getValidator()); } if (titlePanel != null) { - titlePanel.setTitle(ui.getMarineLitterTabCreateBatchReminderLabel().getTitle() + " - " + t(title)); + String marineLitterTabTitle = TuttiUIUtil.unHtml(ui.getMarineLitterTabFishingOperationReminderLabel().getTitle()); + titlePanel.setTitle(TuttiUIUtil.toHtml(marineLitterTabTitle + " - " + t(title), getConfig().getColorMarineLitter())); } } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/actions/OpenAddBenthosBatchSampleCategoryUIAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/actions/OpenAddBenthosBatchSampleCategoryUIAction.java index 655f9cc..2d2d256 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/actions/OpenAddBenthosBatchSampleCategoryUIAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/actions/OpenAddBenthosBatchSampleCategoryUIAction.java @@ -100,7 +100,8 @@ public class OpenAddBenthosBatchSampleCategoryUIAction extends SimpleActionSuppo String title = parentUI.getHandler().buildReminderLabelTitle(parentBatch.getSpecies(), parentBatch, parentUI.getBenthosTabFishingOperationReminderLabel().getTitle(), - t("tutti.addSampleCategoryBenthosBatch.title")); + t("tutti.addSampleCategoryBenthosBatch.title"), + ui.getHandler().getConfig().getColorBenthos()); parentUI.getBenthosTabAddSampleCategoryBatchReminderLabel().setTitle(title); } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/actions/OpenSplitBenthosBatchUIAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/actions/OpenSplitBenthosBatchUIAction.java index c607127..d7fa1ef 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/actions/OpenSplitBenthosBatchUIAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/actions/OpenSplitBenthosBatchUIAction.java @@ -113,7 +113,8 @@ public class OpenSplitBenthosBatchUIAction extends SimpleActionSupport<BenthosBa String title = handler.buildReminderLabelTitle(parentBatch.getSpecies(), parentBatch, parentUI.getBenthosTabFishingOperationReminderLabel().getTitle(), - t("tutti.splitBenthosBatch.title")); + t("tutti.splitBenthosBatch.title"), + ui.getHandler().getConfig().getColorBenthos()); parentUI.getBenthosTabSplitBatchReminderLabel().setTitle(title); } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/OpenAddSpeciesBatchSampleCategoryUIAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/OpenAddSpeciesBatchSampleCategoryUIAction.java index 1cc85a4..a1e4f2c 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/OpenAddSpeciesBatchSampleCategoryUIAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/OpenAddSpeciesBatchSampleCategoryUIAction.java @@ -99,7 +99,8 @@ public class OpenAddSpeciesBatchSampleCategoryUIAction extends SimpleActionSuppo String title = parentUI.getHandler().buildReminderLabelTitle(parentBatch.getSpecies(), parentBatch, parentUI.getSpeciesTabFishingOperationReminderLabel().getTitle(), - t("tutti.addSampleCategorySpeciesBatch.title")); + t("tutti.addSampleCategorySpeciesBatch.title"), + ui.getHandler().getConfig().getColorSpecies()); parentUI.getSpeciesTabAddSampleCategoryBatchReminderLabel().setTitle(title); } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/OpenSplitSpeciesBatchUIAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/OpenSplitSpeciesBatchUIAction.java index d41b7cf..e1e1e7c 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/OpenSplitSpeciesBatchUIAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/actions/OpenSplitSpeciesBatchUIAction.java @@ -111,7 +111,8 @@ public class OpenSplitSpeciesBatchUIAction extends SimpleActionSupport<SpeciesBa String title = handler.buildReminderLabelTitle(parentBatch.getSpecies(), parentBatch, parentUI.getSpeciesTabFishingOperationReminderLabel().getTitle(), - t("tutti.splitSpeciesBatch.title")); + t("tutti.splitSpeciesBatch.title"), + ui.getHandler().getConfig().getColorSpecies()); parentUI.getSpeciesTabSplitBatchReminderLabel().setTitle(title); } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java index e86c9be..5c60cd6 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java @@ -51,6 +51,7 @@ import org.jdesktop.swingx.JXTitledPanel; import org.jdesktop.swingx.decorator.FontHighlighter; import org.jdesktop.swingx.decorator.HighlightPredicate; import org.jdesktop.swingx.decorator.Highlighter; +import org.jdesktop.swingx.painter.Painter; import org.jdesktop.swingx.table.TableColumnExt; import org.nuiton.decorator.Decorator; import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler; @@ -395,12 +396,21 @@ public abstract class AbstractTuttiUIHandler<M, UI extends TuttiUI<M, ?>> extend } } - protected void initJXTitledPanel(JXTitledPanel jTextField) { -// Boolean boldFont = (Boolean) jTextField.getClientProperty("boldFont"); + protected void initJXTitledPanel(JXTitledPanel titledPanel) { +// Boolean boldFont = (Boolean) titledPanel.getClientProperty("boldFont"); // if (boldFont!= null && boldFont) { -// Font font = jTextField.getFont().deriveFont(Font.BOLD, 13.f); -// jTextField.setTitleFont(font); +// Font font = titledPanel.getFont().deriveFont(Font.BOLD, 13.f); +// titledPanel.setTitleFont(font); // } + Color titleBackground = (Color) titledPanel.getClientProperty("background"); + if (titleBackground != null) { + Painter bgPainter = TuttiUIUtil.createColorPainter(titleBackground); + titledPanel.setTitlePainter(bgPainter); + + int colorBrightness = TuttiUIUtil.getColorBrightness(titleBackground); + Color textColor = colorBrightness > 150 ? Color.BLACK : Color.WHITE; + titledPanel.setTitleForeground(textColor); + } } @Override @@ -506,12 +516,20 @@ public abstract class AbstractTuttiUIHandler<M, UI extends TuttiUI<M, ?>> extend } } - public String buildReminderLabelTitle(Species species, Iterable<SampleCategory<?>> categories, String prefix, String suffix) { - return buildReminderLabelTitle(species, categories, prefix, suffix, true); + return buildReminderLabelTitle(species, categories, prefix, suffix, null, true); + + } + + public String buildReminderLabelTitle(Species species, + Iterable<SampleCategory<?>> categories, + String prefix, + String suffix, + Color bgColor) { + return buildReminderLabelTitle(species, categories, prefix, suffix, bgColor, true); } @@ -519,12 +537,14 @@ public abstract class AbstractTuttiUIHandler<M, UI extends TuttiUI<M, ?>> extend Iterable<SampleCategory<?>> categories, String prefix, String suffix, + Color bgColor, boolean html) { return buildReminderLabelTitle( decorate(species, DecoratorService.WITH_SURVEY_CODE), categories, prefix, suffix, + bgColor, html); } @@ -596,19 +616,25 @@ public abstract class AbstractTuttiUIHandler<M, UI extends TuttiUI<M, ?>> extend Iterable<SampleCategory<?>> categories, String prefix, String suffix) { - return buildReminderLabelTitle(species, categories, prefix, suffix, true); + return buildReminderLabelTitle(species, categories, prefix, suffix, null, true); + } + + protected String buildReminderLabelTitle(String species, + Iterable<SampleCategory<?>> categories, + String prefix, + Color bgColor, + String suffix) { + return buildReminderLabelTitle(species, categories, prefix, suffix, bgColor, true); } protected String buildReminderLabelTitle(String species, Iterable<SampleCategory<?>> categories, String prefix, String suffix, + Color bgColor, boolean html) { StringBuilder title = new StringBuilder(); - if (html) { - title.append("<html><body style='color:black;'>"); - } - title.append(prefix).append(" - ["); + title.append(TuttiUIUtil.unHtml(prefix)).append(" - ["); if (html) { title.append("<strong>"); @@ -629,12 +655,14 @@ public abstract class AbstractTuttiUIHandler<M, UI extends TuttiUI<M, ?>> extend } } - title.append(" - ").append(suffix); + title.append(" - ").append(TuttiUIUtil.unHtml(suffix)); + + String reminderLabelTitle = title.toString(); if (html) { - title.append("</body></html>"); + reminderLabelTitle = TuttiUIUtil.toHtml(reminderLabelTitle, bgColor); } - return title.toString(); + return reminderLabelTitle; } protected <R> TableColumnExt addFloatColumnToModel(TableColumnModel model, diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java index 6de60a3..62f9c75 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java @@ -32,6 +32,8 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.jdesktop.swingx.painter.MattePainter; +import org.jdesktop.swingx.painter.Painter; import org.nuiton.jaxx.application.ApplicationBusinessException; import org.nuiton.jaxx.application.swing.util.ApplicationUIUtil; @@ -47,6 +49,7 @@ import javax.swing.KeyStroke; import javax.swing.SwingUtilities; import java.awt.Color; import java.awt.Desktop; +import java.awt.GradientPaint; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; @@ -56,6 +59,9 @@ import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; +import java.util.Objects; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import static org.nuiton.i18n.I18n.t; @@ -243,4 +249,26 @@ public final class TuttiUIUtil extends ApplicationUIUtil { }); } + public static Painter createColorPainter(Color color) { + Objects.requireNonNull(color); + return new MattePainter(new GradientPaint(0, 0, color, 0, 1, color.darker()), true); + } + + public static String toHtml(String s, Color bgColor) { + s = unHtml(s); + int colorBrightness = bgColor == null ? 255 : TuttiUIUtil.getColorBrightness(bgColor); + String textColor = colorBrightness > 150 ? "black" : "white"; + return "<html><body style='color: " + textColor + ";'>" + s + "</body></html>"; + } + + public static String unHtml(String s) { + String htmlRegex = "^(<html><body.*?>)?(.*?)(</body></html>)?$"; + Pattern p = Pattern.compile(htmlRegex); + Matcher m = p.matcher(s); + if (m.matches()) { + s = m.group(2); + } + return s; + } + } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.