package bug;

import io.keikai.api.*;
import io.keikai.api.model.*;
import io.keikai.ui.Spreadsheet;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.*;

/**
 * @author Hawk
 */
@SuppressWarnings("serial")
public class Kk834Composer extends SelectorComposer<Component> {
	public void selectNextVisibleSheet(Spreadsheet spreadsheet, Sheet selectedSheet) {
		Book book = spreadsheet.getBook();
		int index = book.getSheetIndex(selectedSheet);
		Sheet newSelectedSheet = null;
		// from selected index to the last
		for (int i = index + 1; i < book.getNumberOfSheets(); i++) {
			Sheet sheet = book.getSheetAt(i);
			if (!sheet.isHidden()) {
				newSelectedSheet = sheet;
			}
		}
		if (newSelectedSheet != null) {
			spreadsheet.setSelectedSheet(newSelectedSheet.getSheetName());
			return;
		}

		// from selected index to the first
		for (int i = index - 1; i >= 0; i--) {
			Sheet sheet = book.getSheetAt(i);
			if (!sheet.isHidden()) {
				newSelectedSheet = sheet;
			}
		}
		if (newSelectedSheet != null) {
			spreadsheet.setSelectedSheet(newSelectedSheet.getSheetName());
		}
	}
	@Wire
	private Spreadsheet spreadsheet;

	@Listen(Events.ON_CLICK + "= #hide")
	public void hideCurrentSheet(){
		Ranges.range(spreadsheet.getSelectedSheet()).setSheetVisible(Range.SheetVisible.HIDDEN);
	}


}
