editor.java
来自「petrinets小程序」· Java 代码 · 共 976 行 · 第 1/3 页
JAVA
976 行
}
}
if (SeqRan.getState()) {
if (runStep == null) {
runStep = new runPN(PNet, this, Vis, runPN.SEQRAN, true);
runSeqRan(11);
} else {
if (runStep.isAlive()) {
if (runHolding) {
runHolding = false;
runButtonHighlight(11);
runStep.resume();
} else {
controlRunStep();
}
} else {
runStep = new runPN(PNet, this, Vis, runPN.SEQRAN, true);
runSeqRan(11);
}
}
}
return true;
}
return false;
}
return false;
}
//
//
//
//
//
public boolean handleEvent(Event event) {
int a;
switch(event.id) {
case Event.ACTION_EVENT:
if (event.target instanceof MenuItem) {
if (event.target instanceof CheckboxMenuItem) {
if (event.target == ParRan) {
controlRunStep();
StatusLine.setText("Step mode set to Parallel Random.");
StatusMode.setText("ParRan");
ParMan.setState(false);
SeqRan.setState(false);
SeqMan.setState(false);
}
if (event.target == ParMan) {
controlRunStep();
StatusLine.setText("Step mode set to Parallel Manual.");
StatusMode.setText("ParMan");
ParRan.setState(false);
SeqRan.setState(false);
SeqMan.setState(false);
}
if (event.target == SeqRan) {
controlRunStep();
StatusLine.setText("Step mode set to Sequential Random.");
StatusMode.setText("SeqRan");
SeqMan.setState(false);
ParRan.setState(false);
ParMan.setState(false);
}
if (event.target == SeqMan) {
controlRunStep();
StatusLine.setText("Step mode set to Sequential Manual.");
StatusMode.setText("SeqMan");
SeqRan.setState(false);
ParRan.setState(false);
ParMan.setState(false);
}
if (event.target == Col) {
Vis.setColorMode(visOfGraph.COLORMODE_STANDARD);
StatusLine.setText("Paintings set to Color.");
StatusDiv.setText("Color");
BW.setState(false);
Vis.repaint();
}
if (event.target == BW) {
Vis.setColorMode(visOfGraph.COLORMODE_BLACKANDWHITE);
StatusLine.setText("Paintings set to Black/White.");
StatusDiv.setText("B/W");
Col.setState(false);
Vis.repaint();
}
} else {
if (((String)event.arg).equals("New")) {
controlRunStep();
PNet = new pn();
alreadySaved = false;
Vis.setPN(PNet);
Vis.repaint();
}
if (((String)event.arg).equals("Quit")) {
controlRunStep();
this.hide();
if (! AppletState) {
this.dispose();
System.exit(0);
}
return true;
}
if (((String)event.arg).equals("Load...")) {
controlRunStep();
StatusLine.setText("Insert file name to load PetriNet from..");
if (! NoFileAccess) {
Load.show();
InputFile = Load.getFile();
try {
a = InputFile.length();
InputPath = Load.getDirectory() + InputFile;
Load.setFile(InputFile);
if (loadPN()) {
Vis.setPN(PNet);
OutputFile = InputFile;
OutputPath = InputPath;
Save.setDirectory(Load.getDirectory());
Save.setFile(InputFile);
alreadySaved = false;
StatusLine.setText("PetriNet loaded.");
}
}
catch (NullPointerException n) {
}
} else {
// if (LoadApplet == null) {
// LoadApplet = new LoadPetriNetApplet(this, Docbase);
;}
// LoadApplet.show();
}
}
if (((String)event.arg).equals("Save")) {
controlRunStep();
if (!alreadySaved) {
StatusLine.setText("Insert file name to save PetriNet to...");
Save.show();
OutputFile = Save.getFile();
try {
a = OutputFile.length();
OutputPath = Save.getDirectory() + OutputFile;
Save.setFile(OutputFile);
if (savePN(true)) {
alreadySaved = true;
StatusLine.setText("PetriNet saved.");
} else alreadySaved = false;
}
catch (NullPointerException n) {
StatusLine.setText("Sorry, there was a problem...");
}
} else {
if (savePN(true)) {
alreadySaved = true;
StatusLine.setText("Petri Net saved.");
} else alreadySaved = false;
}
}
if (((String)event.arg).equals("Save As...")) {
controlRunStep();
Save.show();
OutputFile = Save.getFile();
try {
a = OutputFile.length();
OutputPath = Save.getDirectory() + OutputFile;
Save.setFile(OutputFile);
if (savePN(false)) {
alreadySaved = true;
StatusLine.setText("Petri Net saved.");
} else alreadySaved = false;
}
catch (NullPointerException n) {
StatusLine.setText("No file selected.");
}
}
if (((String)event.arg).equals("Commands")) {
if (HelpCom == null) {
try {
HelpCom = new HelpBox(Docbase);
}
catch (IOException e) {
StatusLine.setText("Can't find file \"Helpme.doc\"");
}
}
if (HelpCom != null) HelpCom.show();
}
if (((String)event.arg).equals("About")) {
if (HelpAb == null) {
HelpAb = new HelpAbout(this);
}
HelpAb.show();
}
if (((String)event.arg).equals("Options")) {
if (ShowOp == null) {
ShowOp = new ShowDialog(this);
}
ShowOp.setDelay(runDelay);
ShowOp.setDemo(demo);
controlRunStep();
ShowOp.show();
}
} // end if CheckboxMenuItem
} /* end if menuitem */
return super.handleEvent(event);
/* case Event.WINDOW_DESTROY:
if (AppletState) {
this.hide();
} else {
System.exit(0);
}
return true;
default:
return super.handleEvent(event);
*/
}
}
//
//
//
//
//
class OverwriteDialog extends Dialog {
boolean yes;
Button Yes, No;
Thread th;
SavePetriNet Save;
pn PNet;
public OverwriteDialog(Frame par, String title, SavePetriNet s, pn PN) {
super(par, "Really..?", true);
yes = false;
PNet = PN;
Save = s;
this.setLayout(new BorderLayout(15,15));
Label text = new Label(title);
Panel p1 = new Panel();
p1.setLayout(new FlowLayout(FlowLayout.CENTER));
p1.add(text);
this.add("Center", p1);
Yes = new Button("Yes");
No = new Button("No");
Panel p2 = new Panel();
p2.setLayout(new FlowLayout(FlowLayout.CENTER));
p2.add(Yes);
p2.add(No);
this.add("South", p2);
this.setResizable(false);
move(par.location().x + 50, par.location().y + 50);
this.pack();
}
public boolean action(Event e, Object arg) {
if (e.target == Yes) {
try {
Save.deleteFile();
Save.saveNet(PNet);
}
catch (IOException i) {
}
catch (SecurityException s) {
(new SorryDialog((Editor)this.getParent())).show();
}
this.hide();
yes = true;
return true;
} else if (e.target == No) {
this.hide();
yes = false;
((Editor)this.getParent()).setAlreadySaved(false);
return true;
} else return false;
}
public boolean getDecision() {
return yes;
}
}
class SorryDialog extends Dialog {
Button OK;
public SorryDialog(Frame parent) {
super(parent, "PNS-Message", true);
this.setLayout(new BorderLayout(15,15));
Panel p1 = new Panel();
p1.setLayout(new GridLayout(0,1));
p1.add(new Label("Sorry, you called jPNS as an applet!", Label.CENTER));
p1.add(new Label(""));
p1.add(new Label("It is restricted for applets to load or save", Label.CENTER));
p1.add(new Label("to the local disk. For these features please try", Label.CENTER));
p1.add(new Label("to run jPNS within the appletviewer", Label.CENTER));
p1.add(new Label("or better as the application version", Label.CENTER));
this.add("Center", p1);
OK = new Button("OK");
Panel p2 = new Panel();
p2.setLayout(new FlowLayout(FlowLayout.CENTER, 15, 15));
p2.add(OK);
this.add("South", p2);
this.setResizable(false);
this.pack();
move(parent.location().x + 50, parent.location().y + 50);
}
public boolean action(Event e, Object arg) {
if (e.target == OK) {
this.hide();
this.dispose();
return true;
} else return false;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?