TimetableView 라이브러리를 사용하되 수정이 필요하다.
TimetableView 라이브러리 : https://github.com/tlaabs/TimetableView
해당 라이브러리의 구현도는 우수하지만 프로젝트에 필요 없는 기능과 타임 테이블의 셀에 표시 할 양식에 대한 커스텀을 지원하지 않는다.
그러므로 필요한 부분만 가져와 수정하도록 한다.
[x] Sticker 클래스를 구현한다.
타임 테이블 뷰 라이브러리는 일정을 표시하기 위해 Sticker 클래스를 사용한다.
해당 클래스에는 다음 변수가 담긴다.
타임 테이블 셀에 표시 할 TextView의 리스트
TextView에 담을 일정정보가 담긴 리스트
[x] Time 클래스를 구현한다.
해당 클래스는 타임 테이블 뷰 위에 Sticker 가 표시 될 영역을 지정하기위해 시간과 분 정보가 담긴다.
[x] TimetableSchedule 클래스를 구현한다.
Sticker 객체에 담을 일정정보에 기존의 Lecture 객체를 재사용 하려면 일부 변환이 필요하다.
그러므로 Lecture 객체를 매개변수로 받아 Sticker에 담을 수 있도록 변환하는 TimetableSchedule 클래스를 구현한다.
147 에서 요청한 결과가 담긴 Lecture 리스트 객체는 공동 개설 과목이 있을 경우 gwamogCd와 bigo 값만 다른 복수의 객체가 담긴다.
해당 객체들을 모두 TimetableSchedule로 변환 후 Sticker에 담아 표시하면 가장 나중에 담긴 객체가 맨위에 표시된다.
이는 의도한 바와 다르므로 Sticker 클래스가 복수의 일정정보를 담을 수 있게 구현되어있는 점을 이용해 모든 중복 일정을 담고 몇개의 학과랑 공동 개설 되어있는지 표기하도록 수정한다.
시간표를 표시 할 타임 테이블을 구현한다.
148 의 디자인을 참고한다.
147 에서 받아온 데이터를 표시하도록 한다.
153 에서 작성한 레이아웃을 기반으로 한다.
TimetableView 라이브러리를 사용하되 수정이 필요하다. TimetableView 라이브러리 : https://github.com/tlaabs/TimetableView 해당 라이브러리의 구현도는 우수하지만 프로젝트에 필요 없는 기능과 타임 테이블의 셀에 표시 할 양식에 대한 커스텀을 지원하지 않는다. 그러므로 필요한 부분만 가져와 수정하도록 한다.
[x] Sticker 클래스를 구현한다.
타임 테이블 뷰 라이브러리는 일정을 표시하기 위해 Sticker 클래스를 사용한다.
해당 클래스에는 다음 변수가 담긴다. 타임 테이블 셀에 표시 할 TextView의 리스트 TextView에 담을 일정정보가 담긴 리스트
[x] Time 클래스를 구현한다.
해당 클래스는 타임 테이블 뷰 위에 Sticker 가 표시 될 영역을 지정하기위해 시간과 분 정보가 담긴다.
[x] TimetableSchedule 클래스를 구현한다. Sticker 객체에 담을 일정정보에 기존의 Lecture 객체를 재사용 하려면 일부 변환이 필요하다. 그러므로 Lecture 객체를 매개변수로 받아 Sticker에 담을 수 있도록 변환하는 TimetableSchedule 클래스를 구현한다.
[x] 타임 테이블뷰의 속성 값을 정의한다.
row_count
column_count
cell_height
header_cell_height
side_cell_width
header_title
sticker_colors
start_time
[x] 헤더에 표시 할 요일 목록 string-array 를 추가한다.
string-array 명을 header_title 로 한다.
[x] 타임 테이블뷰에서 쓸 color 값들을 추가한다.
colorHeader
colorHeaderText
colorTableItem
default_sticker_color
default_side_header_font_color
default_header_font_color
default_sticker_font_color
[x] TimetableView 를 구현한다.
타임 테이블뷰의 속성 값으로 지정한 변수들을 추가한다.
속성 값들을 뷰에 적용하는 기능을 구현한다.
속성 값들의 기본 값을 정의한다. DEFAULT_ROW_COUNT = 17 DEFAULT_COLUMN_COUNT = 6 DEFAULT_CELL_HEIGHT_DP = 150 DEFAULT_HEADER_CELL_HEIGHT_DP = 50 DEFAULT_SIDE_CELL_WIDTH_DP = 30 DEFAULT_START_TIME = 9 DEFAULT_SIDE_HEADER_FONT_SIZE_DP = 13 DEFAULT_HEADER_FONT_SIZE_DP = 15 DEFAULT_STICKER_FONT_SIZE_DP = 13
[x] 스티커의 컬러를 지정하는 기능을 구현한다.
[x] 타임 테이블을 생성하는 기능을 구현한다.
[x] 타임 테이블의 헤더를 생성하는 기능을 구현한다.
[x] 스티커의 레이아웃을 지정하는 기능을 구현한다.
[x] cell의 width 길이를 계산하는 기능을 구현한다.
[x] 스티커의 height 길이를 계산하는 기능을 구현한다.
px 단위로 한다.
[x] 스티커가 표시 될 시작위치를 계산하는 기능을 구현한다.
[x] 타임 테이블에 레이아웃을 지정하는 기능을 구현한다.
[x] 타임 테이블의 row에 레이아웃을 지정하는 기능을 구현한다.
height 또는 width, height 를 받도록 오버로딩 한다.
[x] 좌측에 표시 할 시간양식을 계산하는 기능을 구현한다.
24시간제로 표시되게 한다.
builder 를 통한 객체 View 객체 생성을 구현한다.
[x] 매개변수로 받은 Lecture 객체의 중복사항을 통합한다.
147 에서 요청한 결과가 담긴 Lecture 리스트 객체는 공동 개설 과목이 있을 경우 gwamogCd와 bigo 값만 다른 복수의 객체가 담긴다.
해당 객체들을 모두 TimetableSchedule로 변환 후 Sticker에 담아 표시하면 가장 나중에 담긴 객체가 맨위에 표시된다. 이는 의도한 바와 다르므로 Sticker 클래스가 복수의 일정정보를 담을 수 있게 구현되어있는 점을 이용해 모든 중복 일정을 담고 몇개의 학과랑 공동 개설 되어있는지 표기하도록 수정한다.