r1290 - in trunk: tutti-service/src/main/java/fr/ifremer/tutti/service tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util
Author: tchemit Date: 2013-10-08 18:24:46 +0200 (Tue, 08 Oct 2013) New Revision: 1290 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1290 Log: refs #3328: [ERGO] Tri du tableau des esp?\195?\168ces Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDecorator.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 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/AbstractTuttiUIHandler.java Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDecorator.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDecorator.java 2013-10-08 15:34:55 UTC (rev 1289) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDecorator.java 2013-10-08 16:24:46 UTC (rev 1290) @@ -31,6 +31,7 @@ import com.google.common.collect.Maps; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.decorator.Decorator; import org.nuiton.decorator.DecoratorUtil; import org.nuiton.decorator.JXPathDecorator; import org.nuiton.decorator.MultiJXPathDecorator; @@ -40,6 +41,7 @@ import java.io.Serializable; import java.lang.reflect.Method; import java.util.Arrays; +import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.Set; @@ -160,6 +162,10 @@ this.sortOnlyOnSelectedContextTokens = sortOnlyOnSelectedContextTokens; } + public Comparator getCurrentComparator() { + return context.getComparator(0); + } + @Override public String toString(Object bean) { O bean1 = (O) bean; Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 2013-10-08 15:34:55 UTC (rev 1289) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 2013-10-08 16:24:46 UTC (rev 1290) @@ -88,9 +88,8 @@ } #speciesTable { - /*selectionBackground: {null};*/ selectionForeground: {Color.BLACK}; - sortable: false; + sortable: true; _help: {"tutti.editProtocol.field.species.help"}; } @@ -105,9 +104,8 @@ } #benthosTable { - /*selectionBackground: {null};*/ selectionForeground: {Color.BLACK}; - sortable: false; + sortable: true; _help: {"tutti.editProtocol.field.benthos.help"}; } 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-10-08 15:34:55 UTC (rev 1289) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-10-08 16:24:46 UTC (rev 1290) @@ -37,6 +37,7 @@ import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.service.TuttiDecorator; import fr.ifremer.tutti.ui.swing.content.home.CloneProtocolAction; import fr.ifremer.tutti.ui.swing.content.home.EditProtocolAction; import fr.ifremer.tutti.ui.swing.content.home.ImportProtocolAction; @@ -58,6 +59,7 @@ import org.jdesktop.swingx.autocomplete.ComboBoxCellEditor; import org.jdesktop.swingx.autocomplete.ObjectToStringConverter; import org.jdesktop.swingx.table.DefaultTableColumnModelExt; +import org.jdesktop.swingx.table.TableColumnExt; import org.nuiton.decorator.Decorator; import javax.swing.JComboBox; @@ -300,16 +302,19 @@ DefaultTableColumnModelExt columnModel = new DefaultTableColumnModelExt(); - addColumnToModel(columnModel, - null, - newTableCellRender(Species.class), - EditProtocolSpeciesTableModel.SPECIES_ID); + TableColumnExt speciesColumn = addColumnToModel(columnModel, + null, + newTableCellRender(Species.class), + EditProtocolSpeciesTableModel.SPECIES_ID); + speciesColumn.setSortable(true); - addColumnToModel(columnModel, - null, - null, - EditProtocolSpeciesTableModel.SURVEY_CODE_ID); + TableColumnExt speciesSurveyCodeColumn = addColumnToModel(columnModel, + null, + null, + EditProtocolSpeciesTableModel.SURVEY_CODE_ID); + speciesSurveyCodeColumn.setSortable(true); + addLengthClassesColumnToModel(columnModel, model.getLengthClassesPmfmId()); addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.WEIGHT_ENABLED, table); @@ -351,6 +356,8 @@ tableModel.setRows(speciesRows); getModel().setRemoveSpeciesEnabled(false); + + initSpeciesComparator(); } { @@ -360,15 +367,19 @@ DefaultTableColumnModelExt columnModel = new DefaultTableColumnModelExt(); - addColumnToModel(columnModel, - null, - newTableCellRender(Species.class), - EditProtocolSpeciesTableModel.SPECIES_ID); + TableColumnExt speciesColumn = addColumnToModel(columnModel, + null, + newTableCellRender(Species.class), + EditProtocolSpeciesTableModel.SPECIES_ID); + speciesColumn.setSortable(true); + TuttiDecorator<Species> decorator = (TuttiDecorator<Species>) getDecorator(Species.class, null); + speciesColumn.setComparator(decorator.getCurrentComparator()); - addColumnToModel(columnModel, - null, - null, - EditProtocolSpeciesTableModel.SURVEY_CODE_ID); + TableColumnExt speciesSurveyCodeColumn = addColumnToModel(columnModel, + null, + null, + EditProtocolSpeciesTableModel.SURVEY_CODE_ID); + speciesSurveyCodeColumn.setSortable(true); addLengthClassesColumnToModel(columnModel, model.getLengthClassesPmfmId()); @@ -412,6 +423,8 @@ tableModel.setRows(benthosRows); getModel().setRemoveBenthosEnabled(false); + + initBenthosComparator(); } allDoubleLists = Lists.newArrayList( @@ -480,6 +493,39 @@ dialog = new SelectSpeciesUI(ui); } + protected void initSpeciesComparator() { + + JXTable table = getSpeciesTable(); + + TuttiDecorator<Species> decorator = (TuttiDecorator<Species>) getDecorator(Species.class, null); + TuttiDecorator.TuttiDecoratorComparator currentComparator = (TuttiDecorator.TuttiDecoratorComparator) decorator.getCurrentComparator(); + TableColumnExt tableColumn = (TableColumnExt) table.getColumns().get(0); + List<Species> species = Lists.newArrayList(); + List<EditProtocolSpeciesRowModel> rows = getModel().getSpeciesRow(); + for (EditProtocolSpeciesRowModel row : rows) { + species.add(row.getSpecies()); + } + currentComparator.init(decorator, species); + + tableColumn.setComparator(currentComparator); + } + + protected void initBenthosComparator() { + + JXTable table = getBenthosTable(); + + TuttiDecorator<Species> decorator = (TuttiDecorator<Species>) getDecorator(Species.class, null); + TuttiDecorator.TuttiDecoratorComparator currentComparator = (TuttiDecorator.TuttiDecoratorComparator) decorator.getCurrentComparator(); + TableColumnExt tableColumn = (TableColumnExt) table.getColumns().get(0); + List<Species> species = Lists.newArrayList(); + List<EditProtocolSpeciesRowModel> rows = getModel().getBenthosRow(); + for (EditProtocolSpeciesRowModel row : rows) { + species.add(row.getSpecies()); + } + currentComparator.init(decorator, species); + + tableColumn.setComparator(currentComparator); + } @Override protected JComponent getComponentToFocus() { return getUI().getNameField(); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-10-08 15:34:55 UTC (rev 1289) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-10-08 16:24:46 UTC (rev 1290) @@ -1085,20 +1085,20 @@ validator.setBean(bean); } - protected <R extends AbstractTuttiBeanUIModel> void addColumnToModel(TableColumnModel model, - TableCellEditor editor, - TableCellRenderer renderer, - ColumnIdentifier<R> identifier) { + protected <R extends AbstractTuttiBeanUIModel> TableColumnExt addColumnToModel(TableColumnModel model, + TableCellEditor editor, + TableCellRenderer renderer, + ColumnIdentifier<R> identifier) { - addColumnToModel(model, editor, renderer, identifier, null); + return addColumnToModel(model, editor, renderer, identifier, null); } - protected <R extends AbstractTuttiBeanUIModel> void addColumnToModel(TableColumnModel model, - TableCellEditor editor, - TableCellRenderer renderer, - ColumnIdentifier<R> identifier, - WeightUnit weightUnit) { + protected <R extends AbstractTuttiBeanUIModel> TableColumnExt addColumnToModel(TableColumnModel model, + TableCellEditor editor, + TableCellRenderer renderer, + ColumnIdentifier<R> identifier, + WeightUnit weightUnit) { TableColumnExt col = new TableColumnExt(model.getColumnCount()); col.setCellEditor(editor); @@ -1116,32 +1116,22 @@ col.setIdentifier(identifier); model.addColumn(col); + // by default no column is sortable, must specify it + col.setSortable(false); + return col; } - protected <R extends AbstractTuttiBeanUIModel> void addColumnToModel(TableColumnModel model, - ColumnIdentifier<R> identifier) { + protected <R extends AbstractTuttiBeanUIModel> TableColumnExt addColumnToModel(TableColumnModel model, + ColumnIdentifier<R> identifier) { - addColumnToModel(model, null, null, identifier, null); + return addColumnToModel(model, null, null, identifier, null); } -// protected <R extends AbstractTuttiBeanUIModel> void addFloatColumnToModel(TableColumnModel model, -// ColumnIdentifier<R> identifier, -// String numberPattern) { -// -// NumberCellEditor<Float> editor = -// JAXXWidgetUtil.newNumberTableCellEditor(Float.class, false); -// editor.getNumberEditor().setSelectAllTextOnError(true); -// editor.getNumberEditor().getTextField().setBorder(new LineBorder(Color.GRAY, 2)); -// editor.getNumberEditor().setNumberPattern(numberPattern); -// -// addColumnToModel(model, editor, null, identifier, null); -// } + protected <R extends AbstractTuttiBeanUIModel> TableColumnExt addFloatColumnToModel(TableColumnModel model, + ColumnIdentifier<R> identifier, + String numberPattern, + JTable table) { - protected <R extends AbstractTuttiBeanUIModel> void addFloatColumnToModel(TableColumnModel model, - ColumnIdentifier<R> identifier, - String numberPattern, - JTable table) { - NumberCellEditor<Float> editor = JAXXWidgetUtil.newNumberTableCellEditor(Float.class, false); editor.getNumberEditor().setSelectAllTextOnError(true); @@ -1151,13 +1141,13 @@ TableCellRenderer renderer = newNumberCellRenderer(table.getDefaultRenderer(Number.class)); - addColumnToModel(model, editor, renderer, identifier, null); + return addColumnToModel(model, editor, renderer, identifier, null); } - protected <R extends AbstractTuttiBeanUIModel> void addFloatColumnToModel(TableColumnModel model, - ColumnIdentifier<R> identifier, - WeightUnit weightUnit, - JTable table) { + protected <R extends AbstractTuttiBeanUIModel> TableColumnExt addFloatColumnToModel(TableColumnModel model, + ColumnIdentifier<R> identifier, + WeightUnit weightUnit, + JTable table) { Preconditions.checkNotNull(weightUnit); NumberCellEditor<Float> editor = @@ -1169,13 +1159,13 @@ TableCellRenderer renderer = newNumberCellRenderer(table.getDefaultRenderer(Number.class)); - addColumnToModel(model, editor, renderer, identifier, weightUnit); + return addColumnToModel(model, editor, renderer, identifier, weightUnit); } - protected <R extends AbstractTuttiBeanUIModel> void addIntegerColumnToModel(TableColumnModel model, - ColumnIdentifier<R> identifier, - String numberPattern, - JTable table) { + protected <R extends AbstractTuttiBeanUIModel> TableColumnExt addIntegerColumnToModel(TableColumnModel model, + ColumnIdentifier<R> identifier, + String numberPattern, + JTable table) { NumberCellEditor<Integer> editor = JAXXWidgetUtil.newNumberTableCellEditor(Integer.class, false); @@ -1184,7 +1174,7 @@ editor.getNumberEditor().setNumberPattern(numberPattern); TableCellRenderer renderer = newNumberCellRenderer(table.getDefaultRenderer(Number.class)); - addColumnToModel(model, editor, renderer, identifier, null); + return addColumnToModel(model, editor, renderer, identifier, null); } @@ -1205,21 +1195,21 @@ } - protected <R extends AbstractTuttiBeanUIModel> void addBooleanColumnToModel(TableColumnModel model, - ColumnIdentifier<R> identifier, - JTable table) { + protected <R extends AbstractTuttiBeanUIModel> TableColumnExt addBooleanColumnToModel(TableColumnModel model, + ColumnIdentifier<R> identifier, + JTable table) { - addColumnToModel(model, - table.getDefaultEditor(Boolean.class), - table.getDefaultRenderer(Boolean.class), - identifier, - null); + return addColumnToModel(model, + table.getDefaultEditor(Boolean.class), + table.getDefaultRenderer(Boolean.class), + identifier, + null); } - protected <R extends AbstractTuttiBeanUIModel, B> void addComboDataColumnToModel(TableColumnModel model, - ColumnIdentifier<R> identifier, - Decorator<B> decorator, - List<B> data) { + protected <R extends AbstractTuttiBeanUIModel, B> TableColumnExt addComboDataColumnToModel(TableColumnModel model, + ColumnIdentifier<R> identifier, + Decorator<B> decorator, + List<B> data) { JComboBox comboBox = new JComboBox(); comboBox.setRenderer(newListCellRender(decorator)); @@ -1235,11 +1225,11 @@ BeanUIUtil.decorate(comboBox, converter); ComboBoxCellEditor editor = new ComboBoxCellEditor(comboBox); - addColumnToModel(model, - editor, - newTableCellRender(decorator), - identifier, - null); + return addColumnToModel(model, + editor, + newTableCellRender(decorator), + identifier, + null); } protected <O> TableCellRenderer newTableCellRender(Class<O> type) {
participants (1)
-
tchemit@users.forge.codelutin.com