AMADEUS html plain
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import javax.swing.*;
import javax.swing.filechooser.*;
class ActionController
faili täis nimi,
täidetakse ainult klassis ProjectBoardist (kui see olukord muutub siis vaja muuta funktsiooni isCalledFromProjectBoard())
static String fName;
* static final
int SAVE_MODE = 0;
int OPEN_MODE = 1;
String UNTITLED = "untitled";
char er = (Am.isWindows)? '\\' : '/';
public static final String EXPORT_HTML = "export html";
public static final String EXPORT_PLAIN_HTML = "export plain-html";
public static final String IMPORT = "import";
public static final String READ_TEXT = "read text";
public static final String WRITE_TEXT = "write text";
public static final String EXPORT_XML = "export xml";
public static final String EXPORT_PLAIN_XML = "export plain-xml";
public static final String PRINT_PLAIN_TEX = "print plain-tex";
public static final String PRINT_POST_SCRIPT = "print postscript";
public static final String IMPORT_MACRO = "import macro";
public static final String INPUT_JAVA = "input java";
public static final String SKETCHIFY = "sketchify";
public static final String REDUCE = "reduce";
public static final String TEXTUALIZE = "textualize";
public static final String NORMALIZE = "normalize";
public static final String PREPARE_TEX = "prepare tex";
public static final String PARSE = "parse";
public static final String PROCESS = "process";
public static final String SAVE_AS = "saveas";
public static final String SAVE_ALL = "saveall";
public static final String SAVE = "save";
public static final String OPEN = "open";
static void execute(String action, AmFrame frame)
EXPORT_HTML
? action.equals(EXPORT_HTML)
exportHTML(frame);
return;
EXPORT_PLAIN_HTML
? action.equals(EXPORT_PLAIN_HTML)
exportPlainHTML(frame);
return;
EXPORT_XML
? action.equals(EXPORT_XML)
exportXML(frame);
return;
EXPORT_PLAIN_XML
? action.equals(EXPORT_PLAIN_XML)
exportPlainXML(frame);
return;
IMPORT
? action.equals(IMPORT)
doImport(frame);
return;
READ_TEXT
? action.equals(READ_TEXT)
readText(frame);
return;
WRITE_TEXT
? action.equals(WRITE_TEXT)
writeText(frame);
return;
PRINT_PLAIN_TEXT
? action.equals(PRINT_PLAIN_TEX)
printPlainTEX(frame);
return;
PRINT_POST_SCRIPT
? action.equals(PRINT_POST_SCRIPT)
printPostScript(frame);
return;
IMPORT_MACRO
? action.equals(IMPORT_MACRO)
importMacro();
return;
INPUT_JAVA
? action.equals(INPUT_JAVA)
inputJava(frame);
return;
SKETCHIFY
? action.equals(SKETCHIFY)
sketchify(frame);
return;
REDUCE
? action.equals(REDUCE)
reduce(frame);
return;
TEXTUALIZE
? action.equals(TEXTUALIZE)
textualize(frame);
return;
NORMALIZE
? action.equals(NORMALIZE)
normalize(frame);
return;
PREPARE_TEX
? action.equals(PREPARE_TEX)
prepareTex(frame);
return;
PARSE
? action.equals(PARSE)
doParse(frame);
return;
PROCESS
? action.equals(PROCESS)
process(frame);
return;
? !isCalledFromProjectBoard()
ainult menüüst kutsutavad käsud
SAVE_AS
? action.equals(SAVE_AS)
saveAs(frame);
return;
SAVE_ALL
? action.equals(SAVE_ALL)
saveAll(frame);
return;
SAVE
? action.equals(SAVE)
save(frame);
return;
OPEN
? action.equals(OPEN)
open(frame);
return;
<======
ProjectBoard.writeLog("ERROR (ActionController.execute): Action script "+action+" can not be called from project description");
return;
meetodid klassi enda kasutamiseks
static void setAttributes(String fileName)
static void printAttributes()
System.out.println("fName:"+fName);
public static boolean hasFileName()
<======false
<======!(fName.trim().equals(""))
static boolean isCalledFromProjectBoard()
Mõned funktsioonid ei pea olema kutsetud projekti kirjeldusest
Paneme kirja nii, et kui fName on pandud siis
oletakse, et funktsioon on kutsetud.
return hasFileName();
INPUT
static void doImport(AmFrame frame)
String fileName = null;
hasFileName
? isCalledFromProjectBoard()
fileName = fName;
<======
<==============
proovime saada faili nimet dialoogist
String title = AmLocale.Import();
fileName = ActionController.getFileName(frame, Utils.html);
fileName = getFileNameFromDialog(frame, (new File(fileName)), title , title, null);
? fileName == null || fileName.trim().equals("")
<======================
AutoSave
kasuta recovery fail kui selline on
? recover(frame, fileName)
return;
AmCanvas c = frame.viewArea;
plain-Html jaoks (Html teeb ise peaskeemi)
frame.contents == null
? frame.contents == null
frame.newContents();
et siis, kui ei le faili, ei jääks hunnikusse:
frame.contents.main.view.plan(c.hd, c.vd);
c.frame.contents.affected = frame.contents.main;
file can be null
? frame.contents.file == null
frame.contents.file = new AmFile(frame.contents);
frame.contents.file.name = fileName;
importsFile()
frame.contents.file.importsFile();
frame.contents.setChanged(false);
pärast impordi fail nimi peab ikka jääma seotud frame -ga
? (frame.contents != null) && ((frame.contents.file == null) || !(frame.contents.file.name.trim().equals(fileName)))
? (frame.contents.file == null)
frame.contents.file = new AmFile(frame.contents);
frame.contents.file.name = fileName;
frame.setTitle(AmFrame.TITLE0 +" - " + fileName);
frame.contents.editor.caret.moveToParentHome();
main-i algusse
frame.contents.main.view.plan(c.hd, c.vd);
c.frame.contents.affected = frame.contents.main;
c.selection.cancel();
(vana) valik maha
c.repaint();
c.own = true; c.repaint();
static void doImportRecover(AmFrame frame)
Sama mis on doImport ainult, ei pakkutakse recover failit kasutada.
String fileName = null;
hasFileName()
? isCalledFromProjectBoard()
fileName = fName;
<======
<==========
proovime saada faili nimet dialoogist
fileName = ActionController.getFileName(frame, Utils.html);
String title = AmLocale.Import();
fileName = getFileNameFromDialog(frame, (new File(fileName)), title , title, null);
? fileName == null || fileName.trim().equals("")
<==================
AmCanvas c = frame.viewArea;
frame.contents == null
? frame.contents == null
frame.newContents();
SG
contents can be null, even if fullFileName is not Null
? frame.contents.file == null
frame.contents.file = new AmFile(frame.contents);
importsFile()
frame.setCursor(new java.awt.Cursor(java.awt.Cursor.WAIT_CURSOR));
frame.contents.file.name = fileName;
frame.contents.file.importsFile();
pärast impordi fail nimi peab ikka jääma seotud frame -ga
? (frame.contents != null) && ((frame.contents.file == null) || !(frame.contents.file.name.trim().equals(fileName)))
frame.contents.file = new AmFile(frame.contents);
frame.contents.file.name = fileName;
frame.contents.editor.caret.moveToParentHome();
main-i algusse
frame.contents.main.view.plan(c.hd, c.vd);
c.frame.contents.affected = frame.contents.main;
c.selection.cancel();
(vana) valik maha
c.repaint();
c.own = true; c.repaint();
frame.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
static void importMacro()
String fileName = null;
AmFrame frame;
SG
isCalledFromProjectBoard()
? isCalledFromProjectBoard()
fileName = fName;
On vaja kontrollida kas on
? Am.frameMacro == null
Am.frameMacro = Am.addGraphicFrame();
<======
boolean macroFrameIsOpened = false;
* int i = 0; i
? Am.frames.elementAt(i).equals((Object)Am.frameMacro)
macroFrameIsOpened = true;
AmFrame fr = (AmFrame)Am.frames.elementAt(i);
? fr.contents != null
? fr.contents.file != null
? fr.contents.file.name.trim().equals(fileName)
return;
<======
!macroFrameIsOpened
? !macroFrameIsOpened
Am.frameMacro = Am.addGraphicFrame();
frame = Am.frameMacro;
doImport(frame);
kui oli Cancel
? frame.contents == null || frame.getTitle().indexOf("noname") > 0
AmDialog d = new AmDialog(frame, AmLocale.Info(),
AmDialog.B_OK, AmLocale.New() + " "+AmLocale.macro());
frame.newContents();
? frame.contents != null && frame.contents.main != null
Branch br = frame.contents.main.branch(0);
br.removeMember(0);
tühi primitiiv
frame.menuBar.i55L.actionPerformed(null);
static void inputJava(AmFrame frame)
String fileName = null;
String keep = AmFile.ReadOrInput;
AmFile.ReadOrInput = "Input java";
SketchyText keepContents = frame.contents;
String title = AmLocale.Input() +" java";
READ TEXT
? !readTextComplete(frame, title, title, (new AmadeusInputJavaFilter()), getUntitledName(Utils.java))
<==========
? frame.contents == null || frame.contents.file == null || frame.contents.file.name == null || frame.contents.file.name.trim().equals("")
<==========
fileName = frame.contents.file.name;
? keepContents == frame.contents
<==========
uut teksti ei loetud
AmFile.ReadOrInput = keep;
title = frame.getTitle();
Input from java
//090305 BaseLanguage.setAll(frame.contents.main,
//090305 BaseLanguage.JAVA);
BaseLanguage.setAll(frame.contents.main,
BaseLanguage.JAVA5);
AmCanvas c0 = (AmCanvas)(frame.viewArea);
c0.selection = new Selection(c0,
new Cursor(frame.contents.main),
new Cursor(frame.contents.main));
Sketch source = (Sketch)(c0.selection.start.scheme);
//source.comment = new Row("-", Default.commentColor);
//090305
Item64Listener.sketchifyInplace(frame, source);
//090305 source = frame.contents.main;
redutseeritav skeem
//090305 source.baseLanguage.reduce(source);
redutseerida
source.comment = new Row(
"This sketchy text is generated by AMADEUS",
Default.commentColor);
BaseLanguage.setAll(frame.contents.main,
BaseLanguage.JAVA5);
JK 25.05.06
//090305
esimesed kommentaarid kokku
Branch br = (Branch)source.member(0);
Cursor cur1 = null;
Cursor cur2 = null;
* int i = 0; i < br.body.size(); i++
Object o = br.member(i);
? !(o instanceof Primitive)
<======
Primitive p = (Primitive)o;
? !p.text.isTrivial()
<======
? i == 0
cur1 = new Cursor(br, p);
cur2 = new Cursor(br, p);
<------
cur2 = new Cursor(br, p);
cur1 != null
? cur1 != null
hõlmata cur1 - cur2
Sketch sk = new Selection(c0, cur1, cur2).
convert2simple(0, 0,
BaseLanguage.newBaseLanguage(
BaseLanguage.JAVA));
sk.icon = true;
sk.type = Scheme.MODULE;
sk.comment = new Row("//", Default.commentColor);
ikoniseerida kolmas skeemitase:
* int i = 0; i < br.body.size(); i++
Object o = br.member(i);
? o instanceof Scheme
Sketch sk2 = (Sketch)o;
Branch br2 = (Branch)sk2.member(0);
* int j = 0; j < br2.body.size(); j++
Object oo = br2.member(j);
? oo instanceof Scheme
Sketch sk3 = (Sketch)oo;
sk3.icon = true;
frame.setTitle(title +
" - SKETCHIFIED");
frame.contents.main.view.plan(c0.hd, c0.vd);
planeerida
c0.own = true; c0.repaint();
pärast impordi fail nimi peab ikka jääma seotud frame -ga
? (frame.contents != null) && ((frame.contents.file == null) || !(frame.contents.file.name.trim().equals(fileName)))
frame.contents.file = new AmFile(frame.contents);
frame.contents.file.name = fileName;
static void readText(AmFrame frame)
readTextComplete(frame, AmLocale.Read_text(), AmLocale.Read_text(), null, getUntitledName(Utils.txt));
static boolean readTextComplete(AmFrame frame, String title, String approveButtonText, FileFilter ff, String defaultFileName)
AmCanvas c = frame.viewArea;
String fileName = null;
isCalledFromProjectBoard()
? isCalledFromProjectBoard()
fileName = fName;
<======
<==============false
proovime saada faili nimet dialoogist
fileName = getFileName(frame, null);
fileName = getFileNameFromDialog(frame, (new File(fileName)), title, approveButtonText, ff);
? fileName == null || fileName.trim().equals("")
<======================false
AutoSave
kasuta recovery fail kui selline on
? recover(frame, fileName)
return false;
frame.contents == null
frame.newContents();
? frame.contents == null
frame.newContents();
file can be null
? frame.contents.file == null
frame.contents.file = new AmFile(frame.contents);
readTextFile()
frame.contents.file.name = fileName;
frame.contents.file.readTextFile();
pärast impordi fail nimi peab ikka jääma seotud frame -ga
? (frame.contents != null) && ((frame.contents.file == null) || !(frame.contents.file.name.trim().equals(fileName)))
frame.contents.file = new AmFile(frame.contents);
frame.contents.file.name = fileName;
frame.contents.editor.caret.moveToParentHome();
main-i algusse
seada vaade (muidu: Sketches):
View.setAll(frame.contents.main, View.SKNUM);
JK 29.12.05
frame.contents.main.view.plan(c.hd, c.vd);
c.selection.cancel();
(vana) valik maha
c.own = true;
c.frame.contents.affected = frame.contents.main;
c.selection.cancel();
(vana) valik maha
frame.repaint();
c.repaint();
c.own = true; c.repaint();
return true;
public static boolean importProjectInto(AmFrame frame, String fullFileName)
kasutab Item0B1Listener
Avab projekikirjeldust, mis asub fullFileName - kohas
Avab vaikimisi projektikirjeldust kui fullFileName on tühi
Tagastab true - kui, projektikirjeldus oli õnnelikult importeeritud
false - kui import ei ole vaja jätkata.
AmCanvas c = frame.viewArea;
String fileName = null;
get fileName
? fullFileName != null && !fullFileName.trim().equals("")
fileName = fullFileName;
<======
<==============false
proovime saada faili nimet dialoogist
String title = AmLocale.Import() + " "+ AmLocale.project();
fileName = "";
? ((frame.contents != null) && (frame.contents.file != null) && !((frame.contents.file.name == null) || (frame.contents.file.name.trim().equals(""))) )
fileName = frame.contents.file.name;
<======
fileName = fileName = getUntitledName(Utils.html);
fileName = getFileNameFromDialog(frame, (new File(fileName)), title, title, null);
? fileName == null || fileName.trim().equals("")
<======================true
AutoSave
kasuta recovery fail kui selline on
? recover(frame, fileName)
return true;
? frame.contents == null
frame.newContents();
frame.contents.file = new AmFile(frame.contents);
? frame.contents.file == null
frame.contents.file = new AmFile(frame.contents);
frame.contents.file.name = fileName;
File controll = new File(fileName);
? !controll.exists()
<==============importDefaultProject(frame)
Import
frame.contents.file.importsFile();
pärast impordi fail nimi peab ikka jääma seotud frame -ga
? (frame.contents != null) && ((frame.contents.file == null) || !(frame.contents.file.name.trim().equals(fileName)))
frame.contents.file = new AmFile(frame.contents);
frame.contents.file.name = fileName;
? frame.contents.editor != null
frame.contents.editor.caret.moveToParentHome();
main-i algusse
frame.contents.main.view.plan(c.hd, c.vd);
c.frame.contents.affected = frame.contents.main;
c.selection.cancel();
(vana) valik maha
c.repaint();
c.own = true; c.repaint();
return true;
public static boolean importDefaultProject(AmFrame frame)
Küsib kasutajalt nõusolekut importeerida tühi projekti kirjeldust ja jaatava vastuse korral
importeerib raamisse uue projektikirjelduse skeletti.
Tagastab - true, kui uus projekti kirjeldus oli importeeritud;
- false, teistel juhtudel
boolean returnResult = false;
AmDialog d = new AmDialog(frame, AmLocale.Info(),
AmDialog.B_YES_NO, AmLocale.New() + " "+AmLocale.project()+"?");
??d.getTulemus()
? AmDialog.NO:
<======
? AmDialog.YES:
Toimub all olnud faili salvestamine
//frame.newContents(ProjectBoard.defaultProject());
frame.newContentsWithOldFileName(ProjectBoard.defaultProject());
AmCanvas c = frame.viewArea;
frame.contents.main.view.plan(c.hd, c.vd);
c.frame.contents.affected = frame.contents.main;
c.repaint();
returnResult = true;
<======
return returnResult;
OUTPUT
static void writeText(AmFrame frame)
String fileName = null;
String fileNameBackup = null;
frame.contents == null || frame.contents.main == null
? frame.contents == null || frame.contents.main == null
ProjectBoard.writeLog("ERROR (ActionController.WriteTex): input frame is null.");
return;
Sketch source = frame.contents.main;
? (!source.isPlainText())
AmDialog d = new AmDialog(frame, AmLocale.Source_error(),
AmDialog.B_OK, AmLocale.Is_not_plain_text()+"!");
<======
See plokk on sama iga "export" funktsiooni jaoks
isCalledFromProjectBoard()
? isCalledFromProjectBoard()
fileName = fName;
<======
proovime saada faili nimet dialoogist
fileName = getFileName(frame, null);
String title = AmLocale.Write_text();
fileName = getFileNameFromDialog(frame, (new File(fileName)), title , title, null);
fileName == null || fileName.trim().equals("")
? fileName == null || fileName.trim().equals("")
<======================
fileNameBackup
? ((frame.contents != null) && (frame.contents.file != null) && !((frame.contents.file.name == null) || (frame.contents.file.name.trim().equals(""))) )
fileNameBackup = frame.contents.file.name;
<======
fileNameBackup = fileName;
AutoSave
kustutada recovery fail kui selline on
? frame.contents.file != null
removeRecoverFile(fileName);
frame.contents.file.writeTextFile(fileName);
pärast expordi frame -ga peab olena seotud sama faili nimi
frame.contents.setChanged(false);
? (frame.contents != null) && ((frame.contents.file == null) || !(frame.contents.file.name.trim().equals(fileNameBackup)))
frame.contents.file = new AmFile(frame.contents);
frame.contents.file.name = fileNameBackup;
static void exportHTML(AmFrame frame)
String fileName = null;
String fileNameBackup = null;
frame.contents == null || frame.contents.main == null
? frame.contents == null || frame.contents.main == null
ProjectBoard.writeLog("ERROR (ActionController.exportHTML): input frame is null.");
return;
See plokk on sama iga "export" funktsiooni jaoks
isCalledFromProjectBoard()
? isCalledFromProjectBoard()
fileName = fName;
<======
proovime saada faili nimet dialoogist
fileName = getFileName(frame, Utils.html);
String title = AmLocale.Export() + " HTML";
fileName = getFileNameFromDialog(frame, (new File(fileName)), title , title, (new AmadeusHTMLFilter()));
? fileName == null || fileName.trim().equals("")
<======================
fileNameBackup
? ((frame.contents != null) && (frame.contents.file != null) && !((frame.contents.file.name == null) || (frame.contents.file.name.trim().equals(""))) )
fileNameBackup = frame.contents.file.name;
<======
fileNameBackup = fileName;
AutoSave
kustutada recovery fail kui selline on
? frame.contents.file != null
removeRecoverFile(fileName);
Sketch2Html.s2h(frame.contents.main, fileName);
pärast expordi frame -ga peab olena seotud sama faili nimi
frame.contents.setChanged(false);
? (frame.contents != null) && ((frame.contents.file == null) || !(frame.contents.file.name.trim().equals(fileNameBackup)))
frame.contents.file = new AmFile(frame.contents);
frame.contents.file.name = fileNameBackup;
? Am.isWindows
frame.viewArea.repaint();
static void exportPlainHTML(AmFrame frame)
String fileName = null;
String fileNameBackup = null;
frame contents controll
? frame.contents == null || frame.contents.main == null
ProjectBoard.writeLog("ERROR (ActionController.exportPlainHTML): Action can't be performed. SketchyText is null in the frame!");
return;
SketchyText source = frame.contents;
? source.isRichModel()
AmDialog d = new AmDialog(frame, AmLocale.Source_error(),
AmDialog.B_OK, AmLocale.Is_not_plain_model()+"!");
<======
See plokk on sama iga "export" funktsiooni jaoks
isCalledFromProjectBoard()
? isCalledFromProjectBoard()
fileName = fName;
<======
proovime saada faili nimet dialoogist
fileName = getFileName(frame, Utils.html);
String title = AmLocale.Export() + " "+AmLocale.plain()+"-HTML";
fileName = getFileNameFromDialog(frame, (new File(fileName)), title , title, (new AmadeusPlainHTMLFilter()));
? fileName == null || fileName.trim().equals("")
<======================
fileNameBackup
? ((frame.contents != null) && (frame.contents.file != null) && !((frame.contents.file.name == null) || (frame.contents.file.name.trim().equals(""))) )
fileNameBackup = frame.contents.file.name;
<======
fileNameBackup = fileName;
AutoSave
kustutada recovery fail kui selline on
? frame.contents.file != null
removeRecoverFile(fileName);
viia source väljundfaili:
Sketch2HtmlPlain.s2h(source.main, fileName);
pärast expordi frame -ga peab olena seotud sama faili nimi
frame.contents.setChanged(false);
? (frame.contents != null) && ((frame.contents.file == null) || !(frame.contents.file.name.trim().equals(fileNameBackup)))
frame.contents.file = new AmFile(frame.contents);
frame.contents.file.name = fileNameBackup;
? !hasFileName()
? Am.isWindows
frame.viewArea.repaint();
static void exportXML(AmFrame frame)
String fileName;
String fileNameBackup = null;
frame.contents == null || frame.contents.main == null
? frame.contents == null || frame.contents.main == null
ProjectBoard.writeLog("ERROR (ActionController.exportXML): Action can't be performed. SketchyText is null in the frame!");
return;
See plokk on sama iga "export" funktsiooni jaoks
isCalledFromProjectBoard()
? isCalledFromProjectBoard()
fileName = fName;
<======
proovime saada faili nimet dialoogist
fileName = getFileName(frame, Utils.xml);
String title = AmLocale.Export() +" XML";
fileName = getFileNameFromDialog(frame, (new File(fileName)), title , title, (new AmadeusXMLFilter()));
? fileName == null || fileName.trim().equals("")
<======================
fileNameBackup
? ((frame.contents != null) && (frame.contents.file != null) && !((frame.contents.file.name == null) || (frame.contents.file.name.trim().equals(""))) )
fileNameBackup = frame.contents.file.name;
<======
fileNameBackup = fileName;
AutoSave
kustutada recovery fail kui selline on
? frame.contents.file != null
removeRecoverFile(fileName);
Sketch2Xml.s2h(frame.contents.main, fileName);
pärast expordi frame -ga peab olena seotud sama faili nimi
frame.contents.setChanged(false);
? (frame.contents != null) && ((frame.contents.file == null) || !(frame.contents.file.name.trim().equals(fileNameBackup)))
frame.contents.file = new AmFile(frame.contents);
frame.contents.file.name = fileNameBackup;
? fileName == null
? Am.isWindows
frame.viewArea.repaint();
static void exportPlainXML(AmFrame frame)
String fileName = null;
String fileNameBackup = null;
frame.contents == null || frame.contents.main == null
? frame.contents == null || frame.contents.main == null
ProjectBoard.writeLog("ERROR (ActionController.exportPlainXML): Action can't be performed. SketchyText is null in the frame!");
return;
SketchyText source = frame.contents;
? source.isRichModel()
AmDialog d = new AmDialog(frame, AmLocale.Source_error(),
AmDialog.B_OK, AmLocale.Is_not_plain_model()+"!");
<======
See plokk on sama iga "export" funktsiooni jaoks
hasFileName
? hasFileName()
fileName = fName;
<======
? fileName == null || fileName.trim().equals("")
proovime saada faili nimet dialoogist
fileName = getFileName(frame, Utils.xml);
String title = AmLocale.Export() +" "+AmLocale.plain() + "-XML";
fileName = getFileNameFromDialog(frame, (new File(fileName)), title , title, (new AmadeusPlainXMLFilter()));
? fileName == null || fileName.trim().equals("")
<==================
fileNameBackup
? ((frame.contents != null) && (frame.contents.file != null) && !((frame.contents.file.name == null) || (frame.contents.file.name.trim().equals(""))) )
fileNameBackup = frame.contents.file.name;
<======
fileNameBackup = fileName;
AutoSave
kustutada recovery fail kui selline on
? frame.contents.file != null
removeRecoverFile(fileName);
Sketch2XmlPlain.s2h(frame.contents.main, fileName);
pärast expordi frame -ga peab olena seotud sama faili nimi
frame.contents.setChanged(false);
? (frame.contents != null) && ((frame.contents.file == null) || !(frame.contents.file.name.trim().equals(fileNameBackup)))
frame.contents.file = new AmFile(frame.contents);
frame.contents.file.name = fileNameBackup;
? fileName == null
? Am.isWindows
frame.viewArea.repaint();
static void printPlainTEX(AmFrame frame)
String fileName = null;
String fileNameBackup = null;
frame.contents == null || frame.contents.main == null
? frame.contents == null || frame.contents.main == null
ProjectBoard.writeLog("ERROR (ActionController.printPlainTEX): Action can't be performed. SketchyText is null in the frame!");
return;
Sketch source = frame.contents.main;
See plokk on sama iga "export" funktsiooni jaoks
isCalledFromProjectBoard()
? isCalledFromProjectBoard()
fileName = fName;
<======
proovime saada faili nimet dialoogist
fileName = getFileName(frame, Utils.tex);
String title = AmLocale.Print()+" "+AmLocale.plain()+"-TEX";
fileName = getFileNameFromDialog(frame, (new File(fileName)), title , title, (new AmadeusPlainTEXFilter()));
? fileName == null || fileName.trim().equals("")
<======================
fileNameBackup
? ((frame.contents != null) && (frame.contents.file != null) && !((frame.contents.file.name == null) || (frame.contents.file.name.trim().equals(""))) )
fileNameBackup = frame.contents.file.name;
<======
fileNameBackup = fileName;
AutoSave
kustutada recovery fail kui selline on
? frame.contents.file != null
removeRecoverFile(fileName);
String res = Sketch2TexPlain.s2t(source, fileName);
(res != null)
? (res != null)
AmDialog d = new AmDialog(frame, AmLocale.Print()+AmLocale.plain()+"-TEX",
AmDialog.B_OK, AmLocale.Failed()+". "+ res);
pärast expordi frame -ga peab olena seotud sama faili nimi
frame.contents.setChanged(false);
? (frame.contents != null) && ((frame.contents.file == null) || !(frame.contents.file.name.trim().equals(fileNameBackup)))
frame.contents.file = new AmFile(frame.contents);
frame.contents.file.name = fileNameBackup;
? Am.isWindows
frame.viewArea.repaint();
static void printPostScript(AmFrame frame)
String fileName = null;
String fileNameBackup = null;
String res;
frame.contents == null || frame.contents.main == null
? frame.contents == null || frame.contents.main == null
ProjectBoard.writeLog("ERROR (ActionController.printPostScript): Action can't be performed. SketchyText is null in the frame!");
return;
Sketch source = frame.contents.main;
See plokk on sama iga "export" funktsiooni jaoks
isCalledFromProjectBoard()
? isCalledFromProjectBoard()
fileName = fName;
<======
proovime saada faili nimet dialoogist
fileName = getFileName(frame, Utils.ps);
String title = AmLocale.Print()+" PostScript";
fileName = getFileNameFromDialog(frame, (new File(fileName)), title , title, (new AmadeusPostScriptFilter()));
? fileName == null || fileName.trim().equals("")
<======================
fileNameBackup
? ((frame.contents != null) && (frame.contents.file != null) && !((frame.contents.file.name == null) || (frame.contents.file.name.trim().equals(""))) )
fileNameBackup = frame.contents.file.name;
<======
fileNameBackup = fileName;
AutoSave
kustutada recovery fail kui selline on
? frame.contents.file != null
removeRecoverFile(fileName);
res = Sketch2ps.s2ps(source, fileName);
(res != null)
? (res != null)
AmDialog d = new AmDialog(frame, AmLocale.Print()+"PostScript",
AmDialog.B_OK, AmLocale.Failed()+". "+ res);
pärast expordi frame -ga peab olena seotud sama faili nimi
frame.contents.setChanged(false);
? (frame.contents != null) && ((frame.contents.file == null) || !(frame.contents.file.name.trim().equals(fileNameBackup)))
frame.contents.file = new AmFile(frame.contents);
frame.contents.file.name = fileNameBackup;
? Am.isWindows
frame.viewArea.repaint();
TOOLS funktions
SKETCHIFY
static void sketchify(AmFrame frame)
? isCalledFromProjectBoard()
sketchifyInSameFrame(frame);
<======
sketchifyInNewFrame(frame);
static void sketchifyInNewFrame(AmFrame frame)
eeldab, et on valitud skeem. peaks? :AmFile.newFile();
AmFrame targetFrame;
targetFrame = Am.addGraphicFrame();
targetFrame.setTitle(frame.getTitle() + " SKETCHIFIED");
AmCanvas c = targetFrame.viewArea;
AmCanvas c0 = frame.viewArea;
Sketch source = (Sketch)(c0.selection.start.scheme);
? !source.isPlainText()
pole lihttekst
AmDialog d = new AmDialog(frame, AmLocale.Source_error(),
AmDialog.B_OK, AmLocale.Is_not_plain_text()+". "+
AmLocale.Cannot()+" "+ AmLocale.sketchify()+"!");
<======
vajadusel maa"rata baaskeel *
boolean dialog = false;
? (source.baseLanguage.type == BaseLanguage.NONE)
dialog = true;
? Am.isWindows
? (!BaseLanguage.userSetAll(source, targetFrame))
Am.remove(targetFrame);
<======================
<======
? (!BaseLanguage.userSetAll(source, frame))
Am.remove(targetFrame);
<==================
uus skeemtekst skt1 *
SketchyText skt1 = new SketchyText(null);
skt1.main.comment =
new Row("This sketchy text is generated by AMADEUS",
Default.commentColor);
teisendatav skeemtekst skt0 *
SketchyText skt0 = new SketchyText(null);
raami pole
skt0.main = (Sketch)(c0.selection.start.scheme);
editori ka pole
skeemistada skt0 $\rightarrow$ skt1 *
boolean sketchifyOK =
source.baseLanguage.sketchify(skt0, skt1, targetFrame);
targetFrame.newContents(skt1.main);
tulemus raamisse
targetFrame.contents.file = new AmFile(targetFrame.contents);
targetFrame.contents.main.view.plan(c.hd, c.vd);
ekraanile *
? !sketchifyOK
kui ei saanud skeemistada
c.selection.cancel();
(vana) valik maha
c.caretToScreen();
targetFrame.refresh();
c.own = true; c.repaint();
<======
? dialog
targetFrame.refresh();
<======
c.own = true; c.repaint();
static void sketchifyInSameFrame(AmFrame frame)
AmFrame targetFrame;
targetFrame = frame;
targetFrame.setTitle(frame.getTitle() + " SKETCHIFIED");
AmCanvas c = targetFrame.viewArea;
AmCanvas c0 = frame.viewArea;
frame.contents == null || frame.contents.main == null
? frame.contents == null || frame.contents.main == null
ProjectBoard.writeLog("ERROR (ActionController.sketchifyInSameFrame): Action can't be performed. SketchyText is null in the frame!");
return;
Sketch source = frame.contents.main;
? !source.isPlainText()
pole lihttekst
AmDialog d = new AmDialog(frame, AmLocale.Source_error(),
AmDialog.B_OK, AmLocale.Is_not_plain_text()+". "+
AmLocale.Cannot()+" "+ AmLocale.sketchify()+"!");
<======
vajadusel maa"rata baaskeel *
boolean dialog = false;
? (source.baseLanguage.type == BaseLanguage.NONE)
dialog = true;
? Am.isWindows
? (!BaseLanguage.userSetAll(source, targetFrame))
<======================
<======
? (!BaseLanguage.userSetAll(source, frame))
<==================
uus skeemtekst skt1 *
SketchyText skt1 = new SketchyText(null);
skt1.main.comment =
new Row("This sketchy text is generated by AMADEUS",
Default.commentColor);
teisendatav skeemtekst skt0 *
SketchyText skt0 = new SketchyText(null);
raami pole
skt0.cloneSketchyText(frame.contents);
skeemistada skt0 $\rightarrow$ skt1 *
boolean sketchifyOK =
source.baseLanguage.sketchify(skt0, skt1, targetFrame);
targetFrame.newContents(skt1.main);
tulemus raamisse
targetFrame.contents.file = new AmFile(targetFrame.contents);
targetFrame.contents.main.view.plan(c.hd, c.vd);
ekraanile *
? !sketchifyOK
kui ei saanud skeemistada
c.caretToScreen();
targetFrame.refresh();
c.own = true; c.repaint();
<======
? dialog
targetFrame.refresh();
<======
c.own = true; c.repaint();
static void reduce(AmFrame frame)
Sketch source;
redutseeritav skeem
AmCanvas c = frame.viewArea;
frame.contents == null || frame.contents.main == null
? frame.contents == null || frame.contents.main == null
ProjectBoard.writeLog("ERROR (ActionController.reduce): Action can't be performed. SketchyText is null in the frame!");
return;
isCalledFromProjectBoard()
? isCalledFromProjectBoard()
source = frame.contents.main;
<======
source = (Sketch)(c.selection.start.scheme);
source.baseLanguage.reduce(source);
redutseerida
frame.contents.main.view.plan(c.hd, c.vd);
planeerida
c.own = true;
c.repaint();
TEXTUALIZE
static void textualize(AmFrame frame)
? isCalledFromProjectBoard()
textualizeInSameFrame(frame);
<======
textualizeInNewFrame(frame);
static void textualizeInNewFrame(AmFrame frame)
eeldab, et on valitud skeem
Sketch source;
AmCanvas c;
AmCanvas c0;
frame.contents == null || frame.contents.main == null
? frame.contents == null || frame.contents.main == null
ProjectBoard.writeLog("ERROR (ActionController.textualizeInNewFrame): Action can't be performed. SketchyText is null in the frame!");
return;
AmFrame targetFrame = null;
targetFrame = Am.addGraphicFrame();
targetFrame.setTitle(frame.getTitle() + " TEXTUALIZED");
source =
(Sketch)(((AmCanvas)(frame.viewArea)).selection.start.scheme);
c = (AmCanvas)(targetFrame.viewArea);
c0 = (AmCanvas)(frame.viewArea);
teisendatav skeemtekst *
SketchyText skt0 = new SketchyText(targetFrame);
raami pole
skt0.main = (Sketch)(c0.selection.start.scheme);
editori ka pole
uus skeemtekst *
SketchyText skt1 = new SketchyText(null);
skt1.main.comment = new Row("This sketchy text is generated by AMADEUS", Default.commentColor);
tekstualiseerida skt0 $\rightarrow$ skt1 *
? !source.baseLanguage.textualize(skt0, skt1, targetFrame)
targetFrame.dispose();
Am.remove(targetFrame);
kõrvaldada raam ise
<======
//menu isWindows
? Am.isWindows && targetFrame.menuBar == null
targetFrame.setJMenuBar(targetFrame.menuBar =
targetFrame.menuBarKeep);
targetFrame.newContents(skt1.main);
tulemus raamisse
targetFrame.contents.file = new AmFile(targetFrame.contents);
targetFrame.contents.main.view.plan(c.hd, c.vd);
c.selection.cancel();
(vana) valik maha
c.caretToScreen();
c.own = true; c.repaint();
static void textualizeInSameFrame(AmFrame frame)
Sketch source;
AmCanvas c;
AmCanvas c0;
frame.contents == null || frame.contents.main == null
? frame.contents == null || frame.contents.main == null
ProjectBoard.writeLog("ERROR (ActionController.textualizeInSameFrame): Action can't be performed. SketchyText is null in the frame!");
return;
AmFrame targetFrame;
targetFrame = frame;
source = targetFrame.contents.main;
c = (AmCanvas)(targetFrame.viewArea);
c0 = (AmCanvas)(frame.viewArea);
uus skeemtekst *
SketchyText skt1 = new SketchyText(null);
skt1.main.comment =
new Row("This sketchy text is generated by AMADEUS",
Default.commentColor);
teisendatav skeemtekst *
SketchyText skt0 = new SketchyText(null);
skt0.cloneSketchyText(frame.contents);
tekstualiseerida skt0 $\rightarrow$ skt1 *
source.baseLanguage.textualize(skt0, skt1, targetFrame);
//Wmenu isWindows
? Am.isWindows && targetFrame.menuBar == null
targetFrame.setJMenuBar(targetFrame.menuBar =
targetFrame.menuBarKeep);
targetFrame.newContents(skt1.main);
tulemus raamisse
targetFrame.contents.file = new AmFile(targetFrame.contents);
targetFrame.contents.main.view.plan(c.hd, c.vd);
NORMALIZE
static void normalize(AmFrame frame)
? isCalledFromProjectBoard()
normalizeInSameFrame(frame);
<======
normalizeInNewFrame(frame);
static void normalizeInNewFrame(AmFrame frame)
frame.contents == null || frame.contents.main == null
? frame.contents == null || frame.contents.main == null
ProjectBoard.writeLog("ERROR (ActionController.normalizeInNewFrame): Action can't be performed. SketchyText is null in the frame!");
return;
AmFrame targetFrame;
eeldab, et on valitud skeem; peaks? :AmFile.newFile();
targetFrame = Am.addGraphicFrame();
targetFrame.setTitle(frame.getTitle() + " NORMALIZED");
AmCanvas c = (AmCanvas)(targetFrame.viewArea);
AmCanvas c0 = (AmCanvas)(frame.viewArea);
Sketch source = (Sketch)(c0.selection.start.scheme);
3) baaskeel peab olema maa"ratud
? (source.baseLanguage.type == BaseLanguage.NONE)
? (!BaseLanguage.userSetAll(source, frame))
Am.remove(targetFrame);
<======
uus skeemtekst skt1*
SketchyText skt1 = new SketchyText(null);
skt1.main.comment =
new Row("This sketchy text is generated by AMADEUS",
Default.commentColor);
teisendatav skeemtekst skt0*
SketchyText skt0 = new SketchyText(null);
raami pole
skt0.main = source;
source.baseLanguage.normalize(skt0, skt1, targetFrame);
//Wmenu isWindows
? Am.isWindows && targetFrame.menuBar == null
targetFrame.setJMenuBar(targetFrame.menuBar =
targetFrame.menuBarKeep);
targetFrame.newContents(skt1.main);
tulemus raamisse
targetFrame.contents.file = new AmFile(targetFrame.contents);
targetFrame.contents.main.view.plan(c.hd, c.vd);
c.selection.cancel();
(vana) valik maha
c.caretToScreen();
c.own = true; c.repaint();
static void normalizeInSameFrame(AmFrame frame)
frame.contents == null || frame.contents.main == null
? frame.contents == null || frame.contents.main == null
ProjectBoard.writeLog("ERROR (ActionController.normalizeInSameFrame): Action can't be performed. SketchyText is null in the frame!");
return;
AmFrame targetFrame;
targetFrame = frame;
targetFrame.setTitle(frame.getTitle() + " NORMALIZED");
AmCanvas c = (AmCanvas)(targetFrame.viewArea);
AmCanvas c0 = (AmCanvas)(frame.viewArea);
Sketch source = frame.contents.main;
3) baaskeel peab olema maa"ratud
? (source.baseLanguage.type == BaseLanguage.NONE)
? (!BaseLanguage.userSetAll(source, frame))
<======
uus skeemtekst skt1*
SketchyText skt1 = new SketchyText(null);
skt1.main.comment =
new Row("This sketchy text is generated by AMADEUS",
Default.commentColor);
teisendatav skeemtekst skt0*
SketchyText skt0 = new SketchyText(null);
raami pole
skt0.cloneSketchyText(frame.contents);
source.baseLanguage.normalize(skt0, skt1, targetFrame);
targetFrame.newContents(skt1.main);
tulemus raamisse
targetFrame.contents.file = new AmFile(targetFrame.contents);
targetFrame.contents.main.view.plan(c.hd, c.vd);
c.caretToScreen();
c.own = true; c.repaint();
PREPARE_TEX
static void prepareTex(AmFrame frame)
frame.contents == null || frame.contents.main == null
? frame.contents == null || frame.contents.main == null
ProjectBoard.writeLog("ERROR (ActionController.prepareTex): Action can't be performed. SketchyText is null in the frame!");
return;
? isCalledFromProjectBoard()
prepareTexInSameFrame(frame);
<======
prepareTexInNewFrame(frame);
static void prepareTexInNewFrame(AmFrame frame)
eeldab, et on valitud skeem; peaks? :AmFile.newFile();
Sketch source;
AmCanvas c;
AmCanvas c0;
AmFrame targetFrame;
String üldkommentaar = "";
targetFrame = Am.addGraphicFrame();
targetFrame.setTitle(frame.getTitle() + " PREPARED TEX");
c = (AmCanvas)(targetFrame.viewArea);
c0 = (AmCanvas)(frame.viewArea);
source = (Sketch)(c0.selection.start.scheme);
uus skeemtekst
Sketch sk = source.makeCopy();
targetFrame.newContents(sk);
targetFrame.contents.main.view.plan(c.hd, c.vd);
kas ekstraheerida algoritm?
? sk.baseLanguage.type == BaseLanguage.JAVA
? sk.type == Scheme.MODULE
? sk.head.size() > 0
AmDialog d = new AmDialog(targetFrame,
AmLocale.PrepareTex(),
AmDialog.B_YES_NO, AmLocale.Algorithm() + "?");
int vastus = d.getTulemus();
? vastus == AmDialog.YES
Martjanova.prepareAlgor(sk);
<======
sk.baseLanguage.prepareTex(sk);
teha yldkommentaar
String str = null;
? (sk.parent == null)
? üldkommentaar.equals("")
määramata?
str = frame.contents.file.name;
<======
int i = str.lastIndexOf("/");
? (i > 0)
str = str.substring(i+1, str.length());
i = 400 - str.length()*5;
sk.comment =
new Row("\\hskip " + i + "pt "+str, Default.commentColor);
sk.comment.planSize();
targetFrame.contents.main.view.plan(c.hd, c.vd);
c.selection.cancel();
(vana) valik maha
c.caretToScreen();
c.own = true; c.repaint();
static void prepareTexInSameFrame(AmFrame frame)
Sketch source;
AmCanvas c;
AmCanvas c0;
AmFrame targetFrame;
String üldkommentaar = "";
targetFrame = frame;
source = targetFrame.contents.main;
c = (AmCanvas)(targetFrame.viewArea);
c0 = (AmCanvas)(frame.viewArea);
Sketch sk = source.makeCopy();
targetFrame.newContents(sk);
kas ekstraheerida algoritm?
kas ekstraheerida algoritm?
? sk.baseLanguage.type == BaseLanguage.JAVA
? sk.type == Scheme.MODULE
? sk.head.size() > 0
AmDialog d = new AmDialog(targetFrame,
AmLocale.PrepareTex(),
AmDialog.B_YES_NO, AmLocale.Algorithm() + "?");
int vastus = d.getTulemus();
? vastus == AmDialog.YES
Martjanova.prepareAlgor(sk);
<======
sk.baseLanguage.prepareTex(sk);
teha yldkommentaar
String str = null;
? (sk.parent == null)
? üldkommentaar.equals("")
määramata?
? frame.contents != null
? frame.contents.file != null
str = frame.contents.file.name;
<======
int i = str.lastIndexOf("/");
? (i > 0)
str = str.substring(i+1, str.length());
i = 400 - str.length()*5;
sk.comment =
new Row("\\hskip " + i + "pt "+str, Default.commentColor);
sk.comment.planSize();
targetFrame.contents.main.view.plan(c.hd, c.vd);
PARSE
static void doParse(AmFrame frame)
? isCalledFromProjectBoard()
parseInSameFrame(frame);
<======
static void parseInNewFrame(AmFrame frame)
eeldab, et on valitud skeem. peaks? :AmFile.newFile();
frame.contents == null || frame.contents.main == null
? frame.contents == null || frame.contents.main == null
ProjectBoard.writeLog("ERROR (ActionController.parseInNewFrame): Action can't be performed. SketchyText is null in the frame!");
return;
AmFrame targetFrame;
targetFrame = Am.addGraphicFrame();
targetFrame.setTitle(frame.getTitle() + " PARSE TREE");
AmCanvas c = targetFrame.viewArea;
AmCanvas c0 = frame.viewArea;
Sketch source = (Sketch)(c0.selection.start.scheme);
? !source.isPlainText()
pole lihttekst
AmDialog d = new AmDialog(frame, AmLocale.Source_error(),
AmDialog.B_OK, AmLocale.Is_not_plain_text()+". "+
AmLocale.Cannot()+" "+ AmLocale.Parse()+"!");
<======
vajadusel maa"rata baaskeel *
boolean dialog = false;
? (source.baseLanguage.type == BaseLanguage.NONE)
dialog = true;
? Am.isWindows
? (!BaseLanguage.userSetAll(source, targetFrame))
Am.remove(targetFrame);
<======================
<======
? (!BaseLanguage.userSetAll(source, frame))
Am.remove(targetFrame);
<==================
uus skeemtekst skt1 *
SketchyText skt1 = new SketchyText(null);
skt1.main.comment =
new Row("This sketchy text is generated by AMADEUS",
Default.commentColor);
teisendatav skeemtekst skt0 *
SketchyText skt0 = new SketchyText(null);
raami pole
skt0.main = (Sketch)(c0.selection.start.scheme);
editori ka pole
skeemistada skt0 $\rightarrow$ skt1 *
boolean sketchifyOK =
source.baseLanguage.parse(skt0, skt1, targetFrame);
targetFrame.newContents(skt1.main);
tulemus raamisse
targetFrame.contents.file = new AmFile(targetFrame.contents);
targetFrame.contents.main.view.plan(c.hd, c.vd);
ekraanile *
? !sketchifyOK
kui ei saanud skeemistada
c.selection.cancel();
(vana) valik maha
c.caretToScreen();
targetFrame.refresh();
c.own = true; c.repaint();
<======
? dialog
targetFrame.refresh();
//c.own = false; c.repaint();
<======
c.own = true; c.repaint();
static void parseInSameFrame(AmFrame frame)
AmFrame targetFrame;
targetFrame = frame;
targetFrame.setTitle(frame.getTitle() + " PARSE TREE");
AmCanvas c = targetFrame.viewArea;
AmCanvas c0 = frame.viewArea;
Sketch source = frame.contents.main;
? !source.isPlainText()
pole lihttekst
AmDialog d = new AmDialog(frame, AmLocale.Source_error(),
AmDialog.B_OK, AmLocale.Is_not_plain_text()+". "+
AmLocale.Cannot()+" "+ AmLocale.Parse()+"!");
vajadusel maa"rata baaskeel *
boolean dialog = false;
? (source.baseLanguage.type == BaseLanguage.NONE)
dialog = true;
? Am.isWindows
? (!BaseLanguage.userSetAll(source, targetFrame))
Am.remove(targetFrame);
<======================
<======
? (!BaseLanguage.userSetAll(source, frame))
Am.remove(targetFrame);
<==================
uus skeemtekst skt1 *
SketchyText skt1 = new SketchyText(null);
skt1.main.comment =
new Row("This sketchy text is generated by AMADEUS",
Default.commentColor);
teisendatav skeemtekst skt0 *
SketchyText skt0 = new SketchyText(null);
raami pole
skt0.cloneSketchyText(frame.contents);
skeemistada skt0 $\rightarrow$ skt1 *
boolean sketchifyOK =
source.baseLanguage.parse(skt0, skt1, targetFrame);
targetFrame.newContents(skt1.main);
tulemus raamisse
targetFrame.contents.file = new AmFile(targetFrame.contents);
targetFrame.contents.main.view.plan(c.hd, c.vd);
ekraanile *
? !sketchifyOK
kui ei saanud skeemistada
c.caretToScreen();
targetFrame.refresh();
c.own = true; c.repaint();
<======
? dialog
targetFrame.refresh();
<======
c.own = true; c.repaint();
PROCESS
eelmise vearaami koht ja mõõdud
static Point po = null;
static Dimension dim = null;
static void process(AmFrame frame)
Sketch source;
AmCanvas c;
AmCanvas c0;
AmFrame targetFrame;
String commandLine = null;
hasFileName()
? hasFileName()
commandLine = fName;
fName muutujasse salvestatud terve käsurea tekst
commandLine == null
<==========
? commandLine.trim().equals("")
<==========
ProjectBoard.writeLog("INFO (ActionController.process): PROCESS: commandLine="+commandLine);
CommandLine cmdLine = new CommandLine();
String tulemus = cmdLine.exec(CommandLine.toArray(commandLine));
eemaldada vana raam PROCESS ja pidada meeles koht ning suurus
* int i = 0; i < Am.frames.size(); i++
AmFrame raam = (AmFrame)(Am.frames.elementAt(i));
String title;
!!
title = raam.getTitle().trim();
? title.endsWith("PROCESS")
po = raam.getLocation();
dim = raam.getSize();
Am.remove(raam);
! (NullPointerException e)
// path.indexOf(" ") == -1
pole tühikut == on ainult tee
? tulemus.trim().endsWith("ExitValue: 0")
<==========
teha raam tulemusega:
AmFrame tulemiRaam = Am.addGraphicFrame();
tulemiRaam.newContents();
tulemiRaam.setTitle(AmFrame.TITLE0 + " PROCESS");
paigutada:
Dimension dimScr = Toolkit.getDefaultToolkit().getScreenSize();
//System.out.println("ActionController:process:dimScr:" + dimScr);
Point poAlgne;
Dimension dimAlgne;
? dimScr.height < 1024
poAlgne = new Point(50, 450);
dimAlgne = new Dimension(900, 350);
<======
poAlgne = new Point(350, 600);
dimAlgne = new Dimension(900, 400);
? po == null
tulemiRaam.setLocation(poAlgne);
<======
tulemiRaam.setLocation(po);
? dim == null
tulemiRaam.setSize(dimAlgne);
<======
c = tulemiRaam.viewArea;
String[] tulem = CommandLine.toArray(tulemus, "\n\r");
Sketch sTulem = tulemiRaam.contents.main;
Branch bTulem = sTulem.branch(0);
bTulem.removeMember(0);
teha jooksev <== Monospaced
int siz = Default.font.getSize();
int sty = Default.font.getStyle();
Font monospaced = new Font("Monospaced", sty, siz);
AmFont.No(monospaced, c.getGraphics());
seada font
* int i = 0; i < tulem.length-1; i++
ilma reata Error: 0/1
Row r;
String rida = tulem[i].trim();
? rida.startsWith("ERROR>")
r = new Row(rida.substring(6), Default.conditionColor);
<======
? rida.startsWith("OUTPUT>")
r = new Row(rida.substring(7), Default.foregroundColor);
<======
r = new Row(rida, Default.foregroundColor);
seada momospaced
r.setFont(monospaced);
Text t = new Text();
t.insert(r, 1);
t.remove(0);
bTulem.insert(new PrimitiveMember(Primitive.SIMPLE, t), i);
tulemiRaam.contents.main.view.plan(c.hd, c.vd);
c.own = true;
c.repaint();
tulemiRaam.toFront();
SAVE
static void saveAs(AmFrame frame)
String fileName;
boolean changed = frame.contents.file.changed;
? frame instanceof AmProjectFileFrame
proovime saada faili nimet dialoogist
String title = AmLocale.Save();
fileName = "";
? ((frame.contents != null) && (frame.contents.file != null) && !((frame.contents.file.name == null) || (frame.contents.file.name.trim().equals(""))) )
fileName = frame.contents.file.name;
<======
fileName = fileName = getUntitledName(null);
fileName = getFileNameFromDialog(frame, (new File(fileName)), title , title, null);
? fileName == null || fileName.trim().equals("")
<==============
saame ainult faili nimi, ilma teeta
? fileName.lastIndexOf(er) > 0
fileName = fileName.substring(fileName.lastIndexOf(er)+1).trim();
täita skript:
frame.setCursor(new java.awt.Cursor(java.awt.Cursor.WAIT_CURSOR));
ProjectBoard.executeAutomatScript(frame, fileName, ProjectBoard.SAVE_SCRIPT);
frame.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
? changed
frame.contents.setChanged(true);
static void saveAll(AmFrame frame)
String pFName = "";
int k = Am.frames.size();
AmFrame fr;
frame.setCursor(new java.awt.Cursor(java.awt.Cursor.WAIT_CURSOR));
* int i =0; i < k; i++
fr =(AmFrame)Am.frames.get(i);
? fr instanceof AmProjectFileFrame
? fr.contents != null
? fr.contents.main != null
? fr.contents.main.body.size() > 0
? (fr.contents != null && fr.contents.file != null && fr.contents.file.name != null &&
!fr.contents.file.name.trim().equals(""))
ProjectBoard.executeAutomatScript(((AmProjectFileFrame)fr), fr.contents.file.name, ProjectBoard.SAVE_SCRIPT);
<======
fr.setState(javax.swing.JFrame.NORMAL);
fr.show();
saveAs(fr);
frame.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
static void save(AmFrame frame)
frame.setCursor(new java.awt.Cursor(java.awt.Cursor.WAIT_CURSOR));
ProjectBoard.executeAutomatScript(frame, "",ProjectBoard.SAVE_SCRIPT);
frame.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
return;
OPEN
static void open(AmFrame frame)
frame.setCursor(new java.awt.Cursor(java.awt.Cursor.WAIT_CURSOR));
ProjectBoard.executeAutomatScript(frame, "",ProjectBoard.OPEN_SCRIPT);
frame.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
AUTO - SAVE
static void findForAutoSaveFrames()
boolean returnValue = false;
int k = Am.frames.size();
AmFrame fr = null;
* int i =0; i < k; i++
fr =(AmFrame)Am.frames.get(i);
? fr.contents != null
? fr.contents.file != null
? fr.contents.file.changed
autoSave(fr);
static void autoSave(AmFrame frame)
String autoSaveFileName;
frame.contents == null
? frame.contents == null
Ei ole midagi salvestada
return;
frame.contents.file != null
? frame.contents.file != null
? frame.contents.file.changed
//ProjectBoard.writeLog("INFO (method ActionController.autoSave): File is changed! Make auto Save.");
<======
//ProjectBoard.writeLog("INFO (method ActionController.autoSave): File is not changed!");
return;
autoSaveFileName = makeRecoveryFileName(frame.contents.file.name);
<======
autoSaveFileName = makeRecoveryFileName("temp.temp");
!!
File file = new File(autoSaveFileName);
autoSaveFileName = file.getAbsolutePath();
Sketch2Xml.s2h(frame.contents.main, autoSaveFileName);
// ProjectBoard.writeLog("INFO (ActionController.autoSave): AutoSave saved sketchytext to="+autoSaveFileName);
! (Exception e)
static String makeRecoveryFileName2(String realName)
Funktsioon asendab kõik backslashid ja kolumid faili nimel
String rStr;
rStr = realName + ".bak";
return rStr;
static String makeRecoveryFileName(String realName)
Funktsioon asendab kõik backslashid ja kolumid faili nimel
String rStr;
? realName == null || realName.trim().equals("")
rStr = "temp.temp";
<======
rStr = rStr.replaceAll("0","00");
rStr = rStr.replaceAll("1","11");
rStr = rStr.replaceAll(":","01");
rStr = rStr.replace(er,':');
rStr = rStr.replaceAll(":","10");
? Default.tempDirectory != null
File f = new File(Default.tempDirectory);
? f.exists()
? f.isDirectory()
String path = f.getAbsolutePath();
? !path.endsWith(ProjectBoard.er)
path = path + ProjectBoard.er;
rStr = path + rStr;
? rStr != null && !rStr.trim().equals("")
rStr = ProjectBoard.changeFileExtention(rStr, "xml");
return rStr;
static void removeRecoverFile(String fileName)
File recoverFile;
String autoSaveFileName = makeRecoveryFileName(fileName);
recoverFile = new File(autoSaveFileName);
? recoverFile.exists()
deleteFile(recoverFile);
static boolean deleteFile(File f)
boolean returnValue = false;
!!
? f.delete()
//ProjectBoard.writeLog("INFO (method ProjectBoard.removeRecoverFile): recover file was deleted.");
returnValue = true;
<======
int i = 5;
* ;i > 0;
? f.delete()
returnValue = true;
//ProjectBoard.writeLog("INFO (method ProjectBoard.removeRecoverFile): recover file was deleted.");
i = 0;
<======
//ProjectBoard.writeLog("INFO (method ProjectBoard.removeRecoverFile): recover file was not deleted.");
! (Exception e)
return returnValue;
static boolean recover(AmFrame frame, String fileName)
Output: tagastab true, kui autoSave näidatud frame-s
tagastab false teistes juhtudes
File recoverFile;
File file;
file = new File(fileName);
long time = file.lastModified();
String autoSaveFileName = makeRecoveryFileName(fileName);
boolean returnValue = false;
String bfn = null;
recoverFile = new File(autoSaveFileName);
? !recoverFile.exists()
return returnValue;
long recoverTime = recoverFile.lastModified();
? recoverTime > time
//ProjectBoard.writeLog("INFO (method ActionController.recover): SketchyText saved before was found ");
AmDialog d;
d = new AmDialog(frame, "File recover",
AmDialog.B_YES_NO,
AmLocale.RecoverFile()+"\n "+ fileName);
??d.getTulemus()
? AmDialog.NO:
<======
? AmDialog.YES:
? hasFileName()
bfn = fName;
setAttributes(autoSaveFileName);
doImportRecover(frame);
frame.contents.setChanged(true);
? frame.contents != null
? frame.contents.file != null
frame.contents.file.name = fileName;
frame.setTitle(AmFrame.TITLE0 + " - " + fileName);
? bfn != null
setAttributes(bfn);
<==========
returnValue = true;
<======
return returnValue;
Dialog to choose file name;
static String getFileNameFromDialog(AmFrame frame, File f, String title, String apBT, FileFilter ff)
JFileChooser fc;
int returnVal;
String returnName = null;
? f == null
fc = new JFileChooser(Utils.lastSelectedDirectory);
<======
fc = new JFileChooser(Utils.getDirectory(f));
? ff != null
fc.addChoosableFileFilter(ff);
fc.setDialogTitle(title);
fc.setSelectedFile(f);
String approveButtonText = apBT;
? approveButtonText != null && !approveButtonText.trim().equals("") && approveButtonText.length() >0
approveButtonText = approveButtonText.substring(0,1).toUpperCase() + approveButtonText.substring(1).toLowerCase();
fc.setApproveButtonText(approveButtonText);
returnVal = fc.showDialog(frame, approveButtonText);
? returnVal == JFileChooser.APPROVE_OPTION
File selected = fc.getSelectedFile();
Utils.setLastSelectedDirectory(selected);
returnName = selected.getAbsolutePath();
return returnName;
static boolean continueOpen(AmFrame frame)
Raamis enne avamist vaja kontrolida kas on midagi salvestamata
Kui on siis hoiatada sellest kasutajat
frame.contents == null || frame.contents.main == null
? frame.contents == null || frame.contents.main == null
return true;
? frame.contents.file != null
? (frame.contents.file.changed) // || !frame.contents.editor.stack.stack_is_empty()
AmDialog dd = new AmDialog(frame,
AmLocale.Info(),
AmDialog.B_YES_NO,
AmLocale.File() + " " +AmLocale.is_not_saved() +". "+ AmLocale.ContinueQuestion()+"?");
?? dd.getTulemus()
? AmDialog.YES:
save(1);
AutoSave
kustutada recovery fail kui selline on
removeRecoverFile(frame.contents.file.name);
<==============true
<==============false
<======true
static String getUntitledName(String ext)
String returnName = UNTITLED;
? ext !=null && !ext.trim().equals("")
returnName = UNTITLED+"."+ext;
<======Utils.putFileToLastSelectedDirectory(returnName)
static String getFileName(AmFrame frame, String ext)
Sisend: raam ja uus faililaiend
Väljund: Kui raamiga seotud fail, siis võetakse seda alusel ja muudetakse laiend ext .
Kui raamiga ei ole mingi fail seotud siis võetakse "untitled" faili nimeks ja pannakse selle juurde laiendit ext
String fileName;
? ((frame.contents != null) && (frame.contents.file != null) && !((frame.contents.file.name == null) || (frame.contents.file.name.trim().equals(""))) )
fileName = ProjectBoard.changeFileExtention(frame.contents.file.name, ext);
<======
fileName = getUntitledName(ext);
return fileName;