From: Patric Plitzner
ID="eu.etaxonomy.taxeditor.store.datasource"{trunked}
*/
public static String ID = "eu.etaxonomy.taxeditor.view.datasource";
-
+
private TableViewer viewer;
private String partNameCache;
private IWorkbenchSiteProgressService service;
-
+
private IContextListener contextListener;
private CdmDataSourceViewerComparator comparator;
-
+
/**
* Constructor for CdmDataSourceViewPart.
*/ public CdmDataSourceViewPart(){ } - + /** {@inheritDoc} */ @Override public void createPartControl(Composite parent) { service = (IWorkbenchSiteProgressService) getSite().getAdapter(IWorkbenchSiteProgressService.class); contextListener = new ContextListener(); CdmStore.getContextManager().addContextListener(contextListener); - + // Create top composite FillLayout fillLayout = new FillLayout(); fillLayout.marginWidth = 0; fillLayout.marginHeight = 0; - fillLayout.type = SWT.VERTICAL; + fillLayout.type = SWT.VERTICAL; parent.setLayout(fillLayout); - + viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION); getSite().setSelectionProvider(viewer); - + createColumns(viewer); - + viewer.setContentProvider(new CdmDataSourceContentProvider()); viewer.setLabelProvider(new CdmDataSourceLabelProvider()); comparator = new CdmDataSourceViewerComparator(); viewer.setComparator(comparator); - - + + // register context menu MenuManager menuMgr = new MenuManager(); menuMgr.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); @@ -211,47 +219,48 @@ public class CdmDataSourceViewPart extends ViewPart{ Control control = viewer.getControl(); Menu menu = menuMgr.createContextMenu(control); - control.setMenu(menu); - + control.setMenu(menu); + // connect on doubleclick viewer.addDoubleClickListener(new IDoubleClickListener() { - public void doubleClick(DoubleClickEvent event) { + @Override + public void doubleClick(DoubleClickEvent event) { if (event.getSelection() instanceof StructuredSelection) { - + Object element = ((StructuredSelection) event .getSelection()).getFirstElement(); if (element instanceof CdmMetaDataAwareDataSourceContainer) { String commandId = "eu.etaxonomy.taxeditor.store.datasource.change"; - + ICommandService commandService = (ICommandService)getSite().getService(ICommandService.class); - - Command command = commandService.getCommand(commandId); + + Command command = commandService.getCommand(commandId); if(command.isEnabled()) { - - IHandlerService handlerService = (IHandlerService) StoreUtil.getService(IHandlerService.class); - + + IHandlerService handlerService = (IHandlerService) AbstractUtility.getService(IHandlerService.class); + try { handlerService.executeCommand(commandId, null); } catch (ExecutionException e) { - StoreUtil.error(this.getClass(), e); + AbstractUtility.error(this.getClass(), e); } catch (NotDefinedException e) { - StoreUtil.error(this.getClass(), e); + AbstractUtility.error(this.getClass(), e); } catch (NotEnabledException e) { - StoreUtil.error(this.getClass(), e); + AbstractUtility.error(this.getClass(), e); } catch (NotHandledException e) { - StoreUtil.error(this.getClass(), e); + AbstractUtility.error(this.getClass(), e); } } } } } }); - + refresh(); } - + // This will create the columns for the table private void createColumns(TableViewer viewer) { Table table = viewer.getTable(); @@ -272,13 +281,13 @@ public class CdmDataSourceViewPart extends ViewPart{ table.setHeaderVisible(true); table.setLinesVisible(true); table.setSortDirection(SWT.UP); - + } - + /** *refresh
*/ - public void refresh(){ + public void refresh(){ getService().schedule(new DataSourceJob("Loading datasources", CdmDataSourceRepository.getAll()), Job.LONG); } @@ -292,10 +301,10 @@ public class CdmDataSourceViewPart extends ViewPart{ /** {@inheritDoc} */ @Override public void setFocus() { - viewer.getControl().setFocus(); +// viewer.getControl().setFocus(); } - + /* (non-Javadoc) * @see org.eclipse.ui.part.WorkbenchPart#showBusy(boolean) */ @@ -331,7 +340,7 @@ public class CdmDataSourceViewPart extends ViewPart{ public IWorkbenchSiteProgressService getService() { return service; } - + private SelectionAdapter getSelectionAdapter(final TableColumn column, final int index) { SelectionAdapter selectionAdapter = new SelectionAdapter() { diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java index d628deaaa..fc1be090d 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java @@ -24,7 +24,6 @@ import eu.etaxonomy.cdm.model.common.DefinedTerm; import eu.etaxonomy.cdm.model.molecular.DnaSample; import eu.etaxonomy.cdm.model.molecular.Sequence; import eu.etaxonomy.cdm.model.molecular.SingleRead; -import eu.etaxonomy.cdm.model.occurrence.Collection; import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; import eu.etaxonomy.cdm.model.occurrence.FieldUnit; import eu.etaxonomy.cdm.model.occurrence.GatheringEvent; @@ -116,7 +115,9 @@ public class DerivateLabelProvider extends ColumnLabelProvider { * @return */ public static String getDerivateText(Object element){ + TreeNode parentNode = null; if(element instanceof TreeNode){ + parentNode = ((TreeNode) element).getParent(); //unwrap specimen from TreeNode element = ((TreeNode) element).getValue(); } @@ -137,17 +138,17 @@ public class DerivateLabelProvider extends ColumnLabelProvider { MediaSpecimen mediaSpecimen = (MediaSpecimen)element; label += mediaSpecimen.getMediaSpecimen().getTitle()!=null?mediaSpecimen.getMediaSpecimen().getTitle().getText()+", ":"[no motif]"; label += mediaSpecimen.getMediaSpecimen().getArtist()!=null?mediaSpecimen.getMediaSpecimen().getArtist()+", ":""; - label += mediaSpecimen.getAccessionNumber()!=null?mediaSpecimen.getAccessionNumber()+", ":""; - Collection collection = mediaSpecimen.getCollection(); + eu.etaxonomy.cdm.model.occurrence.Collection collection = mediaSpecimen.getCollection(); if(collection!=null){ label += collection.getName()!=null?collection.getName()+" ":""; + label += collection.getCode()!=null?"("+collection.getCode()+"), ":""; } + label += mediaSpecimen.getAccessionNumber()!=null?mediaSpecimen.getAccessionNumber()+", ":""; } else if(element instanceof DnaSample || (element instanceof DerivedUnit && ((SpecimenOrObservationBase>) element).getRecordBasis()==SpecimenOrObservationType.DnaSample)){ - //TODO implement - label += element.toString(); + label += "[no sample designation]"; } else if(element instanceof DerivedUnit){ @@ -157,12 +158,13 @@ public class DerivateLabelProvider extends ColumnLabelProvider { if(fieldUnits!=null && !fieldUnits.isEmpty()){ FieldUnit fieldUnit = fieldUnits.iterator().next(); GatheringEvent gatheringEvent = fieldUnit.getGatheringEvent(); +// gatheringEvent = HibernateProxyHelper.deproxy(gatheringEvent, GatheringEvent.class); if(gatheringEvent!=null){ label += gatheringEvent.getCollector()!=null?gatheringEvent.getCollector()+", ":""; } label += fieldUnit.getFieldNumber()!=null?fieldUnit.getFieldNumber()+", ":""; } - Collection collection = derivedUnit.getCollection(); + eu.etaxonomy.cdm.model.occurrence.Collection collection = derivedUnit.getCollection(); if(collection!=null){ label += collection.getName()!=null?collection.getName()+" ":""; label += collection.getCode()!=null?"("+collection.getCode()+"), ":""; @@ -172,18 +174,22 @@ public class DerivateLabelProvider extends ColumnLabelProvider { } else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.TissueSample){ //TODO: implement -// kindofTissue + SampleDesignation + label += "kindofTissue? + [no sample designation]"; } } else if(element instanceof Sequence){ Sequence sequence = (Sequence)element; - label += "SampleDesignation?"+", "; + label += "[no sample designation]"+", "; label += sequence.getDnaMarker()!=null?sequence.getDnaMarker():""; } else if(element instanceof SingleRead){ SingleRead singleRead = (SingleRead)element; + label += "[no sample designation]"+", "; label += singleRead.getPrimer()!=null?singleRead.getPrimer().getLabel()+", ":""; - label += "Marker?"; + if(parentNode!=null && parentNode.getValue() instanceof Sequence){ + Sequence sequence = (Sequence) parentNode.getValue(); + label += sequence.getDnaMarker()!=null?sequence.getDnaMarker():""; + } } else if(element instanceof SpecimenOrObservationBase){ SpecimenOrObservationBase> derivate = (SpecimenOrObservationBase>) element; diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateSearchCompositeController.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateSearchCompositeController.java index 76a6b5aee..ad861b21a 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateSearchCompositeController.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateSearchCompositeController.java @@ -50,12 +50,15 @@ public class DerivateSearchCompositeController implements Listener{ private final DerivateSearchComposite derivateSearchComposite; private IIdentifiableEntityServiceConfigurator