Author: kmorin Date: 2012-12-28 16:10:31 +0100 (Fri, 28 Dec 2012) New Revision: 120 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/120 Log: refs #1812: [Ecran Trait] Tableaux de pmfm editeurs en fonction du type de valeur des caract?\195?\169ristiques Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueEditor.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueRenderer.java Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyRowModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.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/HydrologicCaracteristicUtil.java Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java 2012-12-28 11:52:41 UTC (rev 119) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java 2012-12-28 15:10:31 UTC (rev 120) @@ -27,8 +27,11 @@ import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.entities.CaracteristicMap; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; +import fr.ifremer.tutti.ui.swing.TuttiUIContext; import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI; import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; +import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueEditor; +import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueRenderer; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler; import fr.ifremer.tutti.ui.swing.util.table.CaracteristicRow; @@ -75,17 +78,22 @@ @Override protected TableColumnModel createTableColumnModel(TableCellRenderer defaultRenderer) { - DefaultTableColumnModelExt columnModel = - new DefaultTableColumnModelExt(); - + DefaultTableColumnModelExt columnModel = new DefaultTableColumnModelExt(); + { - addColumnToModel(columnModel, null, newTableCellRender(Caracteristic.class), EnvironmentTableModel.KEY); + addColumnToModel(columnModel, + null, + newTableCellRender(Caracteristic.class), + EnvironmentTableModel.KEY); } { - addColumnToModel(columnModel, EnvironmentTableModel.VALUE); + addColumnToModel(columnModel, + new CaracteristicValueEditor(context), + new CaracteristicValueRenderer(context), + EnvironmentTableModel.VALUE); } @@ -221,6 +229,7 @@ keyComboModel.addElement(row); } } + keyCombo.setEnabled(keyCombo.getItemCount() > 0); } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java 2012-12-28 11:52:41 UTC (rev 119) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java 2012-12-28 15:10:31 UTC (rev 120) @@ -29,6 +29,8 @@ import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI; import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; +import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueEditor; +import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueRenderer; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler; import fr.ifremer.tutti.ui.swing.util.table.CaracteristicRow; @@ -80,12 +82,18 @@ { - addColumnToModel(columnModel, null, newTableCellRender(Caracteristic.class), GearShootingTableModel.KEY); + addColumnToModel(columnModel, + null, + newTableCellRender(Caracteristic.class), + GearShootingTableModel.KEY); } { - addColumnToModel(columnModel, GearShootingTableModel.VALUE); + addColumnToModel(columnModel, + new CaracteristicValueEditor(context), + new CaracteristicValueRenderer(context), + GearShootingTableModel.VALUE); } @@ -221,6 +229,7 @@ keyComboModel.addElement(row); } } + keyCombo.setEnabled(keyCombo.getItemCount() > 0); } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyRowModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyRowModel.java 2012-12-28 11:52:41 UTC (rev 119) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyRowModel.java 2012-12-28 15:10:31 UTC (rev 120) @@ -37,7 +37,7 @@ * @author kmorin * @since 0.3 */ -public class HydrologyRowModel extends AbstractTuttiBeanUIModel<CaracteristicRow, HydrologyRowModel> { +public class HydrologyRowModel extends AbstractTuttiBeanUIModel<Caracteristic, HydrologyRowModel> { private static final Log log = LogFactory.getLog(HydrologyRowModel.class); @@ -46,15 +46,15 @@ public static final String PROPERTY_GEAR_SHOOTING_END_VALUE = "gearShootingEndValue"; public static final String PROPERTY_AVERAGE_VALUE = "averageValue"; - protected static final Binder<CaracteristicRow, HydrologyRowModel> fromBeanBinder = - BinderFactory.newBinder(CaracteristicRow.class, + protected static final Binder<Caracteristic, HydrologyRowModel> fromBeanBinder = + BinderFactory.newBinder(Caracteristic.class, HydrologyRowModel.class); - protected static final Binder<HydrologyRowModel, CaracteristicRow> toBeanBinder = + protected static final Binder<HydrologyRowModel, Caracteristic> toBeanBinder = BinderFactory.newBinder(HydrologyRowModel.class, - CaracteristicRow.class); + Caracteristic.class); - protected String key; + protected Caracteristic key; protected Object gearShootingStartValue; @@ -63,14 +63,14 @@ protected Object averageValue; public HydrologyRowModel() { - super(CaracteristicRow.class, fromBeanBinder, toBeanBinder); + super(Caracteristic.class, fromBeanBinder, toBeanBinder); } - public HydrologyRowModel(String key) { + public HydrologyRowModel(Caracteristic key) { this(key, null, null, null); } - public HydrologyRowModel(String key, Object gearShootingStartValue, + public HydrologyRowModel(Caracteristic key, Object gearShootingStartValue, Object gearShootingEndValue, Object averageValue) { this(); this.key = key; @@ -79,11 +79,11 @@ this.averageValue = averageValue; } - public String getKey() { + public Caracteristic getKey() { return key; } - public void setKey(String key) { + public void setKey(Caracteristic key) { Object oldValue = getKey(); this.key = key; firePropertyChange(PROPERTY_KEY, oldValue, key); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java 2012-12-28 11:52:41 UTC (rev 119) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java 2012-12-28 15:10:31 UTC (rev 120) @@ -32,6 +32,8 @@ import fr.ifremer.tutti.ui.swing.util.HydrologicCaracteristicUtil; import fr.ifremer.tutti.ui.swing.util.HydrologicCaracteristicUtil.Type; import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; +import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueEditor; +import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueRenderer; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler; import fr.ifremer.tutti.ui.swing.util.table.CaracteristicRow; @@ -65,7 +67,7 @@ protected HydrologyTabUI ui; - protected Map<String, Map<Type, Caracteristic>> availableCaracteristics; + protected Map<Caracteristic, Map<Type, Caracteristic>> availableCaracteristics; public HydrologyTabUIHandler(EditFishingOperationUI parentUi, HydrologyTabUI ui) { super(parentUi.getHandler().getContext(), @@ -93,22 +95,34 @@ { - addColumnToModel(columnModel, HydrologyTableModel.KEY); + addColumnToModel(columnModel, + null, + newTableCellRender(Caracteristic.class), + HydrologyTableModel.KEY); } { - addColumnToModel(columnModel, HydrologyTableModel.GEAR_SHOOTING_START_VALUE); + addColumnToModel(columnModel, + new CaracteristicValueEditor(context), + new CaracteristicValueRenderer(context), + HydrologyTableModel.GEAR_SHOOTING_START_VALUE); } { - addColumnToModel(columnModel, HydrologyTableModel.GEAR_SHOOTING_END_VALUE); + addColumnToModel(columnModel, + new CaracteristicValueEditor(context), + new CaracteristicValueRenderer(context), + HydrologyTableModel.GEAR_SHOOTING_END_VALUE); } { - addColumnToModel(columnModel, HydrologyTableModel.AVERAGE_VALUE); + addColumnToModel(columnModel, + new CaracteristicValueEditor(context), + new CaracteristicValueRenderer(context), + HydrologyTableModel.AVERAGE_VALUE); } @@ -140,10 +154,11 @@ if (hydrologyPmfm != null) { for (Caracteristic caracteristic : hydrologyPmfm) { String name = HydrologicCaracteristicUtil.getGlobalName(caracteristic.getName()); - Map<Type, Caracteristic> values = availableCaracteristics.get(name); + Caracteristic globalCaracteristic = HydrologicCaracteristicUtil.createGlobalCaracteristic(name, caracteristic); + Map<Type, Caracteristic> values = availableCaracteristics.get(globalCaracteristic); if (values == null) { values = Maps.newHashMap(); - availableCaracteristics.put(name, values); + availableCaracteristics.put(globalCaracteristic, values); } Type type = HydrologicCaracteristicUtil.getTypeOfCaracteristic(caracteristic); values.put(type, caracteristic); @@ -171,7 +186,7 @@ final JComboBox keyCombo = ui.getNewRowKey(); keyCombo.setModel(new DefaultComboBoxModel()); - + keyCombo.setRenderer(newListCellRender(Caracteristic.class)); keyCombo.getModel().addListDataListener(new ListDataListener() { public void intervalAdded(ListDataEvent e) { @@ -241,11 +256,11 @@ */ public void addRow() { JComboBox keyCombo = ui.getNewRowKey(); - CaracteristicRow key = (CaracteristicRow) keyCombo.getSelectedItem(); - HydrologyRowModel row = new HydrologyRowModel(key.getName()); + Caracteristic key = (Caracteristic) keyCombo.getSelectedItem(); + HydrologyRowModel row = new HydrologyRowModel(key); getTableModel().addNewRow(getTable().getRowCount(), row); - Map<Type, Caracteristic> caracteristics = availableCaracteristics.get(key.getName()); + Map<Type, Caracteristic> caracteristics = availableCaracteristics.get(key); CaracteristicMap map = new CaracteristicMap(); for (Caracteristic caracteristic : caracteristics.values()) { map.put(caracteristic, null); @@ -266,33 +281,36 @@ List<HydrologyRowModel> rows = Lists.newArrayList(); Collection<Caracteristic> selectedCaracteristics = hydrologyCaracteristics.keySet(); - Set<String> availableCaracteristicIds = availableCaracteristics.keySet(); + Set<Caracteristic> globalCaracteristics = availableCaracteristics.keySet(); - for (String caracteristicId : availableCaracteristicIds) { - Map<Type, Caracteristic> caracteristics = availableCaracteristics.get(caracteristicId); + for (Caracteristic availableCaracteristic : globalCaracteristics) { + Map<Type, Caracteristic> caracteristics = availableCaracteristics.get(availableCaracteristic); //should add the global caracteristic to the combo or to the table? boolean selectedCaracteristic = false; + Caracteristic sample = null; for (Caracteristic caracteristic : caracteristics.values()) { selectedCaracteristic = selectedCaracteristic || selectedCaracteristics.contains(caracteristic); + sample = caracteristic; } if (selectedCaracteristic) { - HydrologyRowModel row = new HydrologyRowModel(caracteristicId, + HydrologyRowModel row = new HydrologyRowModel(availableCaracteristic, hydrologyCaracteristics.get(caracteristics.get(Type.START)), hydrologyCaracteristics.get(caracteristics.get(Type.END)), hydrologyCaracteristics.get(caracteristics.get(Type.AVERAGE))); rows.add(row); } else { - Caracteristic caracteristic = HydrologicCaracteristicUtil.createGlobalCaracteristic(caracteristicId); - CaracteristicRow row = new CaracteristicRow(caracteristic.getName(), caracteristic); - keyComboModel.addElement(row); + keyComboModel.addElement(availableCaracteristic); } } + keyCombo.setEnabled(keyCombo.getItemCount() > 0); + AbstractTuttiTableModel<HydrologyRowModel> tableModel = getTableModel(); tableModel.setRows(rows, false); + } } 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 2012-12-28 11:52:41 UTC (rev 119) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2012-12-28 15:10:31 UTC (rev 120) @@ -321,7 +321,7 @@ Collection<String> availableCaracteristicNames = hydroCaracteristics.keySet(); List<Caracteristic> availableCaracteristics = Lists.newArrayList(); for (String name : availableCaracteristicNames) { - Caracteristic caracteristic = HydrologicCaracteristicUtil.createGlobalCaracteristic(name); + Caracteristic caracteristic = HydrologicCaracteristicUtil.createGlobalCaracteristic(name, null); availableCaracteristics.add(caracteristic); } List<String> hydrologyPmfm = model.getHydrologyPmfmId(); @@ -330,7 +330,7 @@ Collection<String> ids = hydroCaracteristics.get(caracteristicName); for (String caracteristicId : hydrologyPmfm) { if (ids.contains(caracteristicId)) { - Caracteristic caracteristic = HydrologicCaracteristicUtil.createGlobalCaracteristic(caracteristicName); + Caracteristic caracteristic = HydrologicCaracteristicUtil.createGlobalCaracteristic(caracteristicName, null); selection.add(caracteristic); break; } @@ -345,6 +345,8 @@ // if new protocol can already cancel his creation model.setModify(model.isCreate()); + + table.getTableHeader().setReorderingAllowed(true); } protected void initDoubleList(BeanDoubleList<Caracteristic> widget, Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/HydrologicCaracteristicUtil.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/HydrologicCaracteristicUtil.java 2012-12-28 11:52:41 UTC (rev 119) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/HydrologicCaracteristicUtil.java 2012-12-28 15:10:31 UTC (rev 120) @@ -46,10 +46,19 @@ return name; } - public static Caracteristic createGlobalCaracteristic(String name) { + public static Caracteristic createGlobalCaracteristic(String name, Caracteristic toClone) { Caracteristic caracteristic = new Caracteristic(); caracteristic.setName(name); caracteristic.setId(name); + if (toClone != null) { + caracteristic.setCategory(toClone.getCategory()); + caracteristic.setBooleanType(toClone.isBooleanType()); + caracteristic.setNumberType(toClone.isNumberType()); + caracteristic.setQualitativeType(toClone.isQualitativeType()); + caracteristic.setQualitativeValue(toClone.getQualitativeValue()); + caracteristic.setTextType(toClone.isTextType()); + caracteristic.setUnit(toClone.getUnit()); + } return caracteristic; } Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueEditor.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueEditor.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueEditor.java 2012-12-28 15:10:31 UTC (rev 120) @@ -0,0 +1,94 @@ + +package fr.ifremer.tutti.ui.swing.util.editor; + +import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; +import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; +import fr.ifremer.tutti.service.DecoratorService; +import fr.ifremer.tutti.ui.swing.TuttiUIContext; +import java.awt.Color; +import java.awt.Component; +import java.util.List; +import javax.swing.AbstractCellEditor; +import javax.swing.JComboBox; +import javax.swing.JTable; +import javax.swing.border.LineBorder; +import javax.swing.table.TableCellEditor; +import jaxx.runtime.SwingUtil; +import jaxx.runtime.swing.JAXXWidgetUtil; +import jaxx.runtime.swing.editor.bean.BeanUIUtil; +import jaxx.runtime.swing.editor.cell.NumberCellEditor; +import jaxx.runtime.swing.renderer.DecoratorListCellRenderer; +import org.jdesktop.swingx.autocomplete.ComboBoxCellEditor; +import org.jdesktop.swingx.autocomplete.ObjectToStringConverter; +import org.nuiton.util.decorator.Decorator; + +/** + * Editor for the values of the caracteristics of the fishing operations. + * The editor depends on the caracteristic value type. + * + * @author kmorin <kmorin@codelutin.com> + * @since 0.3 + */ +public class CaracteristicValueEditor extends AbstractCellEditor implements TableCellEditor { + + protected int caracteristicColumn; + + protected TableCellEditor editor; + + protected Decorator<CaracteristicQualitativeValue> decorator; + + public CaracteristicValueEditor(TuttiUIContext context) { + this(0, context); + } + + public CaracteristicValueEditor(int caracteristicColumn, TuttiUIContext context) { + super(); + this.caracteristicColumn = caracteristicColumn; + DecoratorService decoratorService = context.getService(DecoratorService.class); + decorator = decoratorService.getDecoratorByType(CaracteristicQualitativeValue.class); + } + + @Override + public Object getCellEditorValue() { + return editor.getCellEditorValue(); + } + + @Override + public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { + editor = table.getDefaultEditor(Object.class); + + Caracteristic caracteristic = (Caracteristic) table.getModel().getValueAt(row, caracteristicColumn); + if (caracteristic != null) { + if (caracteristic.isBooleanType()) { + editor = table.getDefaultEditor(Boolean.class); + + } else if (caracteristic.isNumberType()) { + NumberCellEditor<Float> editor = + JAXXWidgetUtil.newNumberTableCellEditor(Float.class, false); + editor.getNumberEditor().setSelectAllTextOnError(true); + editor.getNumberEditor().getTextField().setBorder(new LineBorder(Color.GRAY, 2)); + this.editor = editor; + + } else if (caracteristic.isQualitativeType()) { + JComboBox comboBox = new JComboBox(); + comboBox.setRenderer(new DecoratorListCellRenderer(decorator)); + + List<CaracteristicQualitativeValue> data = caracteristic.getQualitativeValue(); + // add a null value at first position + if (!data.isEmpty() && data.get(0) != null) { + data.add(0, null); + } + SwingUtil.fillComboBox(comboBox, data, null); + + + ObjectToStringConverter converter = BeanUIUtil.newDecoratedObjectToStringConverter(decorator); + BeanUIUtil.decorate(comboBox, converter); + editor = new ComboBoxCellEditor(comboBox); + } + } + + Component result = editor.getTableCellEditorComponent(table, value, isSelected, row, column); + return result; + } + +} Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueRenderer.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueRenderer.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueRenderer.java 2012-12-28 15:10:31 UTC (rev 120) @@ -0,0 +1,58 @@ + +package fr.ifremer.tutti.ui.swing.util.editor; + +import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; +import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; +import fr.ifremer.tutti.service.DecoratorService; +import fr.ifremer.tutti.ui.swing.TuttiUIContext; +import java.awt.Component; +import javax.swing.JComboBox; +import javax.swing.JTable; +import javax.swing.table.TableCellRenderer; +import jaxx.runtime.SwingUtil; +import jaxx.runtime.swing.editor.bean.BeanUIUtil; +import jaxx.runtime.swing.renderer.DecoratorTableCellRenderer; +import org.jdesktop.swingx.autocomplete.ComboBoxCellEditor; +import org.jdesktop.swingx.autocomplete.ObjectToStringConverter; +import org.nuiton.util.decorator.Decorator; + +/** + * Renderer for the values of the caracteristics of the fishing operations. + * The renderer depends on the caracteristic value type. + * + * @author kmorin <kmorin@codelutin.com> + * @since 0.3 + */ +public class CaracteristicValueRenderer implements TableCellRenderer { + + protected int caracteristicColumn; + + protected Decorator<CaracteristicQualitativeValue> decorator; + + public CaracteristicValueRenderer(TuttiUIContext context) { + this(0, context); + } + + public CaracteristicValueRenderer(int caracteristicColumn, TuttiUIContext context) { + super(); + this.caracteristicColumn = caracteristicColumn; + DecoratorService decoratorService = context.getService(DecoratorService.class); + decorator = decoratorService.getDecoratorByType(CaracteristicQualitativeValue.class); + } + + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { + TableCellRenderer renderer = table.getDefaultRenderer(Object.class); + Caracteristic caracteristic = (Caracteristic) table.getModel().getValueAt(row, caracteristicColumn); + if (caracteristic != null) { + if (caracteristic.isBooleanType()) { + renderer = table.getDefaultRenderer(Boolean.class); + + } else if (caracteristic.isQualitativeType()) { + renderer = new DecoratorTableCellRenderer(decorator); + } + } + Component result = renderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); + return result; + } + +}
participants (1)
-
kmorin@users.forge.codelutin.com