Skip to content

Commit bef78ff

Browse files
Merge pull request #239 from protegeproject/manage-hierarchies-menu-item
Manage hierarchies menu item
2 parents 54806c9 + 6ce13d2 commit bef78ff

File tree

8 files changed

+77
-7
lines changed

8 files changed

+77
-7
lines changed

webprotege-gwt-ui-client/src/main/java/edu/stanford/bmir/protege/web/client/Messages.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1417,4 +1417,8 @@ public interface Messages extends com.google.gwt.i18n.client.Messages {
14171417
@DefaultMessage("Siblings ordering processed successfully ")
14181418
@Key("siblingsOrdering.processing.success")
14191419
String siblingsOrderingSuccessfullyProcessed();
1420+
1421+
@DefaultMessage("Manage hierarchies")
1422+
@Key("settings.managerHierarchies.title")
1423+
String setting_manageHierarchies();
14201424
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package edu.stanford.bmir.protege.web.client.hierarchy;
2+
3+
import com.google.gwt.place.shared.Place;
4+
import com.google.gwt.place.shared.PlaceController;
5+
import edu.stanford.bmir.protege.web.shared.project.ProjectId;
6+
7+
import javax.inject.Inject;
8+
9+
public class ManageHierarchiesHandler {
10+
11+
private final PlaceController placeController;
12+
13+
private final ProjectId projectId;
14+
15+
@Inject
16+
public ManageHierarchiesHandler(PlaceController placeController, ProjectId projectId) {
17+
this.placeController = placeController;
18+
this.projectId = projectId;
19+
}
20+
21+
public void handleManageHierarchies() {
22+
Place currentPlace = placeController.getWhere();
23+
placeController.goTo(ProjectHierarchiesPlace.get(projectId, currentPlace));
24+
}
25+
}

webprotege-gwt-ui-client/src/main/java/edu/stanford/bmir/protege/web/client/hierarchy/ProjectHierarchiesActivity.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,28 @@
22

33
import com.google.gwt.activity.shared.AbstractActivity;
44
import com.google.gwt.event.shared.EventBus;
5+
import com.google.gwt.place.shared.Place;
56
import com.google.gwt.user.client.ui.AcceptsOneWidget;
67

8+
import javax.annotation.Nullable;
9+
import java.util.Optional;
10+
711
public class ProjectHierarchiesActivity extends AbstractActivity {
812

913
private final ProjectHierarchiesPresenter presenter;
1014

11-
public ProjectHierarchiesActivity(ProjectHierarchiesPresenter presenter) {
15+
private final Optional<Place> nextPlace;
16+
17+
public ProjectHierarchiesActivity(ProjectHierarchiesPresenter presenter, Optional<Place> nextPlace) {
1218
this.presenter = presenter;
19+
this.nextPlace = nextPlace;
1320
}
1421

1522
@Override
1623
public void start(AcceptsOneWidget panel, EventBus eventBus) {
24+
presenter.setNextPlace(nextPlace);
1725
presenter.start(panel);
1826
}
27+
28+
1929
}

webprotege-gwt-ui-client/src/main/java/edu/stanford/bmir/protege/web/client/hierarchy/ProjectHierarchiesPlace.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,22 @@
55
import edu.stanford.bmir.protege.web.shared.project.HasProjectId;
66
import edu.stanford.bmir.protege.web.shared.project.ProjectId;
77

8+
import javax.annotation.Nonnull;
9+
import javax.annotation.Nullable;
10+
import java.util.Optional;
11+
812
@AutoValue
913
public abstract class ProjectHierarchiesPlace extends Place implements HasProjectId {
1014

11-
public static ProjectHierarchiesPlace get(ProjectId projectId) {
12-
return new AutoValue_ProjectHierarchiesPlace(projectId);
15+
public static ProjectHierarchiesPlace get(ProjectId projectId, @Nullable Place nextPlace) {
16+
return new AutoValue_ProjectHierarchiesPlace(projectId, nextPlace);
17+
}
18+
19+
@Nullable
20+
protected abstract Place getNextPlaceInternal();
21+
22+
@Nonnull
23+
public Optional<Place> getNextPlace() {
24+
return Optional.ofNullable(getNextPlaceInternal());
1325
}
1426
}

webprotege-gwt-ui-client/src/main/java/edu/stanford/bmir/protege/web/client/hierarchy/ProjectHierarchiesPlaceTokenizer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public ProjectHierarchiesPlace getPlace(String token) {
3333
}
3434
MatchResult matchResult = pattern.exec(trimmedToken);
3535
String projectIdString = matchResult.getGroup(1);
36-
return ProjectHierarchiesPlace.get(ProjectId.get(projectIdString));
36+
return ProjectHierarchiesPlace.get(ProjectId.get(projectIdString), null);
3737
}
3838

3939
@Override

webprotege-gwt-ui-client/src/main/java/edu/stanford/bmir/protege/web/client/hierarchy/ProjectHierarchiesPresenter.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package edu.stanford.bmir.protege.web.client.hierarchy;
22

3+
import com.google.gwt.place.shared.Place;
34
import com.google.gwt.user.client.Window;
45
import com.google.gwt.user.client.ui.AcceptsOneWidget;
56
import edu.stanford.bmir.protege.web.client.dispatch.DispatchServiceManager;
@@ -13,6 +14,7 @@
1314
import javax.annotation.Nonnull;
1415
import javax.inject.Inject;
1516
import java.util.List;
17+
import java.util.Optional;
1618

1719
public class ProjectHierarchiesPresenter {
1820

@@ -54,4 +56,7 @@ private void handleApply() {
5456
});
5557
}
5658

59+
public void setNextPlace(Optional<Place> place) {
60+
settingsPresenter.setNextPlace(place);
61+
}
5762
}

