AMADEUS html plain
* import java.awt.
*;
event.*;
Toolkit;
beep
import javax.swing.*;
class Item50Listener
class Item50Listener implements ActionListener
Insert+Simple
AmFrame frame;
Item50Listener(AmFrame fr)
konstruktor
public void actionPerformed(ActionEvent event)
Sketch sk = makeSimpleSketchAtCaret(frame, false);
uus lihtskeem
insertSketchAtCaret(frame, sk);
public static Sketch makeSimpleSketchAtCaret(AmFrame frame,
boolean multi)
teha uus lihtskeem (baaskeel ja vaade ylemuselt)
Editor editor = frame.contents.editor;
Caret caret = editor.caret;
BaseLanguage bl =
BaseLanguage.newBaseLanguage(caret.scheme.baseLanguage.type);
Branch br = new Branch(Scheme.SIMPLE, bl);
bl =
BaseLanguage.newBaseLanguage(caret.scheme.baseLanguage.type);
Sketch sk = new Sketch(Scheme.SIMPLE, br, bl);
seada vaade (ylemusest)
View.set(sk, caret.scheme.view.type);
View.set(br, caret.scheme.view.type);
? multi
lisada teine haru:
bl =
BaseLanguage.newBaseLanguage(caret.scheme.baseLanguage.type);
Branch br2 = new Branch(Scheme.SIMPLE, bl);
sk.insert(br2, 0);
seada vaade (ülemusest)
View.set(br2, caret.scheme.view.type);
<======sk
public static void insertSketchAtCaret(AmFrame frame, Sketch sk)
lisada uus skeem, olenevalt kareti asukohast,
ka Paste sketch, aga siis poleks vaja karetti kuhugi viia
ALGJAVA: + ... ja skeemi tüübist
AmCanvas c = frame.viewArea;
Editor editor = frame.contents.editor;
Caret caret = editor.caret;
? sk.type == Scheme.MODULE || sk.containsModule()
MEETODI LISAMINE või RÜHMII kleepimine(Item34Listenerist)
BaseLanguage_AlgJava.kuhuJaMitmendaks(
caret, BaseLanguage_AlgJava.F3);
<======
sk.type != Scheme.MODULE
BaseLanguage_AlgJava.kuhuJaMitmendaks(
caret, BaseLanguage_AlgJava.ENTER);
sobib ka F1, F2 , F4 ja F4_SHIFT korral
? BaseLanguage_AlgJava.kuhu != null
editor.insertScheme(BaseLanguage_AlgJava.kuhu,
BaseLanguage_AlgJava.mitmendaks, sk);
lisatud skeem valikuks
Cursor cursor = new Cursor(sk);
c.selection = new Selection(c, cursor, cursor);
View.sizeFactor = frame.sizeFactor;
JK 04.01.2007 vaja, kui tehakse pärast nt Kohastust
viiaKarettKirjutamiskohale(sk, editor);
frame.contents.main.view.plan(c.hd, c.vd, true);
true: JK 04.01.2007
c.caretToScreen();
karett ekraanile
c.own = true; c.repaint();
<======
Toolkit.getDefaultToolkit().beep();
private static void viiaKarettKirjutamiskohale(Sketch sk, Editor ed)
lisatud skeemis liigutada karett
? sk.type == Scheme.MODULE
ed.caret.moveDown();
meetodi päise algusse
<======
? sk.type == Scheme.LOOP
ed.caret.moveDown();
tsükli päise algusesse
<======
? sk.type == Scheme.SIMPLE && (! sk.isHeadless())
? sk.primitiveHead(0).type == PrimitiveHead.TRY
try-catch
ed.caret.moveDown();
ed.caret.moveDown();
ed.caret.moveDown();
haru kommentaari lõppu
ed.caret.moveDown();
try-osa algusse
<======
ed.caret.moveDown();
päise algusse ('if' või 'switch' või 'try' ette)
Row r = ed.caret.row;
String sr = r.toString();
Praegu liigub eelmiste peistimisel kursor ikka alla
? sr.indexOf("_") == -1
oli Paste, pole vaja kuhugi viia
<======
if või switch
päise reas kuni tuleb '_'
r.getElement(ed.caret.noInRow);
? r.sy == null
igaks juhuks
<------
<======
//vana
? sk.primitiveHead(0).type == PrimitiveHead.TRY
try-catch
ed.caret.moveDown();
ed.caret.moveDown();
ed.caret.moveDown();
haru kommentaari lõppu
ed.caret.moveDown();
try-osa algusse
<======
if või switch
päise reas kuni tuleb '_'
r.getElement(ed.caret.noInRow);
? r.sy == null
igaks juhuks
<------
<======
<======