This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit c4910c8a98d93aea45e641b601e3d97646649bd1 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Apr 25 14:46:13 2016 +0200 Bloquer la sortie de l'écran des mensurations si modification pour aller vers l'onglet capture (See #8272) --- .../operation/catches/EditCatchesUIHandler.java | 414 +++++---------------- 1 file changed, 91 insertions(+), 323 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java index fba8764..07fbed4 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java @@ -30,7 +30,6 @@ import fr.ifremer.tutti.ui.swing.content.operation.catches.species.EditSpeciesBa import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesOrBenthosBatchUISupport; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiTabContainerUIHandler; import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; -import fr.ifremer.tutti.ui.swing.util.TuttiUI; import jaxx.runtime.swing.CardLayout2Ext; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.logging.Log; @@ -61,18 +60,8 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi public static final String CREATE_BATCH_CARD = "createBatch"; -// public static final String SPLIT_BATCH_CARD = "splitBatch"; -// -// public static final String ADD_SAMPLE_CATEGORY_BATCH_CARD = "addSampleCategoryBatch"; -// -// public static final String EDIT_FREQUENCY_CARD = "editFrequency"; - public static final String EDIT_CARACTERISTICS_CARD = "caracteristicsCard"; -// public static final String CAROUSSEL_TREMIE_VESSEL = "carousselTremieVessel"; -// -// public static final String CLASSIC_VESSEL = "classicVessel"; - /** Logger. */ private static final Log log = LogFactory.getLog(EditCatchesUIHandler.class); @@ -144,12 +133,6 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi @Override public void afterInit(EditCatchesUI ui) { -// ui.getBenthosTabSplitBatch().getModel().setSplitMode(true); -// ui.getBenthosTabAddSampleCategoryBatch().getModel().setSplitMode(false); -// -// ui.getSpeciesTabSplitBatch().getModel().setSplitMode(true); -// ui.getSpeciesTabAddSampleCategoryBatch().getModel().setSplitMode(false); - initUI(ui); EditCatchesUIModel model = getModel(); @@ -168,20 +151,6 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi EditCatchesUIModel.PROPERTY_BENTHOS_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT, EditCatchesUIModel.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT)); - //FIXME Can't use it with thoses tabs, because of crazy listener usage, the scheme is not clear at all - //FIXME and we need to clarify and sanity this doom :( -// setCustomTab2(1, ui.getSpeciesTabContent().getModel(), -// Sets.newHashSet(EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT, -// EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_INERT_WEIGHT, -// EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT)); -// setCustomTab2(2, ui.getBenthosTabContent().getModel(), -// Sets.newHashSet(EditCatchesUIModel.PROPERTY_BENTHOS_TOTAL_SORTED_WEIGHT, -// EditCatchesUIModel.PROPERTY_BENTHOS_TOTAL_INERT_WEIGHT, -// EditCatchesUIModel.PROPERTY_BENTHOS_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT)); -// -// setCustomTab2(3, ui.getMarineLitterTabContent().getModel(), -// Sets.newHashSet(EditCatchesUIModel.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT)); - setCustomTab(1, ui.getSpeciesTabPanel().getEditBatchesUI().getModel()); setCustomTab(2, ui.getBenthosTabPanel().getEditBatchesUI().getModel()); setCustomTab(3, ui.getMarineLitterTabContent().getModel()); @@ -210,16 +179,6 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi @Override protected JComponent getComponentToFocus() { -// JComponent result; -// //TODO remove when svg resume is done? -// if (getModel().getCatchTotalComputedWeight() != null) { -// // if there is a computed value, never focus inside the component -// // see http://forge.codelutin.com/issues/4151 -// result = null; -// } else { -// -// result = getUI().getCatchTotalWeightField(); -// } return null; } @@ -282,6 +241,7 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi @Override public boolean onTabChanged(int currentIndex, int newIndex) { + ui.getCatchesCaracteristicsAttachmentsButton().onCloseUI(); ui.getComputeSpeciesBatchButton().setVisible(newIndex < 4); ui.getCleanSpeciesBatchButton().setVisible(newIndex > 0 && newIndex < 3); @@ -331,6 +291,29 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi // before the demo) EditCatchesUIModel model = getModel(); boolean result; + + if (isEditingSpeciesFrequencies()) { + + if (log.isInfoEnabled()) { + log.info("Species frequencies model was modified, ask user confirmation."); + } + result = getUI().getSpeciesTabPanel().getEditFrequenciesUI().leaveIfConfirmed(); + if( !result) { + return false; + } + } + + if (isEditingBenthosFrequencies()) { + + if (log.isInfoEnabled()) { + log.info("Benthos frequencies model was modified, ask user confirmation."); + } + result = getUI().getBenthosTabPanel().getEditFrequenciesUI().leaveIfConfirmed(); + if( !result) { + return false; + } + } + if (model.isModify()) { if (model.isValid()) { @@ -408,7 +391,6 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi //-- Public methods --// //------------------------------------------------------------------------// - public EditSpeciesBatchPanelUI getEditSpeciesBatchPanelUI(SpeciesOrBenthosBatchUISupport batchUISupport) { return batchUISupport instanceof BenthosBatchUISupportImpl ? ui.getBenthosTabPanel() : ui.getSpeciesTabPanel(); } @@ -433,294 +415,39 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi ); } -// public void editSpeciesFrequencies(int rowIndex) { -// JXTable speciesTable = ui.getSpeciesTabContent().getTable(); -// -// TableColumn frequenciesColumn = speciesTable.getColumn(SpeciesBatchTableModel.COMPUTED_NUMBER); -// int frequenciesColumnIndex = speciesTable.getColumns(false).indexOf(frequenciesColumn); -// -// SpeciesFrequencyCellComponent.FrequencyCellEditor frequencyCellEditor = -// (SpeciesFrequencyCellComponent.FrequencyCellEditor) speciesTable.getCellEditor(rowIndex, frequenciesColumnIndex); -// -// frequencyCellEditor.initEditor(speciesTable, rowIndex, frequenciesColumnIndex); -// frequencyCellEditor.startEdit(); -// } -// -// public void editSpeciesFrequencies(SpeciesFrequencyCellComponent.FrequencyCellEditor editor) { -// -// SpeciesFrequencyUI frequencyEditor = ui.getSpeciesTabFrequencyEditor(); -// -// SpeciesBatchRowModel editRow = editor.getEditRow(); -// -// String frequenciesTitle = buildReminderLabelTitle(editRow.getSpecies(), -// editRow, -// ui.getSpeciesTabFishingOperationReminderLabel().getTitle(), -// "", -// false); -// frequencyEditor.getHandler().editBatch(editor, Optional.of(frequenciesTitle)); -// -// // open frequency editor -// setSpeciesSelectedCard(EditCatchesUIHandler.EDIT_FREQUENCY_CARD); -// -// // update title -// String title = buildReminderLabelTitle(editRow.getSpecies(), -// editRow, -// ui.getSpeciesTabFishingOperationReminderLabel().getTitle(), -// t("tutti.editSpeciesFrequencies.title")); -// ui.getSpeciesTabFrequencyEditorReminderLabel().setTitle(title); -// } - -// public void splitSpeciesBatch(SpeciesBatchRowModel editRow, -// SplitSpeciesBatchUI splitBatchEditor) { -// -// splitBatchEditor.getHandler().editBatch(editRow); -// -// // open split editor -// setSpeciesSelectedCard(EditCatchesUIHandler.SPLIT_BATCH_CARD); -// -// // update title -// String title = buildReminderLabelTitle(editRow.getSpecies(), -// editRow, -// ui.getSpeciesTabFishingOperationReminderLabel().getTitle(), -// t("tutti.splitSpeciesBatch.title")); -// ui.getSpeciesTabSplitBatchReminderLabel().setTitle(title); -// } - -// public void addSampleCategorySpeciesBatch(SpeciesBatchRowModel editRow, -// SplitSpeciesBatchUI splitBatchEditor, -// int sampleCategoryId) { -// -// splitBatchEditor.getHandler().editBatch(editRow, sampleCategoryId); -// -// // open split editor -// setSpeciesSelectedCard(EditCatchesUIHandler.ADD_SAMPLE_CATEGORY_BATCH_CARD); -// -// // update title -// String title = buildReminderLabelTitle(editRow.getSpecies(), -// editRow, -// ui.getSpeciesTabFishingOperationReminderLabel().getTitle(), -// t("tutti.addSampleCategorySpeciesBatch.title")); -// ui.getSpeciesTabAddSampleCategoryBatchReminderLabel().setTitle(title); -// } - -// public void setSpeciesSelectedCard(String card) { -// JPanel panel = ui.getSpeciesTabPanel(); -// CardLayout2Ext layout = (CardLayout2Ext) panel.getLayout(); -// if (!card.equals(layout.getSelected())) { -// layout.setSelected(card); -// -// JPanel actionPanel = getUI().getCreateFishingOperationActions(); -// if (MAIN_CARD.equals(card)) { -// registerValidators(); -// actionPanel.setVisible(true); -// -// } else { -// actionPanel.setVisible(false); -// TuttiUI tuttiUi = null; -// JXTitledPanel titlePanel = null; -// String title = ""; -// -// if (CREATE_BATCH_CARD.equals(card)) { -// tuttiUi = ui.getSpeciesTabCreateBatch(); -// titlePanel = ui.getSpeciesTabCreateBatchReminderLabel(); -// title = n("tutti.createSpeciesBatch.title"); -// -// } else if (SPLIT_BATCH_CARD.equals(card)) { -// tuttiUi = ui.getSpeciesTabSplitBatch(); -// -// } else if (ADD_SAMPLE_CATEGORY_BATCH_CARD.equals(card)) { -// tuttiUi = ui.getSpeciesTabAddSampleCategoryBatch(); -// -// } else if (EDIT_FREQUENCY_CARD.equals(card)) { -// tuttiUi = ui.getSpeciesTabFrequencyEditor(); -// } -// -// if (tuttiUi != null) { -// registerValidators(tuttiUi.getHandler().getValidator()); -// } -// if (titlePanel != null) { -// titlePanel.setTitle(ui.getSpeciesTabFishingOperationReminderLabel().getTitle() + " - " + t(title)); -// } -// } -// } -// } - -// public void setIndividualObservationSelectedCard(String card, Species species) { -// JPanel panel = ui.getIndividualObservationTabPanel(); -// CardLayout2Ext layout = (CardLayout2Ext) panel.getLayout(); -// if (!card.equals(layout.getSelected())) { -// layout.setSelected(card); -// -// JPanel actionPanel = getUI().getCreateFishingOperationActions(); -// if (MAIN_CARD.equals(card)) { -// registerValidators(); -// actionPanel.setVisible(true); -// -// } else { -// actionPanel.setVisible(false); -// TuttiUI tuttiUi = null; -// JXTitledPanel titlePanel = null; -// String title = ""; -// -// if (CREATE_BATCH_CARD.equals(card)) { -// tuttiUi = ui.getIndividualObservationTabCreateBatch(); -// titlePanel = ui.getIndividualObservationTabCreateBatchReminderLabel(); -// title = n("tutti.createIndividualObservationBatch.title"); -// -// } else if (EDIT_CARACTERISTICS_CARD.equals(card)) { -// titlePanel = ui.getIndividualObservationCaracteristicMapEditorReminderLabel(); -// title = n("tutti.editCaracteristics.title"); -// } -// -// if (tuttiUi != null) { -// registerValidators(tuttiUi.getHandler().getValidator()); -// } -// if (titlePanel != null) { -// titlePanel.setTitle(ui.getIndividualObservationTabFishingOperationReminderLabel().getTitle() + " - " + t(title, decorate(species))); -// } -// } -// } -// } - -// public void editBenthosFrequencies(int rowIndex) { -// JXTable benthosTable = ui.getBenthosTabContent().getTable(); -// -// TableColumn frequenciesColumn = benthosTable.getColumn(SpeciesBatchTableModel.COMPUTED_NUMBER); -// int frequenciesColumnIndex = benthosTable.getColumns(false).indexOf(frequenciesColumn); -// -// SpeciesFrequencyCellComponent.FrequencyCellEditor frequencyCellEditor = -// (SpeciesFrequencyCellComponent.FrequencyCellEditor) benthosTable.getCellEditor(rowIndex, frequenciesColumnIndex); -// -// frequencyCellEditor.initEditor(benthosTable, rowIndex, frequenciesColumnIndex); -// frequencyCellEditor.startEdit(); -// } -// -// public void editBenthosFrequencies(SpeciesFrequencyCellComponent.FrequencyCellEditor editor) { -// -// SpeciesFrequencyUI frequencyEditor = ui.getBenthosTabFrequencyEditor(); -// -//// frequencyEditor.getHandler().editBatch(editor); -// -// // open frequency editor -// setBenthosSelectedCard(EditCatchesUIHandler.EDIT_FREQUENCY_CARD); -// -// // update title -// SpeciesBatchRowModel editRow = editor.getEditRow(); -// String title = buildReminderLabelTitle(editRow.getSpecies(), -// editRow, -// ui.getBenthosTabFishingOperationReminderLabel().getTitle(), -// t("tutti.editBenthosFrequencies.title")); -// ui.getBenthosTabFrequencyEditorReminderLabel().setTitle(title); -// } - -// public void splitBenthosBatch(BenthosBatchRowModel editRow, -// SplitBenthosBatchUI splitBatchEditor) { -// -// -// splitBatchEditor.getHandler().editBatch(editRow); -// -// // open split editor -// setBenthosSelectedCard(EditCatchesUIHandler.SPLIT_BATCH_CARD); -// -// // update title -// String title = buildReminderLabelTitle(editRow.getSpecies(), -// editRow, -// ui.getBenthosTabFishingOperationReminderLabel().getTitle(), -// t("tutti.splitBenthosBatch.title")); -// ui.getBenthosTabSplitBatchReminderLabel().setTitle(title); -// } - -// public void addSampleCategoryBenthosBatch(BenthosBatchRowModel editRow, -// SplitBenthosBatchUI splitBatchEditor, -// int sampleCategoryId) { -// -// splitBatchEditor.getHandler().editBatch(editRow, sampleCategoryId); -// -// // open split editor -// setBenthosSelectedCard(EditCatchesUIHandler.ADD_SAMPLE_CATEGORY_BATCH_CARD); -// -// // update title -// String title = buildReminderLabelTitle(editRow.getSpecies(), -// editRow, -// ui.getBenthosTabFishingOperationReminderLabel().getTitle(), -// t("tutti.addSampleCategoryBenthosBatch.title")); -// ui.getBenthosTabAddSampleCategoryBatchReminderLabel().setTitle(title); -// } - -// public void setBenthosSelectedCard(String card) { -// JPanel panel = ui.getBenthosTabPanel(); -// CardLayout2Ext layout = (CardLayout2Ext) panel.getLayout(); -// if (!card.equals(layout.getSelected())) { -// layout.setSelected(card); -// -// JPanel actionPanel = getUI().getCreateFishingOperationActions(); -// if (MAIN_CARD.equals(card)) { -// registerValidators(); -// actionPanel.setVisible(true); -// -// } else { -// actionPanel.setVisible(false); -// TuttiUI tuttiUi = null; -// JXTitledPanel titlePanel = null; -// String title = ""; -// -// if (CREATE_BATCH_CARD.equals(card)) { -// tuttiUi = ui.getBenthosTabCreateBatch(); -// titlePanel = ui.getBenthosTabCreateBatchReminderLabel(); -// title = n("tutti.createBenthosBatch.title"); -// -// } else if (SPLIT_BATCH_CARD.equals(card)) { -// tuttiUi = ui.getBenthosTabSplitBatch(); -// -// } else if (ADD_SAMPLE_CATEGORY_BATCH_CARD.equals(card)) { -// tuttiUi = ui.getBenthosTabAddSampleCategoryBatch(); -// -// } else if (EDIT_FREQUENCY_CARD.equals(card)) { -// tuttiUi = ui.getBenthosTabFrequencyEditor(); -// -// } -// -// if (tuttiUi != null) { -// registerValidators(tuttiUi.getHandler().getValidator()); -// } -// if (titlePanel != null) { -// titlePanel.setTitle(ui.getBenthosTabFishingOperationReminderLabel().getTitle() + " - " + t(title)); -// } -// } -// } -// } - public void setMarineLitterSelectedCard(String card) { + JPanel panel = ui.getMarineLitterTabPanel(); CardLayout2Ext layout = (CardLayout2Ext) panel.getLayout(); if (!card.equals(layout.getSelected())) { + layout.setSelected(card); - JPanel actionPanel = getUI().getCreateFishingOperationActions(); + boolean showActionPanel; + if (MAIN_CARD.equals(card)) { + registerValidators(); - actionPanel.setVisible(true); + showActionPanel = true; } else { - actionPanel.setVisible(false); - TuttiUI tuttiUi = null; - JXTitledPanel titlePanel = null; - String title = ""; + + showActionPanel = false; if (CREATE_BATCH_CARD.equals(card)) { - tuttiUi = ui.getMarineLitterTabCreateBatch(); - titlePanel = ui.getMarineLitterTabCreateBatchReminderLabel(); - title = n("tutti.createMarineLitterBatch.title"); - } - if (tuttiUi != null) { - registerValidators(tuttiUi.getHandler().getValidator()); - } - if (titlePanel != null) { - titlePanel.setTitle(ui.getMarineLitterTabCreateBatchReminderLabel().getTitle() + " - " + t(title)); + registerValidators(ui.getMarineLitterTabCreateBatch().getValidator()); + String title = n("tutti.createMarineLitterBatch.title"); + ui.getMarineLitterTabCreateBatchReminderLabel().setTitle(ui.getMarineLitterTabCreateBatchReminderLabel().getTitle() + " - " + t(title)); + } + } + + getUI().getCreateFishingOperationActions().setVisible(showActionPanel); + } + } public void setAccidentalSelectedCard(String card) { @@ -728,41 +455,82 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi } public void setAccidentalSelectedCard(String card, Species species) { + JPanel panel = ui.getAccidentalTabPanel(); CardLayout2Ext layout = (CardLayout2Ext) panel.getLayout(); if (!card.equals(layout.getSelected())) { + layout.setSelected(card); - JPanel actionPanel = getUI().getCreateFishingOperationActions(); + boolean showActionPanel; + if (MAIN_CARD.equals(card)) { + registerValidators(); - actionPanel.setVisible(true); + showActionPanel = true; } else { - actionPanel.setVisible(false); - TuttiUI tuttiUi = null; + + showActionPanel = false; + JXTitledPanel titlePanel = null; String title = ""; if (CREATE_BATCH_CARD.equals(card)) { - tuttiUi = ui.getAccidentalTabCreateBatch(); + + registerValidators(ui.getAccidentalTabCreateBatch().getValidator()); titlePanel = ui.getAccidentalTabCreateBatchReminderLabel(); title = n("tutti.createAccidentalBatch.title"); } else if (EDIT_CARACTERISTICS_CARD.equals(card)) { + titlePanel = ui.getAccidentalCaracteristicMapEditorReminderLabel(); title = n("tutti.editCaracteristics.title"); - } - - if (tuttiUi != null) { - registerValidators(tuttiUi.getHandler().getValidator()); } + if (titlePanel != null) { titlePanel.setTitle(ui.getAccidentalTabFishingOperationReminderLabel().getTitle() + " - " + t(title, decorate(species))); } + } + + getUI().getCreateFishingOperationActions().setVisible(showActionPanel); + } + + } + + public boolean isEditingSpeciesFrequencies() { + + boolean result = false; + + boolean speciesTabSelected = getUI().getSpeciesTabPanel().equals(getUI().getTabPane().getSelectedComponent()); + + if (speciesTabSelected) { + + result = getUI().getSpeciesTabPanel().getTopPanelLayout().getSelected().equals(EditSpeciesBatchPanelUI.EDIT_FREQUENCY_CARD); + + } + + return result; + + } + + public boolean isEditingBenthosFrequencies() { + + boolean result = false; + + boolean speciesTabSelected = getUI().getBenthosTabPanel().equals(getUI().getTabPane().getSelectedComponent()); + + if (speciesTabSelected) { + + result = getUI().getBenthosTabPanel().getTopPanelLayout().getSelected().equals(EditSpeciesBatchPanelUI.EDIT_FREQUENCY_CARD); + + } + + return result; + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.