webprotege-gwt-ui-client/src/main/java/edu/stanford/bmir/protege/web/client/place/WebProtegeActivityMapper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ public Activity getActivity(final Place place) {
242242
if(place instanceof ProjectHierarchiesPlace) {
243243
ProjectHierarchiesPlace projectHierarchiesPlace = (ProjectHierarchiesPlace) place;
244244
ProjectHierarchiesPresenter presenter = getProjectHierarchiesPresenter(projectHierarchiesPlace);
245-
return new ProjectHierarchiesActivity(presenter);
245+
return new ProjectHierarchiesActivity(presenter, projectHierarchiesPlace.getNextPlace());
246246
}
247247

248248
return null;

webprotege-gwt-ui-client/src/main/java/edu/stanford/bmir/protege/web/client/project/ProjectMenuPresenter.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import edu.stanford.bmir.protege.web.client.Messages;
77
import edu.stanford.bmir.protege.web.client.action.AbstractUiAction;
88
import edu.stanford.bmir.protege.web.client.app.Presenter;
9+
import edu.stanford.bmir.protege.web.client.hierarchy.ManageHierarchiesHandler;
910
import edu.stanford.bmir.protege.web.client.permissions.LoggedInUserProjectCapabilityChecker;
1011
import edu.stanford.bmir.protege.web.client.projectsettings.ProjectSettingsDownloader;
1112
import edu.stanford.bmir.protege.web.client.projectsettings.ProjectSettingsImporter;
@@ -48,6 +49,8 @@ public class ProjectMenuPresenter implements HasDispose, Presenter {
4849

4950
private final ProjectSettingsImporter projectSettingsImporter;
5051

52+
private final ManageHierarchiesHandler manageHierarchiesHandler;
53+
5154

5255
private final AbstractUiAction editProjectSettings = new AbstractUiAction(MESSAGES.projectSettings()) {
5356
@Override
@@ -112,6 +115,13 @@ public void execute() {
112115
}
113116
};
114117

118+
private final AbstractUiAction manageHierarchies = new AbstractUiAction(MESSAGES.setting_manageHierarchies()) {
119+
@Override
120+
public void execute() {
121+
manageHierarchiesHandler.handleManageHierarchies();
122+
}
123+
};
124+
115125
@Inject
116126
public ProjectMenuPresenter(LoggedInUserProjectCapabilityChecker capabilityChecker,
117127
ProjectMenuView view,
@@ -123,7 +133,8 @@ public ProjectMenuPresenter(LoggedInUserProjectCapabilityChecker capabilityCheck
123133
EditProjectTagsUIActionHandler editProjectTagsUIActionHandler,
124134
EditProjectFormsUiHandler editProjectFormsUiHandler,
125135
ProjectSettingsDownloader projectSettingsDownloader,
126-
ProjectSettingsImporter projectSettingsImporter) {
136+
ProjectSettingsImporter projectSettingsImporter,
137+
ManageHierarchiesHandler manageHierarchiesHandler) {
127138
this.capabilityChecker = capabilityChecker;
128139
this.view = view;
129140
this.showProjectDetailsHandler = showProjectDetailsHandler;
@@ -135,6 +146,7 @@ public ProjectMenuPresenter(LoggedInUserProjectCapabilityChecker capabilityCheck
135146
this.editProjectFormsUiHandler = editProjectFormsUiHandler;
136147
this.projectSettingsDownloader = projectSettingsDownloader;
137148
this.projectSettingsImporter = projectSettingsImporter;
149+
this.manageHierarchiesHandler = manageHierarchiesHandler;
138150
setupActions();
139151
}
140152

@@ -143,6 +155,7 @@ public void start(@Nonnull AcceptsOneWidget container, @Nonnull EventBus eventBu
143155
uploadAndMerge.setEnabled(false);
144156
uploadAndMergeAdditions.setEnabled(false);
145157
uploadSiblingsOrdering.setEnabled(false);
158+
manageHierarchies.setEnabled(false);
146159
displayButton(container);
147160
capabilityChecker.hasCapability(EDIT_PROJECT_SETTINGS, editProjectSettings::setEnabled);
148161
capabilityChecker.hasCapability(UPLOAD_AND_MERGE, uploadAndMerge::setEnabled);
@@ -153,7 +166,7 @@ public void start(@Nonnull AcceptsOneWidget container, @Nonnull EventBus eventBu
153166
capabilityChecker.hasCapability(EDIT_PROJECT_SETTINGS, importSettings::setEnabled);
154167
capabilityChecker.hasCapability(UPLOAD_AND_MERGE_ADDITIONS, uploadAndMergeAdditions::setEnabled);
155168
capabilityChecker.hasCapability(EDIT_ONTOLOGY, uploadSiblingsOrdering::setEnabled);
156-
169+
capabilityChecker.hasCapability(EDIT_PROJECT_SETTINGS, manageHierarchies::setEnabled);
157170
}
158171

159172
public void dispose() {
@@ -169,6 +182,7 @@ private void setupActions() {
169182
view.addMenuAction(editProjectTags);
170183
view.addMenuAction(editProjectForms);
171184
view.addMenuAction(editProjectPrefixes);
185+
view.addMenuAction(manageHierarchies);
172186
view.addSeparator();
173187
view.addMenuAction(uploadSiblingsOrdering);
174188
view.addSeparator();

0 commit comments

Comments
 (0)