AMADEUS html plain
* import java.
awt.*;
awt.event.*;
util.*;
class Item33Listener
class Item33Listener implements ActionListener
Edit + Cut
AmFrame frame;
Item33Listener(AmFrame fr)
konstruktor
public void actionPerformed(ActionEvent event)
selection2clipboard(frame, true);
public static void selection2clipboard(AmFrame frame,
boolean lõigata)
boolean polnudEnneMidagi = Am.clipboard.obj == null;
AmCanvas c = frame.viewArea;
int kind = c.selection.kind();
abitahvlile ja ?loigata
??kind
? Selection.OUTER:
Am.clipboard.obj = frame.contents.main.makeCopy();
? lõigata
frame.contents.finish();
<==============
? Selection.PRIMITIVE:
Primitive p = c.selection.start.primitive;
ALGJAVA:
? p instanceof PrimitiveHead
<==============
? p instanceof Arrow
Am.clipboard.obj = ((Arrow)p).make_Copy();
<======
? p instanceof PrimitiveMember
Am.clipboard.obj = ((PrimitiveMember)p).makeCopy();
<======
? p instanceof PrimitiveHead
Am.clipboard.obj = ((PrimitiveHead)p).makeCopy();
? lõigata
frame.contents.editor.cutPrimitive(c.selection.start.scheme, p);
frame.contents.main.view.plan(c.hd, c.vd);
<======
? Selection.SCHEME2SCHEME:
? c.selection.start.scheme == c.selection.end.scheme
üks skeem (voi haru)
Scheme parent = c.selection.start.scheme;
? lõigata && (parent instanceof Branch) && (parent.parent.body.size() == 1)
ainsa haru eemaldamisel eemaldatakse ylemskeem
? parent.parent.parent == null
välimine
Am.clipboard.obj = frame.contents.main.makeCopy();
frame.contents.finish();
<==============================
Am.clipboard.obj = ((Sketch)(parent.parent)).makeCopy();
frame.contents.editor.deleteScheme(parent.parent);
frame.contents.main.view.plan(c.hd, c.vd);
<======
skeem abitahvlile, ?lõigata
? parent instanceof Sketch
Am.clipboard.obj = ((Sketch)parent).makeCopy();
<======
Am.clipboard.obj = ((Branch)parent).makeCopy();
? lõigata
frame.contents.editor.deleteScheme(parent);
frame.contents.main.view.plan(c.hd, c.vd);
<======
grupis olevad skeemid/primitiivid abitahvlile, ?loigata grupp
Branch parent = (Branch)(c.selection.start.scheme.parent);
Vector v = new Vector();
v.addElement("members");
int i = parent.body.indexOf(c.selection.start.scheme);
int j = parent.body.indexOf(c.selection.end.scheme);
* int k = i; k <= j; k++
Object o = parent.member(k);
? o instanceof Sketch
v.addElement(((Sketch)o).makeCopy());
<------
v.addElement(((PrimitiveMember)o).makeCopy());
Am.clipboard.obj = v;
? lõigata
frame.contents.editor.cutMembers(parent, i, j);
frame.contents.main.view.plan(c.hd, c.vd);
//???c.prepare(c.selection.start.scheme.view.y - 4);
<======
? Selection.SCHEME2PRIMITIVE:
? Selection.PRIMITIVE2SCHEME:
? Selection.PRIMITIVE2PRIMITIVE:
liikmete voi pa"iste grupp abitahvlile ja ?loigata
Branch parent = null;
kompil.
int y;
lo~ikuse algus
boolean inHead = false;
Vector v = new Vector();
v.addElement("members");
int i, j;
määrata parent, i, j, inHead
? kind == Selection.SCHEME2PRIMITIVE
parent = (Branch)(c.selection.start.scheme.parent);
i = parent.body.indexOf(c.selection.start.scheme);
j = parent.body.indexOf(c.selection.end.primitive);
y = c.selection.start.scheme.view.y;
<======
? kind == Selection.PRIMITIVE2SCHEME
parent = (Branch)(c.selection.start.scheme);
i = parent.body.indexOf(c.selection.start.primitive);
j = parent.body.indexOf(c.selection.end.scheme);
y = c.selection.start.primitive.text.y;
<======
primitiivist primitiivini
y = c.selection.start.primitive.text.y;
? c.selection.start.inBody() && c.selection.end.inBody()
parent = (Branch)(c.selection.start.scheme);
i = parent.body.indexOf(c.selection.start.primitive);
j = parent.body.indexOf(c.selection.end.primitive);
<======
inHead = true;
i =
c.selection.start.scheme.head.indexOf(c.selection.start.primitive);
j =
c.selection.start.scheme.head.indexOf(c.selection.end.primitive);
? !inHead
liikmed abitahvlile ja ?lõigata
* int k = i; k <= j; k++
Object o = parent.member(k);
? o instanceof Sketch
v.addElement(((Sketch)o).makeCopy());
<------
v.addElement(((PrimitiveMember)o).makeCopy());
Am.clipboard.obj = v;
? lõigata
frame.contents.editor.cutMembers(parent, i, j);
frame.contents.main.view.plan(c.hd, c.vd);
<======
? c.selection.start.inHead() && c.selection.end.inHead()
päised abitahvlile ja lõigata
pa"isel
v.removeElementAt(0);
v.addElement("heads");
Scheme par = c.selection.start.scheme;
* int k = i; k <= j; k++
Object o = par.primitiveHead(k);
v.addElement(((PrimitiveHead)o).makeCopy());
Am.clipboard.obj = v;
? lõigata
frame.contents.editor.cutHeads(par, i, j);
frame.contents.main.view.plan(c.hd, c.vd);
frame.contents.main.view.plan(c.hd, c.vd);
//???c.prepare(y - 2);
<======
teksti osa lo~ikamine
? Selection.PRIMITIVECOMMENT:
? Selection.SCHEMECOMMENT2SCHEMECOMMENT:
kommentaar (või osa), abitahvlile ja ?loigata
Row r = c.selection.start.row;
==> abitahvlile
v = new Vector();
v.addElement("elements");
boolean all;
? c.selection.start == c.selection.end
i = 1; j = r.elements.size(); all = true;
<======
i = c.selection.start.noInRow;
j = c.selection.end.noInRow;
all = false;
? i<=j
* int k = i; k < j; k++
r.getElement(k);
? r.sy != null
v.addElement(new Symbol(r.sy.c, r.sy.font, r.sy.color));
<------
<======
* int k = j; k < i; k++
r.getElement(k);
? r.sy != null
v.addElement(new Symbol(r.sy.c, r.sy.font, r.sy.color));
<------
Am.clipboard.obj = v;
int oldW, oldH;
AJUTISELT
? lõigata
frame.contents.editor.cutFromRow(r, i, j, all);
frame.contents.main.view.plan(c.hd, c.vd);
<======
case Selection.PRIMITIVE2PRIMITIVE:
if(c.selection.start.primitive
!= c.selection.end.primitive)
return; // on valikuryhm
? Selection.PRIMITIVETEXT:
algatus
Text t = c.selection.start.primitive.text;
Row r1 = c.selection.start.row;
Row r2 = c.selection.end.row;
? c.selection.start == c.selection.end
i = 1; j = r2.elements.size(); all = true;
<======
i = c.selection.start.noInRow;
j = c.selection.end.noInRow;
all = false;
? r1 == r2
samas reas
==> abitahvlile
v = new Vector();
v.addElement("elements");
? i<=j
* int k = i; k < j; k++
r1.getElement(k);
? r1.sy != null
v.addElement(
new Symbol(r1.sy.c, r1.sy.font, r1.sy.color));
<------
<======
* int k = j; k < i; k++
r1.getElement(k);
? r1.sy != null
v.addElement(
new Symbol(r1.sy.c, r1.sy.font, r1.sy.color));
<------
Am.clipboard.obj = v;
? lõigata
? i <= j
frame.contents.editor.cutFromRow(r1, i, j, all);
<======
true, et karett ei jääks rea lõpust paremale tolknema
frame.contents.editor.cutFromRow(r1, j, i, true);
frame.contents.main.view.plan(c.hd, c.vd);
<======
erinevates ridades
==> abitahvlile
v = new Vector();
v.addElement("rows");
int ir1 = t.rows.indexOf(r1);
int ir2 = t.rows.indexOf(r2);
int k;
kõik read abitahvlile
* k = ir1; k <= ir2; k++
v.addElement(t.row(k).makeCopy());
abitahvli eemaldada esimese rea algusest
r = (Row)(v.elementAt(1));
* k = 1; k < i; k++
r.elements.removeElementAt(1);
r.planSize();
abitahvlil eemaldada viimase rea lõpust
r = (Row)(v.lastElement());
int n = r.elements.size();
* k = j; k < n; k++
r.elements.removeElementAt(j);
r.planSize();
Am.clipboard.obj = v;
eemaldada algtekstis
? lõigata
frame.contents.editor.cutFromText(t, r1, i, r2, j, all);
frame.contents.main.view.plan(c.hd, c.vd);
? lõigata
c.selection.cancel();
c.own = true; c.repaint();
? polnudEnneMidagi
? Am.clipboard.obj != null
ja nüüd on
kõigis mittetühjades raamides lubada Paste
* int i = 0; i < Am.frames.size(); i++
AmFrame frm = (AmFrame)(Am.frames.elementAt(i));
? frm.contents == null
<------
AmCanvas cc = frm.viewArea;
AmMenu menu = cc.frame.menuBar;
menu.setEnabled(AmLocale.Edit(), AmLocale.Paste(), true);
menu.setEnabled(AmLocale.Edit(), "?" + AmLocale.Paste(), true);