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 3f33c387644698dc15830836d9287ff1cbb013cf Author: Kevin Morin <morin@codelutin.com> Date: Mon Sep 28 16:27:01 2015 +0200 suppression des fixme (refs #7531) --- .../main/java/fr/ird/observe/ObserveCLAction.java | 3 +- .../java/fr/ird/observe/ObserveServiceHelper.java | 14 +- .../java/fr/ird/observe/ui/DecoratorService.java | 49 +---- .../fr/ird/observe/ui/ObserveMainUIHandler.java | 9 +- .../src/main/java/fr/ird/observe/ui/UIHelper.java | 48 +++-- .../ird/observe/ui/content/ContentUIHandler.java | 93 +--------- .../observe/ui/content/ContentUIInitializer.java | 202 ++++++++------------- .../ird/observe/ui/content/ContentUIManager.java | 64 ++++--- .../ui/content/table/ContentTableUIHandler.java | 27 ++- .../ui/content/table/ContentTableUIModel.java | 19 +- .../impl/longline/WeightMeasuresTableModel.java | 5 +- .../fr/ird/observe/ui/tree/ObserveTreeHelper.java | 12 -- .../EditableTableWithCacheTableModelSupport.java | 24 +-- .../observe/ui/util/tripMap/TripMapUIHandler.java | 5 +- 14 files changed, 191 insertions(+), 383 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveCLAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveCLAction.java index ea491cd..a8c6130 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveCLAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveCLAction.java @@ -177,8 +177,7 @@ public class ObserveCLAction { public void useJMX() throws Exception { // just set the useJMX flag - //FIXME -// ObserveServiceHelper.setUseJMX(true); + ObserveServiceHelper.setUseJMX(true); } /** Désactiver la possiblite de lancer l'ui principale. */ diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveServiceHelper.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveServiceHelper.java index e174736..beff939 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveServiceHelper.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveServiceHelper.java @@ -21,6 +21,7 @@ */ package fr.ird.observe; +import fr.ird.observe.business.db.DataContext; import fr.ird.observe.business.gps.GPSService; import fr.ird.observe.business.validation.ValidationContext; import fr.ird.observe.business.validation.ValidationService; @@ -125,13 +126,12 @@ public class ObserveServiceHelper { return new ValidationService(); } - //FIXME -// public static DataContext getDataContext() { -// checkInit(); -// ObserveApplicationContext context = get(); -// DataContext dataContext = context.getDataContext(); -// return dataContext; -// } + public static DataContext getDataContext() { + checkInit(); + ObserveSwingApplicationContext context = get(); + DataContext dataContext = context.getDataContext(); + return dataContext; + } public static ValidationContext getValidationContext() { checkInit(); 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 a778813..a7c3a36 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 @@ -174,10 +174,8 @@ public class DecoratorService extends DecoratorProvider { public static String getEntityLabel(String prefix, Class entityClass) { if (!AbstractObserveDto.class.isAssignableFrom(entityClass)) { throw new IllegalArgumentException( - entityClass + " is not a TopiaEntity"); + entityClass + " is not an Observe DTO"); } - //FIXME -// entityClass = ObserveDAOHelper.getContractClass(entityClass); return getPropertyLabel(prefix, entityClass.getSimpleName()); } @@ -534,9 +532,6 @@ public class DecoratorService extends DecoratorProvider { // LengthWeightParameter decorator registerDecorator(new LengthWeightParameterDecorator(libelle)); - //FIXME -// registerDecorator(new TopiaEntityRefDecorator()); - // gps decorators registerJXPathDecorator(ActivitySeineDto.class, "activity-gps", @@ -572,46 +567,4 @@ public class DecoratorService extends DecoratorProvider { registerDecorator(referenceType.getSimpleName(), new ReferenceReferentialDecorator(expression)); } - //FIXME -// public class TopiaEntityRefDecorator extends Decorator<TopiaEntityRef> { -// -// private static final long serialVersionUID = 1L; -// -// public TopiaEntityRefDecorator() throws NullPointerException { -// super(TopiaEntityRef.class); -// } -// -// @Override -// public String toString(Object bean) { -// if (bean == null) { -// return ""; -// } -// String message; -// try { -// TopiaEntityRef ref = (TopiaEntityRef) bean; -// -// TopiaEntity invoker = ref.getInvoker(); -// if (invoker == null) { -// invoker = ref.getRef(); -// } -// String invokerProperty = -// t(getPropertyLabel( -// ref.getInvokerProperty())); -// String type = t(getEntityLabel(invoker.getClass())); -// Decorator<?> decorator = -// getDecoratorByType(invoker.getClass()); -// if (invokerProperty == null) { -// message = t("observe.synchro.obsolete.entity.label", type, decorator.toString(invoker)); -// } else { -// message = t("observe.synchro.obsolete.entity.ref", type, decorator.toString(invoker), invokerProperty); -// } -// } catch (Exception e) { -// if (log.isErrorEnabled()) { -// log.error(e); -// } -// message = ""; -// } -// return message; -// } -// } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUIHandler.java index a2f4a61..25cc31b 100755 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUIHandler.java @@ -22,7 +22,6 @@ package fr.ird.observe.ui; import fr.ird.observe.ObserveSwingApplicationContext; -import fr.ird.observe.ui.DecoratorService; import fr.ird.observe.business.db.DataContext; import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.db.ObserveSwingDataSource; @@ -48,15 +47,14 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.i18n.I18n; -import javax.swing.Icon; -import javax.swing.SwingUtilities; +import javax.swing.*; import javax.swing.event.TreeExpansionEvent; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.event.TreeWillExpandListener; import javax.swing.tree.ExpandVetoException; import javax.swing.tree.TreePath; -import java.awt.Cursor; +import java.awt.*; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; @@ -227,8 +225,7 @@ public class ObserveMainUIHandler { boolean open = context.getDataContext().getEnabled(); if (open) { - // FIXME - //treeHelper.createModel(source); + treeHelper.createModel(source); } else { treeHelper.createEmptyModel(); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/UIHelper.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/UIHelper.java index c9b4d70..c7bc2d1 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/UIHelper.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/UIHelper.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui; import fr.ird.observe.ObserveSwingApplicationContext; -import fr.ird.observe.services.dto.AbstractObserveDto; +import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.ui.util.table.ObserveBooleanTableCellRenderer; import jaxx.runtime.FileChooserUtil; import jaxx.runtime.JAXXObject; @@ -32,15 +32,11 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; -import javax.swing.JOptionPane; -import javax.swing.JTable; -import javax.swing.SwingUtilities; +import javax.swing.*; import javax.swing.event.HyperlinkEvent; import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; -import java.awt.Component; -import java.awt.Desktop; -import java.awt.Toolkit; +import java.awt.*; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.StringSelection; import java.io.File; @@ -269,7 +265,7 @@ public class UIHelper extends SwingUtil { * @return {@code true} si l'utilisateur a confitmé la suppression, * {@code false} sinon. */ - public static <E extends AbstractObserveDto> boolean confirmForEntityDelete( + public static <E extends IdDto> boolean confirmForEntityDelete( JAXXObject parent, Class<E> beanClass, E bean) { @@ -288,7 +284,7 @@ public class UIHelper extends SwingUtil { * @return {@code true} si l'utilisateur a confitmé la suppression, * {@code false} sinon. */ - public static <E extends AbstractObserveDto> boolean confirmForEntityDelete( + public static <E extends IdDto> boolean confirmForEntityDelete( JAXXObject parent, Class<E> beanClass, E bean, @@ -310,19 +306,18 @@ public class UIHelper extends SwingUtil { String type = DecoratorService.getEntityLabel(beanClass); type = t(type); - //FIXME -// if (bean == null || bean.getTopiaId() == null || decorator == null) { -// // delete new entity -// messageDelete = t("observe.message.delete.new", type); -// } else { -// try { -// // delete existing entity -// beanStr = decorator.toString(bean); -// messageDelete = t("observe.message.delete", type, beanStr); -// } catch (Exception e) { -// messageDelete = t("observe.message.delete.new", type); -// } -// } + if (bean == null || bean.getId() == null || decorator == null) { + // delete new entity + messageDelete = t("observe.message.delete.new", type); + } else { + try { + // delete existing entity + beanStr = decorator.toString(bean); + messageDelete = t("observe.message.delete", type, beanStr); + } catch (Exception e) { + messageDelete = t("observe.message.delete.new", type); + } + } if (extraMessage != null) { messageDelete += '\n' + extraMessage; @@ -398,12 +393,11 @@ public class UIHelper extends SwingUtil { }); } - public static <E extends AbstractObserveDto> E getEntity(List<E> list, E entity) { + public static <E extends IdDto> E getEntity(List<E> list, E entity) { for (E e : list) { - //FIXME -// if (e.getTopiaId().equals(entity.getTopiaId())) { -// return e; -// } + if (e.getId().equals(entity.getId())) { + return e; + } } return null; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java index dde86d0..aa2f075 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java @@ -79,17 +79,6 @@ public abstract class ContentUIHandler<E extends IdDto> { protected final String prefix; - //FIXME -// private final TopiaExecutor<E> loadExecutor; -// -// private final TopiaExecutor2<? extends TopiaEntity, E> preCreateExecutor; -// -// private final TopiaExecutor2<? extends TopiaEntity, E> createExecutor; -// -// private final TopiaExecutor2<? extends TopiaEntity, E> updateExecutor; -// -// private final TopiaExecutor2<? extends TopiaEntity, E> deleteExecutor; - private final DataContextType parentType; private final DataContextType type; @@ -107,42 +96,6 @@ public abstract class ContentUIHandler<E extends IdDto> { if (log.isDebugEnabled()) { log.debug("New handler [" + this + "] for ui " + prefix); } - //FIXME -// loadExecutor = new TopiaExecutor<E>() { -// @Override -// public void execute(TopiaContext tx, E bean) throws TopiaException { -// onLoad(tx, bean); -// } -// }; - //FIXME -// preCreateExecutor = new TopiaExecutor2<TopiaEntity, E>() { -// @Override -// public E execute(TopiaContext tx, TopiaEntity parentBean, E bean) throws TopiaException { -// return onPreCreate(tx, parentBean, bean); -// } -// }; - //FIXME -// createExecutor = new TopiaExecutor2<TopiaEntity, E>() { -// @Override -// public E execute(TopiaContext tx, TopiaEntity parentBean, E bean) throws TopiaException { -// return onCreate(tx, parentBean, bean); -// } -// }; - //FIXME -// updateExecutor = new TopiaExecutor2<TopiaEntity, E>() { -// @Override -// public E execute(TopiaContext tx, TopiaEntity parentBean, E bean) throws TopiaException { -// return onUpdate(tx, parentBean, bean); -// } -// }; - //FIXME -// deleteExecutor = new TopiaExecutor2<TopiaEntity, E>() { -// @Override -// public E execute(TopiaContext tx, TopiaEntity parentBean, E beanToDelete) throws TopiaException { -// onDelete(tx, parentBean, beanToDelete); -// return null; -// } -// }; errorIcon = UIManager.getIcon("action.error"); } @@ -162,10 +115,6 @@ public abstract class ContentUIHandler<E extends IdDto> { } } - //FIXME -// protected static void attachTopiaContext(DataSource service, TopiaEntityAbstract entity) { -// DBHelper.attachTopiaContext(service.getRootCtxt(), entity); -// } public static ObserveTreeHelper getTreeHelper(JAXXContext context) { return context.getContextValue(ObserveTreeHelper.class); @@ -360,7 +309,6 @@ public abstract class ContentUIHandler<E extends IdDto> { public void initUI() throws Exception { ContentUIInitializer<E, ObserveContentUI<E>> uiInitializer = new ContentUIInitializer<E, ObserveContentUI<E>>(ui); - //FIXME uiInitializer.initUI(); } @@ -373,8 +321,7 @@ public abstract class ContentUIHandler<E extends IdDto> { //FIXME chemit 20100913 : il vaudrait le faire uniquement lors de l'édition // chaque arrive sur un ecran invalide le cache de validation - //FIXME -// ObserveServiceHelper.getValidationContext().cleanCache(); + ObserveServiceHelper.getValidationContext().cleanCache(); if (log.isDebugEnabled()) { log.debug("ui " + ui.getClass()); @@ -435,8 +382,7 @@ public abstract class ContentUIHandler<E extends IdDto> { } public void stopEditUI() { -//FIXME -// ObserveServiceHelper.getValidationContext().cleanCache(); + ObserveServiceHelper.getValidationContext().cleanCache(); ContentUIModel<E> model = getModel(); @@ -692,36 +638,6 @@ public abstract class ContentUIHandler<E extends IdDto> { ObserveServiceHelper.get().getValidationContext().cleanCache(); } - //FIXME -// protected final TopiaEntityBinder<E> getLoadBinder() { -// return getModel().getLoadBinder(); -// } - - //FIXME -// protected final TopiaExecutor<E> getLoadExecutor() { -// return loadExecutor; -// } - - //FIXME -// protected final TopiaExecutor2<? extends TopiaEntity, E> getPreCreateExecutor() { -// return preCreateExecutor; -// } -// - //FIXME -// protected final TopiaExecutor2<? extends TopiaEntity, E> getCreateExecutor() { -// return createExecutor; -// } -// - //FIXME -// protected final TopiaExecutor2<? extends TopiaEntity, E> getUpdateExecutor() { -// return updateExecutor; -// } -// - //FIXME -// protected final TopiaExecutor2<? extends TopiaEntity, E> getDeleteExecutor() { -// return deleteExecutor; -// } - protected final ContentMode computeContentMode() { ContentMode mode; @@ -746,11 +662,6 @@ public abstract class ContentUIHandler<E extends IdDto> { return contextName; } - //FIXME -// protected final DataService getDataService() { -// return ObserveContext.get().getDataService(); -// } - protected void updateActions() { updateToolbarActions(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java index 1ae7eee..58d00cb 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java @@ -23,16 +23,17 @@ package fr.ird.observe.ui.content; */ import com.google.common.base.Predicate; +import com.google.common.collect.Collections2; import com.google.common.collect.Lists; import fr.ird.observe.ObserveSwingApplicationContext; -import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.business.validation.ObserveValidator; -import fr.ird.observe.services.dto.AbstractObserveDto; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.constants.ReferenceStatus; import fr.ird.observe.services.dto.referential.ReferentialDto; -import fr.ird.observe.ui.DecoratorService; +import fr.ird.observe.services.dto.referential.ReferentialDtos; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.actions.shared.AbstractUIAction; import fr.ird.observe.ui.util.BooleanEditor; @@ -65,25 +66,10 @@ import org.nuiton.jaxx.widgets.gis.absolute.CoordinatesEditor; import org.nuiton.jaxx.widgets.select.FilterableDoubleList; import org.nuiton.util.DateUtil; -import javax.swing.AbstractButton; -import javax.swing.ActionMap; -import javax.swing.JCheckBox; -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.JScrollBar; -import javax.swing.JSpinner; -import javax.swing.JTable; -import javax.swing.JTextArea; -import javax.swing.JTextField; -import javax.swing.ListCellRenderer; -import javax.swing.SwingUtilities; +import javax.swing.*; import javax.swing.border.LineBorder; import javax.swing.table.TableCellEditor; -import java.awt.Color; -import java.awt.Component; -import java.awt.Dimension; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.FocusAdapter; @@ -130,12 +116,6 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E this.ui = ui; } - //FIXME -// protected static void attachTopiaContext(DataSource service, -// TopiaEntityAbstract entity) { -// DBHelper.attachTopiaContext(service.getRootCtxt(), entity); -// } - public static TableCellEditor newFloatColumnEditor(JTable table) { NumberCellEditor<Float> editor = JAXXWidgetUtil.newNumberTableCellEditor(Float.class, false); @@ -209,13 +189,8 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E // initialisation des éditeurs - //FIXME -// init(); - Set<String> doNotBlockComponentIds = new HashSet<String>(); - DecoratorService decoratorService = ObserveSwingApplicationContext.get().getDecoratorService(); - for (String name : ui.get$objectMap().keySet()) { Object o = ui.getObjectById(name); @@ -223,12 +198,6 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E continue; } - if (o instanceof AbstractObserveDto) { - //FIXME -// init((AbstractObserveDto) o); - continue; - } - if (o instanceof JComponent) { init((JComponent) o, doNotBlockComponentIds); @@ -360,7 +329,7 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E if (log.isDebugEnabled()) { log.debug("init common action " + actionId); } - //FIXME + action.initAction(null, editor); } @@ -373,16 +342,12 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E @SuppressWarnings("unchecked") protected void init(BeanComboBox beanComboBox) { - Class<ReferentialDto> klass = (Class<ReferentialDto>) - beanComboBox.getHandler().getBeanType(); if (log.isDebugEnabled()) { - log.debug("init combobox for " + klass); + log.debug("init combobox for " + beanComboBox.getBeanType()); } beanComboBox.setI18nPrefix("observe.common."); beanComboBox.setMinimumSize(new Dimension(0, 24)); - //FIXME - Class entityClass = null; - prepareBeanComboBox(entityClass, beanComboBox); + prepareBeanComboBox(beanComboBox); } @SuppressWarnings("unchecked") @@ -401,13 +366,12 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E Object init = jlist.getClientProperty("addDecorator"); if (init != null) { - Class<AbstractObserveDto> klass = (Class<AbstractObserveDto>) init; + Class<? extends IdDto> klass = (Class<? extends IdDto>) init; if (log.isDebugEnabled()) { log.debug("addDecorator to list " + jlist.getName()); } - DecoratorService decoratorService = ObserveSwingApplicationContext.get().getDecoratorService(); - Decorator<AbstractObserveDto> decorator = decoratorService.getDecoratorByType(klass); + Decorator<? extends IdDto> decorator = ObserveSwingApplicationContext.get().getDecorator(klass); jlist.putClientProperty("decorator", decorator); } @@ -430,9 +394,7 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E log.info("init list for " + beanList.getBeanType()); } - //FIXME - Class<? extends IdDto> entityClass = null; - prepareEntityList(entityClass, beanList); + prepareEntityList(beanList); } @@ -631,41 +593,42 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E * Remplit le modèle d'une liste graphique avec la liste des entités d'un * type donné sur un service de persistance donné. * - * @param entityClass le type de l'entité - * @param list le component graphique à initialiser - * @throws DataSourceException si un problème lors de la récupération + * @param list le component graphique à initialiser + * @si un problème lors de la récupération * des entités * @since 1.5 */ - protected <E extends AbstractObserveDto> void prepareEntityList(Class<E> entityClass, - FilterableDoubleList<E> list) { + protected <E extends IdDto> void prepareEntityList(FilterableDoubleList<ReferenceDto> list) { ObserveSwingApplicationContext tx = ObserveSwingApplicationContext.get(); + Class<E> dtoClass = (Class<E>) list.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_ENTITY_CLASS); // init list - Decorator<E> decorator = tx.getDecorator(entityClass); + Decorator<ReferenceDto> decorator = tx.getDecorator(ReferenceDto.class, dtoClass.getName()); if (log.isDebugEnabled()) { log.debug("Will use decorator " + decorator); } list.putClientProperty("decorator", decorator); - List<E> data = null; + List<ReferenceDto> data = null; - if (ReferentialDto.class.isAssignableFrom(entityClass)) { + if (ReferentialDto.class.isAssignableFrom(dtoClass)) { - Predicate<E> predicate = (Predicate<E>) list.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_LIST_PREDICATE); - //FIXME -// data = tx.getDataService().getList(storageService, entityClass, predicate); + Predicate<ReferenceDto> predicate = (Predicate<ReferenceDto>) list.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_LIST_PREDICATE); + + ReferenceSetDto<E> referenceSetDto = getFormDto().getReferenceSetDto(dtoClass); + data = new ArrayList<>(Collections2.filter(referenceSetDto.getReference(), predicate)); +// data = tx.getDataService().getList(storageService, realEntityClass, predicate); } else { - data = new ArrayList<E>(); + data = new ArrayList<>(); } // sort data from first decorator context - DecoratorUtil.sort((JXPathDecorator<E>) decorator, data, 0); + DecoratorUtil.sort((JXPathDecorator<ReferenceDto>) decorator, data, 0); // set datas to list and init renderer - list.init((JXPathDecorator<E>) decorator, data, Collections.<E>emptyList()); + list.init((JXPathDecorator<ReferenceDto>) decorator, data, Collections.<ReferenceDto>emptyList()); // get the renderer initialized ListCellRenderer renderer = list.getSelectedList().getCellRenderer(); @@ -676,10 +639,10 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E list.putClientProperty("data", data); - // listen on cache modification - EntityDoubleListPropertyChangeListener<E> listener = - new EntityDoubleListPropertyChangeListener<E>(entityClass, list); //FIXME + // listen on cache modification +// EntityDoubleListPropertyChangeListener<E> listener = +// new EntityDoubleListPropertyChangeListener<E>(entityClass, list); // DataService service = ObserveContext.get().getDataService(); // service.addReferentielPropertyChangeListener(entityClass, listener); } @@ -688,41 +651,42 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E * Remplit le modèle d'une liste graphique avec la liste des entités d'un * type donné sur un service de persistance donné. * - * @param entityClass le type de l'entité - * @param list le component graphique à initialiser - * @throws DataSourceException si un problème lors de la récupération + * @param list le component graphique à initialiser + * @si un problème lors de la récupération * des entités * @since 1.5 */ - protected <E extends AbstractObserveDto> void prepareEntityList(Class<E> entityClass, - BeanListHeader<E> list) { + protected <E extends IdDto> void prepareEntityList(Class<E> dtoClass, + BeanListHeader<ReferenceDto> list) { ObserveSwingApplicationContext tx = ObserveSwingApplicationContext.get(); // init list - Decorator<E> decorator = tx.getDecorator(entityClass); + Decorator<ReferenceDto> decorator = tx.getDecorator(ReferenceDto.class, dtoClass.getName()); if (log.isDebugEnabled()) { log.debug("Will use decorator " + decorator); } list.putClientProperty("decorator", decorator); - List<E> data = null; - if (ReferentialDto.class.isAssignableFrom(entityClass)) { + List<ReferenceDto> data; - Predicate<E> predicate = (Predicate<E>) list.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_LIST_PREDICATE); - //FIXME -// data = tx.getDataService().getList(storageService, entityClass, predicate); + if (ReferentialDto.class.isAssignableFrom(dtoClass)) { + + Predicate<ReferenceDto> predicate = (Predicate<ReferenceDto>) list.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_LIST_PREDICATE); + + ReferenceSetDto<E> referenceSetDto = getFormDto().getReferenceSetDto(dtoClass); + data = new ArrayList<>(Collections2.filter(referenceSetDto.getReference(), predicate)); } else { - data = new ArrayList<E>(); + data = new ArrayList<>(); } // sort data from first decorator context - DecoratorUtil.sort((JXPathDecorator<E>) decorator, data, 0); + DecoratorUtil.sort((JXPathDecorator<ReferenceDto>) decorator, data, 0); // set datas to list and init renderer - list.init((JXPathDecorator<E>) decorator, data); + list.init((JXPathDecorator<ReferenceDto>) decorator, data); // get the renderer initialized ListCellRenderer renderer = list.getList().getCellRenderer(); @@ -732,10 +696,10 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E list.putClientProperty("data", data); - // listen on cache modification - EntityListPropertyChangeListener<E> listener = - new EntityListPropertyChangeListener<E>(entityClass, list); //FIXME + // listen on cache modification +// EntityListPropertyChangeListener<E> listener = +// new EntityListPropertyChangeListener<E>(dtoClass, list); // DataService service = ObserveContext.get().getDataService(); // service.addReferentielPropertyChangeListener(entityClass, listener); } @@ -744,59 +708,54 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E * Prépare un component de choix d'entités pour un type d'entité donné et * pour un service de persistance donné. * - * @param <E> le type de l'entité - * @param entityClass le type de l'entité - * @param comboBox le component graphique à initialiser - * @throws DataSourceException si un pb pendant la récupération des + * @param <E> le type de l'entité + * @param comboBox le component graphique à initialiser + * @si un pb pendant la récupération des * entités */ - protected <E extends AbstractObserveDto> void prepareBeanComboBox(Class<E> entityClass, BeanComboBox<E> comboBox) { + protected <E extends IdDto> void prepareBeanComboBox(BeanComboBox<ReferenceDto> comboBox) { ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); // init combobox - Decorator<E> decorator = context.getDecorator(entityClass); - - //FIXME -// DataService service = context.getDataService(); + Class<E> dtoClass = (Class<E>) comboBox.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_ENTITY_CLASS); + Decorator<ReferenceDto> decorator = context.getDecorator(ReferenceDto.class, dtoClass.getName()); Boolean noLoad = (Boolean) comboBox.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_LIST_NO_LOAD); - List<E> data = null; + List<ReferenceDto> data = null; if (noLoad != null && noLoad) { if (log.isInfoEnabled()) { - log.info("Skip loading of entity list [" + entityClass.getName() + "] (listNoLoad property found)"); + log.info("Skip loading of entity list [" + dtoClass.getName() + "] (listNoLoad property found)"); } data = Collections.emptyList(); } else { // get complete data list from service - Predicate<E> predicate = (Predicate<E>) comboBox.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_LIST_PREDICATE); - //FIXME -// data = service.getList(storageService, entityClass, predicate); + Predicate<ReferenceDto> predicate = (Predicate<ReferenceDto>) comboBox.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_LIST_PREDICATE); - } + ReferenceSetDto<E> referenceSetDto = getFormDto().getReferenceSetDto(dtoClass); + data = new ArrayList<>(Collections2.filter(referenceSetDto.getReference(), predicate)); - boolean referenceEntity = ReferentialDto.class.isAssignableFrom(entityClass); + } - if (referenceEntity) { + boolean referentialEntity = ReferentialDto.class.isAssignableFrom(dtoClass); + if (referentialEntity) { //TC-20100208 : on ne veut pas voir les elements du referentiel non actif - //FIXME -// ReferentialDtos.filterReferentielListByStatus((List) data); + ReferentialDtos.filterReferentialListByStatus((List) data); } - if (log.isInfoEnabled()) { - log.info("entity list [" + entityClass.getName() + "] : " + data.size()); + log.info("entity list [" + dtoClass.getName() + "] : " + data.size()); } // add data list to combo box - comboBox.init((JXPathDecorator<E>) decorator, data); + comboBox.init((JXPathDecorator<ReferenceDto>) decorator, data); final ListCellRenderer renderer = comboBox.getCombobox().getRenderer(); @@ -824,25 +783,24 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E }; comboBox.getCombobox().setRenderer(toolTipRenderer); if (log.isDebugEnabled()) { - log.debug("combo list [" + entityClass.getName() + "] : " + + log.debug("combo list [" + dtoClass.getName() + "] : " + comboBox.getData().size()); } - if (referenceEntity) { + if (referentialEntity) { + //FIXME // listen on cache modification - BeanComboBoxPropertyChangeListener listener = - new BeanComboBoxPropertyChangeListener(entityClass, comboBox) { - - @Override - public void propertyChange(PropertyChangeEvent evt) { - if (log.isDebugEnabled()) { - log.debug("entity list [" + evt.getPropertyName() + "]"); - } - super.propertyChange(evt); - } - }; - //FIXME +// BeanComboBoxPropertyChangeListener listener = +// new BeanComboBoxPropertyChangeListener(realEntityClass, comboBox) { +// @Override +// public void propertyChange(PropertyChangeEvent evt) { +// if (log.isDebugEnabled()) { +// log.debug("entity list [" + evt.getPropertyName() + "]"); +// } +// super.propertyChange(evt); +// } +// }; // service.addReferentielPropertyChangeListener(entityClass, listener); } @@ -856,7 +814,7 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E * @param <E> le type des entités */ protected static class EntityListPropertyChangeListener - <E extends AbstractObserveDto> implements PropertyChangeListener { + <E extends IdDto> implements PropertyChangeListener { /** le type des entités */ private Class<E> entityClass; @@ -904,7 +862,7 @@ public class ContentUIInitializer<E extends IdDto, UI extends ObserveContentUI<E * @param <E> le type des entités */ protected static class EntityDoubleListPropertyChangeListener - <E extends AbstractObserveDto> implements PropertyChangeListener { + <E extends IdDto> implements PropertyChangeListener { /** le type des entités */ private Class<E> entityClass; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIManager.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIManager.java index 6ff5652..d9fcbd9 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIManager.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIManager.java @@ -21,10 +21,26 @@ */ package fr.ird.observe.ui.content; -import fr.ird.observe.services.dto.constants.*; -import fr.ird.observe.services.dto.longline.*; -import fr.ird.observe.services.dto.referential.*; -import fr.ird.observe.services.dto.seine.*; +import fr.ird.observe.services.dto.constants.GearType; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; +import fr.ird.observe.services.dto.longline.ActivityLonglineEncouterDto; +import fr.ird.observe.services.dto.longline.ActivityLonglineSensorUsedDto; +import fr.ird.observe.services.dto.longline.SetLonglineCatchDto; +import fr.ird.observe.services.dto.longline.SetLonglineDto; +import fr.ird.observe.services.dto.longline.SetLonglineTdrDto; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.dto.seine.ActivitySeineDto; +import fr.ird.observe.services.dto.seine.ActivitySeineObservedSystemDto; +import fr.ird.observe.services.dto.seine.FloatingObjectDto; +import fr.ird.observe.services.dto.seine.FloatingObjectObservedSpeciesDto; +import fr.ird.observe.services.dto.seine.FloatingObjectSchoolEstimateDto; +import fr.ird.observe.services.dto.seine.RouteDto; +import fr.ird.observe.services.dto.seine.SetSeineDto; +import fr.ird.observe.services.dto.seine.SetSeineNonTargetCatchDto; +import fr.ird.observe.services.dto.seine.SetSeineSchoolEstimateDto; +import fr.ird.observe.services.dto.seine.SetSeineTargetCatchDto; +import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.content.impl.longline.LonglineDetailCompositionUI; import fr.ird.observe.ui.content.impl.longline.LonglineGlobalCompositionUI; @@ -33,33 +49,25 @@ import fr.ird.observe.ui.content.impl.seine.ActivitySeineObservedSystemUI; import fr.ird.observe.ui.content.impl.seine.FloatingObjectTransmittingBuoyOperationUI; import fr.ird.observe.ui.content.impl.seine.FloatingObjectUI; import fr.ird.observe.ui.content.impl.seine.SetSeineUI; -import fr.ird.observe.ui.content.list.impl.longline.ActivityLonglinesUI; import fr.ird.observe.ui.content.list.impl.longline.TripLonglinesUI; -import fr.ird.observe.ui.content.list.impl.seine.ActivitySeinesUI; -import fr.ird.observe.ui.content.list.impl.seine.RoutesUI; import fr.ird.observe.ui.content.list.impl.seine.TripSeinesUI; import fr.ird.observe.ui.content.open.impl.longline.ActivityLonglineUI; import fr.ird.observe.ui.content.open.impl.longline.TripLonglineUI; import fr.ird.observe.ui.content.open.impl.seine.ActivitySeineUI; import fr.ird.observe.ui.content.open.impl.seine.RouteUI; import fr.ird.observe.ui.content.open.impl.seine.TripSeineUI; -import fr.ird.observe.ui.content.ref.ContentReferenceUI; import fr.ird.observe.ui.content.ref.ReferenceHomeUI; import fr.ird.observe.ui.content.table.impl.longline.CatchLonglineUI; import fr.ird.observe.ui.content.table.impl.longline.EncounterUI; -import fr.ird.observe.ui.content.table.impl.longline.GearUseFeaturesLonglineUI; import fr.ird.observe.ui.content.table.impl.longline.SensorUsedUI; import fr.ird.observe.ui.content.table.impl.longline.TdrUI; -import fr.ird.observe.ui.content.table.impl.seine.GearUseFeaturesSeineUI; import fr.ird.observe.ui.content.table.impl.seine.NonTargetCatchUI; -import fr.ird.observe.ui.content.table.impl.seine.NonTargetSampleUI; import fr.ird.observe.ui.content.table.impl.seine.ObjectObservedSpeciesUI; import fr.ird.observe.ui.content.table.impl.seine.ObjectSchoolEstimateUI; import fr.ird.observe.ui.content.table.impl.seine.SchoolEstimateUI; import fr.ird.observe.ui.content.table.impl.seine.TargetCatchUI; import fr.ird.observe.ui.content.table.impl.seine.TargetDiscardCatchUI; import fr.ird.observe.ui.content.table.impl.seine.TargetSampleCaptureUI; -import fr.ird.observe.ui.content.table.impl.seine.TargetSampleRejeteUI; import fr.ird.observe.ui.tree.ObserveNode; import jaxx.runtime.JAXXContext; import jaxx.runtime.context.JAXXInitialContext; @@ -117,25 +125,24 @@ public class ContentUIManager { addMapping(DATA, ActivitySeineDto.class, ActivitySeineUI.class); addMapping(DATA, ActivitySeineDto.class, n("observe.tree.activitySeine.unsaved"), ActivitySeineUI.class); //FIXME -// addMapping(DATA, ActivitySeineDto.class, ActivitySeineDto.PROPERTY_OBSERVED_SYSTEM, ActivitySeineObservedSystemUI.class); + addMapping(DATA, ActivitySeineDto.class, ActivitySeineObservedSystemDto.PROPERTY_OBSERVED_SYSTEM, ActivitySeineObservedSystemUI.class); addMapping(DATA, SetSeineDto.class, SetSeineUI.class); addMapping(DATA, SetSeineDto.class, n("observe.tree.setSeine.unsaved"), SetSeineUI.class); -//FIXME -// addMapping(DATA, SetSeineDto.class, SetSeineDto.PROPERTY_SCHOOL_ESTIMATE, SchoolEstimateUI.class); -// addMapping(DATA, SetSeineDto.class, SetSeineDto.PROPERTY_TARGET_CATCH, TargetCatchUI.class); + addMapping(DATA, SetSeineDto.class, SetSeineSchoolEstimateDto.PROPERTY_SCHOOL_ESTIMATE, SchoolEstimateUI.class); + addMapping(DATA, SetSeineDto.class, SetSeineTargetCatchDto.PROPERTY_TARGET_CATCH, TargetCatchUI.class); addMapping(DATA, SetSeineDto.class, SetSeineDto.PROPERTY_TARGET_DISCARDED, TargetDiscardCatchUI.class); -// addMapping(DATA, SetSeineDto.class, SetSeineDto.PROPERTY_TARGET_SAMPLE, TargetSampleRejeteUI.class); addMapping(DATA, SetSeineDto.class, SetSeineDto.PROPERTY_TARGET_SAMPLE_CAPTURE, TargetSampleCaptureUI.class); -// addMapping(DATA, SetSeineDto.class, SetSeineDto.PROPERTY_NON_TARGET_CATCH, NonTargetCatchUI.class); + addMapping(DATA, SetSeineDto.class, SetSeineNonTargetCatchDto.PROPERTY_NON_TARGET_CATCH, NonTargetCatchUI.class); +//FIXME +// addMapping(DATA, SetSeineDto.class, SetSeineDto.PROPERTY_TARGET_SAMPLE, TargetSampleRejeteUI.class); // addMapping(DATA, SetSeineDto.class, SetSeineDto.PROPERTY_NON_TARGET_SAMPLE, NonTargetSampleUI.class); addMapping(DATA, FloatingObjectDto.class, FloatingObjectUI.class); addMapping(DATA, FloatingObjectDto.class, n("observe.tree.floatingObject.unsaved"), FloatingObjectUI.class); addMapping(DATA, FloatingObjectDto.class, FloatingObjectDto.PROPERTY_OBJECT_OPERATION, FloatingObjectTransmittingBuoyOperationUI.class); -//FIXME -// addMapping(DATA, FloatingObjectDto.class, FloatingObjectDto.PROPERTY_OBJECT_OBSERVED_SPECIES, ObjectObservedSpeciesUI.class); -// addMapping(DATA, FloatingObjectDto.class, FloatingObjectDto.PROPERTY_OBJECT_SCHOOL_ESTIMATE, ObjectSchoolEstimateUI.class); + addMapping(DATA, FloatingObjectDto.class, FloatingObjectObservedSpeciesDto.PROPERTY_OBJECT_OBSERVED_SPECIES, ObjectObservedSpeciesUI.class); + addMapping(DATA, FloatingObjectDto.class, FloatingObjectSchoolEstimateDto.PROPERTY_OBJECT_SCHOOL_ESTIMATE, ObjectSchoolEstimateUI.class); // --- Longline data --- // @@ -149,19 +156,16 @@ public class ContentUIManager { addMapping(DATA, ActivityLonglineDto.class, ActivityLonglineUI.class); addMapping(DATA, ActivityLonglineDto.class, n("observe.tree.activityLongline.unsaved"), ActivityLonglineUI.class); -//FIXME -// addMapping(DATA, ActivityLonglineDto.class, ActivityLonglineDto.PROPERTY_ENCOUNTER, EncounterUI.class); -// addMapping(DATA, ActivityLonglineDto.class, ActivityLonglineDto.PROPERTY_SENSOR_USED, SensorUsedUI.class); + addMapping(DATA, ActivityLonglineDto.class, ActivityLonglineEncouterDto.PROPERTY_ENCOUNTER, EncounterUI.class); + addMapping(DATA, ActivityLonglineDto.class, ActivityLonglineSensorUsedDto.PROPERTY_SENSOR_USED, SensorUsedUI.class); addMapping(DATA, SetLonglineDto.class, SetLonglineUI.class); addMapping(DATA, SetLonglineDto.class, n("observe.tree.setLongline.unsaved"), SetLonglineUI.class); -//FIXME -// addMapping(DATA, SetLonglineDto.class, "longlineGlobalComposition", LonglineGlobalCompositionUI.class); -// addMapping(DATA, SetLonglineDto.class, "longlineDetailComposition", LonglineDetailCompositionUI.class); + addMapping(DATA, SetLonglineDto.class, "longlineGlobalComposition", LonglineGlobalCompositionUI.class); + addMapping(DATA, SetLonglineDto.class, "longlineDetailComposition", LonglineDetailCompositionUI.class); -//FIXME -// addMapping(DATA, SetLonglineDto.class, SetLonglineDto.PROPERTY_CATCH_LONGLINE, CatchLonglineUI.class); -// addMapping(DATA, SetLonglineDto.class, SetLonglineDto.PROPERTY_TDR, TdrUI.class); + addMapping(DATA, SetLonglineDto.class, SetLonglineCatchDto.PROPERTY_CATCH_LONGLINE, CatchLonglineUI.class); + addMapping(DATA, SetLonglineDto.class, SetLonglineTdrDto.PROPERTY_TDR, TdrUI.class); // --- Referential --- // diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java index 9c7f21f..c0a8b00 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java @@ -27,8 +27,10 @@ import fr.ird.observe.business.db.DataContext; import fr.ird.observe.business.db.DataSource; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.ReferenceDtos; -import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; +import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.SpeciesListDto; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; @@ -45,6 +47,7 @@ import javax.swing.table.DefaultTableCellRenderer; import java.awt.*; import java.util.Collections; import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; @@ -180,10 +183,8 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto> ex protected abstract void initTableUI(DefaultTableCellRenderer renderer); - //FIXME protected abstract String getEditBeanIdToLoad(); - //FIXME protected E loadEditBean(ContentMode mode) { String id = getEditBeanIdToLoad(); @@ -196,7 +197,6 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto> ex // preparation du bean d'édition -// dataService.loadEditEntity(dataSource, id, getLoadExecutor()); loadEditBean(id); @@ -254,12 +254,15 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto> ex } -//FIXME - protected void prepareSpeciesList(String speciesListId, JComponent speciesComponent, String errorMessage) { + public Set<String> loadSpeciesList(String speciesListId, String errorMessage) { + Set<String> speciesIds; + try { - ReferenceSetDto<SpeciesListDto> speciesList = getModel().getFormDto().getReferenceSetDto(SpeciesListDto.class); - speciesIds = new HashSet<>(Collections2.transform(speciesList.getReference(), + ReferenceDto<SpeciesListDto> speciesList = getModel().getFormDto().getReferenceById(SpeciesListDto.class, speciesListId); + LinkedHashSet<ReferentialReferenceDto<SpeciesDto>> species = + (LinkedHashSet<ReferentialReferenceDto<SpeciesDto>>) speciesList.getPropertyValue(SpeciesListDto.PROPERTY_SPECIES); + speciesIds = new HashSet<>(Collections2.transform(species, ReferenceDtos.newReferenceDtoIdFunction())); } catch (Exception e) { @@ -267,6 +270,13 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto> ex speciesIds = Collections.emptySet(); } + return speciesIds; + + } + + protected void prepareSpeciesList(String speciesListId, JComponent speciesComponent, String errorMessage) { + + Set<String> speciesIds = loadSpeciesList(speciesListId, errorMessage); speciesComponent.putClientProperty( ObserveContentUI.CLIENT_PROPERTY_LIST_PREDICATE, @@ -346,7 +356,6 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto> ex } } - //FIXME @Override protected boolean doSave(E bean) throws Exception { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIModel.java index c904691..4d4df8c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIModel.java @@ -209,15 +209,16 @@ public abstract class ContentTableUIModel<E extends IdDto, D extends IdDto> exte } public final D newTableEditBean() { - //FIXME -// try { -// Class<D> klass = -// ObserveDAOHelper.getImplementationClass(getChildType()); -// return klass.newInstance(); -// } catch (Exception ex) { -// throw new RuntimeException(ex); -// } - return null; + D result = null; + try { + result = getChildType().getConstructor().newInstance(); + + } catch (Exception ex) { + throw new RuntimeException(ex); + + } finally { + return result; + } } public boolean isCanSaveRow() { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/WeightMeasuresTableModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/WeightMeasuresTableModel.java index 1f8cf05..c315aaf 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/WeightMeasuresTableModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/WeightMeasuresTableModel.java @@ -23,6 +23,8 @@ package fr.ird.observe.ui.content.table.impl.longline; */ import fr.ird.observe.services.dto.longline.WeightMeasureDto; +import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; +import fr.ird.observe.services.dto.referential.longline.WeightMeasureTypeDto; import fr.ird.observe.ui.util.table.EditableTableWithCacheTableModelSupport; /** @@ -85,8 +87,7 @@ public class WeightMeasuresTableModel extends EditableTableWithCacheTableModelSu switch (columnIndex) { case 0: - //FIXME -// measure.setWeightMeasureType((WeightMeasureTypeDto) aValue); + measure.setWeightMeasureType((ReferentialReferenceDto<WeightMeasureTypeDto>) aValue); break; case 1: 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 ed629d5..776e48a 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 @@ -78,10 +78,6 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { /** Logger. */ static private final Log log = LogFactory.getLog(ObserveTreeHelper.class); - /** le service de récupération de données. */ - //FIXME -// protected DataService dataService; - private boolean createUnsaved; public ObserveTreeHelper() { @@ -109,14 +105,6 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { } - //FIXME -// protected DataService getDataService() { -// if (dataService == null) { -// dataService = ObserveContext.get().getDataService(); -// } -// return dataService; -// } - @Override protected ObserveDataProvider getDataProvider() { ObserveDataProvider provider = (ObserveDataProvider) super.getDataProvider(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/util/table/EditableTableWithCacheTableModelSupport.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/table/EditableTableWithCacheTableModelSupport.java index 9f7b0dd..4f4573d 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/util/table/EditableTableWithCacheTableModelSupport.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/table/EditableTableWithCacheTableModelSupport.java @@ -24,7 +24,9 @@ package fr.ird.observe.ui.util.table; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.AbstractObserveDto; +import fr.ird.observe.services.dto.IdDto; +import org.nuiton.util.beans.Binder; +import org.nuiton.util.beans.BinderFactory; import java.util.ArrayList; import java.util.Collections; @@ -39,7 +41,7 @@ import java.util.TreeMap; * @author Tony Chemit - chemit@codelutin.com * @since 3.10 */ -public abstract class EditableTableWithCacheTableModelSupport<E extends AbstractObserveDto> extends EditableTableModelSupport<E> { +public abstract class EditableTableWithCacheTableModelSupport<E extends IdDto> extends EditableTableModelSupport<E> { private static final long serialVersionUID = 1L; @@ -50,22 +52,11 @@ public abstract class EditableTableWithCacheTableModelSupport<E extends Abstract */ protected final Map<Integer, EditableList<E>> cacheByRow; - /** - * Pour pouvoir faire des copies de chaque object. - */ - //FIXME -// protected final TopiaEntityBinder<E> loader; - protected EditableTableWithCacheTableModelSupport() { super(true); this.cacheByRow = new TreeMap<Integer, EditableList<E>>(); } - //FIXME -// public TopiaEntityBinder<E> getLoader() { -// return loader; -// } - public List<E> getCacheForRow(int rowIndex) { EditableList<E> measures = cacheByRow.get(rowIndex); return measures == null ? null : measures.getData(); @@ -148,8 +139,11 @@ public abstract class EditableTableWithCacheTableModelSupport<E extends Abstract List<E> copy = new ArrayList<E>(data.size()); for (E measure : data) { E originalMeasure = createNewRow(); - //FIXME -// loader.load(measure, originalMeasure, true); + + Class<E> sourceType = (Class<E>) originalMeasure.getClass(); + Binder<E, E> binder = BinderFactory.newBinder(sourceType); + binder.copy(measure, originalMeasure); + copy.add(originalMeasure); } return copy; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUIHandler.java index fa442ba..ea3216c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUIHandler.java @@ -23,9 +23,8 @@ package fr.ird.observe.ui.util.tripMap; */ import fr.ird.observe.ObserveSwingApplicationContext; -import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.business.ObserveTechnicalException; -import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.entities.tripMap.TripMapPoint; import fr.ird.observe.services.dto.IdDtos; import fr.ird.observe.ui.UIHelper; @@ -107,7 +106,7 @@ public class TripMapUIHandler { //FIXME // public void doOpenMap(DataSource dataSource, DataService dataService, String tripId) { - public void doOpenMap(DataSource dataSource, Object dataService, String tripId) { + public void doOpenMap(String tripId) { try { ((CardLayout) view.getLayout()).first(view); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.