import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Table;
import org.eclipse.ui.INullSelectionListener;
+import org.eclipse.ui.ISelectionListener;
import org.eclipse.ui.IWorkbenchPart;
* @created 08.07.2009
* @version 1.0
*/
-public class ReferencingObjectsView extends AbstractCdmViewPart implements INullSelectionListener{
+public class ReferencingObjectsView extends AbstractCdmViewPart{
private static final Logger logger = Logger
.getLogger(ReferencingObjectsView.class);
private TableViewer viewer;
private String referencedObjectTitleCache;
+ private ConversationHolder conversation;
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.model.AbstractCdmViewPart#createViewer(org.eclipse.swt.widgets.Composite)
@Override
public void createViewer(Composite parent) {
selectionService.addSelectionListener(this);
-
+ conversation = CdmStore.createConversation();
viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
| SWT.V_SCROLL | SWT.FULL_SELECTION);
createColumns(viewer);
@Override
public void run() {
if (entityUUID != null){
- ConversationHolder conversation = CdmStore.createConversation();
+
List<CdmBase> referencingObjects = getReferencingObjects(entityUUID, objectClass);
- conversation.close();
+
updateView(referencingObjects);
+
+
}
}
});
referencedObject = CdmStore.getService(INameService.class).load(entity);
} else if (objectClass.getSuperclass().equals(TaxonBase.class)){
referencedObject = CdmStore.getService(ITaxonService.class).load(entity);
- } else if (objectClass.getSuperclass().equals(Reference.class)){
+ } else if (objectClass.equals(Reference.class)){
referencedObject = CdmStore.getService(IReferenceService.class).load(entity);
} else if (objectClass.getSuperclass().equals(SpecimenOrObservationBase.class)){
referencedObject = CdmStore.getService(IOccurrenceService.class).load(entity);
private void updateView(List<CdmBase> referencingObjects) {
if (viewer != null && !viewer.getControl().isDisposed()){
viewer.setInput(referencingObjects);
- /*if (referencedObjectTitleCache != null){
+ if (referencedObjectTitleCache != null){
setContentDescription("'" + referencedObjectTitleCache + "' is referenced by:");
} else {
setContentDescription("");
- }*/
+ }
showViewer();
}
}
/** {@inheritDoc} */
@Override
public void showViewer(IWorkbenchPart part, IStructuredSelection selection) {
- this.part = part;
+ // this.part = part;
updateReferencingObjects(((IdentifiableEntity) selection.getFirstElement()).getUuid(),selection.getFirstElement().getClass() );
}
/** {@inheritDoc} */
@Override
public void dispose() {
+ conversation.close();
selectionService.removePostSelectionListener(this);
selectionService.removeSelectionListener(this);
super.dispose();
}
public void refresh(){
+
selectionService.removePostSelectionListener(this);
selectionService.removeSelectionListener(this);
selectionService.addPostSelectionListener(this);