r2398 - in isis-fish/trunk/src/main: java/fr/ifremer/isisfish/ui/input java/fr/ifremer/isisfish/ui/input/setofvessels resources/i18n
Author: chatellier Date: 2009-06-17 13:00:12 +0000 (Wed, 17 Jun 2009) New Revision: 2398 Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/EffortDescriptionParametersUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsBasicsUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/EffortDescriptionListModel.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/EffortDescriptionListRenderer.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/MetierListModel.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/MetierListRenderer.java Removed: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsTabsUI.jaxx Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/EffortDescriptionUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsUI.jaxx isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties Log: #1891 : UI de flottille/m?\195?\169tiers pratiqu?\195?\169s Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/EffortDescriptionParametersUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/EffortDescriptionParametersUI.jaxx (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/EffortDescriptionParametersUI.jaxx 2009-06-17 13:00:12 UTC (rev 2398) @@ -0,0 +1,284 @@ +<!-- +/* *##% + * Copyright (C) 2005 - 2009 Ifremer, Code Lutin + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + *##%*/ + --> +<fr.ifremer.isisfish.ui.input.InputContentUI> + + <!-- bean property --> + <fr.ifremer.isisfish.entities.SetOfVesselsImpl id='bean' javaBean='null'/> + <fr.ifremer.isisfish.entities.EffortDescriptionImpl id='effortDescription' javaBean='null'/> + + <script><![CDATA[ +import java.util.ArrayList; +import fr.ifremer.isisfish.entities.EffortDescription; +import fr.ifremer.isisfish.entities.EffortDescriptionImpl; +import fr.ifremer.isisfish.entities.SetOfVesselsImpl; +import fr.ifremer.isisfish.entities.SetOfVessels; +import fr.ifremer.isisfish.types.TimeUnit; +import fr.ifremer.isisfish.ui.input.setofvessels.EffortDescriptionListModel; +import fr.ifremer.isisfish.ui.input.setofvessels.EffortDescriptionListRenderer; + +addPropertyChangeListener("effortDescription", new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent evt) { + if (evt.getOldValue() != null || evt.getNewValue() == null) { + fieldEffortDescriptionFishingOperation.setText(""); + fieldEffortDescriptionFishingOperationDuration.setText(""); + fieldEffortDescriptionGearsNumberPerOperation.setText(""); + fieldEffortDescriptionCrewSize.setText(""); + fieldEffortDescriptionUnitCostOfFishing.setText(""); + fieldEffortDescriptionFixedCrewSalary.setText(""); + fieldEffortDescriptionCrewFoodCost.setText(""); + fieldEffortDescriptionCrewShareRate.setText(""); + fieldEffortDescriptionRepairAndMaintenanceGearCost.setText(""); + fieldEffortDescriptionLandingCosts.setText(""); + fieldEffortDescriptionOtherRunningCost.setText(""); + } + if (evt.getNewValue() != null) { + + } + } +}); + + at Override +public void refresh() { + SetOfVessels setOfVessels = getVerifier().getEntity(SetOfVessels.class); + + // twice event for jaxx bindings detection + setBean(null); + setBean((SetOfVesselsImpl) setOfVessels); + + EffortDescriptionListModel model = (EffortDescriptionListModel)fieldEffortDescriptionEffortDescriptionList.getModel(); + if (getBean() != null) { + java.util.List<EffortDescription> effortDescriptions = new ArrayList<EffortDescription>(getBean().getPossibleMetiers()); + model.setEffortDescriptions(effortDescriptions); + } + else { + model.setEffortDescriptions(null); + } +} + + at Override +public void setActionButtons() { + getVerifier().setSaveButton(save); + getVerifier().setCancelButton(cancel); +} + +protected void effortDescriptionSelectionChanged() { + EffortDescriptionImpl selectedEffort = (EffortDescriptionImpl)fieldEffortDescriptionEffortDescriptionList.getSelectedValue(); + setEffortDescription(selectedEffort); + + if (getEffortDescription() != null) { + getVerifier().addCurrentEntity(getEffortDescription()); + + /* NumberEditor is not working + fieldEffortDescriptionFishingOperation.init(); + fieldEffortDescriptionGearsNumberPerOperation.init(); + fieldEffortDescriptionCrewSize.init(); + fieldEffortDescriptionUnitCostOfFishing.init(); + fieldEffortDescriptionFixedCrewSalary.init(); + fieldEffortDescriptionCrewFoodCost.init(); + fieldEffortDescriptionCrewShareRate.init(); + fieldEffortDescriptionRepairAndMaintenanceGearCost.init(); + fieldEffortDescriptionLandingCosts.init(); + fieldEffortDescriptionOtherRunningCost.init();*/ + } +} + ]]> + </script> + <Table> + <row> + <cell rows='3' fill='both' weightx='0.4' weighty='1.0'> + <JScrollPane> + <JList id="fieldEffortDescriptionEffortDescriptionList" selectionMode="{javax.swing.ListSelectionModel.SINGLE_SELECTION}" + onValueChanged='effortDescriptionSelectionChanged()' + model='{new EffortDescriptionListModel()}' cellRenderer='{new EffortDescriptionListRenderer()}' + enabled='{isActif()}' decorator='boxed' /> + </JScrollPane> + </cell> + <cell columns='2' fill='both' weightx='1.0'> + <Table border='{BorderFactory.createTitledBorder(_("isisfish.effortDescription.effortTitle"))}'> + <row> + <cell anchor='east'> + <JLabel text="isisfish.effortDescription.fishingOperation" enabled='{isActif()}'/> + </cell> + <cell fill='horizontal' weightx='1.0'> + <!--NumberEditor id='fieldEffortDescriptionFishingOperation' constructorParams='this' + bean='{getEffortDescription()}' property='fishingOperation' + enabled='{isActif()}' decorator='boxed' useSign='true' + _bean='{EffortDescriptionImpl.class}' _method='"FishingOperation"'/--> + <JFormattedTextField id="fieldEffortDescriptionFishingOperation" text='{getEffortDescription().getFishingOperation()}' + onKeyReleased='getEffortDescription().setFishingOperation(Integer.parseInt(fieldEffortDescriptionFishingOperation.getText()))' + enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"FishingOperation"'/> + </cell> + </row> + <row> + <cell anchor='east'> + <JLabel text="isisfish.effortDescription.fishingOperationDuration" enabled='{isActif()}'/> + </cell> + <cell fill='horizontal' weightx='1.0'> + <JTextField id="fieldEffortDescriptionFishingOperationDuration" + text='{getEffortDescription().getFishingOperationDuration() == null ? "" : getEffortDescription().getFishingOperationDuration().getHour()}' + toolTipText="isisfish.effortDescription.fishingOperationDuration.tooltip" onKeyReleased='getEffortDescription().setFishingOperationDuration(new TimeUnit(3600 * Double.parseDouble(fieldEffortDescriptionFishingOperationDuration.getText())))' + enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"FishingOperationDuration"'/> + </cell> + </row> + <row> + <cell anchor='east'> + <JLabel text="isisfish.effortDescription.gearsNumberPerOperation" enabled='{isActif()}'/> + </cell> + <cell fill='horizontal' weightx='1.0'> + <!--NumberEditor id='fieldEffortDescriptionGearsNumberPerOperation' constructorParams='this' + bean='{getEffortDescription()}' property='gearsNumberPerOperation' + enabled='{isActif()}' decorator='boxed' useSign='true' + _bean='{EffortDescriptionImpl.class}' _method='"GearsNumberPerOperation"'/--> + <JTextField id="fieldEffortDescriptionGearsNumberPerOperation" text='{getEffortDescription().getGearsNumberPerOperation()}' + onKeyReleased='getEffortDescription().setGearsNumberPerOperation(Integer.parseInt(fieldEffortDescriptionGearsNumberPerOperation.getText()))' + enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"GearsNumberPerOperation"'/> + </cell> + </row> + </Table> + </cell> + </row> + <row> + <cell columns='2' fill='both' weighty='1.0'> + <Table anchor='north' fill='both' weighty='1.0' border='{BorderFactory.createTitledBorder(_("isisfish.effortDescription.economicTitle"))}'> + <row> + <cell anchor='east' fill='none' weighty='0.0'> + <JLabel text="isisfish.effortDescription.crewSize" enabled='{isActif()}'/> + </cell> + <cell fill='horizontal' weightx='1.0' weighty='0.0'> + <!--NumberEditor id='fieldEffortDescriptionCrewSize' constructorParams='this' + bean='{getEffortDescription()}' property='crewSize' + enabled='{isActif()}' decorator='boxed' useSign='true' + _bean='{EffortDescriptionImpl.class}' _method='"CrewSize"'/--> + <JTextField id="fieldEffortDescriptionCrewSize" text='{getEffortDescription().getCrewSize()}' + onKeyReleased='getEffortDescription().setCrewSize(Integer.parseInt(fieldEffortDescriptionCrewSize.getText()))' + enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"CrewSize"'/> + </cell> + </row> + <row> + <cell anchor='east' fill='none' weighty='0.0'> + <JLabel text="isisfish.effortDescription.unitCostOfFishing" enabled='{isActif()}'/> + </cell> + <cell fill='horizontal' weightx='1.0' weighty='0.0'> + <!--NumberEditor id='fieldEffortDescriptionUnitCostOfFishing' constructorParams='this' + bean='{getEffortDescription()}' property='unitCostOfFishing' + enabled='{isActif()}' decorator='boxed' useSign='true' + _bean='{EffortDescriptionImpl.class}' _method='"UnitCostOfFishing"'/--> + <JTextField id="fieldEffortDescriptionUnitCostOfFishing" text='{getEffortDescription().getUnitCostOfFishing()}' + onKeyReleased='getEffortDescription().setUnitCostOfFishing(Double.parseDouble(fieldEffortDescriptionUnitCostOfFishing.getText()))' + enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"UnitCostOfFishing"'/> + </cell> + </row> + <row> + <cell anchor='east' fill='none' weighty='0.0'> + <JLabel text="isisfish.effortDescription.fixedCrewSalary" enabled='{isActif()}'/> + </cell> + <cell fill='horizontal' weightx='1.0' weighty='0.0'> + <!--NumberEditor id='fieldEffortDescriptionFixedCrewSalary' constructorParams='this' + bean='{getEffortDescription()}' property='fixedCrewSalary' + enabled='{isActif()}' decorator='boxed' useSign='true' + _bean='{EffortDescriptionImpl.class}' _method='"FixedCrewSalary"'/--> + <JTextField id="fieldEffortDescriptionFixedCrewSalary" text='{getEffortDescription().getFixedCrewSalary()}' + onKeyReleased='getEffortDescription().setFixedCrewSalary(Double.parseDouble(fieldEffortDescriptionFixedCrewSalary.getText()))' + enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"FixedCrewSalary"'/> + </cell> + </row> + <row> + <cell anchor='east' fill='none' weighty='0.0'> + <JLabel text="isisfish.effortDescription.crewFoodCost" enabled='{isActif()}'/> + </cell> + <cell fill='horizontal' weightx='1.0' weighty='0.0'> + <!--NumberEditor id='fieldEffortDescriptionCrewFoodCost' constructorParams='this' + bean='{getEffortDescription()}' property='crewFoodCost' + enabled='{isActif()}' decorator='boxed' useSign='true' + _bean='{EffortDescriptionImpl.class}' _method='"CrewFoodCost"'/--> + <JTextField id="fieldEffortDescriptionCrewFoodCost" text='{getEffortDescription().getCrewFoodCost()}' + onKeyReleased='getEffortDescription().setCrewFoodCost(Double.parseDouble(fieldEffortDescriptionCrewFoodCost.getText()))' + enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"CrewFoodCost"'/> + </cell> + </row> + <row> + <cell anchor='east' fill='none' weighty='0.0'> + <JLabel text="isisfish.effortDescription.crewShareRate" enabled='{isActif()}'/> + </cell> + <cell fill='horizontal' weightx='1.0' weighty='0.0'> + <!--NumberEditor id='fieldEffortDescriptionCrewShareRate' constructorParams='this' + bean='{getEffortDescription()}' property='crewShareRate' + enabled='{isActif()}' decorator='boxed' useSign='true' + _bean='{EffortDescriptionImpl.class}' _method='"CrewShareRate"'/--> + <JTextField id="fieldEffortDescriptionCrewShareRate" text='{getEffortDescription().getCrewShareRate()}' + onKeyReleased='getEffortDescription().setCrewShareRate(Double.parseDouble(fieldEffortDescriptionCrewShareRate.getText()))' + enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"CrewShareRate"'/> + </cell> + </row> + <row> + <cell anchor='east' fill='none' weighty='0.0'> + <JLabel text="isisfish.effortDescription.repairAndMaintenanceGearCost" enabled='{isActif()}'/> + </cell> + <cell fill='horizontal' weightx='1.0' weighty='0.0'> + <!--NumberEditor id='fieldEffortDescriptionRepairAndMaintenanceGearCost' constructorParams='this' + bean='{getEffortDescription()}' property='repairAndMaintenanceGearCost' + enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' + _method='"RepairAndMaintenanceGearCost"' useSign='true'/--> + <JTextField id="fieldEffortDescriptionRepairAndMaintenanceGearCost" text='{getEffortDescription().getRepairAndMaintenanceGearCost()}' + onKeyReleased='getEffortDescription().setRepairAndMaintenanceGearCost(Double.parseDouble(fieldEffortDescriptionRepairAndMaintenanceGearCost.getText()))' + enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"RepairAndMaintenanceGearCost"'/> + </cell> + </row> + <row> + <cell anchor='east' fill='none' weighty='0.0'> + <JLabel text="isisfish.effortDescription.landingCosts" enabled='{isActif()}'/> + </cell> + <cell fill='horizontal' weightx='1.0' weighty='0.0'> + <!--NumberEditor id='fieldEffortDescriptionLandingCosts' constructorParams='this' + bean='{getEffortDescription()}' property='landingCosts' + enabled='{isActif()}' decorator='boxed' useSign='true' + _bean='{EffortDescriptionImpl.class}' _method='"LandingCosts"'/--> + <JTextField id="fieldEffortDescriptionLandingCosts" text='{getEffortDescription().getLandingCosts()}' + onKeyReleased='getEffortDescription().setLandingCosts(Double.parseDouble(fieldEffortDescriptionLandingCosts.getText()))' + enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"LandingCosts"'/> + </cell> + </row> + <row> + <cell anchor='northeast' fill='none' weighty='1.0'> + <JLabel text="isisfish.effortDescription.otherRunningCost" enabled='{isActif()}'/> + </cell> + <cell anchor='north' fill='horizontal' weightx='1.0' weighty='1.0'> + <!--NumberEditor id='fieldEffortDescriptionOtherRunningCost' constructorParams='this' + bean='{getEffortDescription()}' property='otherRunningCost' + enabled='{isActif()}' decorator='boxed' useSign='true' + _bean='{EffortDescriptionImpl.class}' _method='"OtherRunningCost"'/--> + <JTextField id="fieldEffortDescriptionOtherRunningCost" text='{getEffortDescription().getOtherRunningCost()}' + onKeyReleased='getEffortDescription().setOtherRunningCost(Double.parseDouble(fieldEffortDescriptionOtherRunningCost.getText()))' + enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"OtherRunningCost"'/> + </cell> + </row> + </Table> + </cell> + </row> + <row> + <cell fill='horizontal' weightx='0.3'> + <JButton id='save' decorator='boxed'/> + </cell> + <cell fill='horizontal' weightx='0.3'> + <JButton id='cancel' decorator='boxed'/> + </cell> + </row> + </Table> +</fr.ifremer.isisfish.ui.input.InputContentUI> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/EffortDescriptionUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/EffortDescriptionUI.jaxx 2009-06-17 08:47:48 UTC (rev 2397) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/EffortDescriptionUI.jaxx 2009-06-17 13:00:12 UTC (rev 2398) @@ -22,70 +22,42 @@ <!-- bean property --> <fr.ifremer.isisfish.entities.SetOfVesselsImpl id='bean' javaBean='null'/> - <fr.ifremer.isisfish.entities.EffortDescriptionImpl id='effortDescription' javaBean='null'/> - - <script><![CDATA[ + <script><![CDATA[ +import java.util.ArrayList; import fr.ifremer.isisfish.entities.EffortDescription; import fr.ifremer.isisfish.entities.EffortDescriptionImpl; import fr.ifremer.isisfish.entities.SetOfVesselsImpl; import fr.ifremer.isisfish.entities.SetOfVessels; import fr.ifremer.isisfish.entities.Metier; -import fr.ifremer.isisfish.types.TimeUnit; -import javax.swing.event.ListSelectionListener; -import javax.swing.event.ListSelectionEvent; -import jaxx.runtime.swing.Item; +import fr.ifremer.isisfish.ui.input.setofvessels.MetierListModel; +import fr.ifremer.isisfish.ui.input.setofvessels.MetierListRenderer; +import fr.ifremer.isisfish.ui.input.setofvessels.EffortDescriptionListModel; +import fr.ifremer.isisfish.ui.input.setofvessels.EffortDescriptionListRenderer; -addPropertyChangeListener("effortDescription", new PropertyChangeListener() { - public void propertyChange(PropertyChangeEvent evt) { - if (evt.getOldValue() != null || evt.getNewValue() == null) { - fieldEffortDescriptionFishingOperation.setText(""); - fieldEffortDescriptionFishingOperationDuration.setText(""); - fieldEffortDescriptionGearsNumberPerOperation.setText(""); - fieldEffortDescriptionCrewSize.setText(""); - fieldEffortDescriptionUnitCostOfFishing.setText(""); - fieldEffortDescriptionFixedCrewSalary.setText(""); - fieldEffortDescriptionCrewFoodCost.setText(""); - fieldEffortDescriptionCrewShareRate.setText(""); - fieldEffortDescriptionRepairAndMaintenanceGearCost.setText(""); - fieldEffortDescriptionLandingCosts.setText(""); - fieldEffortDescriptionOtherRunningCost.setText(""); - } - if (evt.getNewValue() != null) { +/** + * Get input action from context. + */ +protected InputAction getInputAction() { + return getContextValue(InputAction.class); +} - } - } -}); - -fieldEffortDescriptionMetierList.addListSelectionListener(new ListSelectionListener() { - public void valueChanged(ListSelectionEvent e) { - // active le bouton seulement si l'interface est active - // dans le cas de sensitivity par exemple - if(isActif()) { - buttonEffortDescriptionAdd.setEnabled(fieldEffortDescriptionMetierList.getSelectedIndex() != -1); - } - } -}); - -fieldEffortDescriptionEffortDescriptionList.addListSelectionListener(new ListSelectionListener() { - public void valueChanged(ListSelectionEvent e) { - // active le bouton seulement si l'interface est active - // dans le cas de sensitivity par exemple - if(isActif()) { - removeEffortDescriptionButton.setEnabled(fieldEffortDescriptionEffortDescriptionList.getSelectedIndex() != -1); - } - } -}); - @Override public void refresh() { SetOfVessels setOfVessels = getVerifier().getEntity(SetOfVessels.class); + + // twice event for jaxx bindings detection + setBean(null); setBean((SetOfVesselsImpl) setOfVessels); - if (getBean() != null){ - if (getRegion().getMetier() != null) { - fieldEffortDescriptionMetierList.fillList(getRegion().getMetier(), (Object)null); - } - setEffortDescriptionEffortDescriptionList(); + + // fill available metier list + MetierListModel metierModel = (MetierListModel)fieldEffortDescriptionMetierList.getModel(); + if (getBean() != null) { + metierModel.setMetiers(getRegion().getMetier()); } + else { + metierModel.setMetiers(null); + } + setEffortDescriptionEffortDescriptionList(); } @Override @@ -94,250 +66,88 @@ getVerifier().setCancelButton(cancel); } +protected void onFieldEffortDescriptionMetierListValueChanged() { + // active le bouton seulement si l'interface est active + // dans le cas de sensitivity par exemple + if (isActif()) { + buttonEffortDescriptionAdd.setEnabled(fieldEffortDescriptionMetierList.getSelectedIndex() != -1); + } +} + +protected void onFieldEffortDescriptionEffortDescriptionListValueChanged() { + // active le bouton seulement si l'interface est active + // dans le cas de sensitivity par exemple + if (isActif()) { + removeEffortDescriptionButton.setEnabled(fieldEffortDescriptionEffortDescriptionList.getSelectedIndex() != -1); + } +} + protected void setEffortDescriptionEffortDescriptionList() { - if (getBean().getPossibleMetiers() != null){ - java.util.List<Item> items = new ArrayList<Item>(); - for (EffortDescription e : getBean().getPossibleMetiers()){ - items.add(new Item(e.toString(), e.getPossibleMetiers().getName(), e, false)); - } - fieldEffortDescriptionEffortDescriptionList.setItems(items); + EffortDescriptionListModel model = (EffortDescriptionListModel)fieldEffortDescriptionEffortDescriptionList.getModel(); + if (getBean() != null) { + java.util.List<EffortDescription> effortDescriptions = new ArrayList<EffortDescription>(getBean().getPossibleMetiers()); + model.setEffortDescriptions(effortDescriptions); } + else { + model.setEffortDescriptions(null); + } } -protected void addEffortDescription() { - Object value = fieldEffortDescriptionMetierList.getSelectedValue(); - if (value != null){ - Metier m = (Metier)value; - getContextValue(InputAction.class).addEffortDescription(getBean(), m); - setEffortDescriptionEffortDescriptionList(); + +protected void addEffortDescriptions() { + Object[] selectedValues = (Object[])fieldEffortDescriptionMetierList.getSelectedValues(); + for (Object selectedValue : selectedValues) { + Metier selectedMetier = (Metier)selectedValue; + getInputAction().addEffortDescription(getBean(), selectedMetier); } + setEffortDescriptionEffortDescriptionList(); } -protected void removeEffortDescription() { - Object value = fieldEffortDescriptionEffortDescriptionList.getSelectedValue(); - if (value != null) { - EffortDescription e = (EffortDescription)value; - getContextValue(InputAction.class).removeEffortDescription(getBean(), e); - setEffortDescriptionEffortDescriptionList(); +protected void removeEffortDescriptions() { + Object[] selectedValues = (Object[])fieldEffortDescriptionEffortDescriptionList.getSelectedValues(); + for (Object selectedValue : selectedValues) { + EffortDescription selectedEffortDescription = (EffortDescription)selectedValue; + getInputAction().removeEffortDescription(getBean(), selectedEffortDescription); } + setEffortDescriptionEffortDescriptionList(); + fieldEffortDescriptionEffortDescriptionList.clearSelection(); // bug selected index still exists } -protected void effortDescriptionChanged() { - EffortDescriptionImpl selectedEffort = (EffortDescriptionImpl)fieldEffortDescriptionEffortDescriptionList.getSelectedValue(); - setEffortDescription(selectedEffort); - - if (getEffortDescription() != null) { - getVerifier().addCurrentEntity(getEffortDescription()); - - /* NumberEditor is not working - fieldEffortDescriptionFishingOperation.init(); - fieldEffortDescriptionGearsNumberPerOperation.init(); - fieldEffortDescriptionCrewSize.init(); - fieldEffortDescriptionUnitCostOfFishing.init(); - fieldEffortDescriptionFixedCrewSalary.init(); - fieldEffortDescriptionCrewFoodCost.init(); - fieldEffortDescriptionCrewShareRate.init(); - fieldEffortDescriptionRepairAndMaintenanceGearCost.init(); - fieldEffortDescriptionLandingCosts.init(); - fieldEffortDescriptionOtherRunningCost.init();*/ - } -} ]]> </script> - <Table id='body'> + <Table> <row> <cell columns='2' fill='both' weightx='1.0' weighty='1.0'> <JScrollPane> - <JList id="fieldEffortDescriptionMetierList" selectionMode="0" enabled='{isActif()}' decorator='boxed' /> + <JList id="fieldEffortDescriptionMetierList" selectionMode="{javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION}" + model='{new MetierListModel()}' cellRenderer='{new MetierListRenderer()}' + onValueChanged='onFieldEffortDescriptionMetierListValueChanged()' enabled='{isActif()}' decorator='boxed' /> </JScrollPane> </cell> </row> <row> - <cell fill='both' weightx='0.5'> - <Table> - <row> - <cell fill='horizontal' weightx='1.0'> - <JButton id="buttonEffortDescriptionAdd" text="isisfish.common.add" onActionPerformed='addEffortDescription()' enabled='false'/> - </cell> - </row> - <row> - <cell fill='both' weightx='1.0' weighty='1.0'> - <JScrollPane> - <JList id="fieldEffortDescriptionEffortDescriptionList" selectionMode="0" onValueChanged='effortDescriptionChanged()' enabled='{isActif()}'/> - </JScrollPane> - </cell> - </row> - </Table> + <cell fill='horizontal' weightx='0.5'> + <JButton id="buttonEffortDescriptionAdd" text="isisfish.common.add" onActionPerformed='addEffortDescriptions()' enabled='false' + decorator='boxed' /> </cell> - <cell fill='both' weightx='0.5'> - <Table> - <row> - <cell anchor='east'> - <JLabel text="isisfish.effortDescription.fishingOperation" enabled='{isActif()}'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <!--NumberEditor id='fieldEffortDescriptionFishingOperation' constructorParams='this' - bean='{getEffortDescription()}' property='fishingOperation' - enabled='{isActif()}' decorator='boxed' useSign='true' - _bean='{EffortDescriptionImpl.class}' _method='"FishingOperation"'/--> - <JFormattedTextField id="fieldEffortDescriptionFishingOperation" text='{getEffortDescription().getFishingOperation()}' - onKeyReleased='getEffortDescription().setFishingOperation(Integer.parseInt(fieldEffortDescriptionFishingOperation.getText()))' - enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"FishingOperation"'/> - </cell> - </row> - <row> - <cell anchor='east'> - <JLabel text="isisfish.effortDescription.fishingOperationDuration" enabled='{isActif()}'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <JTextField id="fieldEffortDescriptionFishingOperationDuration" - text='{getEffortDescription().getFishingOperationDuration() == null ? "" : getEffortDescription().getFishingOperationDuration().getHour()}' - toolTipText="in hour" onKeyReleased='getEffortDescription().setFishingOperationDuration(new TimeUnit(3600 * Double.parseDouble(fieldEffortDescriptionFishingOperationDuration.getText())))' - enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"FishingOperationDuration"'/> - </cell> - </row> - <row> - <cell anchor='east'> - <JLabel text="isisfish.effortDescription.gearsNumberPerOperation" enabled='{isActif()}'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <!--NumberEditor id='fieldEffortDescriptionGearsNumberPerOperation' constructorParams='this' - bean='{getEffortDescription()}' property='gearsNumberPerOperation' - enabled='{isActif()}' decorator='boxed' useSign='true' - _bean='{EffortDescriptionImpl.class}' _method='"GearsNumberPerOperation"'/--> - <JTextField id="fieldEffortDescriptionGearsNumberPerOperation" text='{getEffortDescription().getGearsNumberPerOperation()}' - onKeyReleased='getEffortDescription().setGearsNumberPerOperation(Integer.parseInt(fieldEffortDescriptionGearsNumberPerOperation.getText()))' - enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"GearsNumberPerOperation"'/> - </cell> - </row> - <row> - <cell anchor='east'> - <JLabel text="isisfish.effortDescription.crewSize" enabled='{isActif()}'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <!--NumberEditor id='fieldEffortDescriptionCrewSize' constructorParams='this' - bean='{getEffortDescription()}' property='crewSize' - enabled='{isActif()}' decorator='boxed' useSign='true' - _bean='{EffortDescriptionImpl.class}' _method='"CrewSize"'/--> - <JTextField id="fieldEffortDescriptionCrewSize" text='{getEffortDescription().getCrewSize()}' - onKeyReleased='getEffortDescription().setCrewSize(Integer.parseInt(fieldEffortDescriptionCrewSize.getText()))' - enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"CrewSize"'/> - </cell> - </row> - <row> - <cell anchor='east'> - <JLabel text="isisfish.effortDescription.unitCostOfFishing" enabled='{isActif()}'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <!--NumberEditor id='fieldEffortDescriptionUnitCostOfFishing' constructorParams='this' - bean='{getEffortDescription()}' property='unitCostOfFishing' - enabled='{isActif()}' decorator='boxed' useSign='true' - _bean='{EffortDescriptionImpl.class}' _method='"UnitCostOfFishing"'/--> - <JTextField id="fieldEffortDescriptionUnitCostOfFishing" text='{getEffortDescription().getUnitCostOfFishing()}' - onKeyReleased='getEffortDescription().setUnitCostOfFishing(Double.parseDouble(fieldEffortDescriptionUnitCostOfFishing.getText()))' - enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"UnitCostOfFishing"'/> - </cell> - </row> - <row> - <cell anchor='east'> - <JLabel text="isisfish.effortDescription.fixedCrewSalary" enabled='{isActif()}'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <!--NumberEditor id='fieldEffortDescriptionFixedCrewSalary' constructorParams='this' - bean='{getEffortDescription()}' property='fixedCrewSalary' - enabled='{isActif()}' decorator='boxed' useSign='true' - _bean='{EffortDescriptionImpl.class}' _method='"FixedCrewSalary"'/--> - <JTextField id="fieldEffortDescriptionFixedCrewSalary" text='{getEffortDescription().getFixedCrewSalary()}' - onKeyReleased='getEffortDescription().setFixedCrewSalary(Double.parseDouble(fieldEffortDescriptionFixedCrewSalary.getText()))' - enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"FixedCrewSalary"'/> - </cell> - </row> - <row> - <cell anchor='east'> - <JLabel text="isisfish.effortDescription.crewFoodCost" enabled='{isActif()}'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <!--NumberEditor id='fieldEffortDescriptionCrewFoodCost' constructorParams='this' - bean='{getEffortDescription()}' property='crewFoodCost' - enabled='{isActif()}' decorator='boxed' useSign='true' - _bean='{EffortDescriptionImpl.class}' _method='"CrewFoodCost"'/--> - <JTextField id="fieldEffortDescriptionCrewFoodCost" text='{getEffortDescription().getCrewFoodCost()}' - onKeyReleased='getEffortDescription().setCrewFoodCost(Double.parseDouble(fieldEffortDescriptionCrewFoodCost.getText()))' - enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"CrewFoodCost"'/> - </cell> - </row> - <row> - <cell anchor='east'> - <JLabel text="isisfish.effortDescription.crewShareRate" enabled='{isActif()}'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <!--NumberEditor id='fieldEffortDescriptionCrewShareRate' constructorParams='this' - bean='{getEffortDescription()}' property='crewShareRate' - enabled='{isActif()}' decorator='boxed' useSign='true' - _bean='{EffortDescriptionImpl.class}' _method='"CrewShareRate"'/--> - <JTextField id="fieldEffortDescriptionCrewShareRate" text='{getEffortDescription().getCrewShareRate()}' - onKeyReleased='getEffortDescription().setCrewShareRate(Double.parseDouble(fieldEffortDescriptionCrewShareRate.getText()))' - enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"CrewShareRate"'/> - </cell> - </row> - <row> - <cell anchor='east'> - <JLabel text="isisfish.effortDescription.repairAndMaintenanceGearCost" enabled='{isActif()}'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <!--NumberEditor id='fieldEffortDescriptionRepairAndMaintenanceGearCost' constructorParams='this' - bean='{getEffortDescription()}' property='repairAndMaintenanceGearCost' - enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' - _method='"RepairAndMaintenanceGearCost"' useSign='true'/--> - <JTextField id="fieldEffortDescriptionRepairAndMaintenanceGearCost" text='{getEffortDescription().getRepairAndMaintenanceGearCost()}' - onKeyReleased='getEffortDescription().setRepairAndMaintenanceGearCost(Double.parseDouble(fieldEffortDescriptionRepairAndMaintenanceGearCost.getText()))' - enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"RepairAndMaintenanceGearCost"'/> - </cell> - </row> - <row> - <cell anchor='east'> - <JLabel text="isisfish.effortDescription.landingCosts" enabled='{isActif()}'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <!--NumberEditor id='fieldEffortDescriptionLandingCosts' constructorParams='this' - bean='{getEffortDescription()}' property='landingCosts' - enabled='{isActif()}' decorator='boxed' useSign='true' - _bean='{EffortDescriptionImpl.class}' _method='"LandingCosts"'/--> - <JTextField id="fieldEffortDescriptionLandingCosts" text='{getEffortDescription().getLandingCosts()}' - onKeyReleased='getEffortDescription().setLandingCosts(Double.parseDouble(fieldEffortDescriptionLandingCosts.getText()))' - enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"LandingCosts"'/> - </cell> - </row> - <row> - <cell anchor='east'> - <JLabel text="isisfish.effortDescription.otherRunningCost" enabled='{isActif()}'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <!--NumberEditor id='fieldEffortDescriptionOtherRunningCost' constructorParams='this' - bean='{getEffortDescription()}' property='otherRunningCost' - enabled='{isActif()}' decorator='boxed' useSign='true' - _bean='{EffortDescriptionImpl.class}' _method='"OtherRunningCost"'/--> - <JTextField id="fieldEffortDescriptionOtherRunningCost" text='{getEffortDescription().getOtherRunningCost()}' - onKeyReleased='getEffortDescription().setOtherRunningCost(Double.parseDouble(fieldEffortDescriptionOtherRunningCost.getText()))' - enabled='{isActif()}' decorator='boxed' _bean='{EffortDescriptionImpl.class}' _method='"OtherRunningCost"'/> - </cell> - </row> - <row> - <cell columns='2' fill='horizontal' weightx='1.0'> - <Table> - <row> - <cell fill='horizontal' weightx='0.3'> - <JButton id='save' decorator='boxed'/> - </cell> - <cell fill='horizontal' weightx='0.3'> - <JButton id='cancel' decorator='boxed'/> - </cell> - <cell fill='horizontal' weightx='0.3'> - <JButton id='removeEffortDescriptionButton' text="isisfish.common.remove" onActionPerformed='removeEffortDescription()' enabled='false' decorator='boxed'/> - </cell> - </row> - </Table> - </cell> - </row> - </Table> + <cell fill='horizontal' weightx='0.5'> + <JButton id='removeEffortDescriptionButton' text="isisfish.common.remove" onActionPerformed='removeEffortDescriptions()' + enabled='false' decorator='boxed' /> </cell> </row> + <row> + <cell columns='2' fill='both' weightx='1.0' weighty='1.0'> + <JScrollPane> + <JList id="fieldEffortDescriptionEffortDescriptionList" selectionMode="{javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION}" + model='{new EffortDescriptionListModel()}' cellRenderer='{new EffortDescriptionListRenderer()}' + onValueChanged='onFieldEffortDescriptionEffortDescriptionListValueChanged()' enabled='{isActif()}' decorator='boxed' /> + </JScrollPane> + </cell> + </row> + <row> + <cell fill='horizontal' weightx='0.5'> + <JButton id='save' decorator='boxed'/> + </cell> + <cell fill='horizontal' weightx='0.5'> + <JButton id='cancel' decorator='boxed'/> + </cell> + </row> </Table> </fr.ifremer.isisfish.ui.input.InputContentUI> Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsBasicsUI.jaxx (from rev 2393, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsTabsUI.jaxx) =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsBasicsUI.jaxx (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsBasicsUI.jaxx 2009-06-17 13:00:12 UTC (rev 2398) @@ -0,0 +1,183 @@ +<!-- +/* *##% + * Copyright (C) 2005 - 2009 Ifremer, Code Lutin + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + *##%*/ + --> + +<fr.ifremer.isisfish.ui.input.InputContentUI> + + <!-- bean property --> + <fr.ifremer.isisfish.entities.SetOfVesselsImpl id='bean' javaBean='null'/> + + <script><![CDATA[ + +import org.codelutin.topia.TopiaException; +import fr.ifremer.isisfish.entities.Port; +import fr.ifremer.isisfish.entities.Equation; +import fr.ifremer.isisfish.entities.VesselType; +import fr.ifremer.isisfish.entities.Formule; +import fr.ifremer.isisfish.entities.SetOfVessels; +import jaxx.runtime.swing.editor.NumberEditor; +import fr.ifremer.isisfish.entities.SetOfVesselsImpl; + +boolean init = false; + + at Override +public void refresh() { + SetOfVessels setOfVessels = (SetOfVessels)getVerifier().getEntity(SetOfVessels.class); + + // add null before, for second to be considered as a changed event + // otherwize, setBean has no effect + setBean(null); + setBean((SetOfVesselsImpl) setOfVessels); + + if (getBean() != null) { + init = true; + jaxx.runtime.SwingUtil.fillComboBox(fieldSetOfVesselsPort,getRegion().getPort(), getBean().getPort(), true); + jaxx.runtime.SwingUtil.fillComboBox(fieldSetOfVesselsVesselType,getRegion().getVesselType(), getBean().getVesselType(), true); + init=false; + getVerifier().addCurrentPanel(technicalEfficiency); + + // NumberEditor is not working + //fieldSetOfVesselsNumberOfVessels.init(); + //fieldSetOfVesselsFixedCosts.init(); + } +} + + at Override +public void setActionButtons() { + getVerifier().setSaveButton(save); + getVerifier().setCancelButton(cancel); + getVerifier().setNewButton(create, "SetOfVessels"); + getVerifier().setDeleteButton(remove); +} + +protected void portChanged() { + if (!init) { + getBean().setPort((Port)fieldSetOfVesselsPort.getSelectedItem()); + } +} +protected void vesselTypeChanged() { + if (!init) { + getBean().setVesselType((VesselType)fieldSetOfVesselsVesselType.getSelectedItem()); + } +} + ]]> + </script> + <Table id='body'> + <row> + <cell fill='both' weightx='1.0' weighty='1.0'> + <Table> + <row> + <cell anchor='east'> + <JLabel text="isisfish.setOfVessels.name" enabled='{isActif()}'/> + </cell> + <cell fill='horizontal' weightx='1.0'> + <JTextField id="fieldSetOfVesselsName" text='{getBean().getName()}' onKeyReleased='getBean().setName(fieldSetOfVesselsName.getText())' enabled='{isActif()}' decorator='boxed'/> + </cell> + </row> + <row> + <cell anchor='east'> + <JLabel text="isisfish.common.port" enabled='{isActif()}'/> + </cell> + <cell fill='horizontal' weightx='1.0'> + <JComboBox id="fieldSetOfVesselsPort" onActionPerformed='portChanged()' enabled='{isActif()}' decorator='boxed'/> + </cell> + </row> + <row> + <cell anchor='east'> + <JLabel text="isisfish.setOfVessels.vesselType" enabled='{isActif()}'/> + </cell> + <cell fill='horizontal' weightx='1.0'> + <JComboBox id="fieldSetOfVesselsVesselType" onActionPerformed='vesselTypeChanged()' enabled='{isActif()}' decorator='boxed'/> + </cell> + </row> + <row> + <cell anchor='east'> + <JLabel text="isisfish.setOfVessels.numberOfVessels" enabled='{isActif()}'/> + </cell> + <cell fill='horizontal' weightx='1.0'> + <!--NumberEditor id='fieldSetOfVesselsNumberOfVessels' constructorParams='this' + bean='{getBean()}' property='numberOfVessels' + enabled='{isActif()}' decorator='boxed' useSign='true' + _bean='{SetOfVesselsImpl.class}' _method='"NumberOfVessels"'/--> + <JTextField id="fieldSetOfVesselsNumberOfVessels" text='{getBean().getNumberOfVessels()}' + onKeyReleased='getBean().setNumberOfVessels(Integer.parseInt(fieldSetOfVesselsNumberOfVessels.getText()))' + enabled='{isActif()}' decorator='boxed' _bean='{SetOfVesselsImpl.class}' _method='"NumberOfVessels"'/> + </cell> + </row> + <row> + <cell anchor='east'> + <JLabel text="isisfish.setOfVessels.fixedCosts" enabled='{isActif()}'/> + </cell> + <cell fill='horizontal' weightx='1.0'> + <!--NumberEditor id='fieldSetOfVesselsFixedCosts' constructorParams='this' + bean='{getBean()}' property='fixedCosts' + enabled='{isActif()}' decorator='boxed' useSign='true' + _bean='{SetOfVesselsImpl.class}' _method='"FixedCosts"'/--> + <JTextField id="fieldSetOfVesselsFixedCosts" text='{getBean().getFixedCosts()}' + onKeyReleased='getBean().setFixedCosts(Double.parseDouble(fieldSetOfVesselsFixedCosts.getText()))' + enabled='{isActif()}' decorator='boxed' _bean='{SetOfVesselsImpl.class}' _method='"FixedCosts"'/> + </cell> + </row> + <row> + <cell columns='2' fill='both' weightx='1.0' weighty='0.3'> + <InputOneEquationUI id='technicalEfficiency' constructorParams='this' + lblText='{_("isisfish.setOfVessels.technicalEfficiency")}' + bean='{getBean()}' nameEquation='TechnicalEfficiency' methodGet='TechnicalEfficiencyEquation' methodSet='EquationTechnicalEfficiency' + clazz='{fr.ifremer.isisfish.equation.SoVTechnicalEfficiencyEquation.class}' + decorator='boxed' _bean='{SetOfVesselsImpl.class}' _method='"TechnicalEfficiencyEquation"'/> + </cell> + </row> + <row> + <cell anchor='east'> + <JLabel text="isisfish.setOfVessels.comments" enabled='{isActif()}'/> + </cell> + <cell fill='both' weightx='1.0' weighty='0.3'> + <JScrollPane> + <JTextArea id="fieldSetOfVesselsComment" text='{jaxx.runtime.SwingUtil.getStringValue(getBean().getComment())}' + onKeyReleased='getBean().setComment(fieldSetOfVesselsComment.getText())' enabled='{isActif()}' decorator='boxed'/> + </JScrollPane> + </cell> + </row> + </Table> + </cell> + </row> + <row> + <cell fill='horizontal' weightx='1.0'> + <Table> + <row> + <cell fill='horizontal' weightx='1.0'> + <JButton id='save' decorator='boxed'/> + </cell> + <cell fill='horizontal' weightx='1.0'> + <JButton id='cancel' decorator='boxed'/> + </cell> + </row> + <row> + <cell fill='horizontal' weightx='1.0'> + <JButton id='create' decorator='boxed'/> + </cell> + <cell fill='horizontal' weightx='1.0'> + <JButton id='remove' decorator='boxed'/> + </cell> + </row> + </Table> + </cell> + </row> + </Table> +</fr.ifremer.isisfish.ui.input.InputContentUI> Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsTabsUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsTabsUI.jaxx 2009-06-17 08:47:48 UTC (rev 2397) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsTabsUI.jaxx 2009-06-17 13:00:12 UTC (rev 2398) @@ -1,183 +0,0 @@ -<!-- -/* *##% - * Copyright (C) 2005 - 2009 Ifremer, Code Lutin - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * 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, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - *##%*/ - --> - -<fr.ifremer.isisfish.ui.input.InputContentUI> - - <!-- bean property --> - <fr.ifremer.isisfish.entities.SetOfVesselsImpl id='bean' javaBean='null'/> - - <script><![CDATA[ - -import org.codelutin.topia.TopiaException; -import fr.ifremer.isisfish.entities.Port; -import fr.ifremer.isisfish.entities.Equation; -import fr.ifremer.isisfish.entities.VesselType; -import fr.ifremer.isisfish.entities.Formule; -import fr.ifremer.isisfish.entities.SetOfVessels; -import jaxx.runtime.swing.editor.NumberEditor; -import fr.ifremer.isisfish.entities.SetOfVesselsImpl; - -boolean init = false; - - at Override -public void refresh() { - SetOfVessels setOfVessels = (SetOfVessels)getVerifier().getEntity(SetOfVessels.class); - - // add null before, for second to be considered as a changed event - // otherwize, setBean has no effect - setBean(null); - setBean((SetOfVesselsImpl) setOfVessels); - - if (getBean() != null) { - init = true; - jaxx.runtime.SwingUtil.fillComboBox(fieldSetOfVesselsPort,getRegion().getPort(), getBean().getPort(), true); - jaxx.runtime.SwingUtil.fillComboBox(fieldSetOfVesselsVesselType,getRegion().getVesselType(), getBean().getVesselType(), true); - init=false; - getVerifier().addCurrentPanel(technicalEfficiency); - - // NumberEditor is not working - //fieldSetOfVesselsNumberOfVessels.init(); - //fieldSetOfVesselsFixedCosts.init(); - } -} - - at Override -public void setActionButtons() { - getVerifier().setSaveButton(save); - getVerifier().setCancelButton(cancel); - getVerifier().setNewButton(create, "SetOfVessels"); - getVerifier().setDeleteButton(remove); -} - -protected void portChanged() { - if (!init) { - getBean().setPort((Port)fieldSetOfVesselsPort.getSelectedItem()); - } -} -protected void vesselTypeChanged() { - if (!init) { - getBean().setVesselType((VesselType)fieldSetOfVesselsVesselType.getSelectedItem()); - } -} - ]]> - </script> - <Table id='body'> - <row> - <cell fill='both' weightx='1.0' weighty='1.0'> - <Table> - <row> - <cell anchor='east'> - <JLabel text="isisfish.setOfVessels.name" enabled='{isActif()}'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <JTextField id="fieldSetOfVesselsName" text='{getBean().getName()}' onKeyReleased='getBean().setName(fieldSetOfVesselsName.getText())' enabled='{isActif()}' decorator='boxed'/> - </cell> - </row> - <row> - <cell anchor='east'> - <JLabel text="isisfish.common.port" enabled='{isActif()}'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <JComboBox id="fieldSetOfVesselsPort" onActionPerformed='portChanged()' enabled='{isActif()}' decorator='boxed'/> - </cell> - </row> - <row> - <cell anchor='east'> - <JLabel text="isisfish.setOfVessels.vesselType" enabled='{isActif()}'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <JComboBox id="fieldSetOfVesselsVesselType" onActionPerformed='vesselTypeChanged()' enabled='{isActif()}' decorator='boxed'/> - </cell> - </row> - <row> - <cell anchor='east'> - <JLabel text="isisfish.setOfVessels.numberOfVessels" enabled='{isActif()}'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <!--NumberEditor id='fieldSetOfVesselsNumberOfVessels' constructorParams='this' - bean='{getBean()}' property='numberOfVessels' - enabled='{isActif()}' decorator='boxed' useSign='true' - _bean='{SetOfVesselsImpl.class}' _method='"NumberOfVessels"'/--> - <JTextField id="fieldSetOfVesselsNumberOfVessels" text='{getBean().getNumberOfVessels()}' - onKeyReleased='getBean().setNumberOfVessels(Integer.parseInt(fieldSetOfVesselsNumberOfVessels.getText()))' - enabled='{isActif()}' decorator='boxed' _bean='{SetOfVesselsImpl.class}' _method='"NumberOfVessels"'/> - </cell> - </row> - <row> - <cell anchor='east'> - <JLabel text="isisfish.setOfVessels.fixedCosts" enabled='{isActif()}'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <!--NumberEditor id='fieldSetOfVesselsFixedCosts' constructorParams='this' - bean='{getBean()}' property='fixedCosts' - enabled='{isActif()}' decorator='boxed' useSign='true' - _bean='{SetOfVesselsImpl.class}' _method='"FixedCosts"'/--> - <JTextField id="fieldSetOfVesselsFixedCosts" text='{getBean().getFixedCosts()}' - onKeyReleased='getBean().setFixedCosts(Double.parseDouble(fieldSetOfVesselsFixedCosts.getText()))' - enabled='{isActif()}' decorator='boxed' _bean='{SetOfVesselsImpl.class}' _method='"FixedCosts"'/> - </cell> - </row> - <row> - <cell columns='2' fill='both' weightx='1.0' weighty='0.3'> - <InputOneEquationUI id='technicalEfficiency' constructorParams='this' - lblText='{_("isisfish.setOfVessels.technicalEfficiency")}' - bean='{getBean()}' nameEquation='TechnicalEfficiency' methodGet='TechnicalEfficiencyEquation' methodSet='EquationTechnicalEfficiency' - clazz='{fr.ifremer.isisfish.equation.SoVTechnicalEfficiencyEquation.class}' - decorator='boxed' _bean='{SetOfVesselsImpl.class}' _method='"TechnicalEfficiencyEquation"'/> - </cell> - </row> - <row> - <cell anchor='east'> - <JLabel text="isisfish.setOfVessels.comments" enabled='{isActif()}'/> - </cell> - <cell fill='both' weightx='1.0' weighty='0.3'> - <JScrollPane> - <JTextArea id="fieldSetOfVesselsComment" text='{jaxx.runtime.SwingUtil.getStringValue(getBean().getComment())}' - onKeyReleased='getBean().setComment(fieldSetOfVesselsComment.getText())' enabled='{isActif()}' decorator='boxed'/> - </JScrollPane> - </cell> - </row> - </Table> - </cell> - </row> - <row> - <cell fill='horizontal' weightx='1.0'> - <Table> - <row> - <cell fill='horizontal' weightx='1.0'> - <JButton id='save' decorator='boxed'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <JButton id='cancel' decorator='boxed'/> - </cell> - </row> - <row> - <cell fill='horizontal' weightx='1.0'> - <JButton id='create' decorator='boxed'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <JButton id='remove' decorator='boxed'/> - </cell> - </row> - </Table> - </cell> - </row> - </Table> -</fr.ifremer.isisfish.ui.input.InputContentUI> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsUI.jaxx 2009-06-17 08:47:48 UTC (rev 2397) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsUI.jaxx 2009-06-17 13:00:12 UTC (rev 2398) @@ -31,7 +31,7 @@ // (depends on sensitivity can't be done on constructor) installChangeListener(setOfVesselsTab); - getVerifier().addCurrentPanel(setOfVesselsTabsUI, effortDescriptionUI); + getVerifier().addCurrentPanel(setOfVesselsBasicsUI, effortDescriptionUI, effortParametersUI); } @Override @@ -41,13 +41,16 @@ } ]]></script> <JPanel layout='{new BorderLayout()}'> - <JTabbedPane id="setOfVesselsTab" name="SetOfVessels" constraints='BorderLayout.CENTER'> + <JTabbedPane id="setOfVesselsTab" constraints='BorderLayout.CENTER'> <tab title='{_("isisfish.setOfVessels.title")}'> - <SetOfVesselsTabsUI id='setOfVesselsTabsUI' constructorParams='this'/> + <SetOfVesselsBasicsUI id='setOfVesselsBasicsUI' constructorParams='this'/> </tab> <tab title='{_("isisfish.effortDescription.title")}'> <EffortDescriptionUI id='effortDescriptionUI' constructorParams='this'/> </tab> + <tab title='{_("isisfish.effortDescription.parametersTitle")}'> + <EffortDescriptionParametersUI id='effortParametersUI' constructorParams='this'/> + </tab> </JTabbedPane> </JPanel> </fr.ifremer.isisfish.ui.input.InputContentUI> Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/EffortDescriptionListModel.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/EffortDescriptionListModel.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/EffortDescriptionListModel.java 2009-06-17 13:00:12 UTC (rev 2398) @@ -0,0 +1,100 @@ +/* *##% + * Copyright (C) 2009 Code Lutin + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + *##%*/ + +package fr.ifremer.isisfish.ui.input.setofvessels; + +import java.util.List; + +import javax.swing.DefaultListModel; + +import fr.ifremer.isisfish.entities.EffortDescription; + +/** + * Model pour la liste des metiers de l'interface SetOfVessels. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class EffortDescriptionListModel extends DefaultListModel { + + /** serialVersionUID. */ + private static final long serialVersionUID = -2715181950778932871L; + + /** Listes des EffortDescription */ + protected List<EffortDescription> effortDescriptions; + + /** + * Empty constructor. + */ + public EffortDescriptionListModel() { + this(null); + } + + /** + * Constructor with effortDescriptions list. + * + * @param effortDescriptions liste des effortDescriptions + */ + public EffortDescriptionListModel(List<EffortDescription> effortDescriptions) { + super(); + setEffortDescriptions(effortDescriptions); + } + + /** + * Get effortDescriptions lists. + * + * @return the effortDescriptions + */ + public List<EffortDescription> getEffortDescriptions() { + return effortDescriptions; + } + + /** + * Set effortDescriptions list. + * + * @param effortDescriptions the effortDescriptions list to set + */ + public void setEffortDescriptions(List<EffortDescription> effortDescriptions) { + this.effortDescriptions = effortDescriptions; + fireContentsChanged(this, 0, getSize()); + } + + /* + * @see javax.swing.ListModel#getElementAt(int) + */ + @Override + public Object getElementAt(int index) { + return effortDescriptions.get(index); + } + + /* + * @see javax.swing.ListModel#getSize() + */ + @Override + public int getSize() { + int size = 0; + + if (effortDescriptions != null) { + size = effortDescriptions.size(); + } + return size; + } +} Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/EffortDescriptionListModel.java ___________________________________________________________________ Name: svn:keywords + Date Author Revision Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/EffortDescriptionListRenderer.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/EffortDescriptionListRenderer.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/EffortDescriptionListRenderer.java 2009-06-17 13:00:12 UTC (rev 2398) @@ -0,0 +1,60 @@ +/* *##% + * Copyright (C) 2009 Code Lutin + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + *##%*/ + +package fr.ifremer.isisfish.ui.input.setofvessels; + +import java.awt.Component; + +import javax.swing.DefaultListCellRenderer; +import javax.swing.JLabel; +import javax.swing.JList; + +import fr.ifremer.isisfish.entities.EffortDescription; + +/** + * Renderer pour liste des {@link EffortDescription}. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class EffortDescriptionListRenderer extends DefaultListCellRenderer { + + /** serialVersionUID. */ + private static final long serialVersionUID = 1113492654780402245L; + + /* + * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean) + */ + @Override + public Component getListCellRendererComponent(JList list, Object value, + int index, boolean isSelected, boolean cellHasFocus) { + + // this must be used to have alterned highlight rows and default + // selection color + JLabel c = (JLabel) super.getListCellRendererComponent(list, value, + index, isSelected, cellHasFocus); + + EffortDescription effort = (EffortDescription) value; + c.setText(effort.getPossibleMetiers().getName()); + + return c; + } +} Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/EffortDescriptionListRenderer.java ___________________________________________________________________ Name: svn:keywords + Date Author Revision Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/MetierListModel.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/MetierListModel.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/MetierListModel.java 2009-06-17 13:00:12 UTC (rev 2398) @@ -0,0 +1,100 @@ +/* *##% + * Copyright (C) 2009 Code Lutin + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + *##%*/ + +package fr.ifremer.isisfish.ui.input.setofvessels; + +import java.util.List; + +import javax.swing.DefaultListModel; + +import fr.ifremer.isisfish.entities.Metier; + +/** + * Model pour la liste des metiers de l'interface SetOfVessels. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class MetierListModel extends DefaultListModel { + + /** serialVersionUID. */ + private static final long serialVersionUID = -2715181950778932871L; + + /** Listes des metiers */ + protected List<Metier> metiers; + + /** + * Empty constructor. + */ + public MetierListModel() { + this(null); + } + + /** + * Constructor with metiers list. + * + * @param metiers liste des metiers + */ + public MetierListModel(List<Metier> metiers) { + super(); + setMetiers(metiers); + } + + /** + * Get metiers list. + * + * @return the metiers list + */ + public List<Metier> getMetiers() { + return metiers; + } + + /** + * Set metiers list. + * + * @param metiers the metiers list to set + */ + public void setMetiers(List<Metier> metiers) { + this.metiers = metiers; + fireContentsChanged(this, 0, getSize()); + } + + /* + * @see javax.swing.ListModel#getElementAt(int) + */ + @Override + public Object getElementAt(int index) { + return metiers.get(index); + } + + /* + * @see javax.swing.ListModel#getSize() + */ + @Override + public int getSize() { + int size = 0; + + if (metiers != null) { + size = metiers.size(); + } + return size; + } +} Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/MetierListModel.java ___________________________________________________________________ Name: svn:keywords + Author Date Revision Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/MetierListRenderer.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/MetierListRenderer.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/MetierListRenderer.java 2009-06-17 13:00:12 UTC (rev 2398) @@ -0,0 +1,60 @@ +/* *##% + * Copyright (C) 2009 Code Lutin + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + *##%*/ + +package fr.ifremer.isisfish.ui.input.setofvessels; + +import java.awt.Component; + +import javax.swing.DefaultListCellRenderer; +import javax.swing.JLabel; +import javax.swing.JList; + +import fr.ifremer.isisfish.entities.Metier; + +/** + * Renderer pour liste des metiers. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class MetierListRenderer extends DefaultListCellRenderer { + + /** serialVersionUID. */ + private static final long serialVersionUID = 1113492654780402245L; + + /* + * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean) + */ + @Override + public Component getListCellRendererComponent(JList list, Object value, + int index, boolean isSelected, boolean cellHasFocus) { + + // this must be used to have alterned highlight rows and default + // selection color + JLabel c = (JLabel) super.getListCellRendererComponent(list, value, + index, isSelected, cellHasFocus); + + Metier metier = (Metier) value; + c.setText(metier.getName()); + + return c; + } +} Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/MetierListRenderer.java ___________________________________________________________________ Name: svn:keywords + Author Date Revision Modified: isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties =================================================================== --- isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-06-17 08:47:48 UTC (rev 2397) +++ isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-06-17 13:00:12 UTC (rev 2398) @@ -218,19 +218,23 @@ isisfish.dataResult.scrolledwindow2=defaultToolTip-fr.ifremer.resultat.DataResult.scrolledwindow2 isisfish.dataResult.table2=defaultToolTip-fr.ifremer.resultat.DataResult.table2 isisfish.date.toString=%1$s %2$s -isisfish.effortDescription.crewFoodCost=isisfish.effortDescription.crewFoodCost -isisfish.effortDescription.crewShareRate=isisfish.effortDescription.crewShareRate -isisfish.effortDescription.crewSize=isisfish.effortDescription.crewSize -isisfish.effortDescription.fishingOperation=isisfish.effortDescription.fishingOperation -isisfish.effortDescription.fishingOperationDuration=isisfish.effortDescription.fishingOperationDuration -isisfish.effortDescription.fixedCrewSalary=isisfish.effortDescription.fixedCrewSalary -isisfish.effortDescription.gearsNumberPerOperation=isisfish.effortDescription.gearsNumberPerOperation -isisfish.effortDescription.landingCosts=isisfish.effortDescription.landingCosts -isisfish.effortDescription.otherRunningCost=isisfish.effortDescription.otherRunningCost -isisfish.effortDescription.repairAndMaintenanceGearCost=isisfish.effortDescription.repairAndMaintenanceGearCost -isisfish.effortDescription.title=isisfish.effortDescription.title +isisfish.effortDescription.crewFoodCost=Crew food cost +isisfish.effortDescription.crewShareRate=Crew share rate +isisfish.effortDescription.crewSize=Crew size +isisfish.effortDescription.economicTitle=\u00C9conomiques parameters +isisfish.effortDescription.effortTitle=Fishing effort parameters +isisfish.effortDescription.fishingOperation=Fishing operation +isisfish.effortDescription.fishingOperationDuration=Fishing operation duration +isisfish.effortDescription.fishingOperationDuration.tooltip=In hours +isisfish.effortDescription.fixedCrewSalary=Fixed crew salary +isisfish.effortDescription.gearsNumberPerOperation=Gears number per operation +isisfish.effortDescription.landingCosts=Landing costs +isisfish.effortDescription.otherRunningCost=Other running cost +isisfish.effortDescription.parametersTitle=M\u00E9tiers parameters +isisfish.effortDescription.repairAndMaintenanceGearCost=Repair and maintenance gear cost +isisfish.effortDescription.title=Practiced metier isisfish.effortDescription.toString=EffortDescription for %1$s with %2$s -isisfish.effortDescription.unitCostOfFishing=isisfish.effortDescription.unitCostOfFishing +isisfish.effortDescription.unitCostOfFishing=Fishing unit cost isisfish.equation.editor.title=Equation Editor isisfish.error.acceptable.population=New value isn't acceptable value for this population isisfish.error.add.card=Error while adding of result to the map. Modified: isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties =================================================================== --- isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-06-17 08:47:48 UTC (rev 2397) +++ isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-06-17 13:00:12 UTC (rev 2398) @@ -221,12 +221,16 @@ isisfish.effortDescription.crewFoodCost=Co\u00FBt de l'alimentation pour l'\u00E9quipage isisfish.effortDescription.crewShareRate=Taux de partage de l'\u00E9quipage isisfish.effortDescription.crewSize=Taille de l'\u00E9quipage +isisfish.effortDescription.economicTitle=Param\u00E8tres \u00E9conomiques +isisfish.effortDescription.effortTitle=Param\u00E8tres d'effort de p\u00EAche isisfish.effortDescription.fishingOperation=Op\u00E9ration de p\u00EAche isisfish.effortDescription.fishingOperationDuration=Dur\u00E9e de la p\u00EAche +isisfish.effortDescription.fishingOperationDuration.tooltip=En heures isisfish.effortDescription.fixedCrewSalary=Salaire d'\u00E9quipage fixe isisfish.effortDescription.gearsNumberPerOperation=Nombre d'engins par op\u00E9ration isisfish.effortDescription.landingCosts=Co\u00FBts d'accastillage isisfish.effortDescription.otherRunningCost=Autres co\u00FBts +isisfish.effortDescription.parametersTitle=Param\u00E8tres des m\u00E9tiers isisfish.effortDescription.repairAndMaintenanceGearCost=Co\u00FBts de maintenance isisfish.effortDescription.title=M\u00E9tiers pratiqu\u00E9s isisfish.effortDescription.toString=EffortDescription for %1$s with %2$s
participants (1)
-
chatellierï¼ users.labs.libre-entreprise.org