use of net.sf.mzmine.parameters.parametertypes.MultiChoiceComponent in project mzmine2 by mzmine.
the class KovatsIndexExtractionDialog method addDialogComponents.
@Override
protected void addDialogComponents() {
super.addDialogComponents();
mainPanel.removeAll();
mainPanel.getParent().remove(mainPanel);
ddlKovats = new DelayedDocumentListener(e -> updateKovatsList());
DelayedDocumentListener ddlUpdateChart = new DelayedDocumentListener(e -> updateChart());
newMainPanel = new JPanel(new MigLayout("fill", "[right][grow,fill]", ""));
getContentPane().add(newMainPanel, BorderLayout.SOUTH);
JPanel pnCenter = new JPanel(new BorderLayout());
getContentPane().add(pnCenter, BorderLayout.CENTER);
pnChart = new JPanel(new BorderLayout());
pnCenter.add(pnChart, BorderLayout.CENTER);
Box sizedummy = new Box(BoxLayout.X_AXIS);
sizedummy.setMinimumSize(new Dimension(200, 450));
sizedummy.setPreferredSize(new Dimension(200, 450));
pnChart.add(sizedummy, BorderLayout.CENTER);
// left: Kovats: min max and list
JPanel west = new JPanel(new BorderLayout());
newMainPanel.add(west);
// add min max
JPanel pnKovatsParam = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 5));
west.add(pnKovatsParam, BorderLayout.NORTH);
minc = (IntegerComponent) getComponentForParameter(KovatsIndexExtractionParameters.minKovats);
maxc = (IntegerComponent) getComponentForParameter(KovatsIndexExtractionParameters.maxKovats);
minc.addDocumentListener(ddlKovats);
maxc.addDocumentListener(ddlKovats);
pnKovatsParam.add(new JLabel("Min carbon:"));
pnKovatsParam.add(minc);
pnKovatsParam.add(new JLabel("Max carbon:"));
pnKovatsParam.add(maxc);
// kovats list
JPanel pnKovatsSelect = new JPanel(new BorderLayout());
west.add(pnKovatsSelect, BorderLayout.CENTER);
comboKovats = (MultiChoiceComponent) getComponentForParameter(KovatsIndexExtractionParameters.kovats);
comboKovats.addValueChangeListener(() -> handleKovatsSelectionChange());
pnKovatsSelect.add(comboKovats, BorderLayout.CENTER);
// center: Chart and parameters
JPanel center = new JPanel(new BorderLayout());
newMainPanel.add(center);
// all parameters on peak pick panel
JPanel pnSouth = new JPanel(new BorderLayout());
center.add(pnSouth, BorderLayout.SOUTH);
JPanel pnPeakPick = new JPanel(new MigLayout("", "[right][]", ""));
pnSouth.add(pnPeakPick, BorderLayout.CENTER);
valuesComponent = (StringComponent) getComponentForParameter(KovatsIndexExtractionParameters.pickedKovatsValues);
MZRangeComponent mzc = (MZRangeComponent) getComponentForParameter(KovatsIndexExtractionParameters.mzRange);
RTRangeComponent rtc = (RTRangeComponent) getComponentForParameter(KovatsIndexExtractionParameters.rtRange);
DoubleComponent noisec = (DoubleComponent) getComponentForParameter(KovatsIndexExtractionParameters.noiseLevel);
DoubleComponent edgeRatioC = (DoubleComponent) getComponentForParameter(KovatsIndexExtractionParameters.ratioTopEdge);
valuesComponent.addDocumentListener(new DelayedDocumentListener(e -> kovatsValuesChanged()));
valuesComponent.setLayout(new GridLayout(1, 1));
pnCenter.add(valuesComponent, BorderLayout.SOUTH);
JPanel pnButtonFlow = new JPanel();
pnPeakPick.add(pnButtonFlow, "cell 0 0 2 1");
JButton btnUpdateChart = new JButton("Update chart");
btnUpdateChart.addActionListener(e -> updateChart());
pnButtonFlow.add(btnUpdateChart);
JButton btnPickRT = new JButton("Pick peaks");
btnPickRT.addActionListener(e -> pickRetentionTimes());
pnButtonFlow.add(btnPickRT);
JButton btnSaveFile = new JButton("Save to file");
btnSaveFile.setToolTipText("Save Kovats index file");
btnSaveFile.addActionListener(e -> saveToFile());
pnButtonFlow.add(btnSaveFile);
JButton btnLoad = new JButton("Load");
btnLoad.setToolTipText("Load Kovats index file");
btnLoad.addActionListener(e -> loadFile());
pnButtonFlow.add(btnLoad);
JButton btnCombineFiles = new JButton("Combine files");
btnCombineFiles.setToolTipText("Select multiple Kovats index files to be combined into one");
btnCombineFiles.addActionListener(e -> combineFiles());
pnButtonFlow.add(btnCombineFiles);
// add combo for raw data file
dataFiles = MZmineCore.getProjectManager().getCurrentProject().getDataFiles();
comboDataFileName = new JComboBox<RawDataFile>(dataFiles);
comboDataFileName2 = new JComboBox<RawDataFile>(dataFiles);
cbSecondRaw = new JCheckBox();
initRawDataFileSelection();
pnPeakPick.add(new JLabel("Raw data file(s)"), "cell 0 1");
pnPeakPick.add(comboDataFileName);
cbSecondRaw.addItemListener(e -> useSecondDataFile(cbSecondRaw.isSelected()));
pnPeakPick.add(cbSecondRaw, "cell 0 2");
pnPeakPick.add(comboDataFileName2);
// direct alkane selection < CxH2x+1 >
JPanel pnAlkaneSelect = new JPanel();
Dimension dim = new Dimension(SIZE, SIZE);
JButton btnPrevAlkane = new JButton(iconPrev);
btnPrevAlkane.addActionListener(e -> setMzRangeByAlkane(-1));
btnPrevAlkane.setPreferredSize(dim);
btnPrevAlkane.setMaximumSize(dim);
JButton btnNextAlkane = new JButton(iconNext);
btnNextAlkane.addActionListener(e -> setMzRangeByAlkane(1));
btnNextAlkane.setPreferredSize(dim);
btnNextAlkane.setMaximumSize(dim);
lbCurrentAlkane = new JLabel("");
cbCurrentAlkaneSubH = new JCheckBox("-H");
cbCurrentAlkaneSubH.setSelected(true);
cbCurrentAlkaneSubH.addItemListener(e -> setMzRangeByAlkane(0));
pnAlkaneSelect.add(btnPrevAlkane);
pnAlkaneSelect.add(lbCurrentAlkane);
pnAlkaneSelect.add(btnNextAlkane);
pnAlkaneSelect.add(cbCurrentAlkaneSubH);
pnPeakPick.add(pnAlkaneSelect, "cell 1 3");
pnPeakPick.add(new JLabel("m/z range"), "cell 0 4");
pnPeakPick.add(mzc);
pnPeakPick.add(new JLabel(KovatsIndexExtractionParameters.rtRange.getName()), "cell 0 5");
pnPeakPick.add(rtc);
pnPeakPick.add(new JLabel(KovatsIndexExtractionParameters.noiseLevel.getName()), "cell 0 6");
pnPeakPick.add(noisec);
pnPeakPick.add(new JLabel(KovatsIndexExtractionParameters.ratioTopEdge.getName()), "cell 0 7");
pnPeakPick.add(edgeRatioC);
// add listeners
comboDataFileName.addItemListener(e -> updateChart());
mzc.addDocumentListener(ddlUpdateChart);
rtc.addDocumentListener(ddlUpdateChart);
// show
revalidate();
updateMinimumSize();
pack();
updateChart();
}
use of net.sf.mzmine.parameters.parametertypes.MultiChoiceComponent in project mzmine2 by mzmine.
the class KovatsIndexExtractionDialog method updateKovatsList.
/**
* Update kuvats list min max
*/
private void updateKovatsList() {
updateParameterSetFromComponents();
try {
int min = parameterSet.getParameter(KovatsIndexExtractionParameters.minKovats).getValue();
int max = parameterSet.getParameter(KovatsIndexExtractionParameters.maxKovats).getValue();
KovatsIndex[] newValues = KovatsIndex.getRange(min, max);
KovatsIndex[] newSelected = Stream.of(newValues).filter(k -> ArrayUtils.contains(selectedKovats, k)).toArray(KovatsIndex[]::new);
parameterSet.getParameter(KovatsIndexExtractionParameters.kovats).setChoices(newValues);
parameterSet.getParameter(KovatsIndexExtractionParameters.kovats).setValue(newSelected);
MultiChoiceComponent kovatsc = (MultiChoiceComponent) getComponentForParameter(KovatsIndexExtractionParameters.kovats);
kovatsc.setChoices(newValues);
kovatsc.setValue(newSelected);
revalidate();
repaint();
handleKovatsSelectionChange();
// update parameters again
updateParameterSetFromComponents();
} catch (Exception e) {
}
}
Aggregations