Author: echatellier Date: 2012-08-06 12:48:10 +0200 (Mon, 06 Aug 2012) New Revision: 1028 Url: http://forge.codelutin.com/repositories/revision/coser/1028 Log: fixes #1322 : Ajouter des boutons suppl?\195?\169mentaires correspondant au action du menu contextuel Added: trunk/coser-ui/src/main/resources/icons/arrow_jion_up.png trunk/coser-ui/src/main/resources/icons/stock_select_clear.png trunk/coser-ui/src/main/resources/icons/stock_select_table.png Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionDetailsView.jaxx trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties trunk/pom.xml Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionDetailsView.jaxx =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionDetailsView.jaxx 2012-07-19 14:07:21 UTC (rev 1027) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionDetailsView.jaxx 2012-08-06 10:48:10 UTC (rev 1028) @@ -171,7 +171,7 @@ onActionPerformed='getDetailDecisionPanelLayout().show(getDetailDecisionPanel(), "ZONEMAP");getHandler().showStataOnMap(this);' /> </cell> <cell anchor="northeast"> - <JButton icon="table.png" toolTipText="coser.ui.selection.details.showSpreciesTip" + <JButton icon="table.png" toolTipText="coser.ui.selection.details.showSpeciesTip" onActionPerformed='getDetailDecisionPanelLayout().show(getDetailDecisionPanel(), "SPECIESDATA");getHandler().showSamplingEffort(this);' /> </cell> </row> @@ -233,10 +233,10 @@ <ListSelectionModel id="filteredSpeciesListSelectionModel" javaBean="filteredSpeciesList.getSelectionModel()" /> </JScrollPane> </cell> - <cell anchor="north"> + <cell anchor="north" insets="2"> <Table> <row> - <cell> + <cell insets="0"> <JButton icon="arrow_right.png" toolTipText="coser.ui.selection.details.addToSelectedListTip" onActionPerformed="getHandler().addSelectedFilteredSpecies(this)" @@ -244,13 +244,49 @@ </cell> </row> <row> - <cell> + <cell insets="0"> <JButton icon="arrow_left.png" toolTipText="coser.ui.selection.details.removeFromSelectedListTip" onActionPerformed="getHandler().removeSelectedSpecies(this)" enabled="{getSelectedSpeciesList().getSelectedIndex() != -1 && isYearsValidated() && isStrataValidated()}"/> </cell> </row> + <row> + <cell> + <JSeparator /> + </cell> + </row> + <row> + <cell insets="0"> + <JButton icon="stock_select_table.png" + toolTipText="coser.ui.selection.details.selectAllSpeciesTip" + onActionPerformed="getHandler().selectAllListSpecies(this)" /> + </cell> + </row> + <row> + <cell insets="0"> + <JButton icon="stock_select_clear.png" + toolTipText="coser.ui.selection.details.unSelectAllSpeciesTip" + onActionPerformed="getHandler().unSelectAllListSpecies(this)" /> + </cell> + </row> + <row> + <cell insets="0"> + <JButton icon="chart_curve.png" + toolTipText="coser.ui.selection.details.displayDiffCatchLengthGraphTip" + onActionPerformed="getHandler().showSelectedSpeciesGraph(this, null)" + enabled="{isYearsValidated() && isStrataValidated() && (getSelectedSpeciesList().getSelectedIndex() != -1 || getFilteredSpeciesList().getSelectedIndex() != -1)}" /> + </cell> + </row> + + <row> + <cell insets="0"> + <JButton icon="arrow_jion_up.png" + toolTipText="coser.ui.selection.details.mergeSpeciesTip" + onActionPerformed="getHandler().showSpeciesMergeDialog(this)" + enabled="{getFilteredSpeciesList().getSelectedIndex() != -1 && isYearsValidated() && isStrataValidated()}"/> + </cell> + </row> </Table> </cell> <cell weightx="1" weighty="1" fill="both"> Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2012-07-19 14:07:21 UTC (rev 1027) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2012-08-06 10:48:10 UTC (rev 1028) @@ -623,15 +623,7 @@ fusionMenu.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - SpeciesFusionDialog speciesFusionDialog = new SpeciesFusionDialog(view); - speciesFusionDialog.setHandler(SelectionHandler.this); - - // pre fill new speci name with first selected species name - String firstSelected = (String)view.getFilteredSpeciesList().getSelectedValue(); - speciesFusionDialog.getNewSpeciesNameField().setText(firstSelected); - - speciesFusionDialog.setLocationRelativeTo(view); - speciesFusionDialog.setVisible(true); + showSpeciesMergeDialog(view); } }); popupMenu.add(fusionMenu); @@ -675,7 +667,7 @@ popupMenu.show(view.getFilteredSpeciesList(), event.getX(), event.getY()); } } - + /** * Affiche un menu contextuel lors du clic (droit) sur la liste des especes * sélectionnées. @@ -729,6 +721,56 @@ } /** + * Show species merge dialog. Called from view action or context menu. + * + * @param view parent view + */ + protected void showSpeciesMergeDialog(SelectionDetailsView view) { + SpeciesFusionDialog speciesFusionDialog = new SpeciesFusionDialog(view); + speciesFusionDialog.setHandler(SelectionHandler.this); + + // pre fill new speci name with first selected species name + String firstSelected = (String)view.getFilteredSpeciesList().getSelectedValue(); + speciesFusionDialog.getNewSpeciesNameField().setText(firstSelected); + + speciesFusionDialog.setLocationRelativeTo(view); + speciesFusionDialog.setVisible(true); + + } + + /** + * Clic sur le bouton selectionner tout. + * Selectionne toutes les espèces dans les 2 listes contrairement au + * menu contextuel qui ne selectionne que dans une seule liste. + * + * @param view parent view + * @since 1.3 + */ + public void selectAllListSpecies(SelectionDetailsView view) { + // available + int size = view.getFilteredSpeciesList().getModel().getSize(); + view.getFilteredSpeciesList().getSelectionModel().addSelectionInterval(0, size - 1); + // selected + size = view.getSelectedSpeciesList().getModel().getSize(); + view.getSelectedSpeciesList().getSelectionModel().addSelectionInterval(0, size - 1); + } + + /** + * Clic sur le bouton selectionner tout. + * Selectionne toutes les espèces dans les 2 listes contrairement au + * menu contextuel qui ne selectionne que dans une seule liste. + * + * @param view parent view + * @since 1.3 + */ + public void unSelectAllListSpecies(SelectionDetailsView view) { + // available + view.getFilteredSpeciesList().getSelectionModel().clearSelection(); + // selected + view.getSelectedSpeciesList().getSelectionModel().clearSelection(); + } + + /** * Sauvegarde (ou creer) la sélection (partie details). * * @param view parent view @@ -1186,7 +1228,7 @@ * sur laquelle porte l'appel. * * @param view view - * @param source + * @param source source list to choose selected values (can be {@code null}, read both lists) */ public void showSelectedSpeciesGraph(SelectionDetailsView view, JList source) { @@ -1194,11 +1236,25 @@ Project project = view.getContextValue(Project.class); Selection selection = view.getContextValue(Selection.class); - Object[] selectedSpecies = source.getSelectedValues(); Set<String> graphSpecies = new HashSet<String>(); - for (Object selectedSingleSpecies : selectedSpecies) { - graphSpecies.add((String)selectedSingleSpecies); + // specific list given (context menu) + if (source != null) { + Object[] selectedSpecies = source.getSelectedValues(); + for (Object selectedSingleSpecies : selectedSpecies) { + graphSpecies.add((String)selectedSingleSpecies); + } } + else { + // merge both lists + Object[] selectedSpecies = view.getFilteredSpeciesList().getSelectedValues(); + for (Object selectedSingleSpecies : selectedSpecies) { + graphSpecies.add((String)selectedSingleSpecies); + } + selectedSpecies = view.getSelectedSpeciesList().getSelectedValues(); + for (Object selectedSingleSpecies : selectedSpecies) { + graphSpecies.add((String)selectedSingleSpecies); + } + } Map<String, JFreeChart> chartsMap = publicationService.getCompareCatchLengthGraph(project, selection, graphSpecies); Collection<JFreeChart> charts = chartsMap.values(); Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx 2012-07-19 14:07:21 UTC (rev 1027) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx 2012-08-06 10:48:10 UTC (rev 1028) @@ -53,7 +53,7 @@ ]]></script> <row> - <cell columns="8" weightx="1" fill="horizontal"> + <cell columns="8" weightx="1" insets="0" fill="horizontal"> <JToolBar floatable="false"> <Component initializer="javax.swing.Box.createHorizontalGlue()" /> <JButton id="validSelectionButton" text="coser.ui.selection.details.validSelection" Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties =================================================================== --- trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2012-07-19 14:07:21 UTC (rev 1027) +++ trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2012-08-06 10:48:10 UTC (rev 1028) @@ -41,12 +41,12 @@ coser.ui.control.globalErrorMenuSelectAll=Select all lines coser.ui.control.graph.species=Species \: coser.ui.control.progressStep=Step %d/%d \: %s -coser.ui.control.project.requiredauthor=Author field is required -coser.ui.control.project.requiredcatchFile=Catch file is required -coser.ui.control.project.requiredhaulFile=Haul file is required -coser.ui.control.project.requiredlengthFile=Length file is required -coser.ui.control.project.requiredname=Project name is required -coser.ui.control.project.requiredstrataFile=Strata file is required +coser.ui.control.project.requiredauthor= +coser.ui.control.project.requiredcatchFile= +coser.ui.control.project.requiredhaulFile= +coser.ui.control.project.requiredlengthFile= +coser.ui.control.project.requiredname= +coser.ui.control.project.requiredstrataFile= coser.ui.control.replace.find=Find \: coser.ui.control.replace.inField=In field \: coser.ui.control.replace.replace=Replace \: @@ -156,10 +156,10 @@ coser.ui.result.newResult=New Result coser.ui.result.otherDataFile=Other files \: coser.ui.result.publiableResult=Publiable \: -coser.ui.result.requiredestComIndPath=ESTCOMind file is required -coser.ui.result.requiredestPopIndPath=ESTPOPind file is required -coser.ui.result.requiredname=Result name is required -coser.ui.result.requiredrsufiVersion=Rsufi version is required +coser.ui.result.requiredestComIndPath= +coser.ui.result.requiredestPopIndPath= +coser.ui.result.requiredname= +coser.ui.result.requiredrsufiVersion= coser.ui.result.resultName=Result name \: coser.ui.result.rsufiVersion=RSufi version \: coser.ui.result.saveError=Save error @@ -189,17 +189,21 @@ coser.ui.selection.details.comment=Comments \: coser.ui.selection.details.description=Description \: coser.ui.selection.details.displayDiffCatchLengthGraph=Comparison catch/length graphs +coser.ui.selection.details.displayDiffCatchLengthGraphTip=Comparison catch/length graphs coser.ui.selection.details.filteredSpecies=Filtered species (%d/%d) \: +coser.ui.selection.details.mergeSpeciesTip=Merge coser.ui.selection.details.name=Selection name \: coser.ui.selection.details.removeFromSelectedListTip=Remove selected species from selected species list coser.ui.selection.details.saveSelection=Save selection +coser.ui.selection.details.selectAllSpeciesTip=Select all coser.ui.selection.details.selectedSpecies=L1 \: Selected species (%d/%d) \: coser.ui.selection.details.showMapTip=Display strata map -coser.ui.selection.details.showSpreciesTip=Display sampling effort table +coser.ui.selection.details.showSpeciesTip= coser.ui.selection.details.speciesDataDescription=Haul count by strata and year \: coser.ui.selection.details.speciescontextmenu=For more options, use species lists contextual menu coser.ui.selection.details.strata=Strata (%d/%d) \: coser.ui.selection.details.type=Filter by type (%d/%d) \: +coser.ui.selection.details.unSelectAllSpeciesTip=Unselect all coser.ui.selection.details.validFilter=Valid filter coser.ui.selection.details.validSelection=Valid selection coser.ui.selection.details.validSpecies=Valid species @@ -240,8 +244,8 @@ coser.ui.selection.replay.selectioninfos=Selection information \: coser.ui.selection.rsufidataextracted=RSufi data extracted. coser.ui.selection.saveError=Save error -coser.ui.selection.selection.requiredDescription=Selection description is required -coser.ui.selection.selection.requiredName=Selection name is required +coser.ui.selection.selection.requiredDescription= +coser.ui.selection.selection.requiredName= coser.ui.selection.selectionCreated=Selection created. coser.ui.selection.selectionFilterDescription=Coser selection (*.selection) coser.ui.selection.selectionSaved=Selection saved. Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties =================================================================== --- trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2012-07-19 14:07:21 UTC (rev 1027) +++ trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2012-08-06 10:48:10 UTC (rev 1028) @@ -41,12 +41,12 @@ coser.ui.control.globalErrorMenuSelectAll=Sélectionner toutes les lignes coser.ui.control.graph.species=Espèces \: coser.ui.control.progressStep=Étape %d/%d \: %s -coser.ui.control.project.requiredauthor=Le champ 'auteur' est requis -coser.ui.control.project.requiredcatchFile=Le fichier 'capture' est requis -coser.ui.control.project.requiredhaulFile=Le fichier 'traits' est requis -coser.ui.control.project.requiredlengthFile=Le fichier 'taille' est requis -coser.ui.control.project.requiredname=Le nom du project est requis -coser.ui.control.project.requiredstrataFile=Le fichier 'strates' est requis +coser.ui.control.project.requiredauthor= +coser.ui.control.project.requiredcatchFile= +coser.ui.control.project.requiredhaulFile= +coser.ui.control.project.requiredlengthFile= +coser.ui.control.project.requiredname= +coser.ui.control.project.requiredstrataFile= coser.ui.control.replace.find=Chercher \: coser.ui.control.replace.inField=Dans le champ \: coser.ui.control.replace.replace=Remplacer \: @@ -156,10 +156,10 @@ coser.ui.result.newResult=Nouveau résultat coser.ui.result.otherDataFile=Autre fichiers \: coser.ui.result.publiableResult=Publiable \: -coser.ui.result.requiredestComIndPath=Le fichier ESTCOMind est requis -coser.ui.result.requiredestPopIndPath=Le fichier ESTPOPind est requis -coser.ui.result.requiredname=Le nom du résultat est requis -coser.ui.result.requiredrsufiVersion=Le champ 'rsufiVersion' est requis +coser.ui.result.requiredestComIndPath= +coser.ui.result.requiredestPopIndPath= +coser.ui.result.requiredname= +coser.ui.result.requiredrsufiVersion= coser.ui.result.resultName=Nom du résultat \: coser.ui.result.rsufiVersion=Version de RSufi \: coser.ui.result.saveError=Erreur de sauvegarde @@ -189,17 +189,21 @@ coser.ui.selection.details.comment=Commentaire \: coser.ui.selection.details.description=Description \: coser.ui.selection.details.displayDiffCatchLengthGraph=Graphiques des différences captures/tailles +coser.ui.selection.details.displayDiffCatchLengthGraphTip=Graphiques des différences captures/tailles coser.ui.selection.details.filteredSpecies=Espèces filtrées (%d/%d) \: +coser.ui.selection.details.mergeSpeciesTip=Fusion coser.ui.selection.details.name=Nom de la sélection \: coser.ui.selection.details.removeFromSelectedListTip=Retire les espèces sélectionnées de la liste des espèces sélectionnées coser.ui.selection.details.saveSelection=Sauvegarder la sélection +coser.ui.selection.details.selectAllSpeciesTip=Sélectionner tout coser.ui.selection.details.selectedSpecies=L1 \: Espèces sélectionnées (%d/%d) \: coser.ui.selection.details.showMapTip=Afficher la carte des strates -coser.ui.selection.details.showSpreciesTip=Afficher la table de l'effort d'échantillonage +coser.ui.selection.details.showSpeciesTip=Afficher la table de l'effort d'échantillonage coser.ui.selection.details.speciesDataDescription=Nombre de traits par strate par année \: coser.ui.selection.details.speciescontextmenu=Pour plus d'options, utilisez le menu contextuel sur les listes d'espèces coser.ui.selection.details.strata=Strates (%d/%d) \: coser.ui.selection.details.type=Filtrer par type (%d/%d) \: +coser.ui.selection.details.unSelectAllSpeciesTip=Désélectionner tout coser.ui.selection.details.validFilter=Valider les filtres coser.ui.selection.details.validSelection=Valider la sélection coser.ui.selection.details.validSpecies=Valider les espèces @@ -240,8 +244,8 @@ coser.ui.selection.replay.selectioninfos=Information sur la sélection \: coser.ui.selection.rsufidataextracted=Données RSufi extraites. coser.ui.selection.saveError=Erreur de sauvegarde -coser.ui.selection.selection.requiredDescription=La description de la sélection est requise -coser.ui.selection.selection.requiredName=Le nom de la sélection est requis +coser.ui.selection.selection.requiredDescription= +coser.ui.selection.selection.requiredName= coser.ui.selection.selectionCreated=Sélection créée. coser.ui.selection.selectionFilterDescription=Coser sélection (*.selection) coser.ui.selection.selectionSaved=Sélection sauvée. Added: trunk/coser-ui/src/main/resources/icons/arrow_jion_up.png =================================================================== (Binary files differ) Property changes on: trunk/coser-ui/src/main/resources/icons/arrow_jion_up.png ___________________________________________________________________ Added: svn:mime-type + image/png Added: trunk/coser-ui/src/main/resources/icons/stock_select_clear.png =================================================================== (Binary files differ) Property changes on: trunk/coser-ui/src/main/resources/icons/stock_select_clear.png ___________________________________________________________________ Added: svn:mime-type + image/png Added: trunk/coser-ui/src/main/resources/icons/stock_select_table.png =================================================================== (Binary files differ) Property changes on: trunk/coser-ui/src/main/resources/icons/stock_select_table.png ___________________________________________________________________ Added: svn:mime-type + image/png Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2012-07-19 14:07:21 UTC (rev 1027) +++ trunk/pom.xml 2012-08-06 10:48:10 UTC (rev 1028) @@ -117,13 +117,13 @@ <dependency> <groupId>org.nuiton</groupId> <artifactId>nuiton-utils</artifactId> - <version>2.5.2-SNAPSHOT</version> + <version>2.5.2</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.nuiton</groupId> <artifactId>nuiton-validator</artifactId> - <version>2.5.2-SNAPSHOT</version> + <version>2.5.2</version> <scope>compile</scope> </dependency> @@ -172,7 +172,7 @@ <dependency> <groupId>org.swinglabs.swingx</groupId> <artifactId>swingx-core</artifactId> - <version>1.6.3</version> + <version>1.6.4</version> <scope>compile</scope> </dependency> @@ -346,7 +346,7 @@ <license.organizationName>Ifremer, Codelutin</license.organizationName> <!-- Versions --> - <jaxx.version>2.5.2</jaxx.version> + <jaxx.version>2.5.3</jaxx.version> <i18n.version>2.4.1</i18n.version> <!-- 2.3.1.1 fails to validate fields in jnlp --> <struts.version>2.3.4</struts.version>