This is an automated email from the git hooks/post-receive script. New commit to branch feature/8109 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 8c66e198df69f0c306cdc53c7f6c6fab78b0cbf2 Author: Kevin Morin <morin@codelutin.com> Date: Wed Mar 23 18:18:47 2016 +0100 ajout du tooltip (refs #8109) --- .../content/protocol/EditProtocolUIHandler.java | 74 +++++++++++++++++----- .../resources/i18n/tutti-ui-swing_en_GB.properties | 2 + .../resources/i18n/tutti-ui-swing_fr_FR.properties | 2 + 3 files changed, 62 insertions(+), 16 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java index 1b3abfd..44f6503 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java @@ -38,6 +38,7 @@ import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModelEntry; import fr.ifremer.tutti.persistence.entities.protocol.CalcifiedPiecesSamplingDefinition; import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicMappingRow; import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicType; +import fr.ifremer.tutti.persistence.entities.protocol.MaturityCaracteristic; import fr.ifremer.tutti.persistence.entities.protocol.OperationFieldMappingRow; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.Strata; @@ -73,6 +74,7 @@ import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox; import jaxx.runtime.swing.editor.bean.BeanUIUtil; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTable; @@ -560,22 +562,7 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI }); ListCellRenderer defaultRenderer = maturitySelectedList.getCellRenderer(); - maturitySelectedList.setCellRenderer(new ListCellRenderer() { - - private Color validColor = getConfig().getColorCellWithValue(); - private Color invalidColor = getConfig().getColorRowInvalid(); - - @Override - public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - Component result = defaultRenderer.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); - if (!EditProtocolUIHandler.this.getModel().isMaturityValid((Caracteristic) value)) { - result.setBackground(invalidColor); - } else { - result.setBackground(validColor); - } - return result; - } - }); + maturitySelectedList.setCellRenderer(new MaturityCaracteristicCellRenderer(defaultRenderer)); // init caracteristics mappingtable { @@ -1646,4 +1633,59 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI } + private class MaturityCaracteristicCellRenderer implements ListCellRenderer { + + public static final String TEXT_PATTERN = "<html><body><strong>%s</strong> :<ul><li>%s</li></ul><strong>%s</strong> :<ul><li>%s</li></ul></body></html>"; + + private final ListCellRenderer defaultRenderer; + + private Color validColor = getConfig().getColorCellWithValue(); + + private Color invalidColor = getConfig().getColorRowInvalid(); + + MaturityCaracteristicCellRenderer(ListCellRenderer defaultRenderer) { + this.defaultRenderer = defaultRenderer; + } + + @Override + public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { + Component result = defaultRenderer.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); + Caracteristic maturityCaracteristic = (Caracteristic) value; + if (!EditProtocolUIHandler.this.getModel().isMaturityValid(maturityCaracteristic)) { + result.setBackground(invalidColor); + } else { + result.setBackground(validColor); + } + if (result instanceof JComponent) { + + ((JComponent) result).setToolTipText(createToolTipText(maturityCaracteristic)); + } + return result; + } + + private String createToolTipText(Caracteristic caracteristic) { + String tooltip = null; + + if (caracteristic != null && getModel().isMaturityValid(caracteristic.getId())) { + + MaturityCaracteristic maturityCaracteristic = getModel().getMaturityCaracteristic(caracteristic.getId()); + List<String> matureStates = new ArrayList<>(); + List<String> immatureStates = new ArrayList<>(); + + caracteristic.getQualitativeValue().forEach(state -> { + if (maturityCaracteristic.containsMatureStateIds(state.getId())) { + matureStates.add(decorate(state)); + } else { + immatureStates.add(decorate(state)); + } + }); + + tooltip = String.format(TEXT_PATTERN, t("tutti.editProtocol.field.maturity.immature.tip"), StringUtils.join(immatureStates, "</li><li>"), + t("tutti.editProtocol.field.maturity.mature.tip"), StringUtils.join(matureStates, "</li><li>")); + } + + return tooltip; + } + + } } diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties index aa744fa..e7f8997 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties @@ -1174,6 +1174,8 @@ tutti.editProtocol.field.benthos.tip= tutti.editProtocol.field.caracteristicMapping.tip= tutti.editProtocol.field.comment= tutti.editProtocol.field.comment.tip= +tutti.editProtocol.field.maturity.immature.tip= +tutti.editProtocol.field.maturity.mature.tip= tutti.editProtocol.field.protocol.name= tutti.editProtocol.field.protocol.name.tip= tutti.editProtocol.field.species.tip= diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties index bd7f3d8..d1a9c34 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties @@ -1115,6 +1115,8 @@ tutti.editProtocol.field.benthos.tip=Benthos tutti.editProtocol.field.caracteristicMapping.tip=Caractéristiques tutti.editProtocol.field.comment=Commentaire tutti.editProtocol.field.comment.tip=Commentaire +tutti.editProtocol.field.maturity.immature.tip=Immatures +tutti.editProtocol.field.maturity.mature.tip=Matures tutti.editProtocol.field.protocol.name=Nom tutti.editProtocol.field.protocol.name.tip=Nom du protocole tutti.editProtocol.field.species.tip=Espèces -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.