Skip to content

Commit a5438c0

Browse files
committed
PCA, Score Bar Chart: adjust selection, fix list-out-of bound, layout
Signed-off-by: Lorenz Gerber <[email protected]>
1 parent 7911c32 commit a5438c0

File tree

1 file changed

+7
-3
lines changed
  • chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca.ui/src/org/eclipse/chemclipse/xxd/process/supplier/pca/ui/swt

1 file changed

+7
-3
lines changed

chemclipse/plugins/org.eclipse.chemclipse.xxd.process.supplier.pca.ui/src/org/eclipse/chemclipse/xxd/process/supplier/pca/ui/swt/ExtendedScorePlotBarChart.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ private void createToolbarMain(Composite parent) {
126126
Composite composite = new Composite(parent, SWT.NONE);
127127
GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
128128
gridData.horizontalAlignment = SWT.END;
129+
gridData.widthHint = 300;
129130
composite.setLayoutData(gridData);
130131
composite.setLayout(new GridLayout(2, false));
131132

@@ -303,6 +304,7 @@ public void handleEvent(BaseChart baseChart, Event event) {
303304
IResultsMVA results = evaluationPCA.getResults();
304305
List<IResultMVA> resultList = results.getPcaResultList();
305306
List<SampleScore> sampleScores = new ArrayList<>();
307+
306308
for(IResultMVA result : resultList) {
307309
ISample sample = result.getSample();
308310
double[] scoreMatrix = result.getScoreVector();
@@ -314,16 +316,18 @@ public void handleEvent(BaseChart baseChart, Event event) {
314316
}
315317
}
316318
sampleScores.sort(Comparator.comparingDouble(SampleScore::getScore).reversed());
319+
if(pXStart < 0 || pXStop < 0 || pXStop > sampleScores.size()) {
320+
userSelection.reset();
321+
userSelection.setSingleClick(false);
322+
return;
323+
}
317324
List<ISample> samplesHighlighted = evaluationPCA.getHighlightedSamples();
318325
for(int i = pXStart; i <= pXStop; i++) {
319326
String currentSampleName = sampleScores.get(i).getSampleName();
320327
int index = IntStream.range(0, samplesHighlighted.size()).filter(x -> samplesHighlighted.get(x).getSampleName().equals(currentSampleName)).findFirst().orElse(-1);
321328
if(index == -1) {
322329
samplesHighlighted.add(samples.getSamples().stream().filter(x -> x.getSampleName().equals(currentSampleName)).findFirst().get());
323-
} else {
324-
samplesHighlighted.remove(index);
325330
}
326-
327331
}
328332

329333
if(!samplesHighlighted.isEmpty()) {

0 commit comments

Comments
 (0)