package java18_0129;
import java.sql.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Scanner;
//화면 출력을 위한 클래스
public class SingerView {
Scanner sc;
// 생성자 : 객체가 만들어 질 때 바로 수행
public SingerView() {
sc = new Scanner(System.in);
}
// 메뉴 화면을 출력하고 사용자로부터 메뉴를 입력받아서
// 리턴하는 메소드
public String menuDisplay() {
System.out.println("1.전체보기 2.상세보기 3.데이터삽입 " + "4.데이터 수정 5.데이터삭제:");
System.out.print("메뉴 선택:");
String menu = sc.nextLine();
return menu;
}
// 전체 데이터를 출력하는 메소드
public void listView(List<Singer> list) {
// 제목 출력
System.out.printf("%15s%20s%15s%15s", "아이디", "이름", "나이", "생년월일");
// 전체 데이터를 순회하면서 출력
for (Singer singer : list) {
System.out.println();
System.out.printf("%15s%15s%15d%15s", singer.getUserid(), singer.getUsername(), singer.getAge(),
singer.getBirthday());
}
System.out.println();
}
// 데이터를 조회하거나 삭제하기 위해서
// userid를 입력받는 화면출력을 하고, 입력받은 id를 리턴하는 메소드
public String setSingerUserId() {
System.out.print("Id를 입력:");
String userId = sc.nextLine();
return userId;
}
// 데이터 1개를 받아서 출력하는 메소드
public void singerDisplay(Singer singer) {
if (singer == null) {
System.out.println("찾고자 하는 아이디가 없습니다.");
} else {
System.out.print("아이디 : " + singer.getUserid());
System.out.print("이름 : " + singer.getUsername());
System.out.print("나이 : " + singer.getAge());
System.out.print("생년월일 : " + singer.getBirthday());
}
}
// 아이디, 이름, 나이, 생년월일을 입력받아서 Singer 객체로 만든 후
// 리턴해주는 메소드
public Singer insertview() {
Singer singer = new Singer();
/********************* 아이디입력 ************************/
while (true) {
System.out.println("아이디 입력 : ");
String userid = sc.nextLine();
// 아이디 필수 입력 검사
if (userid.trim().length() < 1) {
System.out.println("아이디는 필수 입력입니다/.");
continue;
}
// 아이디 중복 검사
SingerDao dao = SingerDao.sharedInstance();
Singer check = dao.lookUserid(userid);
if (check != null) {
System.out.println("중복된 아이디입니다./");
continue;
} else {
singer.setUserid(userid);
}
/********************* 이름입력 **************************/
System.out.println("이름 입력");
String username = sc.nextLine();
if (username.trim().length() < 1) {
System.out.println("이름은 필수입력 입니다 !!!!!");
continue;
} else {
singer.setUsername(username);
}
/********************* 나이입력 **************************/
System.out.println("나이 입력");
String age = sc.nextLine();
if (age.trim().length() < 1) {
System.out.println("나이는 필수 입력입니다~");
continue;
}
// 모두 숫자로 되어 있는지 검사
boolean flag = true;
for (int i = 0; i < age.length(); i = i + 1) {
char ch = age.charAt(i);
if (ch < '0' || ch > '9') {
flag = false;
break;
}
}
if (flag == false) {
System.out.println("나이는 숫자로만 구성되어야합니다. ");
continue;
} else {
singer.setAge(Integer.parseInt(age));
}
/********************* 날짜입력 **************************/
Calendar cal = new GregorianCalendar();
Date birthday = new Date(cal.getTimeInMillis());
singer.setBirthday(birthday);
break;
}
return singer;
}
//삭제할 userid를 입력받아서 리턴하는 메소드
public String deleteView() {
System.out.print("삭제하고 싶은 아이디를 입력하시오");
String userid = sc.nextLine();
return userid;
}
//갱신할 userid 와 나머지 데이터를 입력받아서 리턴하는 메소드
public Singer UpdateView() {
Singer singer = new Singer();
System.out.print("아이디를 입력하시오");
String userid = sc.nextLine();
singer.setUserid(userid);
System.out.print("이름 입력 : ");
String username = sc.nextLine();
singer.setUsername(username);
return singer;
}
}