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 2054947a147d018a2f57c44b9d4f401eebb0ad43 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Nov 8 13:54:40 2015 +0100 Remise en place de l'ouverture de la configuration --- .../ird/observe/ui/actions/ShowConfigAction.java | 234 ++++++++++----------- 1 file changed, 111 insertions(+), 123 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowConfigAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowConfigAction.java index 3f26531..89010d2 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowConfigAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowConfigAction.java @@ -22,16 +22,23 @@ package fr.ird.observe.ui.actions; * #L% */ +import com.google.common.collect.Lists; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.configuration.ObserveSwingApplicationConfigOption; import fr.ird.observe.db.ObserveSwingDataSource; +import fr.ird.observe.services.dto.IdDtos; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.referential.SpeciesListDto; +import fr.ird.observe.services.service.ReferentialService; import fr.ird.observe.ui.ObserveMainUI; +import fr.ird.observe.ui.ObserveMainUIHandler; import fr.ird.observe.ui.ObserveUICallback; import jaxx.runtime.SwingUtil; import jaxx.runtime.swing.config.ConfigUIHelper; import jaxx.runtime.swing.config.model.ConfigUIModelBuilder; +import jaxx.runtime.swing.config.model.MainCallBackFinalizer; import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; @@ -39,14 +46,18 @@ import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.renderer.DefaultTableRenderer; import org.nuiton.config.ConfigOptionDef; import org.nuiton.decorator.Decorator; -import org.nuiton.decorator.JXPathDecorator; - -import javax.swing.*; -import java.awt.*; +import org.nuiton.decorator.MultiJXPathDecorator; + +import javax.swing.AbstractAction; +import javax.swing.DefaultCellEditor; +import javax.swing.Icon; +import javax.swing.JComboBox; +import javax.swing.JTable; +import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.MouseEvent; +import java.util.Collection; import java.util.EventObject; -import java.util.List; import java.util.Map; import static org.nuiton.i18n.I18n.n; @@ -103,90 +114,80 @@ public class ShowConfigAction extends AbstractAction { } protected ObserveConfigUIBuilder buildUI(ObserveSwingApplicationConfig config, ObserveSwingDataSource dataSource) { - //FIXME - -// SpeciesListTableCellEditor editor; -// SpeciesListsTableCellRenderer renderer; - -// if (dataSource == null) { -// -// editor = null; -// renderer = null; -// -// } else { -// -// DataService dataService = ObserveContext.get().getDataService(); -// -// Decorator<SpeciesList> speciesListDecorator = dataService.getDecoratorService().getDecoratorByType(SpeciesList.class); -// -// // load species lists -// List<SpeciesList> speciesLists = dataService.loadDecoratedEntities(dataSource, SpeciesList.class); -// -// Map<String, SpeciesList> speciesListMap = Entities.toIdMap(speciesLists); -// -// -// editor = new SpeciesListTableCellEditor(speciesLists, speciesListMap, speciesListDecorator); -// -// -// renderer = new SpeciesListsTableCellRenderer(speciesListMap, speciesListDecorator); -// -// } -// -// ObserveConfigUIBuilder helper = new ObserveConfigUIBuilder(config, editor, renderer); -// -// for (ObserveUICallback callback : ObserveUICallback.values()) { -// helper.registerCallBack(callback); -// } -// -// helper.setFinalizer(new MainCallBackFinalizer(ObserveUICallback.application.name())); -// -// helper.setCloseAction(new Runnable() { -// @Override -// public void run() { -// ObserveMainUIHandler.restartEdit(); -// } -// }); -// -// // categorie repertoires -// addDirectoriesOptions(helper); -// -// // categorie h2 -// addH2Options(helper); -// -// // categorie obtuna -// addObstunaOptions(helper); -// -// // categorie change storage -// addChangeStorageOptions(helper); -// -// // categorie gps -// addGpsOptions(helper); -// -// // categorie synchro -// addSynchroOptions(helper); -// -// // categorie observations (seine) -// addObservationsOptions(helper); -// -// if (dataSource != null) { -// -// // categorie speciesList (seine) -// addSeineSpeciesListOptions(helper); -// -// // categorie speciesList (longline) -// addLonglineSpeciesListOptions(helper); -// -// } -// -// // catégories map -// addMapOptions(helper); -// -// // others -// addOthersOptions(helper); -// -// return helper; - - return null; + + SpeciesListTableCellEditor editor = null; + SpeciesListsTableCellRenderer renderer = null; + + if (dataSource != null) { + + ReferentialService service = dataSource.newService(ReferentialService.class); + ReferenceSetDto<SpeciesListDto> referentialReferenceSet = service.getReferentialReferenceSet(SpeciesListDto.class); + Collection<ReferenceDto> speciesLists = referentialReferenceSet.getReference(); + Map<String, ReferenceDto> speciesListMap = IdDtos.splitById(speciesLists); + + Decorator referenceDecorator = ObserveSwingApplicationContext.get().getDecoratorService().getReferenceDecorator(SpeciesListDto.class); + + editor = new SpeciesListTableCellEditor(speciesLists, speciesListMap, referenceDecorator); + renderer = new SpeciesListsTableCellRenderer(speciesListMap, referenceDecorator); + + } + + ObserveConfigUIBuilder helper = new ObserveConfigUIBuilder(config, editor, renderer); + + + for (ObserveUICallback callback : ObserveUICallback.values()) { + helper.registerCallBack(callback); + } + + helper.setFinalizer(new MainCallBackFinalizer(ObserveUICallback.application.name())); + + helper.setCloseAction(new Runnable() { + + @Override + public void run() { + ObserveMainUIHandler.restartEdit(); + } + }); + + // categorie repertoires + addDirectoriesOptions(helper); + + // categorie h2 + addH2Options(helper); + + // categorie obtuna + addObstunaOptions(helper); + + // categorie change storage + addChangeStorageOptions(helper); + + // categorie gps + addGpsOptions(helper); + + // categorie synchro + addSynchroOptions(helper); + + // categorie observations (seine) + addObservationsOptions(helper); + + if (dataSource != null) { + + // categorie speciesList (seine) + addSeineSpeciesListOptions(helper); + + // categorie speciesList (longline) + addLonglineSpeciesListOptions(helper); + + } + + // catégories map + addMapOptions(helper); + + // others + addOthersOptions(helper); + + return helper; + } protected void addDirectoriesOptions(ObserveConfigUIBuilder helper) { @@ -208,7 +209,7 @@ public class ShowConfigAction extends AbstractAction { protected void addH2Options(ObserveConfigUIBuilder helper) { helper.addCategory(n("observe.config.category.h2"), - n("observe.config.category.h2.description")); + n("observe.config.category.h2.description")); helper.addOption(ObserveSwingApplicationConfigOption.H2_LOGIN); helper.addOption(ObserveSwingApplicationConfigOption.H2_PASSWORD); @@ -220,7 +221,7 @@ public class ShowConfigAction extends AbstractAction { protected void addObstunaOptions(ObserveConfigUIBuilder helper) { helper.addCategory(n("observe.config.category.obstuna"), - n("observe.config.category.obstuna.description")); + n("observe.config.category.obstuna.description")); helper.addOption(ObserveSwingApplicationConfigOption.OBSTUNA_URL); helper.addOption(ObserveSwingApplicationConfigOption.OBSTUNA_LOGIN); @@ -249,7 +250,7 @@ public class ShowConfigAction extends AbstractAction { protected void addGpsOptions(ObserveConfigUIBuilder helper) { helper.addCategory(n("observe.config.category.gps"), - n("observe.config.category.gps.description")); + n("observe.config.category.gps.description")); helper.addOption(ObserveSwingApplicationConfigOption.DEFAULT_GPS_MAX_DELAY); helper.addOption(ObserveSwingApplicationConfigOption.DEFAULT_GPS_MAX_SPEED); @@ -259,7 +260,7 @@ public class ShowConfigAction extends AbstractAction { protected void addSynchroOptions(ObserveConfigUIBuilder helper) { helper.addCategory(n("observe.config.category.synchro"), - n("observe.config.category.synchro.description")); + n("observe.config.category.synchro.description")); helper.addOption(ObserveSwingApplicationConfigOption.CHANGE_SYNCHRO_SRC); helper.addOption(ObserveSwingApplicationConfigOption.H2_CAN_MIGRATE); @@ -348,10 +349,6 @@ public class ShowConfigAction extends AbstractAction { private final SpeciesListsTableCellRenderer speciesListsTableCellRenderer; - SpeciesListTableCellEditor editor; - - SpeciesListsTableCellRenderer renderer; - protected ObserveConfigUIBuilder(ObserveSwingApplicationConfig config, SpeciesListTableCellEditor speciesListTableCellEditor, SpeciesListsTableCellRenderer speciesListsTableCellRenderer) { @@ -414,11 +411,11 @@ public class ShowConfigAction extends AbstractAction { private static final long serialVersionUID = 1L; - private final Map<String, SpeciesListDto> entityMap; + private final Map<String, ReferenceDto> entityMap; - private final Decorator<SpeciesListDto> decorator; + private final Decorator decorator; - public SpeciesListsTableCellRenderer(Map<String, SpeciesListDto> entityMap, Decorator<SpeciesListDto> decorator) { + public SpeciesListsTableCellRenderer(Map<String, ReferenceDto> entityMap, Decorator decorator) { this.entityMap = entityMap; this.decorator = decorator; } @@ -429,7 +426,7 @@ public class ShowConfigAction extends AbstractAction { int row, int column) { String speciesListId = String.valueOf(value); - SpeciesListDto speciesList = entityMap.get(speciesListId); + ReferenceDto speciesList = entityMap.get(speciesListId); return super.getTableCellRendererComponent(table, decorator.toString(speciesList), isSelected, hasFocus, row, column); } @@ -439,27 +436,29 @@ public class ShowConfigAction extends AbstractAction { private static final long serialVersionUID = 1L; - private final Map<String, SpeciesListDto> entityMap; + private final Map<String, ReferenceDto> entityMap; - private final Decorator<SpeciesListDto> decorator; + private final Decorator decorator; - protected SpeciesListTableCellEditor(List<SpeciesListDto> entities, - Map<String, SpeciesListDto> entityMap, - Decorator<SpeciesListDto> decorator) { + protected SpeciesListTableCellEditor(Collection<ReferenceDto> entities, + Map<String, ReferenceDto> entityMap, + Decorator decorator) { super(new JComboBox()); this.entityMap = entityMap; this.decorator = decorator; - final BeanFilterableComboBox<SpeciesListDto> component = new BeanFilterableComboBox<SpeciesListDto>(); + final BeanFilterableComboBox<ReferenceDto> component = new BeanFilterableComboBox<>(); component.setI18nPrefix("observe.common."); component.setShowReset(true); - component.setBeanType(SpeciesListDto.class); + component.setBeanType(ReferenceDto.class); + setClickCountToStart(1); editorComponent = component; delegate = new DefaultCellEditor.EditorDelegate() { + private static final long serialVersionUID = 1L; @Override @@ -475,11 +474,9 @@ public class ShowConfigAction extends AbstractAction { public Object getCellEditorValue() { String result = null; Object selectedItem = component.getSelectedItem(); - if (SpeciesListDto.class.isInstance(selectedItem)) { - SpeciesListDto speciesList = (SpeciesListDto) component.getSelectedItem(); - if (speciesList != null) { - result = speciesList.getId(); - } + if (selectedItem !=null && ReferenceDto.class.isInstance(selectedItem)) { + ReferenceDto reference = (ReferenceDto) selectedItem; + result = reference.getId(); } return result; } @@ -504,17 +501,8 @@ public class ShowConfigAction extends AbstractAction { } }; - component.init((JXPathDecorator<SpeciesListDto>) this.decorator, entities); + component.init((MultiJXPathDecorator) this.decorator, Lists.newArrayList(entities)); } - class SpeciesListListCellRenderer extends DefaultListCellRenderer { - - private static final long serialVersionUID = 1L; - - @Override - public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - return super.getListCellRendererComponent(list, decorator.toString(value), index, isSelected, cellHasFocus); - } - } } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.