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 bc488fdc02ceab48b1f18fe6c716649411128221 Author: Kevin Morin <morin@codelutin.com> Date: Thu Oct 1 15:25:50 2015 +0200 affichage des icones des noeuds (refs #7553) --- .../src/main/filters/observe-ui.properties | 72 +-- .../business/db/model/DataSelectionModel.java | 482 +++++++++++++++++++++ .../ui/storage/tabs/StorageTabUIHandler.java | 4 +- .../ui/tree/AbstractObserveTreeCellRenderer.java | 12 +- .../fr/ird/observe/ui/tree/DtoNodeSupport.java | 7 +- .../ird/observe/ui/tree/ObserveDataProvider.java | 24 +- .../fr/ird/observe/ui/tree/ObserveTreeHelper.java | 13 +- .../ui/tree/loadors/AbstractNodeChildLoador.java | 12 +- 8 files changed, 551 insertions(+), 75 deletions(-) diff --git a/observe-application-swing/src/main/filters/observe-ui.properties b/observe-application-swing/src/main/filters/observe-ui.properties index 7a0608a..aaa1d4d 100644 --- a/observe-application-swing/src/main/filters/observe-ui.properties +++ b/observe-application-swing/src/main/filters/observe-ui.properties @@ -25,48 +25,48 @@ icon.navigation.referentiel=navigation/ird/referentiel24.png icon.navigation.sub.referentiel=navigation/ird/sub_referentiel16.png -icon.navigation.fr.ird.observe.entities.referentiel.Program=navigation/ird/program24.png - -icon.navigation.fr.ird.observe.entities.seine.TripSeine=navigation/ird/trip24.png -icon.navigation.fr.ird.observe.entities.seine.Route=navigation/ird/route24.png -icon.navigation.fr.ird.observe.entities.seine.ActivitySeine=navigation/ird/activity24.png -icon.navigation.fr.ird.observe.entities.seine.ActivitySeine.sub=navigation/ird/observedSystem24.png -icon.navigation.fr.ird.observe.entities.seine.FloatingObject=navigation/ird/floatingObject24.png -icon.navigation.fr.ird.observe.entities.seine.FloatingObject.sub=navigation/ird/sub_floatingObject16.png -icon.navigation.fr.ird.observe.entities.seine.SetSeine=navigation/ird/set24.png -icon.navigation.fr.ird.observe.entities.seine.SetSeine.sub=navigation/ird/sub_set16.png - -icon.navigation.fr.ird.observe.entities.Trip=navigation/ird/trip24.png -icon.navigation.fr.ird.observe.entities.Activity=navigation/ird/activity24.png -icon.navigation.fr.ird.observe.entities.Set=navigation/ird/set24.png - -icon.navigation.fr.ird.observe.entities.longline.TripLongline=navigation/ird/trip24.png -icon.navigation.fr.ird.observe.entities.longline.ActivityLongline=navigation/ird/route24.png -icon.navigation.fr.ird.observe.entities.longline.ActivityLongline.sub=navigation/ird/observedSystem24.png -icon.navigation.fr.ird.observe.entities.longline.SetLongline=navigation/ird/set24.png -icon.navigation.fr.ird.observe.entities.longline.SetLongline.sub=navigation/ird/sub_set16.png -icon.navigation.fr.ird.observe.entities.longline.CatchLongline=navigation/ird/floatingObject24.png -icon.navigation.fr.ird.observe.entities.longline.CatchLongline.sub=navigation/ird/sub_floatingObject16.png -icon.navigation.fr.ird.observe.entities.longline.Tdr=navigation/ird/floatingObject24.png -icon.navigation.fr.ird.observe.entities.longline.Tdr.sub=navigation/ird/sub_floatingObject16.png +icon.navigation.fr.ird.observe.services.dto.referential.ProgramDto=navigation/ird/program24.png + +icon.navigation.fr.ird.observe.services.dto.seine.TripSeineDto=navigation/ird/trip24.png +icon.navigation.fr.ird.observe.services.dto.seine.RouteDto=navigation/ird/route24.png +icon.navigation.fr.ird.observe.services.dto.seine.ActivitySeineDto=navigation/ird/activity24.png +icon.navigation.fr.ird.observe.services.dto.seine.ActivitySeineDto.sub=navigation/ird/observedSystem24.png +icon.navigation.fr.ird.observe.services.dto.seine.FloatingObjectDto=navigation/ird/floatingObject24.png +icon.navigation.fr.ird.observe.services.dto.seine.FloatingObjectDto.sub=navigation/ird/sub_floatingObject16.png +icon.navigation.fr.ird.observe.services.dto.seine.SetSeineDto=navigation/ird/set24.png +icon.navigation.fr.ird.observe.services.dto.seine.SetSeineDto.sub=navigation/ird/sub_set16.png + +icon.navigation.fr.ird.observe.services.dto.TripDto=navigation/ird/trip24.png +icon.navigation.fr.ird.observe.services.dto.ActivityDto=navigation/ird/activity24.png +icon.navigation.fr.ird.observe.services.dto.SetDto=navigation/ird/set24.png + +icon.navigation.fr.ird.observe.services.dto.longline.TripLonglineDto=navigation/ird/trip24.png +icon.navigation.fr.ird.observe.services.dto.longline.ActivityLonglineDto=navigation/ird/route24.png +icon.navigation.fr.ird.observe.services.dto.longline.ActivityLonglineDto.sub=navigation/ird/observedSystem24.png +icon.navigation.fr.ird.observe.services.dto.longline.SetLonglineDto=navigation/ird/set24.png +icon.navigation.fr.ird.observe.services.dto.longline.SetLonglineDto.sub=navigation/ird/sub_set16.png +icon.navigation.fr.ird.observe.services.dto.longline.CatchLonglineDto=navigation/ird/floatingObject24.png +icon.navigation.fr.ird.observe.services.dto.longline.CatchLonglineDto.sub=navigation/ird/sub_floatingObject16.png +icon.navigation.fr.ird.observe.services.dto.longline.TdrDto=navigation/ird/floatingObject24.png +icon.navigation.fr.ird.observe.services.dto.longline.TdrDto.sub=navigation/ird/sub_floatingObject16.png icon.navigation.referentiel-16=navigation/ird/referentiel16.png icon.navigation.sub.referentiel-16=navigation/ird/sub_referentiel16.png -icon.navigation.fr.ird.observe.entities.referentiel.Program-16=navigation/ird/program16.png +icon.navigation.fr.ird.observe.services.dto.referential.ProgramDto-16=navigation/ird/program16.png -icon.navigation.fr.ird.observe.entities.seine.TripSeine-16=navigation/ird/trip16.png -icon.navigation.fr.ird.observe.entities.seine.Route-16=navigation/ird/route16.png -icon.navigation.fr.ird.observe.entities.seine.ActivitySeine-16=navigation/ird/activity16.png -icon.navigation.fr.ird.observe.entities.seine.ActivitySeine.sub-16=navigation/ird/observedSystem16.png -icon.navigation.fr.ird.observe.entities.seine.FloatingObject-16=navigation/ird/floatingObject16.png -icon.navigation.fr.ird.observe.entities.seine.SetSeine-16=navigation/ird/set16.png +icon.navigation.fr.ird.observe.services.dto.seine.TripSeineDto-16=navigation/ird/trip16.png +icon.navigation.fr.ird.observe.services.dto.seine.RouteDto-16=navigation/ird/route16.png +icon.navigation.fr.ird.observe.services.dto.seine.ActivitySeineDto-16=navigation/ird/activity16.png +icon.navigation.fr.ird.observe.services.dto.seine.ActivitySeineDto.sub-16=navigation/ird/observedSystem16.png +icon.navigation.fr.ird.observe.services.dto.seine.FloatingObjecDtot-16=navigation/ird/floatingObject16.png +icon.navigation.fr.ird.observe.services.dto.seine.SetSeineDto-16=navigation/ird/set16.png -icon.navigation.fr.ird.observe.entities.longline.TripLongline-16=navigation/ird/trip16.png -icon.navigation.fr.ird.observe.entities.longline.ActivityLongline-16=navigation/ird/route16.png -icon.navigation.fr.ird.observe.entities.longline.SetLongline-16=navigation/ird/set16.png -icon.navigation.fr.ird.observe.entities.longline.CatchLongline-16=navigation/ird/floatingObject16.png -icon.navigation.fr.ird.observe.entities.longline.Tdr-16=navigation/ird/floatingObject16.png +icon.navigation.fr.ird.observe.services.dto.longline.TripLonglineDto-16=navigation/ird/trip16.png +icon.navigation.fr.ird.observe.services.dto.longline.ActivityLonglineDto-16=navigation/ird/route16.png +icon.navigation.fr.ird.observe.services.dto.longline.SetLonglineDto-16=navigation/ird/set16.png +icon.navigation.fr.ird.observe.services.dto.longline.CatchLonglineDto-16=navigation/ird/floatingObject16.png +icon.navigation.fr.ird.observe.services.dto.longline.TdrDto-16=navigation/ird/floatingObject16.png # icones d'action sur les editeurs numeriques #icon.action.numbereditor-showpopup=action-numbereditor-showpopup.png diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/db/model/DataSelectionModel.java b/observe-application-swing/src/main/java/fr/ird/observe/business/db/model/DataSelectionModel.java new file mode 100644 index 0000000..f51b7f8 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/db/model/DataSelectionModel.java @@ -0,0 +1,482 @@ +package fr.ird.observe.business.db.model; + +/** + * @author Kevin Morin (Code Lutin) + * @since x.x + */ + +import fr.ird.observe.services.dto.ReferenceDto; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; +import java.io.Serializable; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; + +/** + * Un modèle pour représenter la sélection de données. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 1.4 + */ +public class DataSelectionModel implements Serializable { + +// public static void populate(DataSelectionModel model, +// ObserveSwingDataSource source) throws Exception { +// +// Preconditions.checkState(source.isOpen()); +// +// Map<String, List<String>> datas = new HashMap<String, List<String>>(); +// +// List<ProgramDto> programs = service.getAllProgramStub(source); +// for (Program program : programs) { +// +// if (Programs.isProgramSeine(program)) { +// List<TripSeine> trips = service.getTripSeineStubByProgram(source, program.getTopiaId()); +// populate(model, program, trips, datas); +// } +// +// if (Programs.isProgramLongline(program)) { +// List<TripLongline> trips = service.getTripLonglineStubByProgram(source, program.getTopiaId()); +// populate(model, program, trips, datas); +// } +// +// } +// model.setDatas(datas); +// +// } + +// protected static <T extends Trip> void populate(DataSelectionModel model, +// Program program, +// List<T> trips, +// Map<String, List<String>> datas) { +// +// model.cacheEntity(program); +// +// if (!trips.isEmpty()) { +// List<String> tripIds = new ArrayList<String>(); +// +// if (model.isUseOpenData()) { +// +// // ajout de toutes les marées ouvertes ou non +// for (T trip : trips) { +// trip.setProgram(program); +// model.cacheEntity(trip); +// tripIds.add(trip.getTopiaId()); +// } +// +// } else { +// +// // ajout de toutes les marées non ouvertes +// for (T trip : trips) { +// trip.setProgram(program); +// if (!trip.isOpen()) { +// model.cacheEntity(trip); +// tripIds.add(trip.getTopiaId()); +// } +// } +// +// } +// +// if (!tripIds.isEmpty()) { +// +// datas.put(program.getTopiaId(), tripIds); +// if (log.isDebugEnabled()) { +// log.debug("Add program " + program.getLabel1() + " with " + tripIds.size() + " trip(s)."); +// } +// +// } +// +// } +// +// } + + public static final String PROPERTY_USE_REFERENTIEL = "useReferentiel"; + + public static final String PROPERTY_USE_DATA = "useData"; + + public static final String PROPERTY_USE_OPEN_DATA = "useOpenData"; + + public static final String PROPERTY_SELECTED_DATA = "selectedData"; + + public static final String PROPERTY_SELECTED_REFERENTIEL = "selectedReferentiel"; + + public static final String PROPERTY_DATAS = "datas"; + + /** Logger */ + private static final Log log = LogFactory.getLog(DataSelectionModel.class); + + private static final long serialVersionUID = 2L; + + /** un drapeau pour selectionner ou non les donnees observers */ + protected boolean useData; + + /** un drapeau pour selectionner ou non des donnees observers ouvertes */ + protected boolean useOpenData; + + /** un drapeau pour selectionner ou non des donnees observer */ + protected boolean useReferentiel; + + /** la liste des programs utilisables (qui ont des marees) */ + protected transient Map<String, List<String>> datas; + + /** + * Le cache des entités chargées pour construire le modèle de sélection. + * + * Ces entités pourront ensuite être injectées dans les noeuds sans avoir à les recharger. + * + * @since 4.0 + */ + protected final Map<String, ReferenceDto> entityCache; + + /** la liste des marees selectionnee */ + protected transient Set<String> selectedData; + + /** la liste des referentiels possibles */ + protected final Set<Class<?>> referentiel; + + /** la liste des referentiels selectionnes */ + protected final Set<Class<?>> selectedReferentiel; + + /** nb marees */ + protected int nbTrips; + + /** nb referentiels */ + protected final int nbReferentiels; + + protected final PropertyChangeSupport pcs; + + public void populate() throws Exception { + throw new UnsupportedOperationException(); + } + + public DataSelectionModel() { + pcs = new PropertyChangeSupport(this); + //FIXME +// Class<?>[] classes = TopiaEntityHelper.getContracts(Entities.REFERENCE_ENTITIES); +// List<Class<?>> list = Arrays.asList(classes); +// referentiel = new HashSet<Class<?>>(list); + referentiel = new HashSet<Class<?>>(); + selectedReferentiel = new HashSet<Class<?>>(); + nbReferentiels = referentiel.size(); + entityCache = new TreeMap<String, ReferenceDto>(); + } + + public boolean isUseReferentiel() { + return useReferentiel; + } + + public boolean isUseData() { + return useData; + } + + public boolean isUseOpenData() { + return useOpenData; + } + + public boolean isEmpty() { + if (isUseReferentiel()) { + if (!isReferentielEmpty()) { + return false; + } + } + if (isUseData()) { + if (!isDataEmpty()) { + return false; + } + } + return true; + } + + protected void cacheEntity(ReferenceDto entity) { + entityCache.put(entity.getId(), entity); + } + + public ReferenceDto getEntityCache(String id) { + return entityCache.get(id); + } + + public boolean isReferentielEmpty() { + return selectedReferentiel.isEmpty(); + } + +// public boolean isReferentielFull() { +// return selectedReferentiel.size() == nbReferentiels; +// } + + public boolean isDataEmpty() { + return selectedData == null || selectedData.isEmpty(); + } + +// public boolean isDataFull() { +// return selectedData != null && selectedData.size() == nbTrips; +// } + + public Set<Class<?>> getSelectedReferentiel() { + return selectedReferentiel; + } + +// public Map<String, List<String>> getDatas() { +// if (datas == null) { +// datas = new HashMap<String, List<String>>(); +// } +// return datas; +// } + + public Set<String> getSelectedData() { + if (selectedData == null) { + selectedData = new HashSet<String>(); + } + return selectedData; + } + +// public Map<String, List<String>> getSelectedDataByProgram() { +// if (datas == null || selectedData == null || selectedData.isEmpty()) { +// return Collections.emptyMap(); +// } +// Map<String, List<String>> result = +// new HashMap<String, List<String>>(datas.size()); +// +// for (String m : selectedData) { +// +// // on recherche son program +// for (String p : datas.keySet()) { +// if (datas.get(p).contains(m)) { +// List<String> trips = result.get(p); +// if (trips == null) { +// trips = new ArrayList<String>(); +// result.put(p, trips); +// } +// trips.add(m); +// break; +// } +// } +// } +// return result; +// } +// +// public boolean isSelectedData(String id) { +// +// if (Trips.isTripId(id)) { +// +// // recherche directe sur les ids de marees +// return getSelectedData().contains(id); +// } +// +// if (id.startsWith(Program.class.getName())) { +// // on doit verifier que toutes les marees du program sont sélectionnées +// List<String> tripIds = datas.get(id); +// if (CollectionUtils.isEmpty(tripIds)) { +// +// // pas de marées +// return false; +// } +// +// for (String tripId : tripIds) { +// if (!isSelectedData(tripId)) { +// +// // au moins une marée non sélectionnée +// +// return false; +// } +// } +// +// // toutes les marées sont sélectionnée +// return true; +// } +// +// // ne devrait pas arrivée +// return false; +// +// } +// +// public boolean isSelectedReferentiel(Class<?> type) { +// checkReferentielType(type); +// return getSelectedReferentiel().contains(type); +// } +// +// public void setUseReferentiel(boolean useReferentiel) { +// this.useReferentiel = useReferentiel; +// firePropertyChange(PROPERTY_USE_REFERENTIEL, useReferentiel); +// } +// +// public void setUseData(boolean useData) { +// this.useData = useData; +// firePropertyChange(PROPERTY_USE_DATA, useData); +// } +// +// public void setUseOpenData(boolean useOpenData) { +// this.useOpenData = useOpenData; +// firePropertyChange(PROPERTY_USE_OPEN_DATA, useOpenData); +// } +// +// public void addSelectedReferentiel(Class<?> type) { +// checkReferentielType(type); +// if (log.isDebugEnabled()) { +// log.debug("Add referentiel type " + type); +// } +// getSelectedReferentiel().add(type); +// firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); +// } +// +// public void addAllSelectedReferentiel() { +// getSelectedReferentiel().addAll(referentiel); +// firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); +// } +// +// public void removeSelectedReferentiel(Class<?> type) { +// checkReferentielType(type); +// if (log.isDebugEnabled()) { +// log.debug("remove referentiel type " + type); +// } +// getSelectedReferentiel().remove(type); +// firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); +// } + + public void removeAll() { + getSelectedReferentiel().clear(); + getSelectedData().clear(); + firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); + firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); + } + +// public void removeAllSelectedReferentiel() { +// getSelectedReferentiel().clear(); +// firePropertyChange(PROPERTY_SELECTED_REFERENTIEL, selectedReferentiel); +// } +// +// public void setDatas(Map<String, List<String>> datas) { +// this.datas = datas; +// +// // on compte le count de marées totale +// int nbTrips = 0; +// if (datas != null) { +// for (List<String> marees : datas.values()) { +// nbTrips += marees.size(); +// } +// } +// this.nbTrips = nbTrips; +// +// if (log.isDebugEnabled()) { +// log.debug("Nb program registred : " + (datas == null ? 0 : datas.size())); +// log.debug("Nb trip registred : " + this.nbTrips); +// } +// firePropertyChange(PROPERTY_DATAS, datas); +// } +// +// public void addSelectedData(String id) { +// +// if (Trips.isTripId(id)) { +// +// // ajout d'une marée +// if (log.isDebugEnabled()) { +// log.debug("Add Trip " + id); +// } +// getSelectedData().add(id); +// } else if (id.startsWith(Program.class.getName())) { +// +// // ajout de toutes les marées du program +// +// if (log.isDebugEnabled()) { +// log.debug("Add all trips of program " + id); +// } +// getSelectedData().addAll(datas.get(id)); +// } +// +// +// firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); +// } +// +// public void addAllSelectedData() { +// if (log.isDebugEnabled()) { +// log.debug("All all data."); +// } +// for (List<String> p : datas.values()) { +// getSelectedData().addAll(p); +// } +// firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); +// } +// +// public void removeSelectedData(String id) { +// if (Trips.isTripId(id)) { +// +// // ajout d'une marée +// if (log.isDebugEnabled()) { +// log.debug("Remove maree " + id); +// } +// getSelectedData().remove(id); +// } else if (id.startsWith(Program.class.getName())) { +// +// // ajout de toutes les marées du program +// +// if (log.isDebugEnabled()) { +// log.debug("Remove all marees of program " + id); +// } +// getSelectedData().removeAll(datas.get(id)); +// } +// firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); +// } +// +// public void removeAllSelectedData() { +// if (selectedData != null) { +// selectedData.clear(); +// } +// firePropertyChange(PROPERTY_SELECTED_DATA, selectedData); +// } + + public void addPropertyChangeListener(PropertyChangeListener listener) { + pcs.addPropertyChangeListener(listener); + } + + public void addPropertyChangeListener(String propertyName, + PropertyChangeListener listener) { + pcs.addPropertyChangeListener(propertyName, listener); + } + + public void removePropertyChangeListener(PropertyChangeListener listener) { + pcs.removePropertyChangeListener(listener); + } + + public void removePropertyChangeListener(String propertyName, + PropertyChangeListener listener) { + pcs.removePropertyChangeListener(propertyName, listener); + } + + protected void firePropertyChange(String propertyName, Object newValue) { + pcs.firePropertyChange(propertyName, null, newValue); + } + + protected void firePropertyChange(String propertyName, + Object oldValue, + Object newValue) { + pcs.firePropertyChange(propertyName, oldValue, newValue); + } + +// protected void checkReferentielType(Class<?> type) { +// if (!referentiel.contains(type)) { +// throw new IllegalArgumentException( +// "given <" + type + "> is not in referentiel universe : " + +// referentiel); +// } +// } + + public void destroy() { + removeAll(); + // suppression de tous les listeners + PropertyChangeListener[] listeners = pcs.getPropertyChangeListeners(); + for (PropertyChangeListener l : listeners) { + removePropertyChangeListener(l); + } + } + + @Override + protected void finalize() throws Throwable { + super.finalize(); + destroy(); + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/StorageTabUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/StorageTabUIHandler.java index b644e28..5efc71e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/StorageTabUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/StorageTabUIHandler.java @@ -385,8 +385,8 @@ public class StorageTabUIHandler { JTree tree = ui.selectTree; helper.setUI(tree, false, null); - - tree.setModel(helper.createModel(ui, dataModel, source)); +//FIXME +// tree.setModel(helper.createModel(ui, dataModel, source)); DataSelectionTreeSelectionModel selectionModel = ui.getSelectionModel(); selectionModel.initUI(tree); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/AbstractObserveTreeCellRenderer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/AbstractObserveTreeCellRenderer.java index eefe5e3..1ce8320 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/AbstractObserveTreeCellRenderer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/AbstractObserveTreeCellRenderer.java @@ -23,6 +23,7 @@ package fr.ird.observe.ui.tree; import com.google.common.base.Preconditions; import fr.ird.observe.ObserveSwingApplicationContext; +import fr.ird.observe.db.ObserveSwingDataSource; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.ui.DecoratorService; import fr.ird.observe.business.db.DataContext; @@ -110,12 +111,11 @@ public abstract class AbstractObserveTreeCellRenderer extends AbstractNavTreeCel ObserveDataProvider provider = (ObserveDataProvider) super.getDataProvider(); if (provider == null) { - // FIXME -// DataSource source = ObserveSwingApplicationContext.get().getDataSource(); -// if (source != null) { -// provider = new ObserveDataProvider(source); -// setDataProvider(provider); -// } + ObserveSwingDataSource source = ObserveSwingApplicationContext.get().getDataSource(); + if (source != null) { + provider = new ObserveDataProvider(source); + setDataProvider(provider); + } } return provider; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DtoNodeSupport.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DtoNodeSupport.java index ae5455f..a8eb79e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DtoNodeSupport.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DtoNodeSupport.java @@ -129,14 +129,13 @@ public abstract class DtoNodeSupport<E extends IdDto> extends ObserveNode { protected void loadEntity(ObserveDataProvider oProvider) { //FIXME -// if (oProvider.getSelectionModel() != null) { + if (oProvider.getSelectionModel() != null) { if (log.isDebugEnabled()) { log.debug("try to get entity from selectionModel " + internalClass + " : " + id); } - //FIXME -// entity = (E) oProvider.getSelectionModel().getEntityCache(id); -// } + entity = (ReferenceDto<E>) oProvider.getSelectionModel().getEntityCache(id); + } if (entity == null) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveDataProvider.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveDataProvider.java index a078a82..96d76f2 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveDataProvider.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveDataProvider.java @@ -21,6 +21,7 @@ */ package fr.ird.observe.ui.tree; +import fr.ird.observe.business.db.model.DataSelectionModel; import fr.ird.observe.db.ObserveSwingDataSource; import jaxx.runtime.swing.nav.NavDataProvider; import org.apache.commons.logging.Log; @@ -42,8 +43,7 @@ public class ObserveDataProvider implements NavDataProvider { //FIXME // protected DataService dataService; - //FIXME -// protected DataSelectionModel selectionModel; + protected DataSelectionModel selectionModel; private boolean creating; @@ -55,13 +55,12 @@ public class ObserveDataProvider implements NavDataProvider { this.dataSource = dataSource; } - //FIXME -// public void setSelectionModel(DataSelectionModel selectionModel) { -// if (log.isDebugEnabled()) { -// log.debug("Set selection model : " + selectionModel); -// } -// this.selectionModel = selectionModel; -// } + public void setSelectionModel(DataSelectionModel selectionModel) { + if (log.isDebugEnabled()) { + log.debug("Set selection model : " + selectionModel); + } + this.selectionModel = selectionModel; + } @Override public boolean isEnabled() { @@ -73,10 +72,9 @@ public class ObserveDataProvider implements NavDataProvider { return dataSource; } - //FIXME -// public DataSelectionModel getSelectionModel() { -// return selectionModel; -// } + public DataSelectionModel getSelectionModel() { + return selectionModel; + } //FIXME // protected DataService getDataService() { 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 671fb09..955bb95 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 @@ -24,6 +24,7 @@ package fr.ird.observe.ui.tree; import com.google.common.base.Preconditions; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.DataContext; +import fr.ird.observe.business.db.model.DataSelectionModel; import fr.ird.observe.db.ObserveSwingDataSource; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.ReferenceSetDto; @@ -172,9 +173,7 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { } public DefaultTreeModel createModel(JAXXContext context, - //FIXME -// DataSelectionModel dataModel, - Object dataModel, + DataSelectionModel dataModel, ObserveSwingDataSource source) { setDataSource(source); @@ -185,16 +184,14 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { } ObserveDataProvider provider = getDataProvider(); - //FIXME -// provider.setSelectionModel(dataModel); + provider.setSelectionModel(dataModel); provider.setCreating(true); try { RootNodeChildLoador loador = getChildLoador(RootNodeChildLoador.class); - //FIXME -// loador.setAddData(dataModel.isUseData()); -// loador.setAddReferentiel(dataModel.isUseReferentiel()); + loador.setAddData(dataModel.isUseData()); + loador.setAddReferentiel(dataModel.isUseReferentiel()); ObserveNode node = new ObserveNode(String.class, "Root node", loador, false); DefaultTreeModel model = createModel(node); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/AbstractNodeChildLoador.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/AbstractNodeChildLoador.java index 1194c64..a508056 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/AbstractNodeChildLoador.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/AbstractNodeChildLoador.java @@ -21,6 +21,7 @@ */ package fr.ird.observe.ui.tree.loadors; +import fr.ird.observe.business.db.model.DataSelectionModel; import fr.ird.observe.db.ObserveSwingDataSource; import fr.ird.observe.ui.tree.ObserveDataProvider; import fr.ird.observe.ui.tree.ObserveNode; @@ -47,11 +48,10 @@ public abstract class AbstractNodeChildLoador<T, O> extends NavTreeNodeChildLoad return result; } - //FIXME -// protected DataSelectionModel getSelectionModel(NavDataProvider dataProvider) { -// ObserveDataProvider provider = (ObserveDataProvider) dataProvider; -// DataSelectionModel result = provider.getSelectionModel(); -// return result; -// } + protected DataSelectionModel getSelectionModel(NavDataProvider dataProvider) { + ObserveDataProvider provider = (ObserveDataProvider) dataProvider; + DataSelectionModel result = provider.getSelectionModel(); + return result; + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.