From f395833ff64e10c1869c65cba0cd5bade498187f Mon Sep 17 00:00:00 2001 From: Philip Wenig Date: Fri, 22 Nov 2024 16:56:34 +0100 Subject: [PATCH] Fixed #1969 - PCA - ISample group name must not be null --- .../wizards/GroupNamesWizardPage.java | 5 ++-- .../pca/ui/support/InputFilesTable.java | 29 ++++++++----------- .../supplier/pca/ui/swt/AnalysisEditorUI.java | 4 +-- .../supplier/pca/io/SampleTemplateIO.java | 4 +-- .../supplier/pca/model/DataInputEntry.java | 8 ++--- .../supplier/pca/model/IDataInputEntry.java | 6 ++-- .../supplier/pca/model/PeakSample.java | 6 ++-- .../process/supplier/pca/model/Sample.java | 7 ++--- 8 files changed, 29 insertions(+), 40 deletions(-) diff --git a/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca.ui/src/org/eclipse/chemclipse/xxd/process/supplier/pca/ui/internal/wizards/GroupNamesWizardPage.java b/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca.ui/src/org/eclipse/chemclipse/xxd/process/supplier/pca/ui/internal/wizards/GroupNamesWizardPage.java index d512bd06bb..d84c8ee5e6 100644 --- a/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca.ui/src/org/eclipse/chemclipse/xxd/process/supplier/pca/ui/internal/wizards/GroupNamesWizardPage.java +++ b/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca.ui/src/org/eclipse/chemclipse/xxd/process/supplier/pca/ui/internal/wizards/GroupNamesWizardPage.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2018, 2023 Lablicate GmbH. + * Copyright (c) 2018, 2024 Lablicate GmbH. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -236,8 +236,7 @@ private void updateGroupNames() { } // String groupName = textGroupName.getText().trim(); - final String setGroupName = groupName.isEmpty() ? null : groupName; - filterInput.forEach(i -> i.setGroupName(setGroupName)); + filterInput.forEach(i -> i.setGroupName(groupName)); update(); } diff --git a/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca.ui/src/org/eclipse/chemclipse/xxd/process/supplier/pca/ui/support/InputFilesTable.java b/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca.ui/src/org/eclipse/chemclipse/xxd/process/supplier/pca/ui/support/InputFilesTable.java index 00c9224c36..c041afcaad 100644 --- a/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca.ui/src/org/eclipse/chemclipse/xxd/process/supplier/pca/ui/support/InputFilesTable.java +++ b/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca.ui/src/org/eclipse/chemclipse/xxd/process/supplier/pca/ui/support/InputFilesTable.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2017, 2023 Lablicate GmbH. + * Copyright (c) 2017, 2024 Lablicate GmbH. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -44,8 +44,8 @@ private void createColumns() { String[] titles = {"Name", "Group", "Filename", "Path"}; int[] bounds = {100, 100, 100, 100}; // first column is for the first name - TableViewerColumn col = createTableViewerColumn(titles[0], bounds[0], 0); - col.setLabelProvider(new ColumnLabelProvider() { + TableViewerColumn tableViewerColumn = createTableViewerColumn(titles[0], bounds[0], 0); + tableViewerColumn.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { @@ -54,8 +54,8 @@ public String getText(Object element) { return inputData.getSampleName(); } }); - col = createTableViewerColumn(titles[1], bounds[1], 1); - col.setLabelProvider(new CellLabelProvider() { + tableViewerColumn = createTableViewerColumn(titles[1], bounds[1], 1); + tableViewerColumn.setLabelProvider(new CellLabelProvider() { @Override public void update(ViewerCell cell) { @@ -65,7 +65,7 @@ public void update(ViewerCell cell) { cell.setText(text); } }); - col.setEditingSupport(new EditingSupport(tableViewer) { + tableViewerColumn.setEditingSupport(new EditingSupport(tableViewer) { private TextCellEditor editor = new TextCellEditor(tableViewer.getTable()); @@ -98,17 +98,12 @@ protected void setValue(Object element, Object value) { IDataInputEntry inputData = (IDataInputEntry)element; String groupName = (String)value; - groupName = groupName.trim(); - if(!groupName.isEmpty()) { - inputData.setGroupName(groupName); - } else { - inputData.setGroupName(null); - } + inputData.setGroupName(groupName.trim()); update(); } }); - col = createTableViewerColumn(titles[2], bounds[2], 2); - col.setLabelProvider(new ColumnLabelProvider() { + tableViewerColumn = createTableViewerColumn(titles[2], bounds[2], 2); + tableViewerColumn.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { @@ -117,8 +112,8 @@ public String getText(Object element) { return inputData.getFileName(); } }); - col = createTableViewerColumn(titles[3], bounds[3], 3); - col.setLabelProvider(new ColumnLabelProvider() { + tableViewerColumn = createTableViewerColumn(titles[3], bounds[3], 3); + tableViewerColumn.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { @@ -180,4 +175,4 @@ public void update() { column.pack(); } } -} +} \ No newline at end of file diff --git a/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca.ui/src/org/eclipse/chemclipse/xxd/process/supplier/pca/ui/swt/AnalysisEditorUI.java b/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca.ui/src/org/eclipse/chemclipse/xxd/process/supplier/pca/ui/swt/AnalysisEditorUI.java index a7db3e15a3..6e3b892847 100644 --- a/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca.ui/src/org/eclipse/chemclipse/xxd/process/supplier/pca/ui/swt/AnalysisEditorUI.java +++ b/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca.ui/src/org/eclipse/chemclipse/xxd/process/supplier/pca/ui/swt/AnalysisEditorUI.java @@ -780,11 +780,9 @@ private void updateOplsGroupTargets() { oplsGroupTargets.add(OPLS_GROUP_TARGET_NONE); // if(samples != null) { - /* - * Group Name must not be null! - */ for(ISample sample : samples.getSamples()) { if(sample.getGroupName() == null) { + logger.warn("Fix GroupName (must not be null): " + sample); sample.setGroupName(""); } } diff --git a/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca/src/org/eclipse/chemclipse/xxd/process/supplier/pca/io/SampleTemplateIO.java b/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca/src/org/eclipse/chemclipse/xxd/process/supplier/pca/io/SampleTemplateIO.java index 60d8efe0e0..3860a18dc9 100644 --- a/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca/src/org/eclipse/chemclipse/xxd/process/supplier/pca/io/SampleTemplateIO.java +++ b/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca/src/org/eclipse/chemclipse/xxd/process/supplier/pca/io/SampleTemplateIO.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2022, 2023 Lablicate GmbH. + * Copyright (c) 2022, 2024 Lablicate GmbH. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -105,7 +105,7 @@ public static void read(File file, List samples) throws IOException { if(sample != null) { sample.setSelected(valueParserSupport.parseBoolean(values, 1)); sample.setRGB(valueParserSupport.parseString(values, 2)); - sample.setGroupName(valueParserSupport.parseString(values, 3)); + sample.setGroupName(valueParserSupport.parseString(values, 3, "")); sample.setClassification(valueParserSupport.parseString(values, 4)); sample.setDescription(valueParserSupport.parseString(values, 5)); } diff --git a/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca/src/org/eclipse/chemclipse/xxd/process/supplier/pca/model/DataInputEntry.java b/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca/src/org/eclipse/chemclipse/xxd/process/supplier/pca/model/DataInputEntry.java index 36c0661323..3ceb290483 100644 --- a/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca/src/org/eclipse/chemclipse/xxd/process/supplier/pca/model/DataInputEntry.java +++ b/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca/src/org/eclipse/chemclipse/xxd/process/supplier/pca/model/DataInputEntry.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2011, 2022 Lablicate GmbH. + * Copyright (c) 2011, 2024 Lablicate GmbH. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -7,7 +7,7 @@ * http://www.eclipse.org/legal/epl-v10.html * * Contributors: - * Dr. Philip Wenig - initial API and implementation + * Philip Wenig - initial API and implementation *******************************************************************************/ package org.eclipse.chemclipse.xxd.process.supplier.pca.model; @@ -16,7 +16,7 @@ public class DataInputEntry implements IDataInputEntry { - private String groupName; + private String groupName = ""; private String inputFile = ""; /** @@ -89,4 +89,4 @@ public boolean equals(Object o) { DataInputEntry dataInputEntry = (DataInputEntry)o; return dataInputEntry.getSampleName().equals(getSampleName()); } -} +} \ No newline at end of file diff --git a/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca/src/org/eclipse/chemclipse/xxd/process/supplier/pca/model/IDataInputEntry.java b/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca/src/org/eclipse/chemclipse/xxd/process/supplier/pca/model/IDataInputEntry.java index 63bb70f7b6..2783d5531a 100644 --- a/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca/src/org/eclipse/chemclipse/xxd/process/supplier/pca/model/IDataInputEntry.java +++ b/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca/src/org/eclipse/chemclipse/xxd/process/supplier/pca/model/IDataInputEntry.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2011, 2022 Lablicate GmbH. + * Copyright (c) 2011, 2024 Lablicate GmbH. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -7,7 +7,7 @@ * http://www.eclipse.org/legal/epl-v10.html * * Contributors: - * Dr. Philip Wenig - initial API and implementation + * Philip Wenig - initial API and implementation *******************************************************************************/ package org.eclipse.chemclipse.xxd.process.supplier.pca.model; @@ -37,4 +37,4 @@ public interface IDataInputEntry { String getSampleName(); void setGroupName(String groupName); -} +} \ No newline at end of file diff --git a/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca/src/org/eclipse/chemclipse/xxd/process/supplier/pca/model/PeakSample.java b/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca/src/org/eclipse/chemclipse/xxd/process/supplier/pca/model/PeakSample.java index fc64764f84..7373af1437 100644 --- a/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca/src/org/eclipse/chemclipse/xxd/process/supplier/pca/model/PeakSample.java +++ b/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca/src/org/eclipse/chemclipse/xxd/process/supplier/pca/model/PeakSample.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2020, 2022 Lablicate GmbH. + * Copyright (c) 2020, 2024 Lablicate GmbH. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -20,9 +20,9 @@ public PeakSample(IDataInputEntry dataInputEntry) { this(dataInputEntry.getSampleName(), dataInputEntry.getGroupName()); } - public PeakSample(String name, String groupName) { + public PeakSample(String sampleName, String groupName) { - super(name); + super(sampleName); setGroupName(groupName); } } \ No newline at end of file diff --git a/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca/src/org/eclipse/chemclipse/xxd/process/supplier/pca/model/Sample.java b/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca/src/org/eclipse/chemclipse/xxd/process/supplier/pca/model/Sample.java index e79132785d..dac02209c0 100644 --- a/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca/src/org/eclipse/chemclipse/xxd/process/supplier/pca/model/Sample.java +++ b/chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca/src/org/eclipse/chemclipse/xxd/process/supplier/pca/model/Sample.java @@ -18,15 +18,12 @@ public class Sample extends AbstractSample { public Sample(String sampleName, String groupName) { - super(sampleName); - setGroupName(groupName); + this(sampleName, groupName, "", ""); } public Sample(String sampleName, String groupName, String description) { - super(sampleName); - setGroupName(groupName); - setDescription(description); + this(sampleName, groupName, "", description); } public Sample(String sampleName, String groupName, String classification, String description) {