package cit.PureATN.MultiNote; import java.awt.Color; import java.util.ArrayList; import java.util.Enumeration; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.swing.WindowConstants; import org.josql.Query; import org.josql.QueryExecutionException; import org.josql.QueryParseException; import org.josql.QueryResults; import org.piccolo2d.PCanvas; import org.piccolo2d.PNode; import cit.PureATN.Note; import cit.PureATN.PenUser; import cit.PureATN.ShortStroke; public class MultiNote extends Note { public MultiNote() { this(null); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); theapp = this; // どこからでもNote.theapp で参照できるように } public MultiNote(final PCanvas aCanvas) { super(aCanvas); int width = 1000; int height = (int) (width * 1.414); setSize(width, height); setLocation(100, 200); // dPenReceiver = new DPenReceiver(this); } public void initialize() { super.initialize(); // 追加機能:キーイベント getCanvas().addKeyListener(new KeyEvent_on_MultiNote(getCanvas())); // 追加機能:右クリックでメニューをだす getCanvas().getCamera().addInputEventListener(new MouseEvent_onMN(this)); currentTitle = "MultiNote (Esc key to zoom whole strokes)"; // setTitle(currentTitle); setMousePenID(1); } public static void main(final String[] args) { new MultiNote(); } // 色付け public void iroduke() { Enumeration<String> ite = PenUser.penusers.keys(); while (ite.hasMoreElements()) { String penidStr = ite.nextElement(); String penid0x = penidStr.substring(3); int penid = Integer.parseInt(penid0x); // System.out.println(penid+" "+penid*penid); //pen06 Color c = Color.getHSBColor((float) (penid / 10.0f), 0.8f, 0.8f); ArrayList<ShortStroke> sss = PenUser.find(penidStr).strokes; for (ShortStroke s : sss) { s.setStrokePaint(c); System.out.println(s.time); } } repaint(); } /** * 筆記数の確認サンプル:PenIDごとに、筆記数を表示する */ public void showStat() { // 検索対象をあつめる ArrayList<ShortStroke> ass = new ArrayList<ShortStroke>(); var ite = getCanvas().getLayer().getAllNodes().iterator(); while (ite.hasNext()) { var n = ite.next(); if (n instanceof ShortStroke) { ShortStroke ss = (ShortStroke) n; ass.add(ss); } } // (n -> Query q5 = new Query(); try { q5.parse("select * from cit.PureATN.ShortStroke group by penid"); } catch (QueryParseException e) { e.printStackTrace(); } QueryResults qr5 = null; try { qr5 = q5.execute(ass); Map grpBys = qr5.getGroupByResults(); Iterator iter = grpBys.keySet().iterator(); while(iter.hasNext()){ List key = (List)iter.next(); List res = (List) grpBys.get(key); System.out.println(key.toString()+" "+res.size()); } // for (ShortStroke ss : (List<ShortStroke>) qr5.getResults()) { // System.out.println(ss.penid); // } } catch (QueryExecutionException e) { e.printStackTrace(); } } }