diff --git a/src/main/java/cit/PureATN/MultiNote/KeyEvent_on_MultiNote.java b/src/main/java/cit/PureATN/MultiNote/KeyEvent_on_MultiNote.java index 15f6f7b..c3fefa5 100644 --- a/src/main/java/cit/PureATN/MultiNote/KeyEvent_on_MultiNote.java +++ b/src/main/java/cit/PureATN/MultiNote/KeyEvent_on_MultiNote.java @@ -24,20 +24,10 @@ public void keyPressed(KeyEvent e) { // System.out.println("keyCode=" + e.getKeyCode() + " keyChar [" + e.getKeyChar() + "]"); - if (e.getKeyCode() == KeyEvent.VK_ENTER || e.getKeyCode() == KeyEvent.VK_F || e.getKeyCode() == KeyEvent.VK_R - || e.getKeyCode() == KeyEvent.VK_M) { - // if (zrh.selection != null){ - // if (zrh.pressN != null && zrh.pressN instanceof Sheet){ - // Sheet s = (Sheet)zrh.pressN; - // s.collect(zrh.selection, e.getKeyCode()); - // } - // if (zrh.pressN != null && zrh.pressN instanceof SSGroup){ //SSGRoup - // だったら,シートに変換 - // SSGroup ssg = (SSGroup)zrh.pressN; - // ssg.sheet.collect(zrh.selection, e.getKeyCode()); - // } - // } - // zrh.dismissRegionLater(); + if (e.getKeyCode() == KeyEvent.VK_ENTER) { + MultiNote mn = (MultiNote)Note.theapp; + mn.vlayout(); + mn.iroduke(); } if (e.getKeyCode() == KeyEvent.VK_C) { //色付け MultiNote mn = (MultiNote)Note.theapp; @@ -45,11 +35,11 @@ } if (e.getKeyCode() == KeyEvent.VK_V) { //Visual Layout MultiNote mn = (MultiNote)Note.theapp; - mn.vlayout(); + mn.setExpandMode(true); } if (e.getKeyCode() == KeyEvent.VK_F) { //Fold MultiNote mn = (MultiNote)Note.theapp; - mn.vfold(); + mn.setExpandMode(false); } if (e.getKeyCode() == KeyEvent.VK_R) { MultiNote mn = (MultiNote)Note.theapp; diff --git a/src/main/java/cit/PureATN/MultiNote/MultiNote.java b/src/main/java/cit/PureATN/MultiNote/MultiNote.java index bd2c286..998f2ae 100644 --- a/src/main/java/cit/PureATN/MultiNote/MultiNote.java +++ b/src/main/java/cit/PureATN/MultiNote/MultiNote.java @@ -43,7 +43,7 @@ // dPenReceiver = new DPenReceiver(this); } - PPath[] shitajikiNodes = new PPath[11]; + public PPath[] shitajikiNodes = new PPath[11]; public void initialize() { super.initialize(); @@ -143,35 +143,42 @@ } + boolean expandMode = false; //初期状態は「たたんでいる」 + public void vlayout() { - PTransformActivity ta = null; - for (int i = 1; i < 6; i++) { - shitajikiNodes[i].animateToPositionScaleRotation((i - 1) * 700, 0, 1, 0, 1000); - } - for (int i = 6; i < 11; i++) { - ta = shitajikiNodes[i].animateToPositionScaleRotation((i - 6) * 700, 1000, 1, 0, 1000); - } - - PTransformActivity ta2 = getCanvas().getCamera().animateViewToCenterBounds( - // getCanvas().getLayer().getFullBounds(), - new PBounds(0, 0, 700*5, 990*2), - true, 1000); - ta2.startAfter(ta); - + setExpandMode(!expandMode); } - - public void vfold() { - PTransformActivity ta = null; - for (int i = 1; i < 11; i++) { - ta = shitajikiNodes[i].animateToPositionScaleRotation(0, 0, 1, 0, 1000); - } - - PTransformActivity ta2 = getCanvas().getCamera().animateViewToCenterBounds( - //getCanvas().getLayer().getFullBounds(), - new PBounds(0, 0, 700, 990), - true, 1000); - ta2.startAfter(ta); - + public void setExpandMode(boolean b){ + expandMode = b; + vlayout(expandMode); } + public void vlayout(boolean doexpand) { + PTransformActivity ta = null; + if (doexpand) { + for (int i = 1; i < 6; i++) { + shitajikiNodes[i].animateToPositionScaleRotation((i - 1) * 700, 0, 1, 0, 1000); + } + for (int i = 6; i < 11; i++) { + ta = shitajikiNodes[i].animateToPositionScaleRotation((i - 6) * 700, 1000, 1, 0, 1000); + } + PTransformActivity ta2 = getCanvas().getCamera().animateViewToCenterBounds( + // getCanvas().getLayer().getFullBounds(), + new PBounds(0, 0, 700 * 5, 990 * 2), + true, 1000); + ta2.startAfter(ta); + } else { + // たたむ + for (int i = 1; i < 11; i++) { + ta = shitajikiNodes[i].animateToPositionScaleRotation(0, 0, 1, 0, 1000); + } + + PTransformActivity ta2 = getCanvas().getCamera().animateViewToCenterBounds( + // getCanvas().getLayer().getFullBounds(), + new PBounds(0, 0, 700, 990), + true, 1000); + ta2.startAfter(ta); + + } + } } diff --git a/src/main/java/cit/PureATN/PenUser.java b/src/main/java/cit/PureATN/PenUser.java index 57f9997..7788878 100644 --- a/src/main/java/cit/PureATN/PenUser.java +++ b/src/main/java/cit/PureATN/PenUser.java @@ -24,6 +24,8 @@ import org.piccolo2d.PNode; import org.piccolo2d.util.PObjectOutputStream; +import cit.PureATN.MultiNote.MultiNote; + public class PenUser implements Serializable { private static final long serialVersionUID = 9212314123123L; public static Hashtable penusers = new Hashtable(); @@ -144,10 +146,9 @@ System.out.println("restore penid " + penid); System.out.println("count " + strokes.size()); penusers.put(penid, this); - PNode layer = Note.theapp.getCanvas().getLayer(); for (ShortStroke squiggle : strokes) { squiggle.rebuildStroke(); - layer.addChild(squiggle); + squiggle.restore_on_load(); } Note.theapp.repaint(); @@ -210,14 +211,14 @@ } } else { PNode layer = Note.theapp.getCanvas().getLayer(); - if (squiggle.tempPts.size()<3) { + if (squiggle.tempPts.size() < 3) { layer.removeChild(squiggle); squiggle = null; - return; + return; } strokes.add(squiggle); - squiggle.applyTempPtsToAry(); - squiggle.penid = num; //整数型のPenID + squiggle.penid = num; // 整数型のPenID + squiggle.endDrag_on_draw(); // 筆記確定後の仕上げをする squiggle = null; } } diff --git a/src/main/java/cit/PureATN/ShortStroke.java b/src/main/java/cit/PureATN/ShortStroke.java index 417ac69..0f30599 100644 --- a/src/main/java/cit/PureATN/ShortStroke.java +++ b/src/main/java/cit/PureATN/ShortStroke.java @@ -13,9 +13,13 @@ import java.util.StringTokenizer; import java.util.Vector; +import org.piccolo2d.PNode; import org.piccolo2d.activities.PActivity; import org.piccolo2d.nodes.PPath; import org.piccolo2d.util.PBounds; +import org.piccolo2d.util.PDimension; + +import cit.PureATN.MultiNote.MultiNote; /** @@ -133,8 +137,33 @@ this.lineTo(px,py); } public void endDrag_on_draw(){ - // applyTempPtsToAry(); + // 下敷きが用意されていれば、Layerから下敷きに移動する + applyTempPtsToAry(); + if (Note.theapp instanceof MultiNote){ + //下敷きを特定 + MultiNote mn = (MultiNote)Note.theapp; + PPath theShitajiki = mn.shitajikiNodes[penid]; + if (theShitajiki != null){ + Point2D offset = theShitajiki.getOffset(); + move((float)-offset.getX(), (float)-offset.getY()); + theShitajiki.addChild(this); + } + } + } + public void restore_on_load(){ + if (Note.theapp instanceof MultiNote){ + //下敷きを特定 + MultiNote mn = (MultiNote)Note.theapp; + PPath theShitajiki = mn.shitajikiNodes[penid]; + if (theShitajiki != null){ + theShitajiki.addChild(this); + } + } else { + PNode layer = Note.theapp.getCanvas().getLayer(); + layer.addChild(this); + } } + public void applyTempPtsToAry(){ sx = new float[tempPts.size()]; sy = new float[tempPts.size()]; @@ -907,6 +936,7 @@ public int sec10size; public int sec30size; public int sec60size; + }