SWT/JFACE学习积累
2007-10-29 18:38
330 查看
package com.winscad.util;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.CheckboxCellEditor;
import org.eclipse.jface.viewers.ICellModifier;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Dialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Item;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.internal.UIPlugin;
import com.swtdesigner.SWTResourceManager;
import com.winscad.bean.DeviceValue;
import com.winscad.bean.ItemInfoInit;
import com.winscad.facade.system.BlackListFacade;
import com.winscad.login.LayoutUtil;
import com.winscad.login.SuperContext;
import com.winscad.view.project.AssetInfoDetail;
import com.winscad.view.system.BlackListView;
public class SelectDevice extends Dialog{
public Table tselectDevice;
public TableViewer tvselectDevice;
String[] colNames=new String[] {
"直放站名称",//直放站名称
"设备厂家",//设备厂家
"设备类型",//设备类型
"业务区"//业务区
};
List deveceList=new ArrayList();
String condition="";
FilterAllAction filterAllAction;
FilterAction_DeviceName filterAction_DeviceName;
FilterAction_FactoryName filterAction_FactoryName;
FilterAction_DeviceCategory filterAction_DeviceCategory;
FilterAction_RegionName filterAction_RegionName;
public SelectDevice(Shell parent) {
super(parent);
}
public void open(){
final Shell parent = getParent();
final Shell selectDevice = new Shell(parent,SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
final BlackListFacade blackListFacade = new BlackListFacade();
selectDevice.setSize(500,360);
selectDevice.setText("直放站选择");//直放站选择
LayoutUtil.centerShell(Display.getCurrent(),selectDevice);
final Label labelPlace = new Label(selectDevice, SWT.NONE);
labelPlace.setText("直放站名称:");//直放站名称
labelPlace.setBounds(25, 18, 70, 15);
final Text devicename=new Text(selectDevice, SWT.NONE|SWT.BORDER);
devicename.setBounds(100, 15, 100, 20);
final Button queryButton=new Button(selectDevice,SWT.NONE);
queryButton.setBounds(205, 15, 50, 20);
queryButton.setText("查询");
//查询所有的直放站
condition+="and a.Status=0";
deveceList=ItemInfoInit.selectDevice(condition);
//实例化表格
tselectDevice=new Table(selectDevice,SWT.BORDER | SWT.SINGLE| SWT.FULL_SELECTION);
tselectDevice.setLinesVisible(true);
tselectDevice.setBounds(25, 37, 500, 252);
final MenuManager menu = new MenuManager();
filterAllAction = new FilterAllAction();
filterAction_DeviceName=new FilterAction_DeviceName();
filterAction_DeviceCategory = new FilterAction_DeviceCategory();
filterAction_RegionName = new FilterAction_RegionName();
filterAction_FactoryName = new FilterAction_FactoryName();
menu.add(new FilterAction());
menu.add(new Separator());
menu.add(filterAllAction);
menu.add(filterAction_DeviceName);
menu.add(filterAction_FactoryName);
menu.add(filterAction_DeviceCategory);
menu.add(filterAction_RegionName);
final Menu m = menu.createContextMenu(selectDevice);
tselectDevice.addMouseListener(new MouseListener(){
public void mouseDoubleClick(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseDown(MouseEvent e) {
// TODO Auto-generated method stub
if(e.button == 3){
if(deveceList.size()>0){
IStructuredSelection selection = (IStructuredSelection) tvselectDevice.getSelection();
ItemInfoInit bi = (ItemInfoInit) selection.getFirstElement();
if(bi!=null){
tselectDevice.setMenu(m);
}
}
}
}
public void mouseUp(MouseEvent e) {
// TODO Auto-generated method stub
}
});
//定义表格列
TableColumn deviceName = new TableColumn(tselectDevice, SWT.LEFT);
deviceName.setText(colNames[0]);
TableColumn factoryName = new TableColumn(tselectDevice,SWT.LEFT);
factoryName.setText(colNames[1]);
TableColumn categoryName = new TableColumn(tselectDevice,SWT.LEFT);
categoryName.setText(colNames[2]);
TableColumn regionName = new TableColumn(tselectDevice,SWT.LEFT);
regionName.setText(colNames[3]);
//设置列宽
deviceName.setWidth(100);
factoryName.setWidth(100);
categoryName.setWidth(170);
regionName.setWidth(100);
//实例化表格视图
tvselectDevice = new TableViewer(tselectDevice);
tvselectDevice.getTable().setLinesVisible(true);
tvselectDevice.getTable().setHeaderVisible(true);
tvselectDevice.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
// 设定表的内容管理器
tvselectDevice.setContentProvider(new IStructuredContentProvider()
{
public Object[] getElements(Object inputElement)
{
//通过输入的数据建表
Vector v = (Vector) inputElement;
return v.toArray();
}
public void dispose()
{
System.out.println("Disposing ...");
}
public void inputChanged(Viewer viewer, Object oldInput,
Object newInput)
{
System.out.println("Input changed: old=" + oldInput
+ ", new=" + newInput);
}
});
// 设定表的标签管理器
tvselectDevice.setLabelProvider(new ITableLabelProvider()
{
public Image getColumnImage(Object element, int columnIndex)
{
return null;
}
public String getColumnText(Object element, int columnIndex)
{
ItemInfoInit init = (ItemInfoInit)element;
switch(columnIndex)
{
case 0:
return init.deviceName;
case 1:
return init.factoryName;
case 2:
return init.categoryName;
case 3:
return init.regionName;
}
return null;
}
public void addListener(ILabelProviderListener listener)
{
// TODO Auto-generated method stub
}
public void dispose() {
// TODO Auto-generated method stub
}
public boolean isLabelProperty(Object element, String property) {
// TODO Auto-generated method stub
return false;
}
public void removeListener(ILabelProviderListener listener) {
// TODO Auto-generated method stub
}
});
tvselectDevice.setColumnProperties(colNames);
final CellEditor[] cellEditors = new CellEditor[4];
cellEditors[0] = new CheckboxCellEditor(tselectDevice, SWT.RADIO);
cellEditors[1] = cellEditors[0];
cellEditors[2] = cellEditors[0];
cellEditors[3] = cellEditors[0];
tvselectDevice.setCellEditors(cellEditors);
tvselectDevice.setCellModifier(new ICellModifier()
{
public boolean canModify(Object element, String property)
{
// TODO Auto-generated method stub
return true;
}
public Object getValue(Object element, String property)
{
// TODO Auto-generated method stub
int index = -1;
for (int i = 0; i < colNames.length; i++)
{
if (colNames[i].equals(property))
{
index = i;
break;
}
}
ItemInfoInit init = (ItemInfoInit)element;
switch(index)
{
case 0:
return init.deviceName;
case 1:
return init.factoryName;
case 2:
return init.categoryName;
case 3:
return init.regionName;
}
return null;
}
public void modify(Object element, String property, Object value)
{
// TODO Auto-generated method stub
System.out.println("Modify: " + element + ", " + property
+ ", " + value);
// Get the index first.
int index = -1;
for (int i = 0; i < colNames.length; i++)
{
if (colNames[i].equals(property))
{
index = i;
break;
}
}
ItemInfoInit init = null;
if (element instanceof Item)
{
TableItem item = (TableItem) element;
init = (ItemInfoInit) item.getData();
}
else
{
init = (ItemInfoInit) element;
}
switch(index)
{
case 0:
init.deviceName=(String)value;
break;
case 1:
init.factoryName=(String)value;
break;
case 2:
init.categoryName=(String)value;
break;
case 3:
init.regionName=(String)value;
break;
}
tvselectDevice.update(init, null);
}
});
tvselectDevice.setInput(deveceList);
//鼠标双击事件
tvselectDevice.getTable().addMouseListener(new MouseAdapter()
{
public void mouseDoubleClick(MouseEvent e)
{
IStructuredSelection selection = (IStructuredSelection) tvselectDevice.getSelection();
ItemInfoInit bi = (ItemInfoInit) selection.getFirstElement();
if(bi!=null){
BlackListView blackListView = (BlackListView)UIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(BlackListView.ID);
blackListView.deviceID.setText(bi.deviceName);
SuperContext context=SuperContext.getInstance();
if(context.getViewID().equals(BlackListView.ID)){
String strSignNumber = blackListFacade.queryPhone(bi.deviceid);
if(strSignNumber!=null){
blackListView.signNumber.setText(strSignNumber);
}
}
DeviceValue value=DeviceValue.getInstance();
value.setDeviceID(bi.deviceid);
selectDevice.close();
}
}
});
//查询按钮事件
queryButton.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
if(devicename.getText()!=null&&!"".equals(devicename.getText())){
condition+="and a.DeviceName like '%"+devicename.getText()+"%'";
deveceList=ItemInfoInit.selectDevice(condition);
tvselectDevice.setInput(deveceList);
}else{
deveceList=ItemInfoInit.selectDevice(condition);
tvselectDevice.setInput(deveceList);
}
}
});
selectDevice.open();
Display display = parent.getDisplay();
while(!selectDevice.isDisposed())
{
if(!display.readAndDispatch())
{
display.sleep();
}
}
}
//筛选类型
public class FilterAction extends Action {
ViewerFilter regionCategoryFilter;
public FilterAction() {
super("筛选类型");// 筛选类型
}
public void run() {
}
}
//全部
public class FilterAllAction extends Action {
ViewerFilter regionCategoryFilter;
public FilterAllAction() {
super("全部", AS_CHECK_BOX);// 全部
}
public void run() {
ViewerFilter[] viewerFilters = tvselectDevice.getFilters();
for (int i = 0; i < viewerFilters.length; i++) {
tvselectDevice.removeFilter(viewerFilters[i]);
}
filterAction_DeviceName.setChecked(false);
filterAction_DeviceCategory.setChecked(false);
filterAction_RegionName.setChecked(false);
filterAction_FactoryName.setChecked(false);
}
}
// 直放站名称
public class FilterAction_DeviceName extends Action {
ViewerFilter deviceNameFilter;
public FilterAction_DeviceName() {
super(colNames[0], AS_CHECK_BOX);
deviceNameFilter = new ViewerFilter() {
public boolean select(Viewer viewer, Object parentElement,
Object element) {
ItemInfoInit regionListInit = (ItemInfoInit) element;
IStructuredSelection selection = (IStructuredSelection) tvselectDevice.getSelection();
ItemInfoInit bi = (ItemInfoInit) selection.getFirstElement();
return regionListInit.deviceName.equals(bi.deviceName);
}
};
this.setChecked(false);
}
public void run() {
if (isChecked()) {
tvselectDevice.addFilter(deviceNameFilter);
} else {
tvselectDevice.removeFilter(deviceNameFilter);
}
tvselectDevice.refresh();
filterAllAction.setChecked(false);
}
}
// 设备类型
public class FilterAction_DeviceCategory extends Action {
ViewerFilter deviceCategoryFilter;
public FilterAction_DeviceCategory() {
super(colNames[2], AS_CHECK_BOX);
deviceCategoryFilter = new ViewerFilter() {
public boolean select(Viewer viewer, Object parentElement,Object element) {
ItemInfoInit regionListInit = (ItemInfoInit) element;
IStructuredSelection selection = (IStructuredSelection) tvselectDevice.getSelection();
ItemInfoInit bi = (ItemInfoInit) selection.getFirstElement();
return regionListInit.categoryName.equals(bi.categoryName);
}
};
this.setChecked(false);
}
public void run() {
if (isChecked()) {
tvselectDevice.addFilter(deviceCategoryFilter);
} else {
tvselectDevice.removeFilter(deviceCategoryFilter);
}
tvselectDevice.refresh();
filterAllAction.setChecked(false);
}
}
//设备厂家
public class FilterAction_FactoryName extends Action {
ViewerFilter factoryNameFilter;
public FilterAction_FactoryName() {
super(colNames[1], AS_CHECK_BOX);
factoryNameFilter = new ViewerFilter() {
public boolean select(Viewer viewer, Object parentElement,Object element) {
ItemInfoInit regionListInit = (ItemInfoInit) element;
IStructuredSelection selection = (IStructuredSelection) tvselectDevice.getSelection();
ItemInfoInit bi = (ItemInfoInit) selection.getFirstElement();
return regionListInit.factoryName.equals(bi.factoryName);
}
};
this.setChecked(false);
}
public void run() {
if (isChecked()) {
tvselectDevice.addFilter(factoryNameFilter);
} else {
tvselectDevice.removeFilter(factoryNameFilter);
}
tvselectDevice.refresh();
filterAllAction.setChecked(false);
}
}
// 归属业务区
public class FilterAction_RegionName extends Action {
ViewerFilter regionNameFilter;
public FilterAction_RegionName() {
super(colNames[3], AS_CHECK_BOX);
regionNameFilter = new ViewerFilter() {
public boolean select(Viewer viewer, Object parentElement,Object element) {
ItemInfoInit regionListInit = (ItemInfoInit) element;
IStructuredSelection selection = (IStructuredSelection) tvselectDevice.getSelection();
ItemInfoInit bi = (ItemInfoInit) selection.getFirstElement();
return regionListInit.regionName.equals(bi.regionName);
}
};
this.setChecked(false);
}
public void run() {
if (isChecked()) {
tvselectDevice.addFilter(regionNameFilter);
} else {
tvselectDevice.removeFilter(regionNameFilter);
}
tvselectDevice.refresh();
filterAllAction.setChecked(false);
}
}
}
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.CheckboxCellEditor;
import org.eclipse.jface.viewers.ICellModifier;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Dialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Item;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.internal.UIPlugin;
import com.swtdesigner.SWTResourceManager;
import com.winscad.bean.DeviceValue;
import com.winscad.bean.ItemInfoInit;
import com.winscad.facade.system.BlackListFacade;
import com.winscad.login.LayoutUtil;
import com.winscad.login.SuperContext;
import com.winscad.view.project.AssetInfoDetail;
import com.winscad.view.system.BlackListView;
public class SelectDevice extends Dialog{
public Table tselectDevice;
public TableViewer tvselectDevice;
String[] colNames=new String[] {
"直放站名称",//直放站名称
"设备厂家",//设备厂家
"设备类型",//设备类型
"业务区"//业务区
};
List deveceList=new ArrayList();
String condition="";
FilterAllAction filterAllAction;
FilterAction_DeviceName filterAction_DeviceName;
FilterAction_FactoryName filterAction_FactoryName;
FilterAction_DeviceCategory filterAction_DeviceCategory;
FilterAction_RegionName filterAction_RegionName;
public SelectDevice(Shell parent) {
super(parent);
}
public void open(){
final Shell parent = getParent();
final Shell selectDevice = new Shell(parent,SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
final BlackListFacade blackListFacade = new BlackListFacade();
selectDevice.setSize(500,360);
selectDevice.setText("直放站选择");//直放站选择
LayoutUtil.centerShell(Display.getCurrent(),selectDevice);
final Label labelPlace = new Label(selectDevice, SWT.NONE);
labelPlace.setText("直放站名称:");//直放站名称
labelPlace.setBounds(25, 18, 70, 15);
final Text devicename=new Text(selectDevice, SWT.NONE|SWT.BORDER);
devicename.setBounds(100, 15, 100, 20);
final Button queryButton=new Button(selectDevice,SWT.NONE);
queryButton.setBounds(205, 15, 50, 20);
queryButton.setText("查询");
//查询所有的直放站
condition+="and a.Status=0";
deveceList=ItemInfoInit.selectDevice(condition);
//实例化表格
tselectDevice=new Table(selectDevice,SWT.BORDER | SWT.SINGLE| SWT.FULL_SELECTION);
tselectDevice.setLinesVisible(true);
tselectDevice.setBounds(25, 37, 500, 252);
final MenuManager menu = new MenuManager();
filterAllAction = new FilterAllAction();
filterAction_DeviceName=new FilterAction_DeviceName();
filterAction_DeviceCategory = new FilterAction_DeviceCategory();
filterAction_RegionName = new FilterAction_RegionName();
filterAction_FactoryName = new FilterAction_FactoryName();
menu.add(new FilterAction());
menu.add(new Separator());
menu.add(filterAllAction);
menu.add(filterAction_DeviceName);
menu.add(filterAction_FactoryName);
menu.add(filterAction_DeviceCategory);
menu.add(filterAction_RegionName);
final Menu m = menu.createContextMenu(selectDevice);
tselectDevice.addMouseListener(new MouseListener(){
public void mouseDoubleClick(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseDown(MouseEvent e) {
// TODO Auto-generated method stub
if(e.button == 3){
if(deveceList.size()>0){
IStructuredSelection selection = (IStructuredSelection) tvselectDevice.getSelection();
ItemInfoInit bi = (ItemInfoInit) selection.getFirstElement();
if(bi!=null){
tselectDevice.setMenu(m);
}
}
}
}
public void mouseUp(MouseEvent e) {
// TODO Auto-generated method stub
}
});
//定义表格列
TableColumn deviceName = new TableColumn(tselectDevice, SWT.LEFT);
deviceName.setText(colNames[0]);
TableColumn factoryName = new TableColumn(tselectDevice,SWT.LEFT);
factoryName.setText(colNames[1]);
TableColumn categoryName = new TableColumn(tselectDevice,SWT.LEFT);
categoryName.setText(colNames[2]);
TableColumn regionName = new TableColumn(tselectDevice,SWT.LEFT);
regionName.setText(colNames[3]);
//设置列宽
deviceName.setWidth(100);
factoryName.setWidth(100);
categoryName.setWidth(170);
regionName.setWidth(100);
//实例化表格视图
tvselectDevice = new TableViewer(tselectDevice);
tvselectDevice.getTable().setLinesVisible(true);
tvselectDevice.getTable().setHeaderVisible(true);
tvselectDevice.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
// 设定表的内容管理器
tvselectDevice.setContentProvider(new IStructuredContentProvider()
{
public Object[] getElements(Object inputElement)
{
//通过输入的数据建表
Vector v = (Vector) inputElement;
return v.toArray();
}
public void dispose()
{
System.out.println("Disposing ...");
}
public void inputChanged(Viewer viewer, Object oldInput,
Object newInput)
{
System.out.println("Input changed: old=" + oldInput
+ ", new=" + newInput);
}
});
// 设定表的标签管理器
tvselectDevice.setLabelProvider(new ITableLabelProvider()
{
public Image getColumnImage(Object element, int columnIndex)
{
return null;
}
public String getColumnText(Object element, int columnIndex)
{
ItemInfoInit init = (ItemInfoInit)element;
switch(columnIndex)
{
case 0:
return init.deviceName;
case 1:
return init.factoryName;
case 2:
return init.categoryName;
case 3:
return init.regionName;
}
return null;
}
public void addListener(ILabelProviderListener listener)
{
// TODO Auto-generated method stub
}
public void dispose() {
// TODO Auto-generated method stub
}
public boolean isLabelProperty(Object element, String property) {
// TODO Auto-generated method stub
return false;
}
public void removeListener(ILabelProviderListener listener) {
// TODO Auto-generated method stub
}
});
tvselectDevice.setColumnProperties(colNames);
final CellEditor[] cellEditors = new CellEditor[4];
cellEditors[0] = new CheckboxCellEditor(tselectDevice, SWT.RADIO);
cellEditors[1] = cellEditors[0];
cellEditors[2] = cellEditors[0];
cellEditors[3] = cellEditors[0];
tvselectDevice.setCellEditors(cellEditors);
tvselectDevice.setCellModifier(new ICellModifier()
{
public boolean canModify(Object element, String property)
{
// TODO Auto-generated method stub
return true;
}
public Object getValue(Object element, String property)
{
// TODO Auto-generated method stub
int index = -1;
for (int i = 0; i < colNames.length; i++)
{
if (colNames[i].equals(property))
{
index = i;
break;
}
}
ItemInfoInit init = (ItemInfoInit)element;
switch(index)
{
case 0:
return init.deviceName;
case 1:
return init.factoryName;
case 2:
return init.categoryName;
case 3:
return init.regionName;
}
return null;
}
public void modify(Object element, String property, Object value)
{
// TODO Auto-generated method stub
System.out.println("Modify: " + element + ", " + property
+ ", " + value);
// Get the index first.
int index = -1;
for (int i = 0; i < colNames.length; i++)
{
if (colNames[i].equals(property))
{
index = i;
break;
}
}
ItemInfoInit init = null;
if (element instanceof Item)
{
TableItem item = (TableItem) element;
init = (ItemInfoInit) item.getData();
}
else
{
init = (ItemInfoInit) element;
}
switch(index)
{
case 0:
init.deviceName=(String)value;
break;
case 1:
init.factoryName=(String)value;
break;
case 2:
init.categoryName=(String)value;
break;
case 3:
init.regionName=(String)value;
break;
}
tvselectDevice.update(init, null);
}
});
tvselectDevice.setInput(deveceList);
//鼠标双击事件
tvselectDevice.getTable().addMouseListener(new MouseAdapter()
{
public void mouseDoubleClick(MouseEvent e)
{
IStructuredSelection selection = (IStructuredSelection) tvselectDevice.getSelection();
ItemInfoInit bi = (ItemInfoInit) selection.getFirstElement();
if(bi!=null){
BlackListView blackListView = (BlackListView)UIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(BlackListView.ID);
blackListView.deviceID.setText(bi.deviceName);
SuperContext context=SuperContext.getInstance();
if(context.getViewID().equals(BlackListView.ID)){
String strSignNumber = blackListFacade.queryPhone(bi.deviceid);
if(strSignNumber!=null){
blackListView.signNumber.setText(strSignNumber);
}
}
DeviceValue value=DeviceValue.getInstance();
value.setDeviceID(bi.deviceid);
selectDevice.close();
}
}
});
//查询按钮事件
queryButton.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
if(devicename.getText()!=null&&!"".equals(devicename.getText())){
condition+="and a.DeviceName like '%"+devicename.getText()+"%'";
deveceList=ItemInfoInit.selectDevice(condition);
tvselectDevice.setInput(deveceList);
}else{
deveceList=ItemInfoInit.selectDevice(condition);
tvselectDevice.setInput(deveceList);
}
}
});
selectDevice.open();
Display display = parent.getDisplay();
while(!selectDevice.isDisposed())
{
if(!display.readAndDispatch())
{
display.sleep();
}
}
}
//筛选类型
public class FilterAction extends Action {
ViewerFilter regionCategoryFilter;
public FilterAction() {
super("筛选类型");// 筛选类型
}
public void run() {
}
}
//全部
public class FilterAllAction extends Action {
ViewerFilter regionCategoryFilter;
public FilterAllAction() {
super("全部", AS_CHECK_BOX);// 全部
}
public void run() {
ViewerFilter[] viewerFilters = tvselectDevice.getFilters();
for (int i = 0; i < viewerFilters.length; i++) {
tvselectDevice.removeFilter(viewerFilters[i]);
}
filterAction_DeviceName.setChecked(false);
filterAction_DeviceCategory.setChecked(false);
filterAction_RegionName.setChecked(false);
filterAction_FactoryName.setChecked(false);
}
}
// 直放站名称
public class FilterAction_DeviceName extends Action {
ViewerFilter deviceNameFilter;
public FilterAction_DeviceName() {
super(colNames[0], AS_CHECK_BOX);
deviceNameFilter = new ViewerFilter() {
public boolean select(Viewer viewer, Object parentElement,
Object element) {
ItemInfoInit regionListInit = (ItemInfoInit) element;
IStructuredSelection selection = (IStructuredSelection) tvselectDevice.getSelection();
ItemInfoInit bi = (ItemInfoInit) selection.getFirstElement();
return regionListInit.deviceName.equals(bi.deviceName);
}
};
this.setChecked(false);
}
public void run() {
if (isChecked()) {
tvselectDevice.addFilter(deviceNameFilter);
} else {
tvselectDevice.removeFilter(deviceNameFilter);
}
tvselectDevice.refresh();
filterAllAction.setChecked(false);
}
}
// 设备类型
public class FilterAction_DeviceCategory extends Action {
ViewerFilter deviceCategoryFilter;
public FilterAction_DeviceCategory() {
super(colNames[2], AS_CHECK_BOX);
deviceCategoryFilter = new ViewerFilter() {
public boolean select(Viewer viewer, Object parentElement,Object element) {
ItemInfoInit regionListInit = (ItemInfoInit) element;
IStructuredSelection selection = (IStructuredSelection) tvselectDevice.getSelection();
ItemInfoInit bi = (ItemInfoInit) selection.getFirstElement();
return regionListInit.categoryName.equals(bi.categoryName);
}
};
this.setChecked(false);
}
public void run() {
if (isChecked()) {
tvselectDevice.addFilter(deviceCategoryFilter);
} else {
tvselectDevice.removeFilter(deviceCategoryFilter);
}
tvselectDevice.refresh();
filterAllAction.setChecked(false);
}
}
//设备厂家
public class FilterAction_FactoryName extends Action {
ViewerFilter factoryNameFilter;
public FilterAction_FactoryName() {
super(colNames[1], AS_CHECK_BOX);
factoryNameFilter = new ViewerFilter() {
public boolean select(Viewer viewer, Object parentElement,Object element) {
ItemInfoInit regionListInit = (ItemInfoInit) element;
IStructuredSelection selection = (IStructuredSelection) tvselectDevice.getSelection();
ItemInfoInit bi = (ItemInfoInit) selection.getFirstElement();
return regionListInit.factoryName.equals(bi.factoryName);
}
};
this.setChecked(false);
}
public void run() {
if (isChecked()) {
tvselectDevice.addFilter(factoryNameFilter);
} else {
tvselectDevice.removeFilter(factoryNameFilter);
}
tvselectDevice.refresh();
filterAllAction.setChecked(false);
}
}
// 归属业务区
public class FilterAction_RegionName extends Action {
ViewerFilter regionNameFilter;
public FilterAction_RegionName() {
super(colNames[3], AS_CHECK_BOX);
regionNameFilter = new ViewerFilter() {
public boolean select(Viewer viewer, Object parentElement,Object element) {
ItemInfoInit regionListInit = (ItemInfoInit) element;
IStructuredSelection selection = (IStructuredSelection) tvselectDevice.getSelection();
ItemInfoInit bi = (ItemInfoInit) selection.getFirstElement();
return regionListInit.regionName.equals(bi.regionName);
}
};
this.setChecked(false);
}
public void run() {
if (isChecked()) {
tvselectDevice.addFilter(regionNameFilter);
} else {
tvselectDevice.removeFilter(regionNameFilter);
}
tvselectDevice.refresh();
filterAllAction.setChecked(false);
}
}
}
相关文章推荐
- SWT/JFACE学习的积累
- SWT/Jface RCP 的一些学习资料的总结
- Eclipse SWT/JFace/RCP 学习资源
- SWT_JFace_RCP学习相关网页
- GEF、SWT、JFace、RCP学习心得
- SWT-JFace学习之初
- SWT/Jface学习笔记3(登录框)
- 【JfaceTextFramework学习笔记之五】积累
- SWT/JFace开发入门指南(五)
- JNI学习积累之三 ---- 操作JNI函数以及复杂对象传递
- JNI学习积累之三 ---- 操作JNI函数以及复杂对象传递
- SWT/Jface ProgressBar-平滑型-带下载百分比的例子
- Python 学习积累《二》 Python的内省机制
- SWT 和 JFace, 第 2 部分: 简介
- ASP.Net&nbsp;学习积累《一》
- Python学习积累《二》
- Python积累学习(一)ftp上传或下载操作
- 积累学习网址
- 学习资料积累
- [工作]Eclipse开发,JFace and SWT