Check Bar


Grid의 각각의 행은 Check 혹은 Uncheck 상태를 가질 수 있다.

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



  - Options
    1. Visible: 체크 여부를 통해 Check Bar를 데이터상에 표시할지 안 할지를 결정할 수 있다.
    2. Clickable: 체크 시 행의 Check 부분을 클릭할 수 있으며, 해제 시 클릭을 해도 아무런 변화가 없다.
    3. Drag Action: 마우스 Drag를 통해 체크 여부를 표시 할 수 있다.
        NONE은 아무런 변화가 없고, CHECK는 체크상태로 변화하고, UNCHECK는 체크 상태를 해제 해주고,
        TOGGLE은 (Check ↔ Uncheck) 이렇게 된다.
    4. Exclusive: 체크 시 한 행만 선택할 수 있으며, check 상자의 모양이 동그란 형태로 변경된다.
    5. Mark Shape: check 상자의 모양을 나타내는 것으로 check, circle, rectangle가 있다.
    6. Head Visible: 체크 해제 시 Head Mark가 사라지며, 체크 시 Head Mark가 생긴다.
    7. Head Clickable: 체크 해제 시 Head Mark 클릭이 되지 않으며, 체크 시 Head Mark 클릭이 가능하다.
    8. Head Mark Visibility: Head Mark를 숨기거나 드러낼 수 있으며 기능은 정상적으로 작동한다.
  - Is Checked? 포커스 행의 체크 여부를 표시하며 Checked와 UnChecked로 나눠진다.
  - Get Checked Rows 체크 상태의 그리드행 목록을 나타낸다.
  - Delete Checked Rows 체크 상태의 그리드행을 삭제한다.
  - Reset Styles : Style 변경된 Check Bar의 영역을 처음 상태로 초기화 한다.
  - Check Rows : 선택한 행들을 체크한다.
  - Toggle Rows Checked : 선택한 행들의 체크 상태를 바꾼다.
  - Check All : 모든 행을 체크하고, Head Mark 체크 표시가 된다.
  - Uncheck All : 모든 행의 체크 상태를 해제하고, Head Mark 체크 표시가 없어진다.
  - Toggle Row Checkable : 행을 선택 후, 실행 시 Check를 불가능하게 상태를 변경한다.
  - Checkable Callback : 홀수 행들만 Check 상태 변경을 가능하도록 콜백을 설정한다.
  - Clear Callback : Checkable Callback 상태를 제거한다.
  - Export to local : 현재 작성된 데이터행을 기반으로 실행 시 'excel' 파일의 형태(.xlsx)로 데이터가 그대로 넘어간다.
  - Export to email : 현재 작성된 데이터행을 기반으로 실행 시 '.excel' 파일이 첨부되며 메일을 통해 원하는 주소로 전송 할 수 있다.
 소스보기
public void run(Context ctx, final GridView grid) throws Exception { new FormDialog2().show(grid.getContext(), formSettings, new FormDialog2.OnCloseListener() { @Override public void onClose(Context ctx, Form form) { CheckBar checkBar = grid.getCheckBar(); boolean visible = form.getBool("visible"); boolean clickable = form.getBool("clickable"); CheckBarDragAction dragAction = (CheckBarDragAction)form.getValue("dragAction"); boolean exclusive = form.getBool("exclusive"); String markShape = form.getString("markShape"); boolean headVisible = form.getBool("headVisible"); boolean headClickable = form.getBool("headClickable"); CheckMarkVisibility headMarkVisibility = (CheckMarkVisibility)form.getValue("headMarkVisibility"); checkBar .setClickable(clickable) .setDragAction(dragAction) .setExclusive(exclusive) .setVisible(visible); checkBar.getStyles().setShapeName("default".equals(markShape) ? null : markShape); checkBar.getHead() .setClickable(headClickable) .setMarkVisibility(headMarkVisibility) .setVisible(headVisible); } }); }
public void run(Context ctx, final GridView grid) throws Exception { int r = grid.focusedRow(); if (r >= 0) { boolean checked = grid.isChecked(r); Utils.alert(ctx, checked ? "Checked" : "Unchecked"); } else { Utils.alert(ctx, "체크 상태를 확인할 행을 먼저 선택하세요."); } }
public void run(Context ctx, final GridView grid) throws Exception { int[] rows = grid.getCheckedRows(); Utils.alert(ctx, Arrays.toString(rows)); } public void run(Context ctx, final GridView grid) throws Exception { int[] rows = grid.getCheckedRows(); if (rows.length > 0) { int n = grid.deleteRows(rows, false); Utils.alert(ctx, n + " 개의 행이 삭제되었습니다."); } else { Utils.alert(ctx, "삭제할 행들을 체크하세요."); } }
public void run(Context ctx, final GridView grid) throws Exception { grid.getCheckBar().getStyles() .setShapeName("check") .setShapeFill(Fill.create("#ff0000")) .setShapeBorder(Stroke.red) .setShapeColor(Fill.white); } public void run(Context ctx, final GridView grid) throws Exception { grid.getCheckBar().getStyles() .setShapeName("rectangle") .setShapeFill(null) .setShapeBorder(Stroke.red) .setShapeColor(Fill.red); } public void run(Context ctx, final GridView grid) throws Exception { grid.getCheckBar().clearStyles(); }
public void run(Context ctx, final GridView grid) throws Exception { int[] rows = grid.getSelectedRows(); if (rows.length >= 0) { grid.setChecked(rows, true); } else { Utils.alert(ctx, "체크 상태를 변경할 행들을 선택하세요."); } } public void run(Context ctx, final GridView grid) throws Exception { int[] rows = grid.getSelectedRows(); if (rows.length >= 0) { grid.toggleChecked(rows); } else { Utils.alert(ctx, "체크 상태를 변경할 행들을 선택하세요."); } }
public void run(Context ctx, final GridView grid) throws Exception { grid.checkAll(true); grid.setAllChecked(true); } public void run(Context ctx, final GridView grid) throws Exception { grid.checkAll(false); grid.setAllChecked(false); }
public void run(Context ctx, final GridView grid) throws Exception { int r = grid.focusedRow(); if (r >= 0) { grid.setCheckable(r, !grid.isCheckable(r)); } else { Utils.alert(ctx, "Checkable 상태를 변경할 행을 먼저 선택하세요."); } }
public void run(Context ctx, final GridView grid) throws Exception { grid.getCheckBar().setCheckableCallback(new CheckableCallback() { @Override public boolean canCheck(GridBase grid, int row, boolean allChecking) { return row % 2 == 1; } }); } public void run(Context ctx, final GridView grid) throws Exception { grid.getCheckBar().setCheckableCallback(null); }