package at.medevit.elexis.agenda.ui.function; import org.eclipse.swt.browser.Browser; import org.eclipse.swt.browser.BrowserFunction; import ch.elexis.agenda.data.Termin; import ch.elexis.agenda.series.SerienTermin; import ch.elexis.agenda.series.ui.SerienTerminDialog; import ch.elexis.core.model.IPersistentObject; import ch.elexis.core.ui.locks.AcquireLockBlockingUi; import ch.elexis.core.ui.locks.ILockHandler; import ch.elexis.dialogs.TerminDialog; public class DoubleClickFunction extends BrowserFunction { public DoubleClickFunction(Browser browser, String name){ super(browser, name); } public Object function(Object[] arguments){ if (arguments.length == 1) { Termin termin = Termin.load((String) arguments[0]); AcquireLockBlockingUi.aquireAndRun((IPersistentObject) termin, new ILockHandler() { @Override public void lockFailed(){ // do nothing } @Override public void lockAcquired(){ TerminDialog.setActResource(termin.getBereich()); if (termin.isRecurringDate()) { SerienTerminDialog dlg = new SerienTerminDialog(getBrowser().getShell(), new SerienTermin(termin)); dlg.open(); } else { TerminDialog dlg = new TerminDialog(termin); dlg.open(); } } }); } return null; } }