package at.medevit.elexis.agenda.ui.function; import java.time.LocalDateTime; import org.eclipse.swt.browser.Browser; import ch.elexis.agenda.data.Termin; import ch.elexis.core.data.events.ElexisEventDispatcher; import ch.elexis.core.ui.locks.AcquireLockBlockingUi; import ch.elexis.core.ui.locks.ILockHandler; import ch.rgw.tools.TimeTool; public class EventResizeFunction extends AbstractBrowserFunction { public EventResizeFunction(Browser browser, String name){ super(browser, name); } public Object function(Object[] arguments){ if (arguments.length == 3) { final Termin termin = Termin.load((String) arguments[0]); final LocalDateTime startDate = getDateTimeArg(arguments[1]); final LocalDateTime endDate = getDateTimeArg(arguments[2]); AcquireLockBlockingUi.aquireAndRun(termin, new ILockHandler() { @Override public void lockFailed(){ redraw(); } @Override public void lockAcquired(){ termin.setStartTime(new TimeTool(startDate)); termin.setEndTime(new TimeTool(endDate)); ElexisEventDispatcher.reload(Termin.class); redraw(); } }); } else { throw new IllegalArgumentException("Unexpected arguments"); } return null; } }