📄 sampleaddviewerwordview.java
字号:
package com.hnjchina.example.editors;
import java.net.MalformedURLException;
import java.net.URL;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.GroupMarker;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.dialogs.InputDialog;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ComboBoxCellEditor;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.ListViewer;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.part.EditorPart;
import com.hnjchina.action.EnterPressAction;
import com.hnjchina.example.addviewer.ViewsPlugin;
import com.hnjchina.example.addviewer.Word;
import com.hnjchina.example.addviewer.WordContentProvider;
import com.hnjchina.example.addviewer.WordFile;
import com.hnjchina.securityManager.SecurityObject;
import com.hnjchina.securityManager.SecurityObjectCellModifier;
import com.hnjchina.securityManager.SecurityObjectContentProvider;
import com.hnjchina.securityManager.SecurityObjectEditor;
import com.hnjchina.securityManager.SecurityObjectLabelProvider;
import com.hnjchina.securityManager.SecurityObjectSorter;
import com.hnjchina.securityView.Logon;
public class SampleAddViewerWordView extends EditorPart{
WordFile input;
ListViewer viewer;
Action addItemAction, deleteItemAction, selectAllAction;
IMemento memento;
public void doSave(IProgressMonitor monitor) {}
public void doSaveAs() {
}
public void init(IEditorSite site, IEditorInput input) throws PartInitException {
setSite(site);
}
public boolean isDirty() {
return true;
}
public boolean isSaveAsAllowed() {
return false;
}
public void createPartControl(Composite parent) {
viewer=new ListViewer(parent);
viewer.setContentProvider(new WordContentProvider());
viewer.setLabelProvider(new LabelProvider());
viewer.setInput(input);
getSite().setSelectionProvider(viewer);
// Create menu and toolbars.
createActions();
createMenu();
createToolbar();
createContextMenu();
hookGlobalActions();
// Restore state from the previous session.
restoreState();
}
public void createActions() {
addItemAction = new Action("Add...") {
public void run() {
addItem();
}
};
addItemAction.setImageDescriptor(getImageDescriptor("add.gif"));
deleteItemAction = new Action("Delete") {
public void run() {
deleteItem();
}
};
deleteItemAction.setImageDescriptor(getImageDescriptor("delete.gif"));
selectAllAction = new Action("Select All") {
public void run() {
selectAll();
}
};
// Add selection listener.
viewer.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
updateActionEnablement();
}
});
}
private void createMenu() {
IMenuManager mgr = getEditorSite().getActionBars().getMenuManager();
mgr.add(selectAllAction);
}
private void createToolbar() {
IToolBarManager mgr = getEditorSite().getActionBars().getToolBarManager();
mgr.add(addItemAction);
mgr.add(deleteItemAction);
}
/**
* Create context menu.
*/
private void createContextMenu() {
// Create menu manager.
MenuManager menuMgr = new MenuManager();
menuMgr.setRemoveAllWhenShown(true);
menuMgr.addMenuListener(new IMenuListener() {
public void menuAboutToShow(IMenuManager mgr) {
fillContextMenu(mgr);
}
});
// Create menu.
Menu menu = menuMgr.createContextMenu(viewer.getControl());
viewer.getControl().setMenu(menu);
// Register menu for extension.
getSite().registerContextMenu(menuMgr, viewer);
}
/**
* Hook global actions
*/
private void hookGlobalActions() {
IActionBars bars = getEditorSite().getActionBars();
bars.setGlobalActionHandler(IWorkbenchActionConstants.SELECT_ALL, selectAllAction);
bars.setGlobalActionHandler(IWorkbenchActionConstants.DELETE, deleteItemAction);
viewer.getControl().addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent event) {
if (event.character == SWT.DEL &&
event.stateMask == 0 &&
deleteItemAction.isEnabled())
{
deleteItemAction.run();
}
}
});
}
private void fillContextMenu(IMenuManager mgr) {
mgr.add(addItemAction);
mgr.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
mgr.add(deleteItemAction);
mgr.add(new Separator());
mgr.add(selectAllAction);
}
private void updateActionEnablement() {
IStructuredSelection sel =
(IStructuredSelection)viewer.getSelection();
deleteItemAction.setEnabled(sel.size() > 0);
}
/**
* Add item to list.
*/
private void addItem() {
String name = promptForValue("Enter name:", null);
if (name != null) {
Word word = new Word(name);
input.add(word);
viewer.setSelection(new StructuredSelection(word));
}
}
/**
* Remove item from list.
*/
private void deleteItem() {
IStructuredSelection sel =
(IStructuredSelection)viewer.getSelection();
Iterator iter = sel.iterator();
while (iter.hasNext()) {
Word word = (Word)iter.next();
input.remove(word);
}
}
/**
* Select all items.
*/
private void selectAll() {
viewer.getList().selectAll();
updateActionEnablement();
}
/**
* Ask user for value.
*/
private String promptForValue(String text, String oldValue) {
InputDialog dlg = new InputDialog(getSite().getShell(),
"List View", text, oldValue, null);
if (dlg.open() != Window.OK)
return null;
return dlg.getValue();
}
/**
* Saves the object state within a memento.
*/
public void saveState(IMemento memento){
IStructuredSelection sel = (IStructuredSelection)viewer.getSelection();
if (sel.isEmpty())
return;
memento = memento.createChild("selection");
Iterator iter = sel.iterator();
while (iter.hasNext()) {
Word word = (Word)iter.next();
memento.createChild("descriptor", word.toString());
}
}
/**
* Restores the viewer state from the memento.
*/
private void restoreState() {
if (memento == null)
return;
memento = memento.getChild("selection");
if (memento != null) {
IMemento descriptors [] = memento.getChildren("descriptor");
if (descriptors.length > 0) {
ArrayList objList = new ArrayList(descriptors.length);
for (int nX = 0; nX < descriptors.length; nX ++) {
String id = descriptors[nX].getID();
Word word = input.find(id);
if (word != null)
objList.add(word);
}
viewer.setSelection(new StructuredSelection(objList));
}
}
memento = null;
updateActionEnablement();
}
private ImageDescriptor getImageDescriptor(String relativePath) {
String iconPath = "icons/";
try {
ViewsPlugin plugin = ViewsPlugin.getDefault();
// URL installURL = plugin.getDescriptor().getInstallURL();
URL installURL = new URL("F:\\Java\\eclipse\\workspace\\RCP");
URL url = new URL(installURL, iconPath + relativePath);
return ImageDescriptor.createFromURL(url);
}
catch (MalformedURLException e) {
// should not happen
return ImageDescriptor.getMissingImageDescriptor();
}
}
public void setFocus() {}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -