blob: fb77f0deeac48857c7a3032e5cb308f28f2a3666 [file] [log] [blame]
package org.eclipse.update.internal.ui.manager;
/*
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.part.ViewPart;
import org.eclipse.swt.SWT;
import org.eclipse.jface.viewers.*;
import org.eclipse.jface.action.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.events.*;
import org.eclipse.update.internal.ui.UpdateUIPlugin;
import org.eclipse.ui.*;
/**
* Insert the type's description here.
* @see ViewPart
*/
public abstract class BaseTreeView extends ViewPart {
protected TreeViewer viewer;
private Action showDetailsAction;
private static final String KEY_SHOW_DETAILS = "BaseTreeView.Popup.ShowDetails";
/**
* The constructor.
*/
public BaseTreeView() {
}
public abstract void initProviders();
public void createPartControl(Composite parent) {
viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
viewer.setUseHashlookup(true);
initProviders();
//viewer.setInput(getInitialInput());
//initDragAndDrop();
//initRefreshKey();
//initRenameKey();
//updateTitle();
MenuManager menuMgr = new MenuManager("#PopupMenu");//$NON-NLS-1$
menuMgr.setRemoveAllWhenShown(true);
menuMgr.addMenuListener(new IMenuListener() {
public void menuAboutToShow(IMenuManager manager) {
manager.add(new GroupMarker("additions"));
BaseTreeView.this.fillContextMenu(manager);
}
});
Menu menu = menuMgr.createContextMenu(viewer.getTree());
viewer.getTree().setMenu(menu);
getSite().registerContextMenu(menuMgr, viewer);
makeActions();
viewer.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
handleSelectionChanged(event);
}
});
viewer.addDoubleClickListener(new IDoubleClickListener() {
public void doubleClick(DoubleClickEvent event) {
handleDoubleClick(event);
}
});
viewer.getControl().addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
handleKeyPressed(e);
}
});
fillActionBars();
getSite().setSelectionProvider(viewer);
/*
//if(memento != null) restoreState(memento);
//memento = null;
// Set help for the view
WorkbenchHelp.setHelp(viewer.getControl(), new ViewContextComputer(this, INavigatorHelpContextIds.RESOURCE_VIEW));
*/
partControlCreated();
}
protected void partControlCreated() {
}
public void setFocus() {
}
protected void fillContextMenu(IMenuManager manager) {
manager.add(showDetailsAction);
}
protected void makeActions() {
showDetailsAction = new Action() {
public void run() {
IWorkbenchPage page = UpdateUIPlugin.getActivePage();
try {
IViewPart part = page.showView(UpdatePerspective.ID_DETAILS);
((DetailsView)part).selectionChanged(BaseTreeView.this, viewer.getSelection());
}
catch (PartInitException e) {
UpdateUIPlugin.logException(e);
}
}
};
showDetailsAction.setText(UpdateUIPlugin.getResourceString(KEY_SHOW_DETAILS));
}
protected void handleSelectionChanged(SelectionChangedEvent e) {
}
protected void handleDoubleClick(DoubleClickEvent e) {
showDetailsAction.run();
}
protected void handleKeyPressed(KeyEvent e) {
}
protected void fillActionBars() {
}
}