package at.medevit.elexis.agenda.ui.function;
import java.time.LocalDate;
import java.time.LocalDateTime;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.browser.BrowserFunction;
public abstract class AbstractBrowserFunction extends BrowserFunction {
public AbstractBrowserFunction(Browser browser, String name){
super(browser, name);
}
public void updateCalendarHeight(){
int estimatedHeaderSize = 125;
String updateHeight = "$('#calendar').fullCalendar('option', 'contentHeight', %d);";
int browserHeight = getBrowser().getBounds().height;
if (browserHeight > (2 * estimatedHeaderSize)) {
getBrowser().execute(String.format(updateHeight, browserHeight - estimatedHeaderSize));
}
}
public void redraw(){
String refetchEvents = "$('#calendar').fullCalendar('rerenderEvents');";
getBrowser().execute(refetchEvents);
}
protected LocalDateTime getDateTimeArg(Object object){
if (object instanceof String) {
if (((String) object).length() == 10) {
return LocalDate.parse((String) object).atStartOfDay();
} else if (((String) object).length() == 19) {
return LocalDateTime.parse((String) object);
}
} else {
throw new IllegalArgumentException("Unexpected argument [" + object + "]");
}
return null;
}
protected LocalDate getDateArg(Object object){
if (object instanceof String) {
if (((String) object).length() == 10) {
return LocalDate.parse((String) object);
}
} else {
throw new IllegalArgumentException("Unexpected argument [" + object + "]");
}
return null;
}
}