Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 994ae443 by tchemit at 2019-07-02T07:26:24Z Amélioration de l'API de TripMap - See #1293 - - - - - 16 changed files: - client-core/src/main/java/fr/ird/observe/client/ui/content/data/TripUI.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/common/TripLonglineUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/common/TripLonglineUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/common/TripSeineUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/common/TripSeineUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/util/tripMap/TripMapUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/util/tripMap/TripMapUI.jcss - client-core/src/main/java/fr/ird/observe/client/ui/util/tripMap/TripMapUIHandler.java - services-local/src/main/java/fr/ird/observe/services/local/service/data/TripMapDtoFactory.java → dto/src/main/java/fr/ird/observe/dto/data/TripMapConfigDto.java - dto/src/main/java/fr/ird/observe/dto/data/TripMapDto.java - persistence/src/main/java/fr/ird/observe/entities/data/ll/common/TripLonglineTopiaDao.java - persistence/src/main/java/fr/ird/observe/entities/data/ps/common/TripSeineTopiaDao.java - services-local/src/main/java/fr/ird/observe/services/local/service/data/ll/common/TripLonglineServiceLocal.java - services-local/src/main/java/fr/ird/observe/services/local/service/data/ps/common/TripSeineServiceLocal.java - services/src/main/java/fr/ird/observe/services/service/data/ll/common/TripLonglineService.java - services/src/main/java/fr/ird/observe/services/service/data/ps/common/TripSeineService.java Changes: ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/TripUI.java ===================================== @@ -10,19 +10,31 @@ package fr.ird.observe.client.ui.content.data; * it under the terms of the GNU General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ +import fr.ird.observe.client.ObserveSwingApplicationContext; +import fr.ird.observe.client.configuration.ClientConfig; +import fr.ird.observe.client.ui.content.api.data.open.ContentOpenableUI; import fr.ird.observe.client.ui.util.tripMap.TripMapUI; +import fr.ird.observe.dto.data.TripMapConfigDto; +import fr.ird.observe.dto.data.TripMapDto; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import javax.swing.JComponent; +import javax.swing.JTabbedPane; +import javax.swing.SwingUtilities; +import javax.swing.event.ChangeEvent; /** * Created by tchemit on 25/08/17. @@ -33,4 +45,97 @@ public interface TripUI { TripMapUI getTripMap(); + JTabbedPane getMainTabbedPane(); + + Boolean isBuildMap(); + + void setBuildMap(Boolean buildMap); + + abstract class TripUIHelper<U extends ContentOpenableUI & TripUI> { + + private static final Logger log = LogManager.getLogger(TripUIHelper.class); + + private final U ui; + private final String prefix; + + protected TripUIHelper(U ui, String prefix) { + this.ui = ui; + this.prefix = prefix; + } + + protected abstract TripMapDto getMap(TripMapConfigDto tripMapConfig); + + public void installMap() { + + TripMapUI tripMap = ui.getTripMap(); + + TripMapConfigDto tripMapConfig = tripMap.getTripMapConfig(); + tripMapConfig.setAddObservations(true); + tripMapConfig.setAddLogbook(true); + SwingUtilities.invokeLater(tripMap::validate); + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + ClientConfig config = applicationContext.getConfig(); + + tripMap.getHandler().setConfig(config); + tripMap.getHandler().init(ui.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)); + tripMapConfig.addPropertyChangeListener(TripMapConfigDto.PROPERTY_ADD_OBSERVATIONS, e -> updateMapModel()); + tripMapConfig.addPropertyChangeListener(TripMapConfigDto.PROPERTY_ADD_LOGBOOK, e -> updateMapModel()); + + ui.getMainTabbedPane().addChangeListener(this::onTabChanged); + + } + + public void onOpenAfterOpenModel() { + ui.getMainTabbedPane().setSelectedIndex(0); + closeMap(); + } + + void closeMap() { + ui.getTripMap().getHandler().doCloseMap(); + ui.setBuildMap(true); + } + + private void buildTripMap() { + SwingUtilities.invokeLater(() -> { + ObserveSwingApplicationContext.get().getMainUI().getModel().setBusy(true); + try { + TripMapUI tripMap = ui.getTripMap(); + TripMapConfigDto tripMapConfig = tripMap.getTripMapConfig(); + log.info(prefix + String.format("Ask to build map: show observation? %s, show logbook? %s", tripMapConfig.isAddObservations(), tripMapConfig.isAddLogbook())); + TripMapDto tripLonglineMap = getMap(tripMapConfig); + tripMap.getHandler().doOpenMap(tripLonglineMap); + } finally { + ObserveSwingApplicationContext.get().getMainUI().getModel().setBusy(false); + } + }); + } + + private void onTabChanged(ChangeEvent e) { + JTabbedPane selectedComponent = (JTabbedPane) e.getSource(); + TripMapUI tripMap1 = ui.getTripMap(); + if (selectedComponent.getSelectedComponent().equals(tripMap1)) { + ui.getActions().setVisible(false); + if (ui.isBuildMap()) { + try { + buildTripMap(); + } finally { + ui.setBuildMap(false); + } + } + } else { + ui.getActions().setVisible(true); + } + } + + private void updateMapModel() { + ui.getTripMap().getHandler().doCloseMap(); + buildTripMap(); + } + + public void onOpenModel(String tripId) { + TripMapUI tripMap = ui.getTripMap(); + TripMapConfigDto tripMapConfig = tripMap.getTripMapConfig(); + tripMapConfig.setTripId(tripId); + } + } } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/common/TripLonglineUI.jaxx ===================================== @@ -64,6 +64,8 @@ <TripLonglineDto id='bean'/> + <Boolean id="buildMap" javaBean="true"/> + <BeanValidator id='validator' beanClass='fr.ird.observe.dto.data.ll.common.TripLonglineDto' errorTableModel='{getErrorTableModel()}' autoField='true' context='update'> <field name='activityLonglineObs' component='{actionDown}'/> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/common/TripLonglineUIHandler.java ===================================== @@ -28,8 +28,8 @@ import fr.ird.observe.client.ui.content.api.data.open.ContentOpenableUIHandler; import fr.ird.observe.client.ui.content.api.spi.ContentUIReferenceCache; import fr.ird.observe.client.ui.content.api.spi.ReferentialReferencesFilter; import fr.ird.observe.client.ui.content.api.ui.ObserveLayoutFocusTraversalPolicy; +import fr.ird.observe.client.ui.content.data.TripUI; import fr.ird.observe.client.ui.util.UIHelper; -import fr.ird.observe.client.ui.util.tripMap.TripMapUI; import fr.ird.observe.dto.data.TripMapDto; import fr.ird.observe.dto.data.ll.common.TripLonglineDto; import fr.ird.observe.dto.data.ll.common.TripLonglineReference; @@ -41,13 +41,11 @@ import fr.ird.observe.dto.referential.common.SpeciesReference; import fr.ird.observe.dto.referential.common.VesselDto; import fr.ird.observe.dto.referential.common.VesselHelper; import fr.ird.observe.dto.referential.common.VesselReference; +import fr.ird.observe.dto.data.TripMapConfigDto; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.nuiton.jaxx.runtime.spi.UIHandler; -import javax.swing.JComponent; -import javax.swing.JTabbedPane; -import javax.swing.SwingUtilities; import java.awt.Component; import java.awt.Container; import java.beans.PropertyChangeEvent; @@ -67,9 +65,9 @@ class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLonglineDto, Tr private static final Logger log = LogManager.getLogger(TripLonglineUIHandler.class); - private boolean buildTripMap = true; private final VetoableChangeListener logbooksAvailabilityListener; private final VetoableChangeListener observationsAvailabilityListener; + private TripUI.TripUIHelper<TripLonglineUI> tripUIHelper; TripLonglineUIHandler() { logbooksAvailabilityListener = this::onLogbooksAvailabilityChanged; @@ -101,29 +99,14 @@ class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLonglineDto, Tr @Override public void afterInit(TripLonglineUI ui) { super.afterInit(ui); - TripMapUI tripMap = ui.getTripMap(); - ClientConfig config = ObserveSwingApplicationContext.get().getConfig(); - tripMap.getHandler().setConfig(config); - tripMap.getHandler().init(ui.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)); - tripMap.addPropertyChangeListener(TripMapUI.PROPERTY_SHOW_OBSERVATION, e -> updateMapModel()); - tripMap.addPropertyChangeListener(TripMapUI.PROPERTY_SHOW_LOGBOOK, e -> updateMapModel()); - ui.getMainTabbedPane().addChangeListener(e -> { - JTabbedPane tripLonglineTabPane = (JTabbedPane) e.getSource(); - TripLonglineUI ui1 = getUi(); - TripMapUI tripMap1 = ui1.getTripMap(); - if (tripLonglineTabPane.getSelectedComponent().equals(tripMap1)) { - ui1.getActions().setVisible(false); - - if (buildTripMap) { - buildTripMap(); - buildTripMap = false; - } - - } else { - ui1.getActions().setVisible(true); + tripUIHelper = new TripUI.TripUIHelper<TripLonglineUI>(ui, prefix) { + @Override + protected TripMapDto getMap(TripMapConfigDto tripMapConfig) { + return getTripLonglineService().getTripLonglineMap(tripMapConfig); } - }); + }; + tripUIHelper.installMap(); ui.getVessel().getIndexes().setSelectedButton(1); ui.getDepartureHarbour().getIndexes().setSelectedButton(1); @@ -192,7 +175,7 @@ class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLonglineDto, Tr log.info(prefix + "programId = " + programId); log.info(prefix + "tripId = " + tripId); - + tripUIHelper.onOpenModel(tripId); boolean create = tripId == null; Form<TripLonglineDto> form; @@ -209,9 +192,7 @@ class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLonglineDto, Tr @Override protected void onOpenAfterOpenModel() { super.onOpenAfterOpenModel(); - ui.getMainTabbedPane().setSelectedIndex(0); - ui.getTripMap().getHandler().doCloseMap(); - buildTripMap = true; + tripUIHelper.onOpenAfterOpenModel(); } @Override @@ -251,25 +232,5 @@ class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLonglineDto, Tr } } - private void buildTripMap() { - SwingUtilities.invokeLater(() -> { - ObserveSwingApplicationContext.get().getMainUI().getModel().setBusy(true); - try { - TripMapUI tripMap = ui.getTripMap(); - Boolean showObservation = tripMap.isShowObservation(); - Boolean showLogbook = tripMap.isShowLogbook(); - log.info(prefix + String.format("Ask to build map: show observation? %s, show logbook? %s", showObservation, showLogbook)); - TripMapDto tripLonglineMap = getTripLonglineService().getTripLonglineMap(ui.getModel().getSelectedId(), showObservation, showLogbook); - tripMap.getHandler().doOpenMap(tripLonglineMap); - } finally { - ObserveSwingApplicationContext.get().getMainUI().getModel().setBusy(false); - } - }); - } - - private void updateMapModel() { - ui.getTripMap().getHandler().doCloseMap(); - buildTripMap(); - } } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/common/TripSeineUI.jaxx ===================================== @@ -69,6 +69,8 @@ <!-- edit bean --> <TripSeineDto id='bean'/> + <Boolean id="buildMap" javaBean="true"/> + <!-- validator --> <BeanValidator id='validator' beanClass='fr.ird.observe.dto.data.ps.common.TripSeineDto' errorTableModel='{getErrorTableModel()}' autoField='true' context='update'> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/common/TripSeineUIHandler.java ===================================== @@ -8,12 +8,12 @@ * it under the terms of the GNU General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-3.0.html>. @@ -27,7 +27,7 @@ import fr.ird.observe.client.ui.content.api.data.open.ContentOpenableUIHandler; import fr.ird.observe.client.ui.content.api.spi.ContentUIReferenceCache; import fr.ird.observe.client.ui.content.api.spi.ReferentialReferencesFilter; import fr.ird.observe.client.ui.content.api.ui.ObserveLayoutFocusTraversalPolicy; -import fr.ird.observe.client.ui.util.tripMap.TripMapUI; +import fr.ird.observe.client.ui.content.data.TripUI; import fr.ird.observe.dto.data.TripMapDto; import fr.ird.observe.dto.data.ps.common.TripSeineDto; import fr.ird.observe.dto.data.ps.common.TripSeineReference; @@ -37,13 +37,11 @@ import fr.ird.observe.dto.referential.common.PersonReference; import fr.ird.observe.dto.referential.common.VesselDto; import fr.ird.observe.dto.referential.common.VesselHelper; import fr.ird.observe.dto.referential.common.VesselReference; +import fr.ird.observe.dto.data.TripMapConfigDto; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.nuiton.jaxx.runtime.spi.UIHandler; -import javax.swing.JComponent; -import javax.swing.JTabbedPane; -import javax.swing.SwingUtilities; import java.awt.Component; import java.awt.Container; @@ -55,7 +53,7 @@ class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto, TripSein static private final Logger log = LogManager.getLogger(TripSeineUIHandler.class); - private boolean buildTripMap = true; + private TripUI.TripUIHelper<TripSeineUI> tripUIHelper; @Override public TripSeineUIModel getModel() { @@ -76,37 +74,15 @@ class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto, TripSein @Override public void afterInit(TripSeineUI ui) { super.afterInit(ui); + tripUIHelper = new TripUI.TripUIHelper<TripSeineUI>(ui, prefix) { - TripMapUI tripMap = ui.getTripMap(); - tripMap.getConfig().setVisible(false); - SwingUtilities.invokeLater(tripMap::validate); - ClientConfig config = ObserveSwingApplicationContext.get().getConfig(); - - tripMap.getHandler().setConfig(config); - tripMap.getHandler().init(ui.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)); - - ui.getMainTabbedPane().addChangeListener(e -> { - JTabbedPane tripSeineTabPane = (JTabbedPane) e.getSource(); - TripMapUI tripMap1 = ui.getTripMap(); - if (tripSeineTabPane.getSelectedComponent().equals(tripMap1)) { - ui.getActions().setVisible(false); - if (buildTripMap) { - SwingUtilities.invokeLater(() -> { - ObserveSwingApplicationContext.get().getMainUI().getModel().setBusy(true); - try { - TripMapDto tripSeineMap = getTripSeineService().getTripSeineMap(getModel().getSelectedId()); - ui.getTripMap().getHandler().doOpenMap(tripSeineMap); - } finally { - ObserveSwingApplicationContext.get().getMainUI().getModel().setBusy(false); - } - }); - buildTripMap = false; - } - - } else { - ui.getActions().setVisible(true); + @Override + protected TripMapDto getMap(TripMapConfigDto tripMapConfig) { + return getTripSeineService().getTripSeineMap(tripMapConfig); } - }); + }; + tripUIHelper.installMap(); + ui.getTripMap().getConfig().setVisible(false); ui.getVessel().getIndexes().setSelectedButton(1); ui.getDepartureHarbour().getIndexes().setSelectedButton(1); @@ -140,9 +116,9 @@ class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto, TripSein TripSeineUIModel model = getModel(); String programId = model.getSelectedParentId(); String tripId = model.getSelectedId(); - log.info(prefix + "programId = " + programId); log.info(prefix + "tripId = " + tripId); + tripUIHelper.onOpenModel(tripId); boolean create = tripId == null; Form<TripSeineDto> form; @@ -159,9 +135,7 @@ class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto, TripSein @Override protected void onOpenAfterOpenModel() { super.onOpenAfterOpenModel(); - getUi().getMainTabbedPane().setSelectedIndex(0); - getUi().getTripMap().getHandler().doCloseMap(); - buildTripMap = true; + tripUIHelper.onOpenAfterOpenModel(); } @Override ===================================== client-core/src/main/java/fr/ird/observe/client/ui/util/tripMap/TripMapUI.jaxx ===================================== @@ -26,12 +26,13 @@ fr.ird.observe.client.ui.actions.tripMap.ZoomItUIAction fr.ird.observe.client.ui.actions.tripMap.ZoomMoinsUIAction fr.ird.observe.client.ui.actions.tripMap.ZoomPlusUIAction + fr.ird.observe.client.ui.util.BeanCheckBox + fr.ird.observe.dto.data.TripMapConfigDto java.awt.CardLayout </import> <CardLayout id="contentLayout"/> - <Boolean id="showObservation" javaBean="true"/> - <Boolean id="showLogbook" javaBean="true"/> + <TripMapConfigDto id="tripMapConfig"/> <JPanel constraints="BorderLayout.NORTH" layout="{new BorderLayout()}"> <JToolBar constraints="BorderLayout.CENTER"> <JButton id='zoomIt'/> @@ -39,9 +40,9 @@ <JButton id='zoomMoins'/> <JButton id='exportPng'/> </JToolBar> - <JPanel id="config" constraints="BorderLayout.SOUTH" layout="{new GridLayout(1,0)}"> - <JCheckBox id="showObservationEditor" onItemStateChanged='setShowObservation(showObservationEditor.isSelected())'/> - <JCheckBox id="showLogbookEditor" onItemStateChanged='setShowLogbook(showLogbookEditor.isSelected())'/> + <JPanel id="config" constraints="BorderLayout.SOUTH" layout="{new GridLayout(1,0)}" beanScope="tripMapConfig"> + <BeanCheckBox id="addObservations"/> + <BeanCheckBox id="addLogbook"/> </JPanel> </JPanel> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/util/tripMap/TripMapUI.jcss ===================================== @@ -44,12 +44,10 @@ _observeAction:{ExportPngUIAction.ACTION_NAME}; } -#showObservationEditor { +#addObservations { text: "observe.content.map.showObservation"; - selected:{isShowObservation()}; } -#showLogbookEditor { +#addLogbook { text: "observe.content.map.showLogbook"; - selected:{isShowLogbook()}; } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/util/tripMap/TripMapUIHandler.java ===================================== @@ -29,9 +29,11 @@ import fr.ird.observe.client.configuration.ClientConfig; import fr.ird.observe.client.ui.ObserveKeyStrokes; import fr.ird.observe.client.ui.actions.tripMap.TripMapActionSupport; import fr.ird.observe.client.ui.content.api.spi.ObserveActionMap; +import fr.ird.observe.client.ui.util.BeanCheckBox; import fr.ird.observe.dto.data.TripMapDto; import fr.ird.observe.dto.data.TripMapPoint; import fr.ird.observe.spi.DtoModelClasses; +import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.geotools.geometry.DirectPosition2D; @@ -43,8 +45,8 @@ import org.nuiton.jaxx.runtime.spi.UIHandler; import javax.swing.AbstractAction; import javax.swing.AbstractButton; -import javax.swing.Action; import javax.swing.InputMap; +import javax.swing.KeyStroke; import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.MouseEvent; @@ -110,11 +112,11 @@ public class TripMapUIHandler implements UIHandler<TripMapUI> { mapContentBuilder.addLayer(layerFile); } - if (DtoModelClasses.isSeineId(tripMapDto.getId())) { + if (DtoModelClasses.isSeineId(tripMapDto.getTripId())) { mapContentBuilder.addTripLine(tripMapPoints); - } else if (DtoModelClasses.isLonglineId(tripMapDto.getId())) { + } else if (DtoModelClasses.isLonglineId(tripMapDto.getTripId())) { mapContentBuilder.addLonglineObsFishingZone(tripMapPoints); mapContentBuilder.addLonglineObsLine(tripMapPoints); @@ -210,13 +212,6 @@ public class TripMapUIHandler implements UIHandler<TripMapUI> { mapPane.addMouseMotionListener(mouseMapListener); mapPane.addMouseListener(mouseMapListener); mapPane.addMapPaneListener(new TripMapListener()); - - ui.addPropertyChangeListener("showObservation", e -> { - - }); - ui.addPropertyChangeListener("showLogbook", e -> { - - }); rendererRunning = false; } @@ -229,27 +224,8 @@ public class TripMapUIHandler implements UIHandler<TripMapUI> { init(actionMap, inputMap, ui.zoomPlus); init(actionMap, inputMap, ui.exportPng); - ui.getShowLogbookEditor().setText(ObserveKeyStrokes.suffixTextWithKeyStroke(ui.getShowLogbookEditor().getText(), ObserveKeyStrokes.KEY_STROKE_SHOW_LONGLINE_LOGBOOK)); - ui.getShowObservationEditor().setText(ObserveKeyStrokes.suffixTextWithKeyStroke(ui.getShowObservationEditor().getText(), ObserveKeyStrokes.KEY_STROKE_SHOW_LONGLINE_OBS)); - - AbstractAction observationAction = new AbstractAction() { - - @Override - public void actionPerformed(ActionEvent e) { - ui.setShowObservation(!ui.isShowObservation()); - } - }; - Action logbookAction = new AbstractAction() { - - @Override - public void actionPerformed(ActionEvent e) { - ui.setShowLogbook(!ui.isShowLogbook()); - } - }; - inputMap.put(ObserveKeyStrokes.KEY_STROKE_SHOW_LONGLINE_OBS, "toggleObservation"); - actionMap.put("toggleObservation", observationAction); - inputMap.put(ObserveKeyStrokes.KEY_STROKE_SHOW_LONGLINE_LOGBOOK, "toggleLogbook"); - actionMap.put("toggleLogbook", logbookAction); + init(ui.getAddObservations(),inputMap, actionMap, ObserveKeyStrokes.KEY_STROKE_SHOW_LONGLINE_OBS); + init(ui.getAddLogbook(),inputMap, actionMap, ObserveKeyStrokes.KEY_STROKE_SHOW_LONGLINE_LOGBOOK); } public ReferencedEnvelope getTripArea() { @@ -284,6 +260,27 @@ public class TripMapUIHandler implements UIHandler<TripMapUI> { } + protected void init(BeanCheckBox editor, InputMap inputMap, ObserveActionMap actionMap, KeyStroke keyStroke) { + log.debug("init simple boolean editor " + editor.getName()); + String propertyName = editor.getProperty(); + if (StringUtils.isEmpty(propertyName)) { + editor.setProperty(editor.getName()); + } + editor.setSelected(true); + editor.init(true, true); + + editor.setText(ObserveKeyStrokes.suffixTextWithKeyStroke(editor.getText(), keyStroke)); + + AbstractAction observationAction = new AbstractAction() { + @Override + public void actionPerformed(ActionEvent e) { + editor.doClick(); + } + }; + inputMap.put(keyStroke, "toggle" + editor.getName()); + actionMap.put("toggle" + editor.getName(), observationAction); + } + private class MouseMapListener implements MouseWheelListener, MouseListener, MouseMotionListener { Point2D startPointInWorld; ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/data/TripMapDtoFactory.java → dto/src/main/java/fr/ird/observe/dto/data/TripMapConfigDto.java ===================================== @@ -1,8 +1,8 @@ -package fr.ird.observe.services.local.service.data; +package fr.ird.observe.dto.data; /*- * #%L - * ObServe :: Services local implementation + * ObServe :: Dto * %% * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io * %% @@ -10,35 +10,66 @@ package fr.ird.observe.services.local.service.data; * it under the terms of the GNU General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -import fr.ird.observe.dto.data.TripMapDto; -import fr.ird.observe.dto.data.TripMapPoint; - -import java.util.LinkedHashSet; +import fr.ird.observe.dto.ObserveDto; +import io.ultreia.java4all.bean.AbstractJavaBean; +import io.ultreia.java4all.bean.spi.GenerateJavaBeanDefinition; /** - * Created on 09/01/16. + * Created on 30/06/19. * * @author Tony Chemit - dev@tchemit.fr + * @since ? */ -public class TripMapDtoFactory { +@GenerateJavaBeanDefinition +public class TripMapConfigDto extends AbstractJavaBean implements ObserveDto { + + public static final String PROPERTY_TRIP_ID = "tripId"; + public static final String PROPERTY_ADD_OBSERVATIONS = "addObservations"; + public static final String PROPERTY_ADD_LOGBOOK = "addLogbook"; + private String tripId; + private boolean addObservations; + private boolean addLogbook; + + public String getTripId() { + return tripId; + } + - public static TripMapDto of(String tripId, LinkedHashSet<TripMapPoint> points) { - TripMapDto tripMapDto = new TripMapDto(); - tripMapDto.setId(tripId); - tripMapDto.setPoints(points); - return tripMapDto; + public boolean isAddObservations() { + return addObservations; } + public boolean isAddLogbook() { + return addLogbook; + } + + public void setTripId(String tripId) { + String oldValue = getTripId(); + this.tripId = tripId; + firePropertyChange(PROPERTY_TRIP_ID, oldValue, tripId); + } + + public void setAddObservations(boolean addObservations) { + boolean oldValue = isAddObservations(); + this.addObservations = addObservations; + firePropertyChange(PROPERTY_ADD_OBSERVATIONS, oldValue, addObservations); + } + + public void setAddLogbook(boolean addLogbook) { + boolean oldValue = isAddLogbook(); + this.addLogbook = addLogbook; + firePropertyChange(PROPERTY_ADD_LOGBOOK, oldValue, addLogbook); + } } ===================================== dto/src/main/java/fr/ird/observe/dto/data/TripMapDto.java ===================================== @@ -22,22 +22,36 @@ package fr.ird.observe.dto.data; * #L% */ -import fr.ird.observe.dto.IdDto; +import fr.ird.observe.dto.ObserveDto; +import io.ultreia.java4all.bean.AbstractJavaBean; +import io.ultreia.java4all.bean.spi.GenerateJavaBeanDefinition; -import java.util.Collection; import java.util.LinkedHashSet; -public class TripMapDto extends IdDto { +@GenerateJavaBeanDefinition +public class TripMapDto extends AbstractJavaBean implements ObserveDto { + public static final String PROPERTY_TRIP_ID = "tripId"; public static final String PROPERTY_POINTS = "points"; - private static final long serialVersionUID = 3487020005850232420L; + private String tripId; + private LinkedHashSet<TripMapPoint> points; - protected LinkedHashSet<TripMapPoint> points; + public static TripMapDto of(String tripId, LinkedHashSet<TripMapPoint> points) { + TripMapDto tripMapDto = new TripMapDto(); + tripMapDto.setTripId(tripId); + tripMapDto.setPoints(points); + return tripMapDto; + } + + public String getTripId() { + return tripId; + } - public TripMapPoint getPoints(int index) { - TripMapPoint o = getChild(points, index); - return o; + public void setTripId(String tripId) { + String oldValue = getTripId(); + this.tripId = tripId; + firePropertyChange(PROPERTY_TRIP_ID, oldValue, tripId); } public boolean isPointsEmpty() { @@ -48,42 +62,6 @@ public class TripMapDto extends IdDto { return points == null ? 0 : points.size(); } - public void addPoints(TripMapPoint points) { - getPoints().add(points); - firePropertyChange(PROPERTY_POINTS, null, points); - } - - public void addAllPoints(Collection<TripMapPoint> points) { - getPoints().addAll(points); - firePropertyChange(PROPERTY_POINTS, null, points); - } - - public boolean removePoints(TripMapPoint points) { - boolean removed = getPoints().remove(points); - if (removed) { - firePropertyChange(PROPERTY_POINTS, points, null); - } - return removed; - } - - public boolean removeAllPoints(Collection<TripMapPoint> points) { - boolean removed = getPoints().removeAll(points); - if (removed) { - firePropertyChange(PROPERTY_POINTS, points, null); - } - return removed; - } - - public boolean containsPoints(TripMapPoint points) { - boolean contains = getPoints().contains(points); - return contains; - } - - public boolean containsAllPoints(Collection<TripMapPoint> points) { - boolean contains = getPoints().containsAll(points); - return contains; - } - public LinkedHashSet<TripMapPoint> getPoints() { if (points == null) { points = new LinkedHashSet<>(); ===================================== persistence/src/main/java/fr/ird/observe/entities/data/ll/common/TripLonglineTopiaDao.java ===================================== @@ -24,6 +24,7 @@ package fr.ird.observe.entities.data.ll.common; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; +import fr.ird.observe.dto.data.TripMapConfigDto; import fr.ird.observe.dto.data.TripMapPoint; import fr.ird.observe.dto.data.TripMapPointType; import fr.ird.observe.entities.referential.common.Harbour; @@ -53,8 +54,11 @@ public class TripLonglineTopiaDao extends AbstractTripLonglineTopiaDao<TripLongl //FIXME-PROTECTED-ID public static final String ACTIVITY_LOGBOOK_STATION_ID= "fr.ird.referential.ll.common.VesselActivityLongline#1239832686138#0.3"; - public LinkedHashSet<TripMapPoint> extractTripMapActivityPoints(String tripId, boolean addObservation, boolean addLogbook) { + public LinkedHashSet<TripMapPoint> extractTripMapActivityPoints(TripMapConfigDto tripMapConfig) { + String tripId = tripMapConfig.getTripId(); + boolean addObservation = tripMapConfig.isAddObservations(); + boolean addLogbook = tripMapConfig.isAddLogbook(); TripLongline tripLongline = forTopiaIdEquals(tripId).findUnique(); LinkedHashSet<TripMapPoint> tripMapPoints = new LinkedHashSet<>(); ===================================== persistence/src/main/java/fr/ird/observe/entities/data/ps/common/TripSeineTopiaDao.java ===================================== @@ -22,6 +22,7 @@ package fr.ird.observe.entities.data.ps.common; import com.google.common.collect.ImmutableMap; +import fr.ird.observe.dto.data.TripMapConfigDto; import fr.ird.observe.dto.data.TripMapPoint; import fr.ird.observe.dto.data.TripMapPointType; import fr.ird.observe.dto.referential.ps.common.SchoolTypeHelper; @@ -51,8 +52,8 @@ public class TripSeineTopiaDao extends AbstractTripSeineTopiaDao<TripSeine> { //FIXME-PROTECTED-ID public static final String ACTIVITY_HARBOUR_ID= "fr.ird.referential.ps.common.VesselActivitySeine#1239832675349#0.363119635949572"; - public LinkedHashSet<TripMapPoint> extractTripMapActivityPoints(String tripId) { - + public LinkedHashSet<TripMapPoint> extractTripMapActivityPoints(TripMapConfigDto tripMapConfig) { + String tripId = tripMapConfig.getTripId(); TripSeine tripSeine = forTopiaIdEquals(tripId).findUnique(); LinkedHashSet<TripMapPoint> tripMapPoints = new LinkedHashSet<>(); ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/data/ll/common/TripLonglineServiceLocal.java ===================================== @@ -23,6 +23,7 @@ package fr.ird.observe.services.local.service.data.ll.common; */ import com.google.common.collect.ImmutableSet; +import fr.ird.observe.dto.data.TripMapConfigDto; import fr.ird.observe.dto.data.TripMapDto; import fr.ird.observe.dto.data.TripMapPoint; import fr.ird.observe.dto.data.ll.common.TripLonglineDto; @@ -42,7 +43,6 @@ import fr.ird.observe.entities.referential.common.Species2; import fr.ird.observe.entities.referential.common.SpeciesList; import fr.ird.observe.services.local.ObserveServiceContextLocal; import fr.ird.observe.services.local.service.ObserveServiceLocal; -import fr.ird.observe.services.local.service.data.TripMapDtoFactory; import fr.ird.observe.services.service.data.ll.common.TripLonglineService; import fr.ird.observe.services.service.sql.DeleteSqlScriptProducerRequest; import fr.ird.observe.services.service.sql.SqlScriptProducerService; @@ -113,9 +113,9 @@ public class TripLonglineServiceLocal extends ObserveServiceLocal implements Tri } @Override - public TripMapDto getTripLonglineMap(String tripLonglineId, boolean addObservation, boolean addLogbook) { - LinkedHashSet<TripMapPoint> points = TRIP_LONGLINE_SPI.getDao(getTopiaPersistenceContext()).extractTripMapActivityPoints(tripLonglineId, addObservation, addLogbook); - return TripMapDtoFactory.of(tripLonglineId, points); + public TripMapDto getTripLonglineMap(TripMapConfigDto config) { + LinkedHashSet<TripMapPoint> points = TRIP_LONGLINE_SPI.getDao(getTopiaPersistenceContext()).extractTripMapActivityPoints(config); + return TripMapDto.of(config.getTripId(), points); } @Override ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/data/ps/common/TripSeineServiceLocal.java ===================================== @@ -40,7 +40,7 @@ import fr.ird.observe.entities.referential.common.Species2; import fr.ird.observe.entities.referential.common.SpeciesList; import fr.ird.observe.services.local.ObserveServiceContextLocal; import fr.ird.observe.services.local.service.ObserveServiceLocal; -import fr.ird.observe.services.local.service.data.TripMapDtoFactory; +import fr.ird.observe.dto.data.TripMapConfigDto; import fr.ird.observe.services.service.data.ps.common.TripSeineService; import fr.ird.observe.services.service.sql.DeleteSqlScriptProducerRequest; import fr.ird.observe.services.service.sql.SqlScriptProducerService; @@ -98,9 +98,9 @@ public class TripSeineServiceLocal extends ObserveServiceLocal implements TripSe } @Override - public TripMapDto getTripSeineMap(String tripSeineId) { - LinkedHashSet<TripMapPoint> points = TRIP_SEINE_SPI.getDao(getTopiaPersistenceContext()).extractTripMapActivityPoints(tripSeineId); - return TripMapDtoFactory.of(tripSeineId, points); + public TripMapDto getTripSeineMap(TripMapConfigDto config) { + LinkedHashSet<TripMapPoint> points = TRIP_SEINE_SPI.getDao(getTopiaPersistenceContext()).extractTripMapActivityPoints(config); + return TripMapDto.of(config.getTripId(), points); } @Override ===================================== services/src/main/java/fr/ird/observe/services/service/data/ll/common/TripLonglineService.java ===================================== @@ -32,6 +32,7 @@ import fr.ird.observe.dto.reference.ReferentialDtoReferenceSet; import fr.ird.observe.dto.referential.common.SpeciesReference; import fr.ird.observe.dto.result.SaveResultDto; import fr.ird.observe.services.service.ObserveService; +import fr.ird.observe.dto.data.TripMapConfigDto; import fr.ird.observe.services.service.data.TripService; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; @@ -42,7 +43,6 @@ import io.ultreia.java4all.http.spi.Nullable; import io.ultreia.java4all.http.spi.Post; import java.util.Date; -import java.util.Set; /** * @author Tony Chemit - dev@tchemit.fr @@ -55,7 +55,7 @@ public interface TripLonglineService extends ObserveService, TripService { @Get @ReadDataPermission - TripMapDto getTripLonglineMap(String tripLonglineId, boolean addObservation, boolean addLogbook); + TripMapDto getTripLonglineMap(TripMapConfigDto config); @Get @ReadDataPermission ===================================== services/src/main/java/fr/ird/observe/services/service/data/ps/common/TripSeineService.java ===================================== @@ -32,6 +32,7 @@ import fr.ird.observe.dto.reference.ReferentialDtoReferenceSet; import fr.ird.observe.dto.referential.common.SpeciesReference; import fr.ird.observe.dto.result.SaveResultDto; import fr.ird.observe.services.service.ObserveService; +import fr.ird.observe.dto.data.TripMapConfigDto; import fr.ird.observe.services.service.data.TripService; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; @@ -42,7 +43,6 @@ import io.ultreia.java4all.http.spi.Nullable; import io.ultreia.java4all.http.spi.Post; import java.util.Date; -import java.util.Set; /** * @author Tony Chemit - dev@tchemit.fr @@ -55,7 +55,7 @@ public interface TripSeineService extends ObserveService , TripService { @Get @ReadDataPermission - TripMapDto getTripSeineMap(String tripSeineId); + TripMapDto getTripSeineMap(TripMapConfigDto config); @Get @ReadDataPermission View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/994ae443c89808b510377447d2c7... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/994ae443c89808b510377447d2c7... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT