r201 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content/home java/fr/ifremer/tutti/ui/swing/content/operation java/fr/ifremer/tutti/ui/swing/content/operation/catches java/fr/ifremer/tutti/ui/swing/content/protocol java/fr/ifremer/tutti/ui/swing/util resources/i18n
Author: kmorin Date: 2013-01-15 12:07:25 +0100 (Tue, 15 Jan 2013) New Revision: 201 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/201 Log: debug reset in fishing operation + start replacing the new protocol button by a combo box Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiTabContainerUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/SwingValidatorMessageWidget.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TabHandler.java trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx 2013-01-15 09:39:18 UTC (rev 200) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx 2013-01-15 11:07:25 UTC (rev 201) @@ -105,8 +105,10 @@ <JPanel layout='{new GridLayout(1,0)}'> <JButton id='editProtocolButton' onActionPerformed='handler.showSelectedProtocol()'/> - <JButton id='newProtocolButton' - onActionPerformed='handler.showNewProtocol()'/> +<!-- <JButton id='newProtocolButton' + onActionPerformed='handler.showNewProtocol()'/>--> + <JComboBox id='newProtocolCombo' onActionPerformed='handler.showNewProtocol(event)'/> + </JPanel> </cell> </row> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2013-01-15 09:39:18 UTC (rev 200) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2013-01-15 11:07:25 UTC (rev 201) @@ -33,6 +33,7 @@ import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler; import fr.ifremer.tutti.ui.swing.TuttiScreen; import fr.ifremer.tutti.ui.swing.TuttiUIContext; +import java.awt.event.ActionEvent; import jaxx.runtime.swing.editor.bean.BeanComboBox; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; @@ -41,7 +42,13 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.List; +import javax.swing.ComboBoxModel; +import javax.swing.DefaultComboBoxModel; +import javax.swing.JComboBox; +import javax.swing.event.ListDataEvent; +import javax.swing.event.ListDataListener; +import static org.nuiton.i18n.I18n._; /** * Main ui content to select cruise. * @@ -53,6 +60,12 @@ /** Logger. */ private static final Log log = LogFactory.getLog(SelectCruiseUIHandler.class); + + protected final static String PROTOCOL_ACTION_NEW = "tutti.action.new"; + + protected final static String PROTOCOL_ACTION_CLONE = "tutti.action.clone"; + + protected final static String PROTOCOL_ACTION_IMPORT = "tutti.action.import"; protected final PersistenceService persistenceService; @@ -173,6 +186,11 @@ initBeanComboBox(ui.getProtocolCombobox(), model.getProtocols(), model.getProtocol()); + + ComboBoxModel<String> protocolActions = new DefaultComboBoxModel<String>( + new String[]{ _(PROTOCOL_ACTION_NEW), _(PROTOCOL_ACTION_CLONE), _(PROTOCOL_ACTION_IMPORT) }); + JComboBox newProtocolCombo = ui.getNewProtocolCombo(); + newProtocolCombo.setModel(protocolActions); model.addPropertyChangeListener(SelectCruiseUIModel.PROPERTY_PROGRAM, new PropertyChangeListener() { @Override @@ -271,7 +289,8 @@ context.setScreen(TuttiScreen.EDIT_PROTOCOL); } - public void showNewProtocol() { + public void showNewProtocol(ActionEvent event) { + log.info(event.getSource()); context.setProtocolId(null); context.setScreen(TuttiScreen.EDIT_PROTOCOL); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-01-15 09:39:18 UTC (rev 200) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-01-15 11:07:25 UTC (rev 201) @@ -400,18 +400,3 @@ actionIcon: casino-import; text: "tutti.action.casino-import"; } - -#messagePanel { - border: {BorderFactory.createTitledBorder("Messages")}; - height: 200; - width: 500; -} - -#errorTable { - rowSelectionAllowed: true; - autoCreateRowSorter: true; - autoResizeMode: {JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS}; - cellSelectionEnabled: false; - selectionMode: {ListSelectionModel.SINGLE_SELECTION}; - model: {errorTableModel}; -} \ No newline at end of file Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-01-15 09:39:18 UTC (rev 200) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-01-15 11:07:25 UTC (rev 201) @@ -233,26 +233,25 @@ changeValidatorContext(model.getValidationContext(), ui.getValidator()); listenValidatorValid(ui.getValidator(), model); - final JTabbedPane tabPanel = ui.getFishingOperationTabPane(); - tabPanel.setTabComponentAt(0, new CustomTab(model)); + setCustomTab(0, model); listModelIsModify(model); //init gear shooting GearShootingTabUIModel gearShootingModel = ui.getGearShootingTabContent().getModel(); gearShootingModel.setAvailableCaracteristics(persistenceService.getAllFishingOperationGearCaracteristic()); - tabPanel.setTabComponentAt(1, new CustomTab(gearShootingModel)); + setCustomTab(1, gearShootingModel); //init environment EnvironmentTabUIModel environmentModel = ui.getEnvironmentTabContent().getModel(); environmentModel.setAvailableCaracteristics(persistenceService.getAllFishingOperationEnvironmentCaracteristic()); - tabPanel.setTabComponentAt(2, new CustomTab(environmentModel)); + setCustomTab(2, environmentModel); //init hydrology HydrologyTabUIModel hydrologyModel = ui.getHydrologyTabContent().getModel(); hydrologyModel.setAvailableCaracteristics(persistenceService.getAllFishingOperationHydrologicCaracteristic()); - tabPanel.setTabComponentAt(3, new CustomTab(hydrologyModel)); + setCustomTab(3, hydrologyModel); MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName()); main.clearValidators(); @@ -286,8 +285,7 @@ if (result && currentIndex != newIndex && currentIndex >= 0) { CustomTab currentTab = (CustomTab) getTabPanel().getTabComponentAt(currentIndex); AbstractTuttiBeanUIModel model = currentTab.getModel(); - result = TuttiUIContext.VALIDATION_CONTEXT_EDIT.equals(getModel().getValidationContext()) - || model.isValid(); + result = model.isValid(); if (result && !model.isCreate() && model.isModify()) { save(); @@ -299,8 +297,7 @@ @Override public boolean onHideTab() { AbstractTuttiBeanUIModel model = getModel(); - boolean result = TuttiUIContext.VALIDATION_CONTEXT_EDIT.equals(getModel().getValidationContext()) - || model.isValid(); + boolean result = model.isValid(); if (result && !model.isCreate() && model.isModify()) { save(); } @@ -321,6 +318,21 @@ //-- Public methods --// //------------------------------------------------------------------------// + public void clearFishingOperation() { + if (fishingOperationMonitor.wasModified()) { + save(); + } + + EditFishingOperationUIModel model = getModel(); + model.fromBean(new FishingOperation()); + + model.setModify(false); + fishingOperationMonitor.clearModified(); + + model.setEmpty(true); + + } + public void selectFishingOperation(FishingOperation bean) { if (fishingOperationMonitor.wasModified()) { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-01-15 09:39:18 UTC (rev 200) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-01-15 11:07:25 UTC (rev 201) @@ -380,10 +380,15 @@ public void setGearShootingStartDate(Date gearShootingStartDate) { Object oldValue = getGearShootingStartDate(); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(gearShootingStartDate); - calendar.set(Calendar.SECOND, 0); - this.gearShootingStartDate = calendar.getTime(); + if (gearShootingStartDate != null) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(gearShootingStartDate); + calendar.set(Calendar.SECOND, 0); + this.gearShootingStartDate = calendar.getTime(); + + } else { + this.gearShootingStartDate = null; + } firePropertyChange(PROPERTY_GEAR_SHOOTING_START_DATE, oldValue, this.gearShootingStartDate); } @@ -493,10 +498,15 @@ public void setGearShootingEndDate(Date gearShootingEndDate) { Object oldValue = getGearShootingEndDate(); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(gearShootingEndDate); - calendar.set(Calendar.SECOND, 0); - this.gearShootingEndDate = calendar.getTime(); + if (gearShootingEndDate != null) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(gearShootingEndDate); + calendar.set(Calendar.SECOND, 0); + this.gearShootingEndDate = calendar.getTime(); + + } else { + this.gearShootingEndDate = null; + } firePropertyChange(PROPERTY_GEAR_SHOOTING_END_DATE, oldValue, this.gearShootingEndDate); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-01-15 09:39:18 UTC (rev 200) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-01-15 11:07:25 UTC (rev 201) @@ -210,13 +210,11 @@ // back to general tab of fishingOperation tabs ui.getFishingOperationTabContent().getFishingOperationTabPane().setSelectedIndex(0); - String fishingOperationText; - if (fishingOperation != null) { Decorator<FishingOperation> decorator = getDecorator(FishingOperation.class, null); - fishingOperationText = + String fishingOperationText = _("tutti.label.traitReminder", decorator.toString(fishingOperation)); @@ -228,6 +226,9 @@ // repaint tabs ui.getTabPane().repaint(); + + } else { + ui.getFishingOperationTabContent().getHandler().clearFishingOperation(); } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-01-15 09:39:18 UTC (rev 200) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-01-15 11:07:25 UTC (rev 201) @@ -93,8 +93,7 @@ </BeanValidator> <JTabbedPane id='tabPane' constraints='BorderLayout.CENTER'> - <tab id='catchesCaracteristicsTab' - title='tutti.label.tab.catchesCaracteristics'> + <tab id='catchesCaracteristicsTab'> <JXTitledPanel id='catchesCaracteristicsTabPane'> <JScrollPane id='catchesCaracteristicsTabScrollPane'> <JPanel layout='{new BorderLayout()}'> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-01-15 09:39:18 UTC (rev 200) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-01-15 11:07:25 UTC (rev 201) @@ -26,9 +26,14 @@ import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel; import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler; +import fr.ifremer.tutti.ui.swing.TuttiUIContext; import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI; +import fr.ifremer.tutti.ui.swing.util.AbstractTuttiTabContainerUIHandler; +import fr.ifremer.tutti.ui.swing.util.TabHandler; import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; +import javax.swing.JTabbedPane; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -36,7 +41,8 @@ * @author tchemit <chemit@codelutin.com> * @since 0.3 */ -public class EditCatchesUIHandler extends AbstractTuttiUIHandler<EditCatchesUIModel> { +public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<EditCatchesUIModel> + implements TabHandler { /** Logger. */ private static final Log log = @@ -95,8 +101,14 @@ @Override public void afterInitUI() { - + initUI(ui); + + EditCatchesUIModel model = getModel(); + + listenValidatorValid(ui.getValidator(), model); + + setCustomTab(0, model); } @Override @@ -118,7 +130,27 @@ protected EditCatchesUIModel getModel() { return ui.getModel(); } + + @Override + protected JTabbedPane getTabPanel() { + return ui.getTabPane(); + } + @Override + public boolean onHideTab() { + AbstractTuttiBeanUIModel model = getModel(); + boolean result = model.isValid(); + if (result && model.isModify()) { + save(); + } + return result; + } + + @Override + public void onShowTab() { + + } + //------------------------------------------------------------------------// //-- Public methods --// //------------------------------------------------------------------------// @@ -129,23 +161,7 @@ // 1) Save any modification of the current fishingOperation if (fishingOperationMonitor.wasModified()) { - - // previous fishingOperation was modified, let's save it - EditCatchesUIModel beanToSave = fishingOperationMonitor.getBean(); - - FishingOperation fishingOperation = beanToSave.toBean(); - - if (log.isInfoEnabled()) { - log.info("FishingOperation " + fishingOperation.getId() + - " was modified, will save it."); - } - - showInformationMessage( - "[ Captures - Caractéristiques générales ] " + - "Sauvegarde des modifications de " + decorate(fishingOperation) + - "."); - - persistenceService.saveFishingOperation(fishingOperation); + save(); } ui.getSpeciesTabContent().getHandler().clearTableSelection(); @@ -174,7 +190,8 @@ } model.fromBean(bean); - + + model.setModify(false); fishingOperationMonitor.clearModified(); // 3) Propagate title to others tabs @@ -197,6 +214,25 @@ ui.getTabPane().repaint(); } + protected void save() { + // previous fishingOperation was modified, let's save it + EditCatchesUIModel beanToSave = fishingOperationMonitor.getBean(); + + FishingOperation fishingOperation = beanToSave.toBean(); + + if (log.isInfoEnabled()) { + log.info("FishingOperation " + fishingOperation.getId() + + " was modified, will save it."); + } + + showInformationMessage( + "[ Captures - Caractéristiques générales ] " + + "Sauvegarde des modifications de " + decorate(fishingOperation) + + "."); + + persistenceService.saveFishingOperation(fishingOperation); + } + public void importPupitri() { //TODO } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-01-15 09:39:18 UTC (rev 200) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-01-15 11:07:25 UTC (rev 201) @@ -139,6 +139,11 @@ super(FishingOperation.class, fromBeanBinder, toBeanBinder); } + @Override + public String getTitle() { + return "tutti.label.tab.catchesCaracteristics"; + } + public FishingOperation getFishingOperation() { return fishingOperation; } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-01-15 09:39:18 UTC (rev 200) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-01-15 11:07:25 UTC (rev 201) @@ -433,12 +433,20 @@ } public void addRow() { + log.info("addRow 1"); Species species = (Species) ui.getSpeciesComboBox().getSelectedItem(); + log.info("addRow 2"); EditProtocolSpeciesRowModel protocol = getTableModel().createNewRow(); + log.info("addRow 3"); protocol.setSpecies(species); + log.info("addRow 4"); getTableModel().addNewRow(protocol); + log.info("addRow 5"); ui.getSpeciesComboBox().removeItem(species); + log.info("addRow 6"); selectFirstInCombo(ui.getSpeciesComboBox()); + log.info("addRow 7"); + // getModel().setModify(true); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiTabContainerUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiTabContainerUIHandler.java 2013-01-15 09:39:18 UTC (rev 200) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiTabContainerUIHandler.java 2013-01-15 11:07:25 UTC (rev 201) @@ -1,6 +1,7 @@ package fr.ifremer.tutti.ui.swing.util; +import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel; import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler; import fr.ifremer.tutti.ui.swing.TuttiUI; import fr.ifremer.tutti.ui.swing.TuttiUIContext; @@ -9,7 +10,9 @@ import javax.swing.JTabbedPane; /** - * + * UI containing a tab panel. + * + * @param <M> type of the ui model * @author kmorin <kmorin@codelutin.com> * @since 0.3 */ @@ -19,8 +22,17 @@ super(context); } + /** @return the tab panel of the UI */ protected abstract JTabbedPane getTabPanel(); + /** + * Method called when the user selects a tab + * + * @param currentIndex + * @param newIndex + * @return <code>false</code> if you want to prevent the tab change, + * <code>true</code> otherwise + */ protected boolean onTabChanged(int currentIndex, int newIndex) { boolean result = true; if (currentIndex != newIndex) { @@ -37,6 +49,14 @@ return result; } + /** + * Returns the tab handler of the tab i. + * + * @param index the index of the tab + * @return the tab handler of the index i if the handler implements + * the {@link TabHandler} interface, + * <code>null</code> otherwise + */ protected TabHandler getTabHandler(int index) { TabHandler tabHandler = null; JTabbedPane tabPanel = getTabPanel(); @@ -53,6 +73,7 @@ return tabHandler; } + @Override protected void initUI(TuttiUI ui) { super.initUI(ui); @@ -71,4 +92,14 @@ }); } + + /** + * Sets a {@link CustomTab} as tab component. + * + * @param index + * @param model + */ + protected void setCustomTab(int index, AbstractTuttiBeanUIModel model) { + getTabPanel().setTabComponentAt(index, new CustomTab(model)); + } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java 2013-01-15 09:39:18 UTC (rev 200) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java 2013-01-15 11:07:25 UTC (rev 201) @@ -36,9 +36,13 @@ import org.apache.commons.logging.LogFactory; import static org.nuiton.i18n.I18n._; + /** - * + * Custom tab component which adds a * in the end of the title + * when the content is modified. + * * @author kmorin <kmorin@codelutin.com> + * @since 0.3 */ public class CustomTab extends JPanel { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/SwingValidatorMessageWidget.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/SwingValidatorMessageWidget.java 2013-01-15 09:39:18 UTC (rev 200) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/SwingValidatorMessageWidget.java 2013-01-15 11:07:25 UTC (rev 201) @@ -121,11 +121,17 @@ }); } + /** + * Registers a validator. + * + * @param validator + */ public void registerValidator(SwingValidator validator) { errorTableModel.registerValidator(validator); validator.reloadBean(); } + /** Clears all the validators. */ public void clearValidators() { errorTableModel.clearValidators(); errorTableModel.clear(); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TabHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TabHandler.java 2013-01-15 09:39:18 UTC (rev 200) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TabHandler.java 2013-01-15 11:07:25 UTC (rev 201) @@ -2,13 +2,21 @@ package fr.ifremer.tutti.ui.swing.util; /** + * Interface describing UI contained in a tab. * * @author kmorin <kmorin@codelutin.com> * @since 0.3 */ public interface TabHandler { + /** + * Method called when the tab is hidden + * + * @return <code>false</code> to prevent the tab to be hidden, + * <code>true</code> otherwise. + */ boolean onHideTab(); + /** Method called when the tab is shown */ void onShowTab(); } Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties =================================================================== --- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-15 09:39:18 UTC (rev 200) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-15 11:07:25 UTC (rev 201) @@ -4,6 +4,7 @@ tutti.action.about.tip=À Propos tutti.action.cancel=Annuler tutti.action.casino-import=Import Casino +tutti.action.clone=Cloner tutti.action.close=Fermer tutti.action.configuration=Configuration tutti.action.configuration.tip=Configurer Tutti @@ -15,6 +16,7 @@ tutti.action.fillCatches.tip=Saisir des captures tutti.action.generate=Générer tutti.action.generateCampaignName=Générer le nom +tutti.action.import=Importer tutti.action.manageProtocol=Protocole tutti.action.manageProtocol.tip=Gérer les protocoles tutti.action.new=Nouveau
participants (1)
-
kmorin@users.forge.codelutin.com