Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe Commits: fd9b4b6d by Tony CHEMIT at 2018-07-10T13:25:41Z [LL] Ajout de 2 racourcis - closes #1027 - - - - - 9 changed files: - + client/src/main/java/fr/ird/observe/client/ui/actions/content/LonglineDetailCompositionDeleteAllSectionsAction.java - + client/src/main/java/fr/ird/observe/client/ui/actions/content/LonglineDetailCompositionGenerateAllSectionsAction.java - client/src/main/java/fr/ird/observe/client/ui/content/data/longline/BasketsTableModel.java - client/src/main/java/fr/ird/observe/client/ui/content/data/longline/BranchlinesTableModel.java - client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineDetailCompositionUI.jaxx - client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineDetailCompositionUI.jcss - client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineDetailCompositionUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineDetailCompositionUIValidationHelper.java - client/src/main/java/fr/ird/observe/client/ui/content/data/longline/SectionsTableModel.java Changes: ===================================== client/src/main/java/fr/ird/observe/client/ui/actions/content/LonglineDetailCompositionDeleteAllSectionsAction.java ===================================== @@ -0,0 +1,104 @@ +package fr.ird.observe.client.ui.actions.content; + +import fr.ird.observe.client.ObserveSwingApplicationContext; +import fr.ird.observe.client.ui.ObserveKeyStrokes; +import fr.ird.observe.client.ui.ObserveMainUI; +import fr.ird.observe.client.ui.content.ContentUI; +import fr.ird.observe.client.ui.content.data.longline.LonglineDetailCompositionUI; +import fr.ird.observe.client.ui.content.data.longline.LonglineDetailCompositionUIValidationHelper; +import fr.ird.observe.client.ui.content.data.longline.SectionsTableModel; +import fr.ird.observe.client.ui.util.UIHelper; +import fr.ird.observe.dto.data.longline.SectionWithTemplate; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.swing.JOptionPane; +import java.util.ArrayList; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created by tchemit on 10/07/2018. + * + * @author Tony Chemit - dev@tchemit.fr + */ +public class LonglineDetailCompositionDeleteAllSectionsAction extends AbstractContentUIAction { + + public static final String ACTION_NAME = LonglineDetailCompositionDeleteAllSectionsAction.class.getName(); + private static final Log log = LogFactory.getLog(LonglineDetailCompositionDeleteAllSectionsAction.class); + + public LonglineDetailCompositionDeleteAllSectionsAction(ObserveMainUI mainUI) { + super(mainUI, NAME, t("observe.common.LonglineDetailCompositionDto.action.deleteAllSections"), t("observe.common.LonglineDetailCompositionDto.action.deleteAllSections.tip"), "delete", ObserveKeyStrokes.KEY_STROKE_DELETE_DATA_GLOBAL); + } + + @Override + protected void actionPerformed(ContentUI<?, ?> contentUI) { + + LonglineDetailCompositionUI ui = (LonglineDetailCompositionUI) contentUI; + + LonglineDetailCompositionUIValidationHelper validationHelper = ui.getHandler().getValidationHelper(); + + if (log.isInfoEnabled()) { + log.info("Generate all sections."); + } + + SectionsTableModel sectionsTableModel = ui.getSectionsTableModel(); + if (sectionsTableModel.isEmpty()) { + + // no section + return; + } + + boolean canDelete = true; + for (SectionWithTemplate sectionWithTemplate : sectionsTableModel.getNotEmptyData()) { + + if (!ui.getHandler().canDeleteSection(sectionWithTemplate.getDelegate())) { + canDelete = false; + break; + } + } + + if (!canDelete) { + + // there is some references, can't delete + UIHelper.displayWarning(t("observe.common.LonglineDetailCompositionDto.section.cant.delete.title"), t("observe.common.LonglineDetailCompositionDto.section.cant.delete.message")); + return; + + } + + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getMainUI(); + int response = UIHelper.askUser(mainUI, + t("observe.title.delete"), + t("observe.common.LonglineDetailCompositionDto.section.delete.message"), + JOptionPane.WARNING_MESSAGE, + new Object[]{t("observe.choice.confirm.delete"), + t("observe.choice.cancel")}, + 1); + + if (response != 0) { + + // user cancel + return; + } + + if (log.isInfoEnabled()) { + log.info("Remove all sections."); + } + + validationHelper.setObjectValueAdjusting(true); + + try { + + sectionsTableModel.setData(new ArrayList<>()); + ui.getBean().getSection().clear(); + ui.getModel().setModified(true); + + } finally { + + validationHelper.setObjectValueAdjusting(false); + validationHelper.whenSectionChanged(); + + } + } + +} ===================================== client/src/main/java/fr/ird/observe/client/ui/actions/content/LonglineDetailCompositionGenerateAllSectionsAction.java ===================================== @@ -0,0 +1,155 @@ +package fr.ird.observe.client.ui.actions.content; + +import com.google.common.collect.Lists; +import fr.ird.observe.client.ui.ObserveKeyStrokes; +import fr.ird.observe.client.ui.ObserveMainUI; +import fr.ird.observe.client.ui.content.ContentUI; +import fr.ird.observe.client.ui.content.data.longline.BasketsTableModel; +import fr.ird.observe.client.ui.content.data.longline.BranchlinesTableModel; +import fr.ird.observe.client.ui.content.data.longline.LonglineDetailCompositionUI; +import fr.ird.observe.client.ui.content.data.longline.LonglineDetailCompositionUIValidationHelper; +import fr.ird.observe.client.ui.content.data.longline.SectionTemplatesTableModel; +import fr.ird.observe.client.ui.content.data.longline.SectionsTableModel; +import fr.ird.observe.client.ui.util.UIHelper; +import fr.ird.observe.dto.data.longline.BasketDto; +import fr.ird.observe.dto.data.longline.BranchlineDto; +import fr.ird.observe.dto.data.longline.SectionDto; +import fr.ird.observe.dto.data.longline.SectionTemplate; +import fr.ird.observe.dto.data.longline.SectionWithTemplate; +import fr.ird.observe.dto.data.longline.SetLonglineDetailCompositionDto; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.stream.Collectors; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created by tchemit on 10/07/2018. + * + * @author Tony Chemit - dev@tchemit.fr + */ +public class LonglineDetailCompositionGenerateAllSectionsAction extends AbstractContentUIAction { + + public static final String ACTION_NAME = LonglineDetailCompositionGenerateAllSectionsAction.class.getName(); + private static final Log log = LogFactory.getLog(LonglineDetailCompositionGenerateAllSectionsAction.class); + public LonglineDetailCompositionGenerateAllSectionsAction(ObserveMainUI mainUI) { + + super(mainUI, ACTION_NAME, t("observe.common.LonglineDetailCompositionDto.action.generateAllSections"), t("observe.common.LonglineDetailCompositionDto.action.generateAllSections.tip"), "generate", ObserveKeyStrokes.KEY_STROKE_NEW_NEXT_DATA); + } + + @Override + protected void actionPerformed(ContentUI<?, ?> contentUI) { + + LonglineDetailCompositionUI ui = (LonglineDetailCompositionUI) contentUI; + + LonglineDetailCompositionUIValidationHelper validationHelper = ui.getHandler().getValidationHelper(); + + if (log.isInfoEnabled()) { + log.info("Generate all sections."); + } + + SetLonglineDetailCompositionDto bean = ui.getBean(); + Integer nbSections = bean.getTotalSectionsCount(); + Integer basketsCount = bean.getBasketsPerSectionCount(); + Integer nbBranchlines = bean.getBranchlinesPerBasketCount(); + + SectionTemplate template = null; + + SectionTemplatesTableModel sectionTemplatesTableModel = ui.getSectionTemplatesTableModel(); + List<SectionTemplate> sectionTemplates = sectionTemplatesTableModel.getNotEmptyData(); + if (sectionTemplates.size() == 1) { + + template = sectionTemplates.get(0); + + boolean compliantWithBasketCount = template.isCompiliantWithBasketCount(basketsCount); + if (!compliantWithBasketCount) { + + if (log.isWarnEnabled()) { + log.warn("sectionTemplate " + template + " is not compliant with basketCount: " + basketsCount); + } + + UIHelper.displayWarning(t("observe.common.LonglineDetailCompositionDto.title.section.cant.use.firstTemplate"), t("observe.common.LonglineDetailCompositionDto.firstTemplate.template.notCompilant.basketCount", template.getFloatlineLengths(), basketsCount)); + + template = null; + + } + + } + + boolean usingTemplate = template != null; + + if (usingTemplate) { + + if (log.isInfoEnabled()) { + log.info("Will use sectionTemplate: " + template); + } + } + + validationHelper.setObjectValueAdjusting(true); + + try { + + SectionsTableModel sectionsTableModel = ui.getSectionsTableModel(); + BasketsTableModel basketsTableModel = ui.getBasketsTableModel(); + BranchlinesTableModel branchlinesTableModel = ui.getBranchlinesTableModel(); + + List<SectionWithTemplate> sections = new ArrayList<>(nbSections); + + for (int sectionNumber = 0; sectionNumber < nbSections; sectionNumber++) { + + SectionWithTemplate section = sectionsTableModel.createNewRow(); + sections.add(section); + + for (int basketNumber = 0; basketNumber < basketsCount; basketNumber++) { + + BasketDto basket = basketsTableModel.createNewRow(); + section.addBasket(basket); + + for (int branchlineNumber = 0; branchlineNumber < nbBranchlines; branchlineNumber++) { + + BranchlineDto branchline = branchlinesTableModel.createNewRow(); + basket.addBranchline(branchline); + + } + + LinkedList<BranchlineDto> branchlines = Lists.newLinkedList(basket.getBranchline()); + branchlinesTableModel.rearrangeIds(branchlines); + + } + + List<BasketDto> baskets = Lists.newLinkedList(section.getBasket()); + basketsTableModel.rearrangeIds(baskets); + + if (usingTemplate) { + + section.setSectionTemplate(template); + template.applyToBaskets(baskets); + + } + + } + + sectionsTableModel.rearrangeIds(sections); + sectionsTableModel.setData(sections); + + List<SectionDto> sectionHelper = sections.stream() + .map(SectionWithTemplate::getDelegate) + .collect(Collectors.toList()); + + ui.getBean().addAllSection(sectionHelper); + + ui.getModel().setModified(true); + + } finally { + + validationHelper.setObjectValueAdjusting(false); + validationHelper.whenSectionChanged(); + + } + } + +} ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/longline/BasketsTableModel.java ===================================== @@ -40,7 +40,7 @@ public class BasketsTableModel extends LonglineCompositionTableModelSupport<Bask } @Override - protected BasketDto createNewRow() { + public BasketDto createNewRow() { return new BasketDto(); } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/longline/BranchlinesTableModel.java ===================================== @@ -49,7 +49,7 @@ public class BranchlinesTableModel extends LonglineCompositionTableModelSupport< } @Override - protected BranchlineDto createNewRow() { + public BranchlineDto createNewRow() { BranchlineDto branchline = new BranchlineDto(); branchline.setTimerTimeOnBoard(defaultDate); ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineDetailCompositionUI.jaxx ===================================== @@ -26,6 +26,8 @@ <import> fr.ird.observe.client.ObserveSwingApplicationContext fr.ird.observe.dto.data.longline.SetLonglineDetailCompositionDto + fr.ird.observe.client.ui.actions.content.LonglineDetailCompositionDeleteAllSectionsAction + fr.ird.observe.client.ui.actions.content.LonglineDetailCompositionGenerateAllSectionsAction fr.ird.observe.client.ui.actions.content.ResetEditUIAction fr.ird.observe.client.ui.actions.content.SaveEditUIAction fr.ird.observe.client.ui.actions.main.global.ResetDataGlobalUIAction @@ -146,8 +148,8 @@ <JPanel layout='{new BorderLayout()}'> <JPanel id="compositionActionPanel" constraints='BorderLayout.NORTH' layout='{new GridLayout()}'> - <JButton id='generateAll' onActionPerformed='getHandler().generateAllSections()'/> - <JButton id='deleteAll' onActionPerformed='getHandler().deleteAllSections()'/> + <JButton id='generateAll' /> + <JButton id='deleteAll' /> </JPanel> <JPanel id="compositionTablesPanel" constraints='BorderLayout.CENTER' layout='{new GridLayout(0,1)}'> ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineDetailCompositionUI.jcss ===================================== @@ -81,17 +81,13 @@ } #generateAll { - text: "observe.common.LonglineDetailCompositionDto.action.generateAllSections"; - toolTipText: "observe.common.LonglineDetailCompositionDto.action.generateAllSections.tip"; - actionIcon: generate; + _observeAction:{LonglineDetailCompositionGenerateAllSectionsAction.ACTION_NAME}; visible: {model.isUpdatingMode()}; enabled: {model.isCanGenerate() && sectionsTableModel.isEmpty()}; } #deleteAll { - text: "observe.common.LonglineDetailCompositionDto.action.deleteAllSections"; - toolTipText: "observe.common.LonglineDetailCompositionDto.action.deleteAllSections.tip"; - actionIcon: delete; + _observeAction:{LonglineDetailCompositionDeleteAllSectionsAction.ACTION_NAME}; visible: {model.isUpdatingMode()}; enabled: {!sectionsTableModel.isEmpty()}; } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineDetailCompositionUIHandler.java ===================================== @@ -22,7 +22,6 @@ package fr.ird.observe.client.ui.content.data.longline; * #L% */ -import com.google.common.collect.Lists; import fr.ird.observe.client.ObserveSwingApplicationContext; import fr.ird.observe.client.db.ClientDataContext; import fr.ird.observe.client.db.ObserveSwingDataSource; @@ -64,10 +63,8 @@ import javax.swing.event.TableModelListener; import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.LinkedHashSet; -import java.util.LinkedList; import java.util.List; import java.util.Optional; -import java.util.stream.Collectors; import static com.google.common.collect.Lists.newArrayList; import static org.nuiton.i18n.I18n.t; @@ -490,174 +487,6 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong return continueSave; } - public void generateAllSections() { - - if (log.isInfoEnabled()) { - log.info("Generate all sections."); - } - - SetLonglineDetailCompositionDto bean = getBean(); - Integer nbSections = bean.getTotalSectionsCount(); - Integer basketsCount = bean.getBasketsPerSectionCount(); - Integer nbBranchlines = bean.getBranchlinesPerBasketCount(); - - SectionTemplate template = null; - - SectionTemplatesTableModel sectionTemplatesTableModel = getSectionTemplatesTableModel(); - List<SectionTemplate> sectionTemplates = sectionTemplatesTableModel.getNotEmptyData(); - if (sectionTemplates.size() == 1) { - - template = sectionTemplates.get(0); - - boolean compliantWithBasketCount = template.isCompiliantWithBasketCount(basketsCount); - if (!compliantWithBasketCount) { - - if (log.isWarnEnabled()) { - log.warn("sectionTemplate " + template + " is not compliant with basketCount: " + basketsCount); - } - - UIHelper.displayWarning(t("observe.common.LonglineDetailCompositionDto.title.section.cant.use.firstTemplate"), t("observe.common.LonglineDetailCompositionDto.firstTemplate.template.notCompilant.basketCount", template.getFloatlineLengths(), basketsCount)); - - template = null; - - } - - } - - boolean usingTemplate = template != null; - - if (usingTemplate) { - - if (log.isInfoEnabled()) { - log.info("Will use sectionTemplate: " + template); - } - } - - validationHelper.setObjectValueAdjusting(true); - - try { - - SectionsTableModel sectionsTableModel = getSectionsTableModel(); - BasketsTableModel basketsTableModel = getBasketsTableModel(); - BranchlinesTableModel branchlinesTableModel = getBranchlinesTableModel(); - - List<SectionWithTemplate> sections = new ArrayList<>(nbSections); - - for (int sectionNumber = 0; sectionNumber < nbSections; sectionNumber++) { - - SectionWithTemplate section = sectionsTableModel.createNewRow(); - sections.add(section); - - for (int basketNumber = 0; basketNumber < basketsCount; basketNumber++) { - - BasketDto basket = basketsTableModel.createNewRow(); - section.addBasket(basket); - - for (int branchlineNumber = 0; branchlineNumber < nbBranchlines; branchlineNumber++) { - - BranchlineDto branchline = branchlinesTableModel.createNewRow(); - basket.addBranchline(branchline); - - } - - LinkedList<BranchlineDto> branchlines = Lists.newLinkedList(basket.getBranchline()); - branchlinesTableModel.rearrangeIds(branchlines); - - } - - List<BasketDto> baskets = Lists.newLinkedList(section.getBasket()); - basketsTableModel.rearrangeIds(baskets); - - if (usingTemplate) { - - section.setSectionTemplate(template); - template.applyToBaskets(baskets); - - } - - } - - sectionsTableModel.rearrangeIds(sections); - sectionsTableModel.setData(sections); - - List<SectionDto> sectionHelper = sections.stream() - .map(SectionWithTemplate::getDelegate) - .collect(Collectors.toList()); - - getBean().addAllSection(sectionHelper); - - getModel().setModified(true); - - } finally { - - validationHelper.setObjectValueAdjusting(false); - validationHelper.whenSectionChanged(); - - } - - } - - public void deleteAllSections() { - - if (getSectionsTableModel().isEmpty()) { - - // no section - return; - } - - boolean canDelete = true; - for (SectionWithTemplate sectionWithTemplate : getSectionsTableModel().getNotEmptyData()) { - - if (!canDeleteSection(sectionWithTemplate.getDelegate())) { - canDelete = false; - break; - } - } - - if (!canDelete) { - - // there is some references, can't delete - UIHelper.displayWarning(t("observe.common.LonglineDetailCompositionDto.section.cant.delete.title"), t("observe.common.LonglineDetailCompositionDto.section.cant.delete.message")); - return; - - } - - ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getMainUI(); - int response = UIHelper.askUser(mainUI, - t("observe.title.delete"), - t("observe.common.LonglineDetailCompositionDto.section.delete.message"), - JOptionPane.WARNING_MESSAGE, - new Object[]{t("observe.choice.confirm.delete"), - t("observe.choice.cancel")}, - 1); - - if (response != 0) { - - // user cancel - return; - } - - if (log.isInfoEnabled()) { - log.info("Remove all sections."); - } - - validationHelper.setObjectValueAdjusting(true); - - try { - - getSectionsTableModel().setData(new ArrayList<>()); - getBean().getSection().clear(); - getModel().setModified(true); - - } finally { - - validationHelper.setObjectValueAdjusting(false); - validationHelper.whenSectionChanged(); - - } - - } - public void insertBeforeSelectedSectionTemplate() { getSectionTemplatesTableModel().insertBeforeSelectedRow(); } @@ -1367,7 +1196,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong return getUi().getBranchlineDetailUIModel(); } - private boolean canDeleteSection(SectionDto section) { + public boolean canDeleteSection(SectionDto section) { return section.isNotPersisted() || getSetLonglineDetailCompositionService().canDeleteSection(section.getId()); @@ -1385,4 +1214,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong } + public LonglineDetailCompositionUIValidationHelper getValidationHelper() { + return validationHelper; + } } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineDetailCompositionUIValidationHelper.java ===================================== @@ -47,7 +47,7 @@ import java.util.Set; * @author Tony Chemit - dev@tchemit.fr * @since 3.15 */ -class LonglineDetailCompositionUIValidationHelper { +public class LonglineDetailCompositionUIValidationHelper { /** Logger. */ private static final Log log = LogFactory.getLog(LonglineDetailCompositionUIValidationHelper.class); @@ -89,7 +89,7 @@ class LonglineDetailCompositionUIValidationHelper { ); } - void whenSectionChanged() { + public void whenSectionChanged() { if (!objectValueAdjusting) { @@ -157,7 +157,7 @@ class LonglineDetailCompositionUIValidationHelper { }); } - void setObjectValueAdjusting(boolean objectValueAdjusting) { + public void setObjectValueAdjusting(boolean objectValueAdjusting) { this.objectValueAdjusting = objectValueAdjusting; } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/longline/SectionsTableModel.java ===================================== @@ -47,7 +47,7 @@ public class SectionsTableModel extends LonglineCompositionTableModelSupport<Sec } @Override - protected SectionWithTemplate createNewRow() { + public SectionWithTemplate createNewRow() { return new SectionWithTemplate(); } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/fd9b4b6d5dcf54a367aacdf87aeb... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/fd9b4b6d5dcf54a367aacdf87aeb... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT