Linear Gauge Renderer


데이터값을 표시하고, 셀 값 변경 시 애니메이션 효과를 준다.

* 영상은 자동 재생되며, 영상화면 왼쪽 윗부분에 재생목록을 클릭해서 원하는 목록을 재생 할 수 있습니다.

  - Renderer Options
      Opposite : 체크 시 Value 막대기의 시작 방향이 반대가 된다.
      Value Location : 선택에 따라 Value 막대기의 위치가 달라진다. Top, Bottom 일 경우는 게이지가 수평(가로)일 때, Left, Right는 게이지가 수직(세로)일 때만 적용된다.
      Text Visible : 체크 시 Value 텍스트 값이 나타난다.
      Text Alignment : 선택에 따라 Value 텍스트 값의 위치가 달라진다.
      Text Layout : 선택에 따라 Value 텍스트 배치가 달라진다.
      Ranges Visible : 체크 여부에 따라, Value 막대기의 값에 따른 색상의 변화가 나타나거나 사라진다.
      Scale Visible : 체크 여부에 따라, 색상의 변화에 따른 표현한 텍스트가 나타나거나 사라진다.
      Scale Opposite : 체크 시 Scale 막대기의 색상의 흐름 표현이 반대가 된다.
      Thickness : 막대기의 굵기를 정할 수 있다.
      Value Thickness : Value 막대기의 굵기를 정할 수 있다.
  - Restart Load Animations : Linear Gauge Renderer 애니메이션을 다시 실행한다.
  - Start Update Values : 데이터 셀 값들을 변경하는 애니메이션을 실행한다.
  - Stop Update Values : 데이터 셀 값들을 변경하는 애니메이션을 중지한다.
 소스보기
public void run(Context ctx, final GridView grid) { final DataColumn column = grid.focusedDataColumn(); final LinearGaugeCellRenderer renderer = column != null && column.getRenderer() instanceof LinearGaugeCellRenderer ? (LinearGaugeCellRenderer)column.getRenderer() : null; if (renderer == null) { Utils.alert(ctx, "Linear Gauge 렌더러가 지정된 컬럼셀을 선택하세요."); return; } GridStyles styles = column.getStyles(); formSettings.setValue("opposite", renderer.isOppsoite()); formSettings.setValue("valueLocation", renderer.getValueLocation()); formSettings.setValue("textVisible", renderer.isTextVisible()); formSettings.setValue("textAlignment", styles.textAlignment()); formSettings.setValue("textLayout", styles.textLayout()); formSettings.setValue("rangesVisible", renderer.isRangesVisible()); formSettings.setValue("scaleVisible", renderer.isScaleVisible()); formSettings.setValue("scaleOpposite", renderer.isScaleOpposite()); formSettings.setValue("thickness", renderer.getThickness()); formSettings.setValue("valueThickness", renderer.getValueThickness()); new FormDialog2().show(grid.getContext(), formSettings, new FormDialog2.OnCloseListener() { @Override public void onClose(Context ctx, Form form) { boolean opposite = form.getBool("opposite"); GaugeValueLocation valueLocation = (GaugeValueLocation)form.getValue("valueLocation"); boolean textVisible = form.getBool("textVisible"); TextAlign textAlignment = (TextAlign)form.getValue("textAlignment"); TextLayout textLayout = (TextLayout)form.getValue("textLayout"); boolean rangesVisible = form.getBool("rangesVisible"); boolean scaleVisible = form.getBool("scaleVisible"); boolean scaleOpposite = form.getBool("scaleOpposite"); int thickness = form.getInt("thickness", renderer.getThickness()); double valueThickness = form.getDouble("valueThickness", renderer.getValueThickness()); GridStyles styles = column.getStyles(); styles.setTextAlignment(textAlignment); styles.setTextLayout(textLayout); renderer .setOppsoite(opposite) .setTextVisilbe(textVisible) .setRangesVisilbe(rangesVisible) .setScaleVisilbe(scaleVisible) .setScaleOpposite(scaleOpposite) .setThickness(thickness) .setValueLocation(valueLocation) .setValueThickness(valueThickness); } }); }
public void run(Context ctx, GridView grid) { grid.restartLoadAnimation(); }
public void run(Context ctx, final GridView grid) { m_updateRunner = new RepeatRunner(1000000000, 500, new Runnable() { @Override public void run() { try { int row = Value.irandom(grid.topIndex(), grid.topIndex() + grid.displayItemCount() - 1); int field = m_ds.getFieldIndex((new String[]{"전혀 모른다", "들어 본적은 있다", "행사기간을 알고 있다", "참여한 적이 있다"})[Value.irandom(4)]); DataColumn column = (DataColumn)grid.columnByField(field); LinearGaugeCellRenderer renderer = (LinearGaugeCellRenderer)column.getRenderer(); double v = Value.irandom((int)renderer.getStartValue(), (int)renderer.getEndValue()); m_ds.setValue(row, field, v); } catch (DataSetError ex) { ex.printStackTrace(); } } }, null).start(); }
public void run(Context ctx, GridView grid) { if (m_updateRunner != null) { m_updateRunner.stop(); m_updateRunner = null; } }