static void calAddAutoLayoutSwitch(CirclesAndLines cal, final Canvas canvas, O modifyLayout, bool on) { calAddAutoLayoutSwitch(new Var(cal), canvas, modifyLayout, on); } static void calAddAutoLayoutSwitch(final Var cal, final Canvas canvas, final O modifyLayout, final bool on) swing { final JCheckBox cb = jcheckbox("Auto-Layout", on); final JCheckBox cb2 = jcheckbox("Center", on); addToWindow(canvas, jcenteredline(cb, cb2)); awtCalcEvery2(canvas, 100, new Runnable { CALSpringLayout layout = new(cal!); CirclesAndLines lastCAL = cal!; public void run() { bool x = false; if (isChecked(cb)) { if (cal! != lastCAL) { lastCAL = cal!; layout = new CALSpringLayout(cal!); layout.center = false; callF(modifyLayout, layout); } layout.step(); x = true; } if (isChecked(cb2)) { calCenterStepwise(cal!, 0.1); x = true; } if (x) updateCanvas(canvas); } }); }