branch feature/couleur_onglets created (now 017ea49)
This is an automated email from the git hooks/post-receive script. New change to branch feature/couleur_onglets in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git at 017ea49 - 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 This branch includes the following new commits: new 017ea49 - 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 The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: 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 -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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>.
participants (1)
-
codelutin.com scm