📄 securityobjectseditors.java
字号:
package com.hnjchina.example.editors;
import java.sql.ResultSet;
import java.sql.SQLException;
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.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ComboBoxCellEditor;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.part.EditorPart;
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 SecurityObjectsEditors extends EditorPart{
private TableViewer tv;
private Table table;
public SecurityObjectEditor security=new SecurityObjectEditor();
private Action addItemAction,deleteItemAction;
public void createPartControl(Composite parent) {
// Create a composite to hold the children
GridData gridData = new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.FILL_BOTH);
parent.setLayoutData (gridData);
// Set numColumns to 3 for the buttons
GridLayout layout = new GridLayout(3, false);
layout.marginWidth = 7;
parent.setLayout (layout);
createTable(parent);
createTableViewer();
createActions();
createMenu();
createToolbar();
createContextMenu();
setBackground(parent);
}
private void createTable(Composite parent) {
int style = SWT.SINGLE|SWT.BORDER|SWT.H_SCROLL|SWT.V_SCROLL|SWT.FULL_SELECTION|SWT.HIDE_SELECTION;
table = new Table(parent, style);
GridData gridData = new GridData(GridData.FILL_BOTH);
gridData.grabExcessVerticalSpace = true;
gridData.horizontalSpan = 3;
table.setLayoutData(gridData);
table.setHeaderVisible(true);
table.setLinesVisible(true);
TableColumn column = new TableColumn(table, SWT.LEFT,0);
column.setText("Application");
column.setWidth(80);
column=new TableColumn(table, SWT.LEFT,1);
column.setText("ObjectName");
column.setWidth(180);
column.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
tv.setSorter(new SecurityObjectSorter(SecurityObjectSorter.OBJECTNAME));
}
});
column=new TableColumn(table, SWT.LEFT,2);
column.setText("Description");
column.setWidth(200);
column.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
tv.setSorter(new SecurityObjectSorter(SecurityObjectSorter.DESCRIPTION));
}
});
column=new TableColumn(table, SWT.LEFT,3);
column.setText("ObjectType");
column.setWidth(80);
table.addKeyListener(new KeyAdapter(){
String ls_ret;
public void keyPressed(KeyEvent event){
switch (event.keyCode) {
case SWT.None:
ls_ret="null";
case SWT.KeyDown:
ls_ret="key down";
case SWT.KeyUp:
ls_ret="key up";
case SWT.MouseDown:
ls_ret="mouse down";
case SWT.MouseUp:
ls_ret="mouse up";
case SWT.MouseMove:
ls_ret="mouse move";
case SWT.MouseEnter:
ls_ret="mouse enter";
case SWT.MouseExit:
ls_ret="mouse exit";
case SWT.MouseDoubleClick:
ls_ret="mouse double click";
case SWT.Paint:
ls_ret="paint";
case SWT.Move:
ls_ret="move";
case SWT.Resize:
ls_ret="resize";
case SWT.Dispose:
ls_ret="dispose";
case SWT.Selection:
ls_ret="selection";
case SWT.DefaultSelection:
ls_ret="default selection";
case SWT.FocusIn:
ls_ret="focus in";
case SWT.FocusOut:
ls_ret="focus out";
case SWT.Expand:
ls_ret="expand";
case SWT.Collapse:
ls_ret="collapse";
case SWT.Iconify:
ls_ret="iconify";
case SWT.Deiconify:
ls_ret="deiconify";
case SWT.Close:
ls_ret="close";
case SWT.Show:
ls_ret="show";
case SWT.Hide:
ls_ret="hide";
case SWT.Modify:
ls_ret="modify";
case SWT.Verify:
ls_ret="verify";
case SWT.Activate:
ls_ret="activate";
case SWT.Deactivate:
ls_ret="deactivate";
case SWT.Help:
ls_ret="help";
case SWT.DragDetect:
ls_ret="drag detect";
case SWT.Arm:
ls_ret="arm";
case SWT.Traverse:
ls_ret="traverse";
case SWT.MouseHover:
ls_ret="mouse hover";
case SWT.HardKeyDown:
ls_ret="hard key down";
case SWT.HardKeyUp:
ls_ret="hard key up";
case SWT.MenuDetect:
ls_ret="menu detect";
}
System.out.println(ls_ret);
}
});
table.addMouseListener(new MouseAdapter() {
public void mouseDoubleClick(MouseEvent e) {//鼠标双击事件的方法
System.out.println("MouseDoubleClick");
}
public void MouseUp(MouseEvent e){
System.out.println("MouseEvent");
}
});
}
private void createTableViewer(){
tv = new TableViewer(table);
tv.setContentProvider(new SecurityObjectContentProvider());
tv.setLabelProvider(new SecurityObjectLabelProvider());
CellEditor[] editors = new CellEditor[4];
editors[0] = new ComboBoxCellEditor(table,security.getApplictArray(), SWT.READ_ONLY);
editors[1] = new TextCellEditor(table);
editors[2] = new TextCellEditor(table);
editors[3] = new TextCellEditor(table);
// // Set the editors, cell modifier, and column properties
tv.setColumnProperties(SecurityObjectEditor.PROPS);
tv.setCellModifier(new SecurityObjectCellModifier(tv));
tv.setCellEditors(editors);
tv.setInput(getSecurityObject());
// tv.setInput(security.getObject());
addItem();
addItem();
addItem();
}
private void createActions(){
addItemAction = new Action("Add"){
public void run(){
addItem();
}
};
deleteItemAction =new Action("Delete"){
public void run(){
deleteItem();
}
};
}
private void addItem(){
SecurityObject p = new SecurityObject();
p.setApplicat("Application");
p.setObjectName("ObjectName");
p.setDescription("Description");
p.setObjectType("ObjectType");
security.getObject().add(p);
tv.refresh();
table.setTopIndex(table.getTopIndex());
}
private void deleteItem(){
IStructuredSelection sel=(IStructuredSelection) tv.getSelection();
Iterator iter=sel.iterator();
while (iter.hasNext()){
SecurityObject secu=(SecurityObject)iter.next();
security.getObject().remove(secu);
}
tv.refresh();
}
private void createMenu(){
IMenuManager mgr=getEditorSite().getActionBars().getMenuManager();
mgr.add(addItemAction);
mgr.add(deleteItemAction);
}
private void createToolbar(){
IToolBarManager mgr=getEditorSite().getActionBars().getToolBarManager();
mgr.add(addItemAction);
mgr.add(deleteItemAction);
}
private void createContextMenu(){
MenuManager menuMgr=new MenuManager();
menuMgr.setRemoveAllWhenShown(true);
menuMgr.addMenuListener(new IMenuListener(){
public void menuAboutToShow(IMenuManager Mgr){
fillContextMenu(Mgr);
}
});
// Create menu.
Menu menu = menuMgr.createContextMenu(tv.getControl());
tv.getControl().setMenu(menu);
// Register menu for extension.
getSite().registerContextMenu(menuMgr,tv);
}
private void fillContextMenu(IMenuManager mgr){
mgr.add(addItemAction);
mgr.add(deleteItemAction);
}
public String[] getChoices(String property) {
if ("Application".equals(property))
return security.getApplictArray();
else
return new String[]{};
}
public void setFocus() {}
public List getSecurityObject(){
String ls_des;
Logon logon=new Logon();
ResultSet resultSet=logon.exesql("select b.application,a.window,a.description,a.objtype from security_objects a,security_apps b where a.appid=b.appid");
try {
while (resultSet.next())
{ SecurityObject p=new SecurityObject();
p.setApplicat(resultSet.getString("application"));
p.setObjectName(resultSet.getString("window"));
ls_des=resultSet.getString("description");
p.setDescription(ls_des);
p.setObjectType(resultSet.getInt("objtype")+"");
security.getObject().add(p);
}
} catch (SQLException e) {
e.printStackTrace();
}
return security.getObject();
}
public void doSave(IProgressMonitor monitor) {}
public void doSaveAs() { }
public void init(IEditorSite site, IEditorInput input) throws PartInitException {
setSite(site);
}
public boolean isDirty() {
return false;
}
public boolean isSaveAsAllowed() {
return false;
}
public void setBackground(Composite parent){
TableItem item[];
item=table.getItems();
for (int i=0;i<item.length;i++){
if (i%2==1) {
item[i].setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_GREEN));
// item[i].setForeground(parent.getDisplay().getSystemColor(SWT.COLOR_GREEN));
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -