This is an automated email from the git hooks/post-receive script. New commit to branch feature/8429 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit abd3d69ee3c260e40844306c9712207d3d4cad06 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Nov 25 09:11:21 2016 +0100 refs #8429 meilleure gestion du focus dans les assistants de base + suppression code mort --- .../ui/actions/ImportStorageFromFileAction.java | 4 +- .../swing/ui/storage/StorageUIHandler.java | 88 +++------- .../swing/ui/storage/StorageUILauncher.java | 188 ++++----------------- .../swing/ui/storage/tabs/ConfigUI.jaxx | 93 ++-------- .../longline/CatchLonglineNavigationTreeNode.java | 5 + .../ui/tree/selection/SelectionTreeModel.java | 8 +- 6 files changed, 79 insertions(+), 307 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ImportStorageFromFileAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ImportStorageFromFileAction.java index 6d3c1b1..d4d9c08 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ImportStorageFromFileAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/ImportStorageFromFileAction.java @@ -79,9 +79,7 @@ public class ImportStorageFromFileAction extends AbstractAction { model.setCreationMode(CreationMode.IMPORT_EXTERNAL_DUMP); if (model.isLocalStorageExist()) { // sauvegarde base locale possible - model.setSteps(StorageStep.CONFIG, - StorageStep.BACKUP, - StorageStep.CONFIRM); + model.setSteps(StorageStep.CONFIG, StorageStep.BACKUP, StorageStep.CONFIRM); // et requise par défaut model.setDoBackup(true); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java index 5ed82d9..cf3e1dd 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java @@ -58,6 +58,7 @@ import org.apache.commons.io.FileUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import javax.swing.JComponent; import javax.swing.JTabbedPane; import javax.swing.SwingUtilities; import java.awt.Component; @@ -210,6 +211,30 @@ public class StorageUIHandler { // centrage sur la frame parent UIHelper.center(ui.getContextValue(Window.class, "parent"), ui); + SwingUtilities.invokeLater(() -> { + JComponent focusOwner; + switch (ui.getModel().getStep()) { + + case CHOOSE_DB_MODE: + focusOwner = ui.getCHOOSE_DB_MODE().getUseLocalMode(); + if (!focusOwner.isEnabled() || ui.getCHOOSE_DB_MODE().getUseRemoteMode().isSelected()) { + focusOwner = ui.getCHOOSE_DB_MODE().getUseRemoteMode(); + } + break; + case CONFIG: + focusOwner = ui.getCONFIG().getDumpFile(); + break; + case BACKUP: + focusOwner = ui.getBACKUP().getDirectoryText(); + break; + default: + focusOwner = null; + } + if (focusOwner != null) { + focusOwner.grabFocus(); + } + }); + // affichage ui ui.setVisible(true); } @@ -382,7 +407,7 @@ public class StorageUIHandler { // il faut juste supprimer physiquement le repertoire // de la base if (log.isErrorEnabled()) { - log.error(t("observe.error.storage.could.not.load.local.db", e.getMessage()), e); + log.error(t("observe.error.storage.could.not.load.local.db", e.getMessage()), e); } // UIHelper.handlingError(t("observe.error.storage.could.not.load.local.db", e.getMessage()), e); @@ -642,61 +667,6 @@ public class StorageUIHandler { } } -// /** -// * Effectue une sauvegarde d'un service de persitances vers le fichier -// * choisi. -// * -// * On peut spécifier les donnéees à exporter via le paramètre {@code -// * marees}. -// * -// * <b>Note:</b> Si ce paramètre vaut {@code null}, on export tout. -// * -// * @param dataSource la source de donnée qui encapsule la base locale -// * @param dst le fichier de sauvegarde -// * @param trips les marees a exporter (si {@code null} on exporte tout) -// */ -// public void backupLocalDatabase(ObserveSwingDataSource dataSource, -// File dst, -// Set<DataReference> trips) { -// -// SqlScriptProducerService dumpService = dataSource.newSqlScriptProducerService(); -// -// -// if (trips == null) { -// if (log.isInfoEnabled()) { -// log.info("will export all datas."); -// } -// backupLocalDatabase(dumpService, dst); -// return; -// } -// if (dst == null) { -// throw new IllegalArgumentException( -// "file where to backup can not be null"); -// } -// if (log.isInfoEnabled()) { -// log.info("will export " + trips.size() + " marees to " + dst); -// } -// if (log.isDebugEnabled()) { -// log.debug(trips); -// } -// -// // on doit dumper la base distante dans une base h2 et en faire -// // la sauvegarde -// -// ImmutableSet<String> tripIds = ImmutableSet.copyOf(trips.stream().map(DataReference.ID_FUNCTION).collect(Collectors.toSet())); -// -// AddSqlScriptProducerRequest request = AddSqlScriptProducerRequest.forH2().addSchema().addReferential().dataIdsToAdd(tripIds); -// byte[] dump = dumpService.produceAddSqlScript(request).getSqlCode(); -// -// try (FileOutputStream fileOutputStream = new FileOutputStream(dst)) { -// -// IOUtils.write(dump, fileOutputStream); -// -// } catch (IOException e) { -// UIHelper.handlingError(e); -// } -// } - public String computeReport(StorageUI ui, StorageStep step) { if (log.isDebugEnabled()) { log.debug("Build report from step " + step); @@ -712,11 +682,9 @@ public class StorageUIHandler { if (log.isDebugEnabled()) { log.debug("destroy ui " + ui.getName()); } - UIHelper.TabbedPaneIterator<Component> itr = - UIHelper.newTabbedPaneIterator(ui.getTabs()); + UIHelper.TabbedPaneIterator<Component> itr = UIHelper.newTabbedPaneIterator(ui.getTabs()); for (; itr.hasNext(); ) { - StorageTabUI tab = - (StorageTabUI) itr.next(); + StorageTabUI tab = (StorageTabUI) itr.next(); if (log.isDebugEnabled()) { log.debug("destroy ui " + tab.getName()); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java index 6bf33c8..948ceb0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java @@ -132,10 +132,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod * @see StorageUIHandler * @see StorageUI */ - public static void changeStorage(final JAXXContext rootContext, - final Window mainUI, - final Set<DbMode> modes, - final String title) { + public static void changeStorage(JAXXContext rootContext, Window mainUI, Set<DbMode> modes, String title) { new StorageUILauncher(rootContext, mainUI, title) { @@ -151,13 +148,11 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod log.info("will use incoming mode " + modes.stream().map(DbMode::name).collect(Collectors.joining(", "))); } - model.setExcludeSteps( - Arrays.asList(StorageStep.SELECT_DATA, - StorageStep.BACKUP, - StorageStep.CONFIG_REFERENTIEL, - StorageStep.CONFIG_DATA, - StorageStep.ROLES) - ); + model.setExcludeSteps(Arrays.asList(StorageStep.SELECT_DATA, + StorageStep.BACKUP, + StorageStep.CONFIG_REFERENTIEL, + StorageStep.CONFIG_DATA, + StorageStep.ROLES)); model.setCanCreateLocalService(modes.contains(DbMode.CREATE_LOCAL)); model.setCanUseLocalService(modes.contains(DbMode.USE_LOCAL)); model.setCanUseRemoteService(modes.contains(DbMode.USE_REMOTE)); @@ -185,8 +180,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod @Override protected void doAction(StorageUI ui) { super.doAction(ui); - StorageUIHandler handler = getStorageUIHandler(); - handler.doChangeStorage(ui.getModel()); + getStorageUIHandler().doChangeStorage(ui.getModel()); } }.start(); @@ -205,9 +199,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod * @param model le modèle de source de données à utiliser * @see StorageUI */ - public static void obtainRemoteConnexion(final JAXXContext context, - Window mainUI, - final StorageUIModel model) { + public static void obtainRemoteConnexion(JAXXContext context, Window mainUI, StorageUIModel model) { obtainConnexion(context, mainUI, model, t("observe.title.connect.remoteDB"), DbMode.USE_REMOTE); } @@ -224,9 +216,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod * @param model le modèle de source de données à utiliser * @see StorageUI */ - public static void obtainServerConnexion(final JAXXContext context, - Window mainUI, - final StorageUIModel model) { + public static void obtainServerConnexion(JAXXContext context, Window mainUI, StorageUIModel model) { obtainConnexion(context, mainUI, model, t("observe.title.connect.serverDB"), DbMode.USE_SERVER); } @@ -242,25 +232,17 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod * @param mainUI la fenetre principale parent (peut etre null) * @param model le modèle de source de données à utiliser * @param title le titre de la fenêtre - * @param dbMode le type deconnexion (base distante ou serveur distant) + * @param dbMode le type deconnexion (base distante ou serveur distant) * @see StorageUI */ - public static void obtainConnexion(final JAXXContext context, - Window mainUI, - final StorageUIModel model, - String title, - DbMode dbMode) { + public static void obtainConnexion(JAXXContext context, Window mainUI, StorageUIModel model, String title, DbMode dbMode) { if (mainUI == null) { mainUI = ObserveSwingApplicationContext.get().getMainUI(); } addStorageUIHandler(context); - StorageUILauncher launcher = new StorageUILauncher( - context, - mainUI, - model, - title) { + StorageUILauncher launcher = new StorageUILauncher(context, mainUI, model, title) { @Override protected void init(StorageUI ui) { @@ -272,13 +254,13 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod model.setCanUseServerService(true); model.setExcludeSteps(Arrays.asList( - StorageStep.CHOOSE_DB_MODE, - StorageStep.CONFIG_REFERENTIEL, - StorageStep.CONFIG_DATA, - StorageStep.SELECT_DATA, - StorageStep.ROLES, - StorageStep.BACKUP, - StorageStep.CONFIRM) + StorageStep.CHOOSE_DB_MODE, + StorageStep.CONFIG_REFERENTIEL, + StorageStep.CONFIG_DATA, + StorageStep.SELECT_DATA, + StorageStep.ROLES, + StorageStep.BACKUP, + StorageStep.CONFIRM) ); model.setSteps(StorageStep.CONFIG); model.updateUniverse(); @@ -295,12 +277,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod if (!(mainUI instanceof JAXXObject)) { mainUI = null; } - return super.createUI(context, - mainUI, - storageUIClass, - modelClass, - model - ); + return super.createUI(context, mainUI, storageUIClass, modelClass, model); } @Override @@ -317,103 +294,6 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod launcher.start(); } -// /** -// * Méthode pour lancer l'action de connexion à une base locale. -// * -// * @param context le context applicatif -// * @param mainUI la fenetre principale parent (peut etre null) -// * @param model le modèle de source de données à utiliser -// * @see StorageUI -// */ -// public static void obtainLocalConnexion(final JAXXContext context, -// Window mainUI, -// final StorageUIModel model) { -// -// if (mainUI == null) { -// mainUI = ObserveSwingApplicationContext.get().getMainUI(); -// } -// -// addStorageUIHandler(context); -// -// StorageUILauncher launcher = new StorageUILauncher( -// context, -// mainUI, -// model, -// t("observe.title.connect.localDB")) { -// -// @Override -// protected StorageUI createUI(JAXXContext context, -// Window mainUI, -// Class<StorageUI> storageUIClass, -// Class<StorageUIModel> modelClass, -// StorageUIModel model) throws Exception { -// if (!(mainUI instanceof JAXXObject)) { -// // sinon on a pas de context propagé... -// mainUI = null; -// } -// return super.createUI(context, mainUI, storageUIClass, modelClass, model); -// } -// -// @Override -// protected void init(StorageUI ui) { -// StorageUIModel model = ui.getModel(); -// -// int nbModes = 0; -// -// DbMode mode = null; -// if (model.isCanCreateLocalService()) { -// nbModes++; -// mode = DbMode.CREATE_LOCAL; -// } -// if (model.isCanUseLocalService()) { -// nbModes++; -// mode = DbMode.USE_LOCAL; -// } -// if (model.isCanUseRemoteService()) { -// nbModes++; -// mode = DbMode.USE_REMOTE; -// } -// if (model.isCanUseServerService()) { -// nbModes++; -// mode = DbMode.USE_SERVER; -// } -// -// if (nbModes == 1) { -// -// if (log.isDebugEnabled()) { -// log.debug("Only one mode available [" + mode + -// "], set it in model"); -// } -// -// // un seul mode possible, on le sélectionne -// model.setDbMode(mode); -// } -// -// // on supprime des étapes -// model.setExcludeSteps(Arrays.asList( -// StorageStep.BACKUP, -// StorageStep.CONFIG_REFERENTIEL, -// StorageStep.CONFIG_DATA, -// StorageStep.SELECT_DATA, -// StorageStep.CONFIRM)); -// -// model.updateUniverse(); -// } -// -// @Override -// protected void doAction(StorageUI ui) { -// super.doAction(ui); -// if (log.isDebugEnabled()) { -// log.debug("Apply new local connexion to " + model); -// } -// ui.getModel().copyTo(model); -// model.validate(); -// } -// }; -// -// launcher.start(); -// } - /** * Méthode pour lancer l'action de connexion à une base locale ou distante. * @@ -428,11 +308,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod mainUI = ObserveSwingApplicationContext.get().getMainUI(); } addStorageUIHandler(context); - StorageUILauncher launcher = new StorageUILauncher( - context, - mainUI, - model, - t("observe.title.connect.existingDB")) { + StorageUILauncher launcher = new StorageUILauncher(context, mainUI, model, t("observe.title.connect.existingDB")) { @Override protected void init(StorageUI ui) { @@ -441,12 +317,12 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod // exclusion des étapes non requises model.setExcludeSteps(Arrays.asList( - StorageStep.SELECT_DATA, - StorageStep.CONFIG_REFERENTIEL, - StorageStep.CONFIG_DATA, - StorageStep.ROLES, - StorageStep.BACKUP, - StorageStep.CONFIRM) + StorageStep.SELECT_DATA, + StorageStep.CONFIG_REFERENTIEL, + StorageStep.CONFIG_DATA, + StorageStep.ROLES, + StorageStep.BACKUP, + StorageStep.CONFIRM) ); model.setSteps(StorageStep.CONFIG); model.updateUniverse(); @@ -469,12 +345,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod if (!(mainUI instanceof JAXXObject)) { mainUI = null; } - return super.createUI(context, - mainUI, - storageUIClass, - modelClass, - model - ); + return super.createUI(context, mainUI, storageUIClass, modelClass, model); } @Override @@ -492,8 +363,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod } protected static void addStorageUIHandler(JAXXContext context) { - StorageUIHandler handler = - context.getContextValue(StorageUIHandler.class); + StorageUIHandler handler = context.getContextValue(StorageUIHandler.class); if (handler == null) { handler = new StorageUIHandler(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jaxx index 5046859..39f9735 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jaxx @@ -63,8 +63,7 @@ public void init() { <JPanel id='configContent'> <!-- configurer creation base locale a partir d'une sauvegarde --> - <Table id='IMPORT_EXTERNAL_DUMP' - constraints='"IMPORT_EXTERNAL_DUMP"'> + <Table id='IMPORT_EXTERNAL_DUMP' constraints='"IMPORT_EXTERNAL_DUMP"'> <row> <cell> <JLabel text='observe.storage.importExternalDump.config'/> @@ -76,36 +75,13 @@ public void init() { onKeyReleased='getModel().setDumpFile(new File(((JTextField)event.getSource()).getText()))'/> </cell> <cell anchor="east"> - <JButton id="fileChooserAction" - onActionPerformed="getHandler().chooseDumpFile(this)"/> + <JButton id="fileChooserAction" onActionPerformed="getHandler().chooseDumpFile(this)"/> </cell> </row> </Table> <!-- configurer creation base locale et import referentiel depuis base distante --> - <!--Table id='IMPORT_LOCAL_STORAGE' - constraints='"IMPORT_LOCAL_STORAGE"' - _description='n("observe.storage.importLocalStorage.description")'> - <row> - <cell> - <JLabel text='observe.storage.importLocalStorage.config'/> - </cell> - </row> - <row weighty='1'> - <cell weightx='1' fill="horizontal"> - <JTextField text='{model.getLocalStorageFile()+""}' - onKeyReleased='getModel().setLocalStorageFile(new File(((JTextField)event.getSource()).getText()))'/> - </cell> - <cell anchor="east"> - <JButton actionIcon='fileChooser' onActionPerformed="chooseLocalStorageFile()"/> - </cell> - </row> - </Table--> - - <!-- configurer creation base locale et import referentiel depuis base distante --> - <Table id='IMPORT_REMOTE_STORAGE' - fill="both" - constraints='"IMPORT_REMOTE_STORAGE"'> + <Table id='IMPORT_REMOTE_STORAGE' fill="both" constraints='"IMPORT_REMOTE_STORAGE"'> <row> <cell> <JLabel text='observe.storage.importRemoteStorage.config'/> @@ -120,9 +96,7 @@ public void init() { </Table> <!-- configurer creation base locale et import referentiel depuis un server distant --> - <Table id='IMPORT_SERVER_STORAGE' - fill="both" - constraints='"IMPORT_SERVER_STORAGE"'> + <Table id='IMPORT_SERVER_STORAGE' fill="both" constraints='"IMPORT_SERVER_STORAGE"'> <row> <cell> <JLabel text='observe.storage.importServerStorage.config'/> @@ -137,8 +111,7 @@ public void init() { </Table> <!-- configurer connexion a base distante --> - <Table id='USE_REMOTE' - constraints='"USE_REMOTE"' fill='both'> + <Table id='USE_REMOTE' constraints='"USE_REMOTE"' fill='both'> <row> <cell> <JLabel text='observe.storage.useRemoteStorage.config'/> @@ -146,15 +119,13 @@ public void init() { </row> <row> <cell weighty='1' weightx='1'> - <JPanel id='USE_REMOTE_content' - minimumSize='{new Dimension(20,300)}'/> + <JPanel id='USE_REMOTE_content' minimumSize='{new Dimension(20,300)}'/> </cell> </row> </Table> <!-- configurer connexion au server base distante --> - <Table id='USE_SERVER' - constraints='"USE_SERVER"' fill='both'> + <Table id='USE_SERVER' constraints='"USE_SERVER"' fill='both'> <row> <cell> <JLabel text='observe.storage.useServerStorage.config'/> @@ -162,16 +133,14 @@ public void init() { </row> <row> <cell weighty='1' weightx='1'> - <JPanel id='USE_SERVER_content' - minimumSize='{new Dimension(20,300)}'/> + <JPanel id='USE_SERVER_content' minimumSize='{new Dimension(20,300)}'/> </cell> </row> </Table> <JPanel constraints='"$$hideme$$"' visible='false'> <JPanel id='remoteConfig'> - <Table constraints='BorderLayout.CENTER' - fill="both"> + <Table constraints='BorderLayout.CENTER' fill="both"> <row> <cell anchor='west'> <JLabel text='observe.storage.remote.url'/> @@ -201,8 +170,7 @@ public void init() { </row> <row> <cell anchor='west'> - <JLabel id="serverDataBaseLabel" - text='observe.storage.server.dataBase'/> + <JLabel id="serverDataBaseLabel" text='observe.storage.server.dataBase'/> </cell> <cell weightx='1' fill="both" anchor='east'> <JTextField id="serverDataBase" @@ -215,41 +183,6 @@ public void init() { onActionPerformed='getModel().setUseSsl(((JCheckBox)event.getSource()).isSelected())'/> </cell> </row> - <!--row weighty='1'--> - <!--row> - <cell columns='2'> - <Table insets='0'> - <row> - <cell weightx='1' - fill="horizontal"> - <JTextField - id="remoteSslCertificatFile" - onKeyReleased='getModel().setSslCertificatFile(new File(((JTextField)event.getSource()).getText()))'/> - </cell> - <cell anchor="east"> - <JButton - id="remoteSslCertificatFileChooseaction" - onActionPerformed="getHandler().chooseSslCertificatFile(this)"/> - </cell> - </row> - </Table> - </cell> - </row--> - <!--row> - <cell columns='2'> - <Table insets='0'> - <row> - <cell anchor='west'> - <JLabel text='observe.storage.remote.ssl.password'/> - </cell> - <cell weightx='1' fill="both" anchor='east'> - <JPasswordField id="remoteSslCertificatPassword" - onKeyReleased='getModel().setSslCertificatPassword(((JPasswordField)event.getSource()).getPassword())'/> - </cell> - </row> - </Table> - </cell> - </row--> <!-- sauver dans la configuration --> <row> @@ -261,14 +194,12 @@ public void init() { <!-- tester la connexion --> <row> <cell columns='2'> - <JButton id="testRemoteAction" - onActionPerformed='getModel().testRemote()'/> + <JButton id="testRemoteAction" onActionPerformed='getModel().testRemote()'/> </cell> </row> </Table> <!-- résumé du test de connexion --> - <Table constraints='BorderLayout.SOUTH' fill='both' - insets='0'> + <Table constraints='BorderLayout.SOUTH' fill='both' insets='0'> <row> <cell weightx='1' weighty='1'> <JScrollPane id="connexionStatusPanel"> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/CatchLonglineNavigationTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/CatchLonglineNavigationTreeNode.java index a49ba42..6c0739c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/CatchLonglineNavigationTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/longline/CatchLonglineNavigationTreeNode.java @@ -20,4 +20,9 @@ public class CatchLonglineNavigationTreeNode extends ClassNavigationTreeNode<Cat public Class<CatchLonglineUI> getContentClass() { return CatchLonglineUI.class; } + + @Override + public boolean isLeaf() { + return true; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java index bcbbbd3..41cec82 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java @@ -250,8 +250,8 @@ public class SelectionTreeModel extends DefaultTreeTableModel { public ImmutableSet<Class<? extends ReferentialDto>> getSelectedReferentiel() { ImmutableSet.Builder<Class<? extends ReferentialDto>> builder = ImmutableSet.builder(); for (ReferentialsSelectionTreeNode programNode : getRoot().getReferentialsNodes()) { - if (!programNode.isLeaf()) { - ImmutableList<Class<? extends ReferentialDto>> selected = programNode.getSelected(); + ImmutableList<Class<? extends ReferentialDto>> selected = programNode.getSelected(); + if (!selected.isEmpty()) { builder.addAll(selected); } } @@ -261,8 +261,8 @@ public class SelectionTreeModel extends DefaultTreeTableModel { public Map<ReferentialReference<ProgramDto>, List<DataReference<?>>> getSelectedDataByProgram() { ImmutableMap.Builder<ReferentialReference<ProgramDto>, List<DataReference<?>>> result = ImmutableMap.builder(); for (ProgramSelectionTreeNode programNode : getRoot()) { - if (!programNode.isLeaf()) { - ImmutableList<DataReference<?>> trips = programNode.getSelected(); + ImmutableList<DataReference<?>> trips = programNode.getSelected(); + if (!trips.isEmpty()) { result.put(programNode.getData(), trips); } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.