📄 nfatodfa.java
字号:
package cn.work.zdj.ui;
import java.util.Set;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Table;
import org.eclipse.ui.ISelectionListener;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.part.ViewPart;
import cn.work.zdj.sys.AutoMachine;
import cn.work.zdj.sys.AutoMachineFactory;
import cn.work.zdj.sys.IAppConstants;
public class NFAToDFA extends ViewPart implements ISelectionListener{
private Canvas canvas;
private AutoMachine machine;
private Button transfer;
private Button transferENFAToDFA, temp;
private Button transferENFAToNFA;
private Button simplifyMachine;
public NFAToDFA() {
// TODO 自动生成构造函数存根
}
@Override
public void createPartControl(Composite parent) {
// TODO 自动生成方法存根
Composite composite = new Composite(parent,SWT.NONE);
composite.setLayout(new GridLayout(1,false));
canvas = new Canvas(parent,SWT.NONE);
IViewPart vp = getViewSite().getPage().findView(IAppConstants.OLD_ZDJ_VIEW_ID);
Table table = ((OldZdj)vp).getTableViewer().getTable();
machine = (AutoMachine)table.getItem(table.getSelectionIndex()).getData();
transfer = new Button(composite,SWT.NONE);
transferENFAToDFA = new Button(composite,SWT.NONE);
transferENFAToNFA = new Button(composite,SWT.None);
temp = new Button(composite,SWT.None);
simplifyMachine = new Button(composite,SWT.None);
transfer.setText("NFA-> DFA");
transferENFAToDFA.setText("带空移动的NFA-> DFA");
transferENFAToNFA.setText("带空移动的NFA-> NFA");
simplifyMachine.setText("DFA化简");
transferENFAToDFA.setVisible(false);
temp.setVisible(false);
transfer.addSelectionListener(new SelectionListener(){
public void widgetDefaultSelected(SelectionEvent e) {
// TODO 自动生成方法存根
}
public void widgetSelected(SelectionEvent e) {
// TODO 自动生成方法存根
IViewPart vp = getViewSite().getPage().findView(IAppConstants.OLD_ZDJ_VIEW_ID);
Table table = ((OldZdj)vp).getTableViewer().getTable();
machine = (AutoMachine)table.getItem(table.getSelectionIndex()).getData();
AutoMachine DFA = machine.NFAtoDFA(machine);
//MessageDialog.openInformation(null,"提示",DFA.toString());
AutoMachineFactory.getInstance().add(DFA);
OldZdj.selectionChanged();
}
});
transferENFAToNFA.addSelectionListener(new SelectionListener(){
public void widgetDefaultSelected(SelectionEvent e) {
// TODO 自动生成方法存根
}
public void widgetSelected(SelectionEvent e) {
// TODO 自动生成方法存根
IViewPart vp = getViewSite().getPage().findView(IAppConstants.OLD_ZDJ_VIEW_ID);
Table table = ((OldZdj)vp).getTableViewer().getTable();
machine = (AutoMachine)table.getItem(table.getSelectionIndex()).getData();
AutoMachine NFA = machine.ENFAtoNFA(machine);
AutoMachineFactory.getInstance().add(NFA);
OldZdj.selectionChanged();
}
});
simplifyMachine.addSelectionListener(new SelectionListener(){
public void widgetDefaultSelected(SelectionEvent e) {
// TODO 自动生成方法存根
}
public void widgetSelected(SelectionEvent e) {
// TODO 自动生成方法存根
IViewPart vp = getViewSite().getPage().findView(IAppConstants.OLD_ZDJ_VIEW_ID);
Table table = ((OldZdj)vp).getTableViewer().getTable();
machine = (AutoMachine)table.getItem(table.getSelectionIndex()).getData();
AutoMachine simplifyDFA = machine.simplifyMachine(machine);
AutoMachineFactory.getInstance().add(simplifyDFA);
OldZdj.selectionChanged();
}
});
transfer.setEnabled(!machine.isDFA() && !machine.isE_NFA());
simplifyMachine.setEnabled(machine.isDFA());
transferENFAToNFA.setEnabled(machine.isE_NFA());
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().addSelectionListener(this);
}
@Override
public void setFocus() {
// TODO 自动生成方法存根
}
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
// TODO 自动生成方法存根
IViewPart vp = getViewSite().getPage().findView(IAppConstants.OLD_ZDJ_VIEW_ID);
Table table = ((OldZdj)vp).getTableViewer().getTable();
machine = (AutoMachine)table.getItem(table.getSelectionIndex()).getData();
transfer.setEnabled(!machine.isDFA() && !machine.isE_NFA());
transferENFAToNFA.setEnabled(machine.isE_NFA());
simplifyMachine.setEnabled(machine.isDFA());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -