package at.medevit.elexis.agenda.ui.composite;
import java.time.LocalDate;
import java.util.List;
import org.eclipse.swt.browser.Browser;
import at.medevit.elexis.agenda.ui.composite.IAgendaComposite.AgendaSpanSize;
public class ScriptingHelper {
private Browser browser;
public ScriptingHelper(Browser browser){
this.browser = browser;
}
public void setSelectedSpanSize(AgendaSpanSize size){
String slotDuration = "$('#calendar').fullCalendar('option', 'slotDuration', '%s');";
String script = String.format(slotDuration, size.getCalendarString());
browser.execute(script);
}
public void setSelectedDate(LocalDate date){
String gotoDate = "$('#calendar').fullCalendar('gotoDate', '%s');";
String script = String.format(gotoDate, date.toString());
browser.execute(script);
}
public void refetchEvents(){
String refetchEvents = "$('#calendar').fullCalendar('refetchEvents');";
browser.execute(refetchEvents);
}
public void initializeResources(List<String> selectedResources){
String updateResourceIds = "$('#calendar').fullCalendar('getView').setResourceIds(%s);";
String script = String.format(updateResourceIds, getResourceIdsString(selectedResources));
browser.execute(script);
}
private Object getResourceIdsString(List<String> selectedResources){
StringBuilder ret = new StringBuilder();
ret.append("[");
for (String calendar : selectedResources) {
if (ret.length() > 1) {
ret.append(",");
}
ret.append("'").append(calendar).append("'");
}
ret.append("]");
return ret;
}
}