use of org.olat.core.gui.control.Event in project openolat by klemens.
the class JMSTest method testSendReceive.
@Test
public void testSendReceive() {
// enable test only if we have the cluster configuration enabled.
// this test requires that an JMS Provider is running
// (see file serviceconfig/org/olat/core/_spring/coreextconfig.xml)
EventBus bus = CoordinatorManager.getInstance().getCoordinator().getEventBus();
if (bus instanceof ClusterEventBus) {
Identity id = JunitTestHelper.createAndPersistIdentityAsRndUser("jms");
// send and wait some time until a message should arrive at the latest.
final OLATResourceable ores = OresHelper.createOLATResourceableInstance("hellojms", new Long(123));
final CountDownLatch doneSignal = new CountDownLatch(1);
bus.registerFor(new GenericEventListener() {
@Override
public void event(Event event) {
log.audit("Event received: " + event);
doneSignal.countDown();
}
}, id, ores);
MultiUserEvent mue = new MultiUserEvent("amuecommand");
bus.fireEventToListenersOf(mue, ores);
try {
boolean interrupt = doneSignal.await(5, TimeUnit.SECONDS);
assertTrue("Test takes too long (more than 5s)", interrupt);
} catch (InterruptedException e) {
fail("" + e.getMessage());
}
}
}
use of org.olat.core.gui.control.Event in project openolat by klemens.
the class EPViewModeController method formInnerEvent.
/**
* @see org.olat.core.gui.components.form.flexible.impl.FormBasicController#formInnerEvent(org.olat.core.gui.UserRequest, org.olat.core.gui.components.form.flexible.FormItem, org.olat.core.gui.components.form.flexible.impl.FormEvent)
*/
@Override
protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
if (source == tableLink || source == detailsLink) {
FormLink link = (FormLink) source;
if (!link.getCmd().equals(userPrefsMode)) {
String newUserPrefsMode = link.getCmd();
ePFMgr.setUsersPreferedArtefactViewMode(getIdentity(), newUserPrefsMode, context);
userPrefsMode = newUserPrefsMode;
fireEvent(ureq, new Event(VIEWMODE_CHANGED_EVENT_CMD));
}
}
}
use of org.olat.core.gui.control.Event in project openolat by klemens.
the class RepositorySearchController method event.
/**
* @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest, org.olat.core.gui.control.Controller, org.olat.core.gui.control.Event)
*/
@Override
public void event(UserRequest urequest, Controller source, Event event) {
if (source == tableCtr) {
// process table actions
if (event instanceof TableEvent) {
TableEvent te = (TableEvent) event;
int rowId = te.getRowId();
if (te.getActionId().equals(RepositoryTableModel.TABLE_ACTION_INFOS)) {
RepositoryEntry entry = (RepositoryEntry) tableCtr.getTableDataModel().getObject(rowId);
int row = tableCtr.getIndexOfSortedObject(entry);
doOpenInfos(urequest, entry, row);
} else if (te.getActionId().equals(RepositoryTableModel.TABLE_ACTION_SELECT_LINK)) {
selectedEntry = (RepositoryEntry) tableCtr.getTableDataModel().getObject(rowId);
fireEvent(urequest, new Event(RepositoryTableModel.TABLE_ACTION_SELECT_LINK));
selectedEntries = null;
}
} else if (event instanceof TableMultiSelectEvent) {
TableMultiSelectEvent mse = (TableMultiSelectEvent) event;
if (!mse.getSelection().isEmpty()) {
selectedEntry = null;
BitSet objectMarkers = mse.getSelection();
selectedEntries = new ArrayList<>(objectMarkers.size());
for (int i = objectMarkers.nextSetBit(0); i >= 0; i = objectMarkers.nextSetBit(i + 1)) {
RepositoryEntry entry = (RepositoryEntry) tableCtr.getTableDataModel().getObject(i);
selectedEntries.add(entry);
}
fireEvent(urequest, new Event(RepositoryTableModel.TABLE_ACTION_SELECT_ENTRIES));
}
} else if (TableController.EVENT_FILTER_SELECTED.equals(event)) {
TypeFilter typeFilter = (TypeFilter) tableCtr.getActiveFilter();
if (searchType == SearchType.byOwner) {
doSearchByOwnerLimitTypeInternal(typeFilter.getOwner(), new String[] { typeFilter.getType() }, false);
} else if (searchType == SearchType.myAsStudent) {
doSearchMyCoursesStudent(urequest, typeFilter.getType(), false);
} else if (searchType == SearchType.myAsTeacher) {
doSearchMyCoursesTeacher(urequest, typeFilter.getType(), false);
} else if (searchType == SearchType.searchForm) {
if (enableSearchforAllInSearchForm != null) {
doSearchAllReferencables(urequest, typeFilter.getType(), false);
} else {
doSearch(urequest, typeFilter.getType(), false);
}
}
} else if (TableController.EVENT_NOFILTER_SELECTED.equals(event)) {
if (searchType == SearchType.byOwner) {
doSearchByOwnerLimitTypeInternal(getIdentity(), new String[] {}, false);
} else if (searchType == SearchType.myAsStudent) {
doSearchMyCoursesStudent(urequest);
} else if (searchType == SearchType.myAsTeacher) {
doSearchMyCoursesTeacher(urequest);
} else if (searchType == SearchType.searchForm) {
if (enableSearchforAllInSearchForm != null) {
doSearchAllReferencables(urequest, null, false);
} else {
doSearch(urequest, null, false);
}
}
}
} else if (event instanceof EntryChangedEvent) {
// remove deleted entry
EntryChangedEvent ecv = (EntryChangedEvent) event;
if (ecv.getChange() == Change.deleted) {
List<RepositoryEntry> newEntries = new ArrayList<RepositoryEntry>();
for (int i = 0; i < repoTableModel.getRowCount(); i++) {
RepositoryEntry foo = repoTableModel.getObject(i);
if (!foo.getKey().equals(ecv.getRepositoryEntryKey())) {
newEntries.add(foo);
}
}
repoTableModel.setObjects(newEntries);
tableCtr.modelChanged();
} else if (ecv.getChange() == Change.added) {
doSearchByOwner(urequest.getIdentity());
}
} else if (source == searchForm) {
// process search form events
if (event == Event.DONE_EVENT) {
if (searchForm.hasId()) {
doSearchById(searchForm.getId(), searchForm.getRestrictedTypes());
} else if (enableSearchforAllInSearchForm != null) {
doSearchAllReferencables(urequest, null, true);
} else {
doSearch(urequest, null, true);
}
} else if (event == Event.CANCELLED_EVENT) {
fireEvent(urequest, Event.CANCELLED_EVENT);
}
} else if (calloutCtrl == source) {
removeAsListenerAndDispose(calloutCtrl);
removeAsListenerAndDispose(infosCtrl);
calloutCtrl = null;
infosCtrl = null;
}
}
use of org.olat.core.gui.control.Event in project openolat by klemens.
the class YearNavigationController method event.
/**
* @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest,
* org.olat.core.gui.components.Component,
* org.olat.core.gui.control.Event)
*/
@Override
protected void event(UserRequest ureq, Component source, Event event) {
if (source == next) {
model.next();
createLinks();
Year year = (Year) yearLink.getUserObject();
Event navEvent = new NavigationEvent(year.getItems());
fireEvent(ureq, navEvent);
yearLink.setCustomEnabledLinkCSS("o_year o_selected");
} else if (source == previous) {
model.previous();
createLinks();
Year year = (Year) yearLink.getUserObject();
Event navEvent = new NavigationEvent(year.getItems());
fireEvent(ureq, navEvent);
yearLink.setCustomEnabledLinkCSS("o_year o_selected");
} else if (source == yearLink) {
// Click on year toggles between year filter and show all filter
if (showAll) {
Year year = (Year) yearLink.getUserObject();
Event navEvent = new NavigationEvent(year.getItems());
fireEvent(ureq, navEvent);
// update GUI
yearLink.setCustomEnabledLinkCSS("o_year o_selected");
for (Link monthLink : monthLinks) {
monthLink.setCustomEnabledLinkCSS("o_month");
}
showAll = false;
} else {
Event navEvent = new NavigationEvent(allObjects);
fireEvent(ureq, navEvent);
// update GUI
yearLink.setCustomEnabledLinkCSS("o_year");
showAll = true;
}
} else if (monthLinks.contains(source)) {
Link monthLink = (Link) source;
Month month = (Month) monthLink.getUserObject();
Event navEvent = new NavigationEvent(month.getItems());
fireEvent(ureq, navEvent);
// update GUI
yearLink.setCustomEnabledLinkCSS("o_year");
for (Link link : monthLinks) {
link.setCustomEnabledLinkCSS("o_month");
}
monthLink.setCustomEnabledLinkCSS("o_month o_selected");
}
}
use of org.olat.core.gui.control.Event in project openolat by klemens.
the class GlossaryTermAndSynonymController method formOK.
@Override
protected void formOK(UserRequest ureq) {
String glossTerm = glossaryTermField.getValue().trim();
if (StringHelper.containsNonWhitespace(glossTerm)) {
if (!glossTerm.equals(glossaryItem.getGlossTerm()) && glossaryItem.getGlossFlexions().size() > 0) {
showWarning("flexions.warn.after.changed.term");
}
glossaryItem.setGlossTerm(glossTerm);
}
// save all changes made in existing synonyms
int oldSynonymCount = glossItemSynonyms.size();
glossItemSynonyms = new ArrayList<String>();
for (int i = 0; i < oldSynonymCount; i++) {
String textElementValue = synonymTextElementList.get(i).getValue().trim();
if (StringHelper.containsNonWhitespace(textElementValue)) {
glossItemSynonyms.add(textElementValue);
}
}
String newSynonym = newSynonymField.getValue().trim();
if (StringHelper.containsNonWhitespace(newSynonym)) {
glossItemSynonyms.add(newSynonym);
}
// remove duplicates and sort
removeDuplicate(glossItemSynonyms);
Collections.sort(glossItemSynonyms);
// update synonym-list and re-initialize
glossaryItem.setGlossSynonyms(glossItemSynonyms);
createOrUpdateSynonymLayout(this.flc, glossItemSynonyms);
Revision revision = new Revision();
revision.setAuthor(new Author(getIdentity()));
revision.setJavaDate(new Date());
if (add) {
revision.setRevisionflag("added");
} else {
revision.setRevisionflag("changed");
}
glossaryItem.getRevHistory().add(revision);
if (!checkForDuplicatesInGlossary()) {
showError("term.error.alreadyused", duplicateGlossItem.getGlossTerm());
glossaryTermField.setErrorKey("term.error.alreadyused", new String[] { duplicateGlossItem.getGlossTerm() });
} else
fireEvent(ureq, new Event("termOK"));
}
Aggregations