package org.reldb.dbrowser.handlers;
import java.util.List;
import org.eclipse.e4.ui.di.AboutToHide;
import org.eclipse.e4.ui.di.AboutToShow;
import org.eclipse.e4.ui.model.application.ui.menu.MDirectMenuItem;
import org.eclipse.e4.ui.model.application.ui.menu.MMenuElement;
import org.eclipse.e4.ui.model.application.ui.menu.MMenuFactory;
import org.reldb.dbrowser.DBrowser;
public class ObtainRecentlyUsedDatabaseList {
@AboutToShow
public void aboutToShow(List<MMenuElement> items) {
String[] dbURLs = DBrowser.getRecentlyUsedDatabaseList();
if (dbURLs.length > 0) {
MMenuElement separator = MMenuFactory.INSTANCE.createMenuSeparator();
items.add(separator);
for (String dbURL: dbURLs) {
MDirectMenuItem menuItem = MMenuFactory.INSTANCE.createDirectMenuItem();
menuItem.setLabel("Open " + dbURL);
menuItem.setIconURI("platform:/plugin/RelUI/icons/" +
(dbURL.startsWith("db:") ? "OpenDBLocalIcon.png" : "OpenDBRemoteIcon.png"));
menuItem.setContributionURI("bundleclass://RelUI/org.reldb.dbrowser.handlers.OpenRecentlyUsed");
items.add(menuItem);
}
separator = MMenuFactory.INSTANCE.createMenuSeparator();
items.add(separator);
MDirectMenuItem managementItem = MMenuFactory.INSTANCE.createDirectMenuItem();
managementItem.setLabel("Clear above list of recently-opened databases");
managementItem.setContributionURI("bundleclass://RelUI/org.reldb.dbrowser.handlers.ClearRecentlyUsed");
items.add(managementItem);
managementItem = MMenuFactory.INSTANCE.createDirectMenuItem();
managementItem.setLabel("Manage list of recently-opened databases...");
managementItem.setContributionURI("bundleclass://RelUI/org.reldb.dbrowser.handlers.ManageRecentlyUsed");
items.add(managementItem);
}
}
@AboutToHide
public void aboutToHide(List<MMenuElement> items) {
}
}