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 3e60da1..75f6254 100644 --- a/src/main/java/cit/PureATN/MultiNote/KeyEvent_on_MultiNote.java +++ b/src/main/java/cit/PureATN/MultiNote/KeyEvent_on_MultiNote.java @@ -46,6 +46,10 @@ MultiNote mn = (MultiNote)Note.theapp; mn.showStat(); } + if (e.getKeyCode() == KeyEvent.VK_DELETE) { + MultiNote mn = (MultiNote)Note.theapp; + mn.deleteAllStrokes(); + } if (e.getKeyCode() == KeyEvent.VK_Z) { // System.out.println("SimpleATN zoomLevel = "+getZoomLevel()); diff --git a/src/main/java/cit/PureATN/MultiNote/MultiNote.java b/src/main/java/cit/PureATN/MultiNote/MultiNote.java index 39dc1c6..50728ae 100644 --- a/src/main/java/cit/PureATN/MultiNote/MultiNote.java +++ b/src/main/java/cit/PureATN/MultiNote/MultiNote.java @@ -28,7 +28,7 @@ public class MultiNote extends Note { static int width = 920; - static int height = (int)(width*1.42); + static int height = (int) (width * 1.42); public MultiNote() { this(null); @@ -57,7 +57,7 @@ // 追加機能:右クリックでメニューをだす getCanvas().getCamera().addInputEventListener(new MouseEvent_onMN(this)); - currentTitle = "MultiNote (Esc key to zoom whole strokes)"; + currentTitle = "MultiNote ([c]色付け [DEL]全削除 [Esc]ズーム)"; // setTitle(currentTitle); setMousePenID(1); @@ -76,6 +76,8 @@ getCanvas().getLayer().addChild(stjk); } // getCanvas().getLayer().addChild(PPath.createRectangle(100, 100, 700, 990)); + requestFocus(); + } public SquiggleEventHandler createSquiggleEvent() { // may be overridden @@ -95,11 +97,11 @@ int penid = Integer.parseInt(penid0x); // System.out.println(penid+" "+penid*penid); //pen06 - Color c = Color.getHSBColor((float) (penid / 10.0f), 0.8f, 0.8f); + Color c = Color.getHSBColor((float) (penid / 10.0f), 1.0f, 1.0f); ArrayList sss = PenUser.find(penidStr).strokes; for (ShortStroke s : sss) { s.setStrokePaint(c); - System.out.println("ss.time " + s.time); + // System.out.println("ss.time " + s.time); if (s.getParent() instanceof PLayer) { shitajikiNodes[penid].addChild(s); // 親レイヤーから、下敷きに移動 } @@ -109,7 +111,7 @@ } // stroke.addAttribute("moveTarget", stroke); - public void setMoveTargetToShortStroke(boolean isenable){ + public void setMoveTargetToShortStroke(boolean isenable) { Enumeration ite = PenUser.penusers.keys(); while (ite.hasMoreElements()) { String penidStr = ite.nextElement(); @@ -120,7 +122,7 @@ Color c = Color.getHSBColor((float) (penid / 10.0f), 0.8f, 0.8f); ArrayList sss = PenUser.find(penidStr).strokes; for (ShortStroke s : sss) { - if (isenable){ + if (isenable) { s.addAttribute("moveTarget", s); } else { s.addAttribute("moveTarget", null); @@ -130,7 +132,6 @@ } - /** * 筆記数の確認サンプル:PenIDごとに、筆記数を表示する */ @@ -232,7 +233,24 @@ // if (matchCount==1 && lastMatchID > 0){ if (lastMatchID > 0) { setMousePenID(lastMatchID); - System.out.println("switch to " + lastMatchID+ "(count = "+matchCount+")"); + System.out.println("switch to " + lastMatchID + "(count = " + matchCount + ")"); + } + } + + // すべての筆記を消す + public void deleteAllStrokes() { + + for (int i = 1; i < 11; i++) { + PPath stjk = shitajikiNodes[i]; + stjk.removeAllChildren(); + // var children = stjk.getChildrenReference(); + // for (var child : children) { + // if (child instanceof PPath) { + // PPath pchild = (PPath) child; + // pchild.removeFromParent(); + // } + // } + // } } } } diff --git a/src/main/java/cit/PureATN/MultiNote/PopupMenu_forMN.java b/src/main/java/cit/PureATN/MultiNote/PopupMenu_forMN.java index b14ca16..858864d 100644 --- a/src/main/java/cit/PureATN/MultiNote/PopupMenu_forMN.java +++ b/src/main/java/cit/PureATN/MultiNote/PopupMenu_forMN.java @@ -48,6 +48,7 @@ // あたらしいメニューアイテムの設定を開始する。 menuItem = new JMenuItem("色付け"); + menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, 0));// メニュー表示時のショートカットキー menuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { @@ -56,6 +57,19 @@ }); add(menuItem);// add 色付け menu + // あたらしいメニューアイテムの設定を開始する。 + menuItem = new JMenuItem("全筆記削除"); + menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0));// メニュー表示時のショートカットキー + menuItem.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + + fframe.deleteAllStrokes(); + } + }); + add(menuItem);// add 色付け menu + + + // 追加のメニューは,プラグインが直接オンデマンドで追加する // fframe.addPluginMenuTo(this); addPluginMenuTo(this, aFR); diff --git a/src/main/java/cit/PureATN/ShortStroke.java b/src/main/java/cit/PureATN/ShortStroke.java index 1d314cd..2112939 100644 --- a/src/main/java/cit/PureATN/ShortStroke.java +++ b/src/main/java/cit/PureATN/ShortStroke.java @@ -132,11 +132,13 @@ this.moveTo(px,py); } public void drag_on_draw(double px, double py){ + if (tempPts == null) return; tempPts.add(new Point2D.Double(px,py)); this.lineTo(px,py); } public void endDrag_on_draw(){ // 下敷きが用意されていれば、Layerから下敷きに移動する + if (tempPts == null) return; applyTempPtsToAry(); if (Note.theapp instanceof MultiNote){ //下敷きを特定