AMADEUS html plain
This sketchy text is generated by AMADEUS
import java.awt.*;
class Selection
class Selection
AmCanvas c;
Cursor start;
Cursor end;
transient Scheme parent;
valiku ülemus
* static final int
valiku liik
NONE = 0;
grupp
PRIMITIVE2PRIMITIVE = 1;
erin,liikmed/pa"ised
SCHEME2PRIMITIVE = 2;
liikmed
PRIMITIVE2SCHEME = 3;
liikmed
SCHEME2SCHEME = 4;
liikmed
kommentaar vo~i selle osa
SCHEMECOMMENT2SCHEMECOMMENT = 5;
OUTER = 6;
yhe primitiivi piires
PRIMITIVE = 7;
tekst + kommentaar
PRIMITIVETEXT = 8;
yhe primit. tekstil
PRIMITIVECOMMENT = 9;
yhe primit. kommentaaril
Selection(AmCanvas ca, Cursor c1, Cursor c2)
konstrukor
c = ca;
start = c1; end = c2;
enableMenu();
<======
Selection(Cursor c1, Cursor c2)
konstrukor (ekraaniga sidumata)
c = null;
start = c1; end = c2;
public void enableMenu()
int kind = kind();
? kind == NONE
<======
AmMenu menuBar = c.frame.menuBar;
menuBar.setEnabled(AmLocale.Edit(), AmLocale.Delete(), true);
menuBar.setEnabled(AmLocale.Edit(), AmLocale.Replace(), true);
menuBar.setEnabled(AmLocale.Edit(), AmLocale.Cut(), true);
menuBar.setEnabled(AmLocale.Edit(), AmLocale.Copy(), true);
kui on valitud yks skeem :
menuBar.setEnabled(AmLocale.Edit(),AmLocale.Toggle(), true);
menuBar.setEnabled(AmLocale.Edit(),AmLocale.Enclose(), true);
? kind == PRIMITIVETEXT || kind == PRIMITIVECOMMENT
menuBar.setEnabled(AmLocale.Edit(),AmLocale.Toggle(), false);
menuBar.setEnabled(AmLocale.Edit(),AmLocale.Enclose(), false);
? (kind == PRIMITIVE2PRIMITIVE && start.inHead()) ||
(kind == PRIMITIVE && start.inHead())
|| kind == SCHEMECOMMENT2SCHEMECOMMENT
kui kogu päis on valitud
menuBar.setEnabled(AmLocale.Edit(),AmLocale.Toggle(), false);
menuBar.setEnabled(AmLocale.Edit(),AmLocale.Enclose(), false);
kui on valitud yks skeem vo~i haru
? ((kind == OUTER) ||
((kind == SCHEME2SCHEME) && (start.scheme == end.scheme)))
? start.scheme instanceof Branch
|| (kind == OUTER)
haru ja va'limist skeemi ei saa togida ega haarata
menuBar.setEnabled(AmLocale.Edit(),AmLocale.Toggle(), false);
menuBar.setEnabled(AmLocale.Edit(),AmLocale.Enclose(), false);
<======
? !start.scheme.isHeadless()
PYTHON ja ALGJAVA erand: päisega skeemi ei saa togida
menuBar.setEnabled(AmLocale.Edit(),AmLocale.Toggle(), false);
menuBar.setEnabled(AmLocale.Edit(), AmLocale.Textualize()+"<", true);
menuBar.setEnabled(AmLocale.Edit(),AmLocale.Toggle()+" "+
AmLocale.text_color(), true);
menuBar.setEnabled(AmLocale.Edit(),AmLocale.Set()+" "+
AmLocale.text_style(), true);
menuBar.setEnabled(AmLocale.Edit(),AmLocale.Default()+" "+
AmLocale.text_color(), true);
? ((kind == OUTER) ||
((kind == SCHEME2SCHEME) && (start.scheme == end.scheme)
&& (start.scheme instanceof Sketch)))
menuBar.setEnabled(AmLocale.Tools(), true);
<======
menuBar.setEnabled(AmLocale.Tools(), false);
kui on valitud yks skeem vo~i haru
? ((kind == OUTER) ||
((kind == SCHEME2SCHEME) && (start.scheme == end.scheme)))
ALGJAVA Java5 erand
? start.scheme.view.type != View.SKM
Java 5 -l on keelatud vaate muutmine
menuBar.setEnabled(AmLocale.View(), true);
<======
ALGJAVA: lisaks: keelatud lisamised (F1, ...):
menuBar.setEnabled(AmLocale.Insert(), false);
menuBar.setEnabled(AmLocale.Base(), true);
<======
menuBar.setEnabled(AmLocale.View(), false);
menuBar.setEnabled(AmLocale.Base(), false);
void cancel()
AmMenu menuBar = c.frame.menuBar;
menuBar.setEnabled(AmLocale.Edit(), AmLocale.Cut(), false);
menuBar.setEnabled(AmLocale.Edit(), AmLocale.Copy(), false);
? (Am.clipboard.obj == null)
menuBar.setEnabled(AmLocale.Edit(), AmLocale.Paste(), false);
menuBar.setEnabled(AmLocale.Edit(), "?"+AmLocale.Paste(), false);
<======
menuBar.setEnabled(AmLocale.Edit(), AmLocale.Paste(), true);
menuBar.setEnabled(AmLocale.Edit(), "?"+AmLocale.Paste(), true);
menuBar.setEnabled(AmLocale.Edit(), AmLocale.Toggle(), false);
menuBar.setEnabled(AmLocale.Edit(), AmLocale.Enclose(), false);
menuBar.setEnabled(AmLocale.Edit(),AmLocale.Toggle()+" "+
AmLocale.text_color(), false);
menuBar.setEnabled(AmLocale.Edit(),AmLocale.Set()+" "+
AmLocale.text_style(), false);
menuBar.setEnabled(AmLocale.Edit(),AmLocale.Default()+" "+
AmLocale.text_color(), false);
menuBar.setEnabled(AmLocale.Edit(), AmLocale.Textualize()+"<", false);
menuBar.setEnabled(AmLocale.Tools(), false);
menuBar.setEnabled(AmLocale.View(), false);
menuBar.setEnabled(AmLocale.Base(), false);
start = null;
end = null;
Scheme parent()
??kind()
? PRIMITIVE:
? PRIMITIVETEXT:
? PRIMITIVE2PRIMITIVE:
? PRIMITIVE2SCHEME:
<==========start.scheme
<==========end.scheme
<==========start.scheme.parent
<======null
int kind()
milline valik
int startIndex, endIndex;
? ((start == null) || (end == null))
<======NONE
? (start.scheme == end.scheme)
valitud on skeemikommentaaris vo~i
primitiivist primitiivini vo~i yksik skeem
vo~i primitiivi tekst
? (start.inScheme() && end.inScheme())
valitud on skeemikommentaaris vo~i
primitiivist primitiivini
? ((start.primitive == end.primitive) &&
start.inPrimitive() &&
!start.inTextComment() &&
end.inTextComment()
)
<==================PRIMITIVE
? ((start.primitive == end.primitive) &&
start.inPrimitive() &&
end.inPrimitive() &&
!start.inTextComment() &&
!end.inTextComment()
)
<==================PRIMITIVETEXT
? ((start.primitive == end.primitive) &&
start.inPrimitive() &&
end.inPrimitive() &&
start.inTextComment() &&
end.inTextComment()
)
<==================PRIMITIVECOMMENT
? (start.inSchemeComment() && end.inSchemeComment())
//
? (start.noInRow > end.noInRow)
<==========================NONE
<======================SCHEMECOMMENT2SCHEMECOMMENT
? (start.inBody() != end.inBody())
<==================NONE
? (start.inBody())
primtiivliikmetel
startIndex = start.scheme.body.indexOf(start.primitive);
endIndex = start.scheme.body.indexOf(end.primitive);
<======
primitiivpa"istel
startIndex = start.scheme.head.indexOf(start.primitive);
endIndex = start.scheme.head.indexOf(end.primitive);
? (startIndex < endIndex)
<==================PRIMITIVE2PRIMITIVE
? (startIndex == endIndex)
..if
? (start.noInRow <= end.noInRow)
<======================PRIMITIVE2PRIMITIVE
<==============NONE
vo~ib olla yksik skeem
? (!start.inScheme() || !end.inScheme())
? (start.scheme.parent == null)
<==================OUTER
<==================SCHEME2SCHEME
primitiivist primitiivini
<======
? (start.scheme.parent == end.scheme)
valitud on skeemist primitiivini
<==============NONE
startIndex = start.scheme.parent.body.indexOf(start.scheme);
endIndex = end.scheme.body.indexOf(end.primitive);
? (startIndex < endIndex)
<==============SCHEME2PRIMITIVE
<==========NONE
? (start.scheme == end.scheme.parent)
valitud on primitiivist skeemini
..if
<==============NONE
startIndex = start.scheme.body.indexOf(start.primitive);
endIndex = end.scheme.parent.body.indexOf(end.scheme);
..if
? (startIndex < endIndex)
<==============PRIMITIVE2SCHEME
<==========NONE
start.scheme != end.scheme ja pole eelmised
valitud on skeemist skeemini
? (start.scheme.parent != end.scheme.parent)
<==========NONE
? (start.scheme.parent == null)
<==========OUTER
startIndex = start.scheme.parent.body.indexOf(start.scheme);
endIndex = start.scheme.parent.body.indexOf(end.scheme);
? (startIndex <= endIndex)
<==========SCHEME2SCHEME
start.scheme != end.scheme
saab olla ainult skeemist ... vo~i ... skeemini
<======NONE
Rectangle area()
teeb just nagu view-ga antud +1 pixel
int k = kind();
? (k != NONE)
Scheme a = start.scheme, b = end.scheme;
..switch
??k
? PRIMITIVE:
terve primitiiv, st. tekst koos kommentaariga
<==============new Rectangle(start.primitive.text.x-1,
start.primitive.text.y-1,
start.primitive.text.width+2,
start.primitive.text.height+2)
? PRIMITIVETEXT:
tekst(ilma kommentaarita) vo~i teksti osa
int x = start.row.x;
int y = start.row.y;
int h = end.row.y + end.row.height - start.row.y;
int w = start.primitive.text.width(start.rowNo(), end.rowNo());
<==============new Rectangle(x-1, y-1, w+2, h+2)
? PRIMITIVECOMMENT:
x = start.row.x;
y = start.row.y;
h = end.row.y + end.row.height - start.row.y;
w = start.row.width;
<==============new Rectangle(x-1, y-1, w+2, h+2)
? PRIMITIVE2PRIMITIVE:
x = start.primitive.text.x;
y = start.primitive.text.y;
h = end.primitive.text.y + end.primitive.text.height
- start.primitive.text.y;
w = start.primitive.text.width;
(start.rowNo());
int l;
? (start.inBody())
int i = start.scheme.body.indexOf(start.primitive);
int j = end.scheme.body.indexOf(end.primitive);
w leidmine
* i = i+1; i <= j; i++
Object o = start.scheme.member(i);
? (o instanceof Sketch)
l = ((Scheme)o).view.width;
<======
l = ((Primitive)o).text.width;
? (l > w)
w = l;
<======
? (start.inHead())
int i = start.scheme.head.indexOf(start.primitive);
int j = end.scheme.head.indexOf(end.primitive);
w leidmine
* i = i+1; i <= j; i++
PrimitiveHead he = start.scheme.primitiveHead(i);
d
l = he.text.width;
? (l > w)
w = l;
<==============new Rectangle(x-1, y-1, w+2, h+2)
? SCHEME2PRIMITIVE:
x = a.view.x;
y = a.view.y;
w = a.view.width;
h = end.primitive.text.y +
end.primitive.text.height - y;
int i = a.parent.body.indexOf(a);
int j = b.body.indexOf(end.primitive);
w leidmine
* i = i+1; i <= j; i++
Object o = a.parent.member(i);
TTTgggg
? (o instanceof Sketch)
l = ((Scheme)o).view.width;
<======
? (i < j)
l = ((Primitive)o).text.width;
<======
viimane primitiiv vo~ib olla poolik
l = ((Primitive)o).text.width(
0,
end.rowNo());
? (l > w)
w = l;
<==============new Rectangle(x-1, y-1, w+2, h+2)
? PRIMITIVE2SCHEME:
x = start.primitive.text.x;
y = start.primitive.text.y;
w = start.primitive.text.width;
(start.rowNo());
h = b.view.y +
b.view.height - y;
j = b.parent.body.indexOf(b);
i = a.body.indexOf(start.primitive);
w leidmine
* i = i+1; i <= j; i++
Object o = a.member(i);
? (o instanceof Sketch)
l = ((Scheme)o).view.width;
<======
l = ((Primitive)o).text.width;
? (l > w)
w = l;
<==============new Rectangle(x-1, y-1, w+2, h+2)
? SCHEMECOMMENT2SCHEMECOMMENT:
<==============new Rectangle(a.comment.x-1, a.comment.y-1,
a.comment.width+2, a.comment.height+2)
? SCHEME2SCHEME:
? OUTER:
<==============new Rectangle(a.view.x-1, a.view.y-1,
a.view.width+2, a.view.height+2)
erinevad skeemid
x = a.view.x;
y = a.view.y;
w = a.view.width;
h = b.view.y + b.view.height - y;
i = a.parent.body.indexOf(a);
j = b.parent.body.indexOf(b);
w leidmine
* i = i+1; i <= j; i++
Object o = a.parent.member(i);
? (o instanceof Sketch)
l = ((Scheme)o).view.width;
<======
l = ((Primitive)o).text.width;
? (l > w)
w = l;
<==============new Rectangle(x-1, y-1, w+2, h+2)
<======null
public void expand()
(hiirega valitud) valik laiemaks
int k = kind();
? (start == end)
on hiirega osutatud
? (start.inSchemeComment())
kogu skeem
start.row = null;
<======
? ((start.scheme instanceof Branch) &&
(k == SCHEME2SCHEME))
haru --> skeem
start.scheme = start.scheme.parent;
start.moveToParentHome();
start.row = null;
end = start;
.makeCopy();
<======
? (k == PRIMITIVETEXT)
teeb liigiks PRIMITIVE
end = start.makeCopy();
end.moveToTextComment();
<======
? (k == PRIMITIVECOMMENT)
teeb liigiks PRIMITIVE
start = start.makeCopy();
start.moveToPrimitiveText();
enableMenu();
valitud ryhma teisendused
void convert2head(byte headType)
ko~ik valiku liikmed on PrimitiveMember
viimasel ja"rgneb skeem
jrgm liikele pa"iseks, iga grupi liige yheks el-pa"iseks
int k = kind();
? ((k != PRIMITIVE2PRIMITIVE) &&
(k != PRIMITIVETEXT))
<======
skeem, mille pa"iseks
int istart = start.scheme.body.indexOf(start.primitive);
int iend = start.scheme.body.indexOf(end.primitive);
parent = parent();
Sketch block =
(Sketch)(parent.member(iend+1));
lisada grupi liikmed, va { ja }:
* int i = istart; i <= iend; i++
Text t =
((PrimitiveMember)(parent.member(i))).text;
PrimitiveHead h = new PrimitiveHead(headType, t);
h.text = t;
h.text.setColor(Default.sketchHeadColor);
block.head.addElement(h);
kustutada grupi liikmed ylemusest:
* int i = istart; i <= iend; i++
parent.removeMember(istart);
Sketch convert2simple()
<======convert2simple(1, 1)
Sketch convert2simple(BaseLanguage bl)
<======convert2simple(1, 1, bl)
Sketch convert2simple(int ii, int jj, BaseLanguage bl)
Sketch s = convert2simple(ii, jj);
? (s != null)
s.baseLanguage = bl;
((Branch)(s.member(0))).baseLanguage = bl;
<======s
Sketch convert2simple(int ii, int jj)
ii rida algusest mitte (la'hevad kaduma)
jj rida lopust mitte (la'hevad kaduma)
baaskeel jaa"b maa"ramata
int kind = kind();
? (start.inHead() || (kind == NONE) || (kind == OUTER))
<======null
Sketch newMember = new Sketch(Scheme.SIMPLE,
new Branch(Scheme.SIMPLE, null),
null);
parent = parent();
newMember.parent = parent;
Branch br = newMember.branch(0);
uue haru
alguse ja lo~pu indeksid valiku ylemuses:
int istart = 0;
int iend = 0;
??kind
? PRIMITIVE:
? PRIMITIVETEXT:
? PRIMITIVE2PRIMITIVE:
istart = parent.body.indexOf(start.primitive);
iend = parent.body.indexOf(end.primitive);
<======
? SCHEME2PRIMITIVE:
istart = parent.body.indexOf(start.scheme);
iend = parent.body.indexOf(end.primitive);
<======;
? PRIMITIVE2SCHEME:
istart = parent.body.indexOf(start.primitive);
iend = parent.body.indexOf(end.scheme);
<======
? SCHEME2SCHEME:
istart = parent.body.indexOf(start.scheme);
iend = parent.body.indexOf(end.scheme);
<======
int k = 1;
lisada grupi liikmed
* int i = istart+ii; i <= iend-jj; i++
Object o = parent.member(i);
? (o instanceof PrimitiveMember)
br.insert((PrimitiveMember)o, k++);
<------
br.insert((Sketch)o, k++);
br.removeMember(0);
parent.insert(newMember, iend+1);
kustutada grupi liikmed ylemusest:
* int i = istart; i <= iend; i++
parent.removeMember(istart);
newMember.incrementArrows(newMember.level(), 1);
<======newMember
public String toString(Color col)
eeldusel, et valiku grupi liikmed on Primitive
tagastab koguteksti a'la text.toString
parent = parent();
StringBuffer t = new StringBuffer();
int istart = start.scheme.body.indexOf(start.primitive);
int iend = start.scheme.body.indexOf(end.primitive);
* int i = istart; i <= iend; i++
iga liikme korral
Primitive p = (Primitive)(parent.member(i));
t.append(p.text.toString(col));
<======t.toString()
private void bite(int xx, Graphics g)
private void bite(int xx, Graphics g, int correct) Java1.2!!!
hammustada otsad valitud teksti osa
vo~i kommentaarirea ristkylikult
eeldab, et on joonistatud paremaa"rega kohal xx
int x, y, w, h;
? (start == end)
<======
esimene ots
? (start.noInRow > 1)
x = start.row.x-1;
y = start.row.y-1;
w = start.row.width(0, start.noInRow-1)+2;
h = start.row.height+2;
? (Default.selectionFill)
g.fillRect(x, y, w, h);
<======
g.drawRect(x, y, w, h);
g.drawRect(x+correct, y+correct, w, h);
tagumine ots
int first = end.noInRow;
int last = end.row.elements.size();
? (first <= last)
int w1 = end.row.width(0, first-1);
x = end.row.x-1 + w1;
y = end.row.y-1;
w = xx - (end.row.x - 2 + w1 + 4)+2;
h = end.row.height+2;
? (Default.selectionFill)
g.fillRect(x, y, w, h);
<======
g.drawRect(x, y, w, h);
g.drawRect(x+correct, y+correct, w, h);
public void draw(Graphics g)
//System.out.println("==>Selection.draw()");
//g.setColor(Default.selectionColor);
//g.setXORMode(Default.backgroundColor);
Rectangle r = area();
? r == null
g.setPaintMode();
<======
g.setColor(Default.selectionColor);
g.setXORMode(Default.backgroundColor);
? (Default.selectionFill)
g.fillRect(r.x, r.y, r.width, r.height);
<======
g.drawRect(r.x, r.y, r.width, r.height);
??kind()
? PRIMITIVETEXT:
? PRIMITIVECOMMENT:
? SCHEMECOMMENT2SCHEMECOMMENT:
bite(r.x+r.width+1, g);
bite(r.x+r.width+1, g, -1);
<======
? :
<======
g.setPaintMode();
public void drawx(Graphics g)
g.setColor(Default.selectionColor);
g.setXORMode(Default.backgroundColor);
Rectangle r = area();
? (Default.selectionFill)
g.fillRect(r.x, r.y, r.width, r.height);
<======
g.drawRect(r.x, r.y, r.width, r.height);
??kind()
? PRIMITIVETEXT:
? PRIMITIVECOMMENT:
? SCHEMECOMMENT2SCHEMECOMMENT:
bite(r.x+r.width+1, g);
bite(r.x+r.width+1, g, 0);
<======
? :
<======
g.setPaintMode();
Selection makeCopy()
Cursor cur = start.makeCopy();
? (start == end)
<======new Selection(c, cur, cur)
<======new Selection(c, cur, end.makeCopy())