This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit e6e8dfb458031d632629706a7fc293f85f7b38af Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Nov 8 10:52:20 2015 +0100 Trier les programmes dans l'arbre de navigation --- .../java/fr/ird/observe/ui/DecoratorService.java | 8 ++++++++ .../fr/ird/observe/ui/tree/ObserveTreeHelper.java | 24 ++++++++++++++++++---- .../ui/tree/loadors/RootNodeChildLoador.java | 2 +- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/DecoratorService.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/DecoratorService.java index a20f590..3b2ffcb 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/DecoratorService.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/DecoratorService.java @@ -27,6 +27,7 @@ import fr.ird.observe.business.gps.GPSPointInterval; import fr.ird.observe.entities.longline.SectionTemplate; import fr.ird.observe.services.dto.AbstractObserveDto; import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.BasketDto; @@ -49,6 +50,7 @@ import fr.ird.observe.services.dto.referential.OrganismDto; import fr.ird.observe.services.dto.referential.PersonDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; import fr.ird.observe.services.dto.referential.SexDto; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.SpeciesGroupDto; @@ -602,6 +604,12 @@ public class DecoratorService extends DecoratorProvider { } + public <T extends ReferentialDto> Decorator<ReferentialReferenceDto<T>> getReferenceDecorator(Class<T> referenceType) { + Decorator decoratorByType = getDecoratorByType(ReferenceDto.class, referenceType.getSimpleName()); + return decoratorByType; + + } + protected <T extends ReferentialDto> void registerReferentialReferenceDtoDecorator(Class<T> referenceType, String libelle) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveTreeHelper.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveTreeHelper.java index a359417..c4b162f 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveTreeHelper.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveTreeHelper.java @@ -22,6 +22,7 @@ package fr.ird.observe.ui.tree; import com.google.common.base.Preconditions; +import com.google.common.collect.Lists; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.DataContext; import fr.ird.observe.db.ObserveSwingDataSource; @@ -34,6 +35,7 @@ import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineDtos; import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.ActivitySeineDtos; import fr.ird.observe.services.dto.seine.FloatingObjectDto; @@ -62,6 +64,7 @@ import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.decorator.Decorator; import javax.swing.JTree; import javax.swing.tree.DefaultTreeModel; @@ -70,7 +73,8 @@ import javax.swing.tree.TreeModel; import javax.swing.tree.TreePath; import javax.swing.tree.TreeSelectionModel; import java.util.Arrays; -import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; import java.util.List; import static org.nuiton.i18n.I18n.n; @@ -507,12 +511,12 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { ReferentialService referentialService = ObserveSwingApplicationContext.get().newService(ReferentialService.class); ReferenceSetDto<ProgramDto> programs = referentialService.getReferentialReferenceSet(ProgramDto.class); - Collection<ReferenceDto> data = programs.getReference(); + List data = Lists.newArrayList(programs.getReference()); int newIndex = 0; - //FIXME if (CollectionUtils.isNotEmpty(data)) { + sortPrograms(data); // Programs.sort(data); -// newIndex = data.indexOf(bean); + newIndex = data.indexOf(bean); } RootNodeChildLoador loador = getChildLoador(RootNodeChildLoador.class); ObserveNode result = loador.createNode(bean, dataProvider); @@ -535,6 +539,18 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { refreshNode(result, false); } + public static void sortPrograms(List<ReferenceDto<ProgramDto>> data) { + Collections.sort(data, new Comparator<ReferenceDto<ProgramDto>>() { + + Decorator<ReferentialReferenceDto<ProgramDto>> decorator = ObserveSwingApplicationContext.get().getDecoratorService().getReferenceDecorator(ProgramDto.class); + + @Override + public int compare(ReferenceDto<ProgramDto> o1, ReferenceDto<ProgramDto> o2) { + return decorator.toString(o1).compareTo(decorator.toString(o2)); + } + }); + } + public void reloadSelectedNode(boolean refreshFromParent, boolean refreshChilds) { ObserveNode node = getSelectedNode(); ((DtoNodeSupport) node).setReloadEntity(true); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RootNodeChildLoador.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RootNodeChildLoador.java index a9aa0e3..68f2013 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RootNodeChildLoador.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/RootNodeChildLoador.java @@ -93,7 +93,7 @@ public class RootNodeChildLoador extends AbstractReferenceDtoChildLoador<Program data = new ArrayList<>(ReferenceDtos.castToCollectionOfReferenceDto(referentialReferenceSet.getReference())); } - + ObserveTreeHelper.sortPrograms(data); } return data; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.