Search in sources :

Example 61 with Event

use of org.olat.core.gui.control.Event in project openolat by klemens.

the class VelocityContainer method doDispatchRequest.

/**
 * @see org.olat.core.gui.components.Component#dispatchRequest(org.olat.core.gui.UserRequest)
 */
@Override
protected void doDispatchRequest(UserRequest ureq) {
    // called when a page-link is clicked ($r.renderCommand)
    String commandString = ureq.getParameter(COMMAND_ID);
    // WAS: set component dirty by default.
    // if you are in ajax mode, and the link resulted in a external mediaresource, then you can (in your controller) manually reset dirty to false.
    // we decided that there are only very few cases for this, and otherwise that the chance that a developers forgets to call vc.setDirty(true) is
    // much higher
    // now: normal links are created using the Link component, which takes care of setting dirty itself (everytime it is dispatched)
    // setDirty(true);
    // notify listening controllers
    fireEvent(ureq, new Event(commandString));
}
Also used : Event(org.olat.core.gui.control.Event)

Example 62 with Event

use of org.olat.core.gui.control.Event in project openolat by klemens.

the class ValidatingVisitor method appendDispatchDebugInfos.

private void appendDispatchDebugInfos(Component target, StringBuilder debugMsg) {
    Controller c = target.getLatestDispatchedController();
    if (c != null) {
        WindowControl wCo = null;
        try {
            wCo = c.getWindowControlForDebug();
        } catch (Exception e) {
        // getWindowControl throw an Assertion if wControl = null
        }
        if (wCo != null) {
            String coInfo = "";
            WindowControlInfo wci = wCo.getWindowControlInfo();
            while (wci != null) {
                String cName = wci.getControllerClassName();
                coInfo = cName + ":" + coInfo;
                wci = wci.getParentWindowControlInfo();
            }
            BusinessControl bc = wCo.getBusinessControl();
            String businessPath = bc == null ? "n/a" : bc.getAsString();
            String compName = target.getComponentName();
            String msg = "wci:" + coInfo + "%%" + compName + "%%" + businessPath + "%%";
            // allowed for debugging, dispatching is already over
            Event ev = target.getAndClearLatestFiredEvent();
            if (ev != null) {
                msg += ev.getClass().getName() + ":" + ev.getCommand() + "%%";
            }
            String targetInfo = target.getExtendedDebugInfo();
            msg += targetInfo + "%%";
            debugMsg.append(msg).append(LOG_SEPARATOR);
        } else {
        // no windowcontrol -> ignore
        }
    }
// else: a component with -no- controller as listener, makes no sense in 99.99% of the cases; ignore in those rare cases
}
Also used : BusinessControl(org.olat.core.id.context.BusinessControl) Event(org.olat.core.gui.control.Event) ChiefController(org.olat.core.gui.control.ChiefController) Controller(org.olat.core.gui.control.Controller) WindowControl(org.olat.core.gui.control.WindowControl) AssertException(org.olat.core.logging.AssertException) JSONException(org.json.JSONException) InvalidRequestParameterException(org.olat.core.gui.components.form.flexible.impl.InvalidRequestParameterException) OLATRuntimeException(org.olat.core.logging.OLATRuntimeException) IOException(java.io.IOException) WindowControlInfo(org.olat.core.gui.control.info.WindowControlInfo)

Example 63 with Event

use of org.olat.core.gui.control.Event in project openolat by klemens.

the class RatingComponent method doDispatchRequest.

@Override
protected void doDispatchRequest(UserRequest ureq) {
    setDirty(true);
    String cmd = ureq.getParameter(VelocityContainer.COMMAND_ID);
    try {
        float rating = Float.parseFloat(cmd);
        // update GUI
        setCurrentRating(rating);
        // notify listeners
        Event event = new RatingEvent(rating);
        fireEvent(ureq, event);
    } catch (NumberFormatException e) {
        log.error("Error while parsing rating value::" + cmd);
    }
}
Also used : Event(org.olat.core.gui.control.Event)

Example 64 with Event

use of org.olat.core.gui.control.Event in project openolat by klemens.

the class GUIDemoMainController method handleOwnMenuTreeEvent.

