package org.pentaho.mantle.client.solutionbrowser.tree;
import org.pentaho.mantle.client.messages.Messages;
import org.pentaho.mantle.client.solutionbrowser.MantlePopupPanel;
import org.pentaho.mantle.client.solutionbrowser.filelist.FileCommand;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.MenuBar;
import com.google.gwt.user.client.ui.MenuItem;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.SimplePanel;
public class SolutionTreeWrapper extends SimplePanel {
public SolutionTreeWrapper(SolutionTree tree) {
super();
add(tree);
setStyleName("files-list-panel"); //$NON-NLS-1$
sinkEvents(Event.MOUSEEVENTS);
}
public void onBrowserEvent(Event event) {
if (((DOM.eventGetButton(event) & Event.BUTTON_RIGHT) == Event.BUTTON_RIGHT && (DOM.eventGetType(event) & Event.ONMOUSEUP) == Event.ONMOUSEUP)) {
// bring up a popup with 'create new folder' option
final int left = Window.getScrollLeft() + DOM.eventGetClientX(event);
final int top = Window.getScrollTop() + DOM.eventGetClientY(event);
handleRightClick(left, top);
} else {
super.onBrowserEvent(event);
}
}
private void handleRightClick(int left, int top) {
final PopupPanel popupMenu = MantlePopupPanel.getInstance(true);
popupMenu.setPopupPosition(left, top);
MenuBar menuBar = new MenuBar(true);
menuBar.setAutoOpen(true);
menuBar.addItem(new MenuItem(Messages.getString("createNewFolderEllipsis"), new FileCommand(FileCommand.COMMAND.CREATE_FOLDER, popupMenu)));
popupMenu.setWidget(menuBar);
popupMenu.show();
}
}