From e4097d21e5f56ec66d8f9821bfb6e8f86b2d7e6f Mon Sep 17 00:00:00 2001 From: Matthew Horridge Date: Fri, 11 Dec 2015 19:08:45 -0800 Subject: [PATCH] Closes #324 --- .../ui/library/entitylabel/EntityLabel.java | 23 +++++++++++++++---- .../ui/library/entitylabel/EntityLabel.ui.xml | 2 +- .../projectfeed/ProjectChangeEventPanel.java | 6 ++++- .../ui/projectfeed/ProjectFeedBasePanel.java | 5 ++-- .../ui/projectfeed/ProjectFeedPanel.java | 8 +++++-- .../ui/projectfeed/ProjectFeedPortlet.java | 2 +- .../notes/OWLAPINotesManagerNotesAPIImpl.java | 1 + 7 files changed, 36 insertions(+), 11 deletions(-) diff --git a/src/main/java/edu/stanford/bmir/protege/web/client/ui/library/entitylabel/EntityLabel.java b/src/main/java/edu/stanford/bmir/protege/web/client/ui/library/entitylabel/EntityLabel.java index b01502fbd1..8a06d05d38 100644 --- a/src/main/java/edu/stanford/bmir/protege/web/client/ui/library/entitylabel/EntityLabel.java +++ b/src/main/java/edu/stanford/bmir/protege/web/client/ui/library/entitylabel/EntityLabel.java @@ -1,12 +1,13 @@ package edu.stanford.bmir.protege.web.client.ui.library.entitylabel; import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; -import com.google.gwt.user.client.ui.Composite; -import com.google.gwt.user.client.ui.HTMLPanel; -import com.google.gwt.user.client.ui.InlineLabel; +import com.google.gwt.user.client.ui.*; import edu.stanford.bmir.protege.web.shared.entity.OWLEntityData; +import edu.stanford.bmir.protege.web.shared.selection.SelectionModel; /** * Author: Matthew Horridge
@@ -26,13 +27,15 @@ interface EntityLabelUiBinder extends UiBinder { protected InlineLabel typeLabel; @UiField - protected InlineLabel browserTextLabel; + protected InlineHyperlink browserTextLabel; @UiField protected InlineLabel iriLabel; private OWLEntityData entityData; + private SelectionModel selectionModel; + public EntityLabel() { HTMLPanel rootElement = ourUiBinder.createAndBindUi(this); initWidget(rootElement); @@ -44,6 +47,10 @@ public void setEntity(OWLEntityData entityData) { updateDisplay(); } + public void setSelectionModel(SelectionModel selectionModel) { + this.selectionModel = selectionModel; + } + public OWLEntityData getEntityData() { return entityData; } @@ -53,6 +60,14 @@ public OWLEntityData getEntityData() { private void updateDisplay() { typeLabel.setText(entityData.getEntity().getEntityType().getName() + ": "); browserTextLabel.setText(entityData.getBrowserText()); + browserTextLabel.addClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + if (selectionModel != null) { + selectionModel.setSelection(entityData); + } + } + }); iriLabel.setText("(" + entityData.getEntity().getIRI().toQuotedString() + ")"); } } \ No newline at end of file diff --git a/src/main/java/edu/stanford/bmir/protege/web/client/ui/library/entitylabel/EntityLabel.ui.xml b/src/main/java/edu/stanford/bmir/protege/web/client/ui/library/entitylabel/EntityLabel.ui.xml index e25d5fa9c8..4c525c4f4e 100644 --- a/src/main/java/edu/stanford/bmir/protege/web/client/ui/library/entitylabel/EntityLabel.ui.xml +++ b/src/main/java/edu/stanford/bmir/protege/web/client/ui/library/entitylabel/EntityLabel.ui.xml @@ -16,7 +16,7 @@ - + \ No newline at end of file diff --git a/src/main/java/edu/stanford/bmir/protege/web/client/ui/projectfeed/ProjectChangeEventPanel.java b/src/main/java/edu/stanford/bmir/protege/web/client/ui/projectfeed/ProjectChangeEventPanel.java index dc93b48d43..04673c27c1 100644 --- a/src/main/java/edu/stanford/bmir/protege/web/client/ui/projectfeed/ProjectChangeEventPanel.java +++ b/src/main/java/edu/stanford/bmir/protege/web/client/ui/projectfeed/ProjectChangeEventPanel.java @@ -10,6 +10,7 @@ import edu.stanford.bmir.protege.web.client.ui.library.entitylabel.EntityLabel; import edu.stanford.bmir.protege.web.client.ui.library.timelabel.ElapsedTimeLabel; import edu.stanford.bmir.protege.web.shared.entity.OWLEntityData; +import edu.stanford.bmir.protege.web.shared.selection.SelectionModel; import java.util.Set; @@ -35,6 +36,7 @@ public class ProjectChangeEventPanel extends Composite implements ProjectFeedIte protected InlineLabel descriptionField; + private SelectionModel selectionModel; interface ChangeEventPanelUiBinder extends UiBinder { @@ -42,8 +44,9 @@ interface ChangeEventPanelUiBinder extends UiBinder entities) { for(OWLEntityData entityData : entities) { final EntityLabel changedEntityLabel = new EntityLabel(); changedEntityLabel.setEntity(entityData); + changedEntityLabel.setSelectionModel(selectionModel); changedEntitiesTable.setWidget(row, 0, changedEntityLabel); row++; } diff --git a/src/main/java/edu/stanford/bmir/protege/web/client/ui/projectfeed/ProjectFeedBasePanel.java b/src/main/java/edu/stanford/bmir/protege/web/client/ui/projectfeed/ProjectFeedBasePanel.java index 4153c7fa9a..f4f831d44e 100644 --- a/src/main/java/edu/stanford/bmir/protege/web/client/ui/projectfeed/ProjectFeedBasePanel.java +++ b/src/main/java/edu/stanford/bmir/protege/web/client/ui/projectfeed/ProjectFeedBasePanel.java @@ -3,6 +3,7 @@ import com.google.gwt.user.client.ui.Composite; import edu.stanford.bmir.protege.web.shared.event.*; import edu.stanford.bmir.protege.web.shared.project.ProjectId; +import edu.stanford.bmir.protege.web.shared.selection.SelectionModel; /** * Author: Matthew Horridge
@@ -14,8 +15,8 @@ public class ProjectFeedBasePanel extends Composite { private ProjectFeedPanel eventPanel; - public ProjectFeedBasePanel(final ProjectId projectId, HasEventHandlerManagement eventHandlerMan) { - eventPanel = new ProjectFeedPanel(projectId); + public ProjectFeedBasePanel(final ProjectId projectId, HasEventHandlerManagement eventHandlerMan, SelectionModel selectionModel) { + eventPanel = new ProjectFeedPanel(projectId, selectionModel); initWidget(eventPanel); eventHandlerMan.addProjectEventHandler(ProjectChangedEvent.TYPE, new ProjectChangedHandler() { @Override diff --git a/src/main/java/edu/stanford/bmir/protege/web/client/ui/projectfeed/ProjectFeedPanel.java b/src/main/java/edu/stanford/bmir/protege/web/client/ui/projectfeed/ProjectFeedPanel.java index a90c8d8371..391d76acf1 100644 --- a/src/main/java/edu/stanford/bmir/protege/web/client/ui/projectfeed/ProjectFeedPanel.java +++ b/src/main/java/edu/stanford/bmir/protege/web/client/ui/projectfeed/ProjectFeedPanel.java @@ -15,6 +15,7 @@ import edu.stanford.bmir.protege.web.shared.event.UserStoppedViewingProjectEvent; import edu.stanford.bmir.protege.web.shared.notes.NoteId; import edu.stanford.bmir.protege.web.shared.project.ProjectId; +import edu.stanford.bmir.protege.web.shared.selection.SelectionModel; import java.util.Date; import java.util.HashSet; @@ -35,6 +36,8 @@ public class ProjectFeedPanel extends Composite { private RevisionNumber lastRevisionNumber = RevisionNumber.getRevisionNumber(0); + private SelectionModel selectionModel; + private Timer elapsedTimesUpdateTimer = new Timer() { @Override public void run() { @@ -54,8 +57,9 @@ interface RollingProjectChangedEventPanelUiBinder extends UiBinder