@Override
protected Controller handleOwnMenuTreeEvent(Object uobject, final UserRequest ureq) {
    if (uobject.equals("guidemo-autocompletion")) {
        // for a demo of autocompletion, do a user search
        ListProvider provider = new ListProvider() {

            public void getResult(String searchValue, ListReceiver receiver) {
                Map<String, String> userProperties = new HashMap<String, String>();
                // We can only search in mandatory User-Properties due to problems
                // with hibernate query with join and not existing rows
                userProperties.put(UserConstants.FIRSTNAME, searchValue);
                userProperties.put(UserConstants.LASTNAME, searchValue);
                userProperties.put(UserConstants.EMAIL, searchValue);
                List<Identity> res = BaseSecurityManager.getInstance().getVisibleIdentitiesByPowerSearch(searchValue, userProperties, false, null, null, null, null, null);
                int maxEntries = 15;
                boolean hasMore = false;
                for (Iterator<Identity> it_res = res.iterator(); (hasMore = it_res.hasNext()) && maxEntries > 0; ) {
                    maxEntries--;
                    Identity ident = it_res.next();
                    User u = ident.getUser();
                    String key = ident.getKey().toString();
                    String displayKey = ident.getName();
                    String first = u.getProperty(UserConstants.FIRSTNAME, getLocale());
                    String last = u.getProperty(UserConstants.LASTNAME, getLocale());
                    String displayText = last + " " + first;
                    receiver.addEntry(key, displayKey, displayText, CSSHelper.CSS_CLASS_USER);
                }
                if (hasMore) {
                    receiver.addEntry("-1", ".....");
                }
            }
        };
        Controller c = new AutoCompleterController(ureq, getWindowControl(), provider, null, true, 60, 3, null);
        // for demo only, normally use in parent controller
        c.addControllerListener(new ControllerEventListener() {

            public void dispatchEvent(UserRequest uureq, Controller source, Event event) {
                EntriesChosenEvent ece = (EntriesChosenEvent) event;
                String sel = ece.getEntries().toString();
                getWindowControl().setInfo("selected entrie(s):" + sel);
            }
        });
        return c;
    }
    return null;
}
Also used : User(org.olat.core.id.User) HashMap(java.util.HashMap) ListProvider(org.olat.core.gui.control.generic.ajax.autocompletion.ListProvider) Controller(org.olat.core.gui.control.Controller) AutoCompleterController(org.olat.core.gui.control.generic.ajax.autocompletion.AutoCompleterController) GenericMainController(org.olat.core.gui.control.generic.layout.GenericMainController) ControllerEventListener(org.olat.core.gui.control.ControllerEventListener) Event(org.olat.core.gui.control.Event) EntriesChosenEvent(org.olat.core.gui.control.generic.ajax.autocompletion.EntriesChosenEvent) AutoCompleterController(org.olat.core.gui.control.generic.ajax.autocompletion.AutoCompleterController) Identity(org.olat.core.id.Identity) ListReceiver(org.olat.core.gui.control.generic.ajax.autocompletion.ListReceiver) EntriesChosenEvent(org.olat.core.gui.control.generic.ajax.autocompletion.EntriesChosenEvent) UserRequest(org.olat.core.gui.UserRequest)

Example 65 with Event

use of org.olat.core.gui.control.Event in project openolat by klemens.

the class CPContentController method displayPage.

/**
 * Displays the correct edit page when node with the given id is selected.
 *
 * @param ureq
 * @param nodeID
 */
protected void displayPage(UserRequest ureq, String nodeID) {
    CPManager cpMgm = CPManager.getInstance();
    currentPage = new CPPage(nodeID, cp);
    String filePath = cpMgm.getPageByItemId(cp, currentPage.getIdentifier());
    logInfo("I display the page with id: " + currentPage.getIdentifier(), null);
    VFSItem f = cp.getRootDir().resolve(filePath);
    if (filePath == null) {
        displayInfoPage();
    } else if (f == null) {
        displayNotFoundPage();
    } else {
        currentPage.setFile((VFSLeaf) f);
        setContent(ureq, filePath);
    }
    fireEvent(ureq, new Event("Page loaded"));
}
Also used : VFSLeaf(org.olat.core.util.vfs.VFSLeaf) CPManager(org.olat.ims.cp.CPManager) VFSItem(org.olat.core.util.vfs.VFSItem) NewIframeUriEvent(org.olat.core.gui.control.generic.iframe.NewIframeUriEvent) Event(org.olat.core.gui.control.Event)

Aggregations

Event (org.olat.core.gui.control.Event)68 FormEvent (org.olat.core.gui.components.form.flexible.impl.FormEvent)14 WindowControl (org.olat.core.gui.control.WindowControl)12 ArrayList (java.util.ArrayList)10 UserRequest (org.olat.core.gui.UserRequest)10 Controller (org.olat.core.gui.control.Controller)10 Identity (org.olat.core.id.Identity)10 RepositoryEntry (org.olat.repository.RepositoryEntry)10 List (java.util.List)8 Link (org.olat.core.gui.components.link.Link)8 OLATResourceable (org.olat.core.id.OLATResourceable)8 ControllerEventListener (org.olat.core.gui.control.ControllerEventListener)6 GenericQtiNode (org.olat.ims.qti.editor.tree.GenericQtiNode)6 QItemViewEvent (org.olat.modules.qpool.ui.events.QItemViewEvent)6 Component (org.olat.core.gui.components.Component)5 TreeEvent (org.olat.core.gui.components.tree.TreeEvent)5 FormLink (org.olat.core.gui.components.form.flexible.elements.FormLink)4 PopEvent (org.olat.core.gui.components.stack.PopEvent)4 TableEvent (org.olat.core.gui.components.table.TableEvent)4 TableMultiSelectEvent (org.olat.core.gui.components.table.TableMultiSelectEvent)4