+ GridLayout gl_composite = new GridLayout();
+ composite.setLayout(gl_composite);
+
+ Composite composite_1 = new Composite(composite, SWT.NONE);
+ composite_1.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1));
+ composite_1.setLayout(new GridLayout(3, false));
+
+ txtTextFilter = new Text(composite_1, SWT.BORDER);
+ txtTextFilter.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+ txtTextFilter.addModifyListener(e->applyFilter());
+
+ comboTaxon = new TaxonNodeCombo(composite_1, SWT.NONE);
+ comboTaxon.setInput(matrix.getWorkingSet().getTaxonSubtreeFilter());
+ comboTaxon.addSelectionChangedListener(e->applyFilter());
+
+ Button btnRefreshButton = new Button(composite_1, SWT.NONE);
+ btnRefreshButton.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+ btnRefreshButton.setToolTipText(Messages.SpecimenSelectionDialog_REFRESH);
+ btnRefreshButton.setImage(ImageResources.getImage(ImageResources.REFRESH));
+ btnRefreshButton.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ loadSpecimens();
+ list.setInput(matrix.getSpecimenCache());
+ }
+ });
+ //table
+ list = new TableViewer(composite, SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
+ Table table = list.getTable();
+ GridData gd_table = GridDataFactory.fillDefaults().create();
+ gd_table.grabExcessHorizontalSpace = true;
+ gd_table.grabExcessVerticalSpace = true;
+ table.setLayoutData(gd_table);
+ //table columns
+ TableViewerColumn columnTaxon = new TableViewerColumn(list, SWT.NONE);
+ columnTaxon.getColumn().setText("Taxon");
+ columnTaxon.getColumn().setWidth(200);
+ columnTaxon.getColumn().setResizable(true);
+ columnTaxon.getColumn().setMoveable(true);
+ TableViewerColumn columnSpecimen = new TableViewerColumn(list, SWT.NONE);
+ columnSpecimen.getColumn().setText("Specimen");
+ columnSpecimen.getColumn().setWidth(200);
+ columnSpecimen.getColumn().setResizable(true);
+ columnSpecimen.getColumn().setMoveable(true);
+ table.setHeaderVisible(true);
+ table.setLinesVisible(true);
+ list.setContentProvider(new SpecimenListContentProvider());
+ list.setLabelProvider(new SpecimenListLabelProvider());
+
+ //gather specimens
+ if(matrix.getSpecimenCache()==null){
+ loadSpecimens();