Example usage for org.apache.wicket.ajax AjaxRequestTarget appendJavaScript

List of usage examples for org.apache.wicket.ajax AjaxRequestTarget appendJavaScript

Introduction

In this page you can find the example usage for org.apache.wicket.ajax AjaxRequestTarget appendJavaScript.

Prototype

void appendJavaScript(CharSequence javascript);

Source Link

Document

Adds javascript that will be evaluated on the client side after components are replaced

If the javascript needs to do something asynchronously (i.e.

Usage

From source file:org.apache.openmeetings.web.room.menu.ActionsSubMenu.java

License:Apache License

private static void download(AjaxRequestTarget target, String type) {
    target.appendJavaScript(String.format("WbArea.download('%s');", type));
}

From source file:org.apache.openmeetings.web.room.NetTestPanel.java

License:Apache License

@Override
protected void onInitialize() {
    super.onInitialize();
    add(new OmAjaxClientInfoBehavior() {
        private static final long serialVersionUID = 1L;

        @Override// w  w w .  jav a  2 s. c  om
        protected void onClientInfo(AjaxRequestTarget target, WebClientInfo info) {
            super.onClientInfo(target, info);
            target.appendJavaScript(String.format("NetTest.init(%s);", getStringLabels()));
        }
    });
}

From source file:org.apache.openmeetings.web.room.poll.PollResultsDialog.java

License:Apache License

public void updateModel(AjaxRequestTarget target, boolean moderator) {
    selForm.updateModel(target);/* w w w.j a v  a2 s.co m*/
    this.moderator = moderator;
    RoomPoll p = selForm.select.getModelObject();
    dispForm.updateModel(p, false, target);
    StringBuilder builder = new StringBuilder();
    builder.append("$('#").append(PollResultsDialog.this.getMarkupId())
            .append("').on('dialogopen', function( event, ui ) {");
    builder.append(getScript(barChart(p)));
    builder.append("});");

    target.appendJavaScript(builder.toString());
}

From source file:org.apache.openmeetings.web.room.sidebar.RoomFilePanel.java

License:Apache License

@Override
public void select(BaseFileItem fi, AjaxRequestTarget target, boolean shift, boolean ctrl) {
    super.select(fi, target, shift, ctrl);
    if (target != null) {
        target.appendJavaScript("Room.setSize();");
    }//from  w ww. j  a  va  2 s  . co m
}

From source file:org.apache.openmeetings.web.room.wb.WbPanel.java

License:Apache License

@Override
protected void processWbAction(WbAction a, JSONObject obj, AjaxRequestTarget target) throws IOException {
    Client c = rp.getClient();//  www . ja v  a2  s . co m
    if (c == null) {
        return;
    }
    switch (a) {
    case createObj:
    case modifyObj: {
        JSONObject o = obj.optJSONObject("obj");
        if (o != null && "pointer".equals(o.getString(ATTR_TYPE))) {
            sendWbOthers(a, obj);
            return;
        }
    }
        break;
    case downloadPdf: {
        boolean moder = c.hasRight(Room.Right.moderator);
        Room r = rp.getRoom();
        if ((moder && !r.isHidden(RoomElement.ActionMenu)) || (!moder && r.isAllowUserQuestions())) {
            try (PDDocument doc = new PDDocument()) {
                JSONArray arr = obj.getJSONArray("slides");
                for (int i = 0; i < arr.length(); ++i) {
                    String base64Image = arr.getString(i).split(",")[1];
                    byte[] bb = Base64.decodeBase64(base64Image);
                    BufferedImage img = ImageIO.read(new ByteArrayInputStream(bb));
                    float width = img.getWidth();
                    float height = img.getHeight();
                    PDPage page = new PDPage(new PDRectangle(width, height));
                    PDImageXObject pdImageXObject = LosslessFactory.createFromImage(doc, img);
                    try (PDPageContentStream contentStream = new PDPageContentStream(doc, page,
                            AppendMode.APPEND, false)) {
                        contentStream.drawImage(pdImageXObject, 0, 0, width, height);
                    }
                    doc.addPage(page);
                }
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                doc.save(baos);
                rp.startDownload(target, baos.toByteArray());
            }
        }
        return;
    }
    case loadVideos: {
        StringBuilder sb = new StringBuilder("WbArea.initVideos(");
        JSONArray arr = new JSONArray();
        for (Entry<Long, Whiteboard> entry : wbm.list(roomId)) {
            Whiteboard wb = entry.getValue();
            for (JSONObject o : wb.list()) {
                String ft = o.optString(ATTR_FILE_TYPE);
                if (BaseFileItem.Type.Recording.name().equals(ft)
                        || BaseFileItem.Type.Video.name().equals(ft)) {
                    JSONObject _sts = o.optJSONObject(PARAM_STATUS);
                    if (_sts == null) {
                        continue;
                    }
                    JSONObject sts = new JSONObject(_sts.toString()); //copy
                    sts.put("pos", sts.getDouble("pos")
                            + (System.currentTimeMillis() - sts.getLong(PARAM_UPDATED)) * 1. / 1000);
                    arr.put(new JSONObject().put("wbId", wb.getId()).put("uid", o.getString("uid"))
                            .put(ATTR_SLIDE, o.getString(ATTR_SLIDE)).put(PARAM_STATUS, sts));
                }
            }
        }
        sb.append(arr.toString()).append(");");
        target.appendJavaScript(sb);
        return;
    }
    default:
        break;
    }

    //presenter-right
    if (c.hasRight(Right.presenter)) {
        switch (a) {
        case createWb: {
            Whiteboard wb = wbm.add(roomId, c.getUser().getLanguageId());
            sendWbAll(WbAction.createWb, getAddWbJson(wb));
        }
            break;
        case removeWb: {
            long id = obj.optLong("wbId", -1);
            if (id > -1) {
                wbm.remove(roomId, id);
                sendWbAll(WbAction.removeWb, obj);
            }
        }
            break;
        case activateWb: {
            long _id = obj.optLong("wbId", -1);
            if (_id > -1) {
                wbm.activate(roomId, _id);
                sendWbAll(WbAction.activateWb, obj);
            }
        }
            break;
        case renameWb: {
            Whiteboard wb = wbm.get(roomId).get(obj.optLong("wbId", -1));
            if (wb != null) {
                wbm.update(roomId, wb.setName(obj.getString("name")));
                sendWbAll(WbAction.renameWb, obj);
            }
        }
            break;
        case setSlide: {
            Whiteboard wb = wbm.get(roomId).get(obj.optLong("wbId", -1));
            if (wb != null) {
                wb.setSlide(obj.optInt(ATTR_SLIDE, 0));
                wbm.update(roomId, wb);
                sendWbOthers(WbAction.setSlide, obj);
            }
        }
            break;
        case clearAll: {
            clearAll(roomId, obj.getLong("wbId"));
        }
            break;
        case setSize: {
            Whiteboard wb = wbm.get(roomId).get(obj.getLong("wbId"));
            wb.setWidth(obj.getInt(ATTR_WIDTH));
            wb.setHeight(obj.getInt(ATTR_HEIGHT));
            wb.setZoom(obj.getDouble(ATTR_ZOOM));
            wb.setZoomMode(ZoomMode.valueOf(obj.getString("zoomMode")));
            wbm.update(roomId, wb);
            sendWbOthers(WbAction.setSize, getAddWbJson(wb));
        }
            break;
        default:
            break;
        }
    }
    //wb-right
    if (c.hasRight(Right.presenter) || c.hasRight(Right.whiteBoard)) {
        switch (a) {
        case createObj: {
            Whiteboard wb = wbm.get(roomId).get(obj.getLong("wbId"));
            JSONObject o = obj.getJSONObject("obj");
            wb.put(o.getString("uid"), o);
            wbm.update(roomId, wb);
            addUndo(wb.getId(), new UndoObject(UndoObject.Type.add, o));
            sendWbOthers(WbAction.createObj, obj);
        }
            break;
        case modifyObj: {
            Whiteboard wb = wbm.get(roomId).get(obj.getLong("wbId"));
            JSONArray arr = obj.getJSONArray("obj");
            JSONArray undo = new JSONArray();
            for (int i = 0; i < arr.length(); ++i) {
                JSONObject _o = arr.getJSONObject(i);
                String uid = _o.getString("uid");
                JSONObject po = wb.get(uid);
                if (po != null) {
                    undo.put(po);
                    wb.put(uid, _o);
                }
            }
            if (arr.length() != 0) {
                wbm.update(roomId, wb);
                addUndo(wb.getId(), new UndoObject(UndoObject.Type.modify, undo));
            }
            sendWbOthers(WbAction.modifyObj, obj);
        }
            break;
        case deleteObj: {
            Whiteboard wb = wbm.get(roomId).get(obj.getLong("wbId"));
            JSONArray arr = obj.getJSONArray("obj");
            JSONArray undo = new JSONArray();
            for (int i = 0; i < arr.length(); ++i) {
                JSONObject _o = arr.getJSONObject(i);
                JSONObject u = wb.remove(_o.getString("uid"));
                if (u != null) {
                    undo.put(u);
                }
            }
            if (undo.length() != 0) {
                wbm.update(roomId, wb);
                addUndo(wb.getId(), new UndoObject(UndoObject.Type.remove, undo));
            }
            sendWbAll(WbAction.deleteObj, obj);
        }
            break;
        case clearSlide: {
            Whiteboard wb = wbm.get(roomId).get(obj.getLong("wbId"));
            JSONArray arr = wb.clearSlide(obj.getInt(ATTR_SLIDE));
            if (arr.length() != 0) {
                wbm.update(roomId, wb);
                addUndo(wb.getId(), new UndoObject(UndoObject.Type.remove, arr));
            }
            sendWbAll(WbAction.clearSlide, obj);
        }
            break;
        case save:
            wb2save = obj.getLong("wbId");
            fileName.open(target);
            break;
        case undo: {
            Long wbId = obj.getLong("wbId");
            UndoObject uo = getUndo(wbId);
            if (uo != null) {
                Whiteboard wb = wbm.get(roomId).get(wbId);
                switch (uo.getType()) {
                case add: {
                    JSONObject o = new JSONObject(uo.getObject());
                    wb.remove(o.getString("uid"));
                    wbm.update(roomId, wb);
                    sendWbAll(WbAction.deleteObj, obj.put("obj", new JSONArray().put(o)));
                }
                    break;
                case remove: {
                    JSONArray arr = new JSONArray(uo.getObject());
                    for (int i = 0; i < arr.length(); ++i) {
                        JSONObject o = arr.getJSONObject(i);
                        wb.put(o.getString("uid"), o);
                    }
                    wbm.update(roomId, wb);
                    sendWbAll(WbAction.createObj, obj.put("obj", new JSONArray(uo.getObject())));
                }
                    break;
                case modify: {
                    JSONArray arr = new JSONArray(uo.getObject());
                    for (int i = 0; i < arr.length(); ++i) {
                        JSONObject o = arr.getJSONObject(i);
                        wb.put(o.getString("uid"), o);
                    }
                    wbm.update(roomId, wb);
                    sendWbAll(WbAction.modifyObj, obj.put("obj", arr));
                }
                    break;
                }
            }
        }
            break;
        case videoStatus: {
            Whiteboard wb = wbm.get(roomId).get(obj.getLong("wbId"));
            String uid = obj.getString("uid");
            JSONObject po = wb.get(uid);
            if (po != null && "video".equals(po.getString(ATTR_TYPE))) {
                JSONObject ns = obj.getJSONObject(PARAM_STATUS);
                po.put(PARAM_STATUS, ns.put(PARAM_UPDATED, System.currentTimeMillis()));
                wbm.update(roomId, wb.put(uid, po));
                obj.put(ATTR_SLIDE, po.getInt(ATTR_SLIDE));
                sendWbAll(WbAction.videoStatus, obj);
            }
        }
            break;
        default:
            break;
        }
    }
}

From source file:org.apache.openmeetings.web.user.calendar.CalendarPanel.java

License:Apache License

@Override
public void renderHead(IHeaderResponse response) {
    super.renderHead(response);

    AjaxRequestTarget target = getRequestCycle().find(AjaxRequestTarget.class);
    if (target != null) {
        target.appendJavaScript(javaScriptMarkup);
        target.appendJavaScript(javaScriptAddDatepicker);
    } else {//from  w  ww  . j av a 2  s .com
        response.render(JavaScriptHeaderItem.forScript(javaScriptMarkup, this.getId()));
    }
}

From source file:org.apache.openmeetings.web.user.chat.ChatForm.java

License:Apache License

public ChatForm(String id) {
    super(id);/*from   www.j  a va2 s .  com*/
    final ChatToolbar toolbar = new ChatToolbar("toolbarContainer", this);
    final WysiwygEditor chatMessage = new WysiwygEditor("chatMessage", Model.of(""), toolbar);
    add(toolbar, activeTab.add(new AjaxFormSubmitBehavior(this, "change") {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onSubmit(AjaxRequestTarget target) {
            toolbar.update(target);
        }
    }), chatMessage.setOutputMarkupId(true), new AjaxButton("send") {
        private static final long serialVersionUID = 1L;

        @Override
        protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
            super.updateAjaxAttributes(attributes);
            attributes.getAjaxCallListeners().add(new IAjaxCallListener() {
                @Override
                public CharSequence getPrecondition(Component component) {
                    return "return Chat.validate();";
                }
            });
        }

        private Chat getChat() {
            return findParent(Chat.class);
        }

        @Override
        protected void onSubmit(AjaxRequestTarget target) {
            final String txt = chatMessage.getDefaultModelObjectAsString();
            if (Strings.isEmpty(txt)) {
                return;
            }
            final ChatMessage m = new ChatMessage();
            m.setMessage(txt);
            m.setSent(new Date());
            m.setFromUser(userDao.get(getUserId()));
            m.setFromName(getClient().getUser().getDisplayName());
            if (!process(() -> getChat().isShowDashboardChat(), r -> {
                if (cm.isInRoom(r.getId(), getUserId())) {
                    m.setToRoom(r);
                } else {
                    log.error("It seems like we are being hacked!!!!");
                    return false;
                }
                m.setNeedModeration(
                        r.isChatModerated() && !isModerator(cm, m.getFromUser().getId(), r.getId()));
                return true;
            }, u -> {
                m.setToUser(u);
                return true;
            })) {
                return;
            }
            ;
            chatDao.update(m);
            JSONObject msg = getChat().getMessage(Arrays.asList(m));
            if (m.getToRoom() != null) {
                ChatWebSocketHelper.sendRoom(m, msg);
            } else if (m.getToUser() != null) {
                ChatWebSocketHelper.sendUser(getUserId(), m, msg);
                msg = Chat.getMessage(m.getToUser(), Arrays.asList(m));
                ChatWebSocketHelper.sendUser(m.getToUser().getId(), m, msg);
            } else {
                ChatWebSocketHelper.sendAll(m, msg);
            }
            chatMessage.setDefaultModelObject("");
            target.appendJavaScript("Chat.clean();");
        };
    });
}

From source file:org.apache.openmeetings.web.user.ChatPanel.java

License:Apache License

public void roomEnter(Room r, AjaxRequestTarget target) {
    if (r.isChatHidden()) {
        target.add(setVisible(false));//from   w w  w.  j a v a2 s  . co m
        return;
    }
    StringBuilder sb = new StringBuilder();
    sb.append("$(function() {");
    sb.append(String.format("addChatTab('%1$s%2$d', '%3$s %2$d');", ID_ROOM_PREFIX, r.getId(),
            Application.getString(406)));
    sb.append(r.isChatOpened() ? "openChat();" : "closeChat();");
    List<ChatMessage> list = getBean(ChatDao.class).getRoom(r.getId(), 0, 30,
            !r.isChatModerated() || isModerator(getUserId(), r.getId()));
    if (list.size() > 0) {
        sb.append("addChatMessage(").append(getMessage(list).toString()).append(");");
    }
    sb.append("});");
    target.appendJavaScript(sb);
}

From source file:org.apache.solomax.AjaxDownload.java

License:Apache License

/**
 * Call this method to initiate the download.
 *///from  w  w  w .  ja v  a 2  s .c o  m
public void initiate(AjaxRequestTarget target) {
    PageParameters pp = new PageParameters();

    if (addAntiCache) {
        pp.add("antiCache", System.currentTimeMillis());
    }
    String url = component.urlFor(this, IResourceListener.INTERFACE, pp).toString();
    target.appendJavaScript(String.format("$('#%s').attr('src', '%s');", iframeId, url));
}

From source file:org.apache.syncope.client.console.pages.LogViewer.java

License:Apache License

public LogViewer() {
    final WebMarkupContainer viewer = new WebMarkupContainer("viewer");
    viewer.setOutputMarkupId(true);/*  w w  w. j  av  a 2 s .c o m*/
    add(viewer);

    final AjaxDropDownChoicePanel<String> appenders = new AjaxDropDownChoicePanel<>("appenders", "Appender",
            new Model<String>(), false);
    MetaDataRoleAuthorizationStrategy.authorize(appenders, ENABLE, StandardEntitlement.LOG_READ);
    appenders.setChoices(restClient.listMemoryAppenders());
    viewer.add(appenders);

    final WebMarkupContainer stContainer = new WebMarkupContainer("stContainer");
    stContainer.setOutputMarkupId(true);
    viewer.add(stContainer);

    final Model<Long> lastTimeInMillis = Model.of(0L);
    final IModel<List<LogStatementTO>> statementViewModel = new ListModel<>(new ArrayList<LogStatementTO>());
    final ListView<LogStatementTO> statementView = new ListView<LogStatementTO>("statements",
            statementViewModel) {

        private static final long serialVersionUID = -9180479401817023838L;

        @Override
        protected void populateItem(final ListItem<LogStatementTO> item) {
            LogStatementPanel panel = new LogStatementPanel("statement", item.getModelObject());
            panel.setOutputMarkupId(true);
            item.add(panel);
        }
    };
    statementView.setOutputMarkupId(true);
    stContainer.add(statementView);
    stContainer.add(new AjaxSelfUpdatingTimerBehavior(Duration.seconds(10)) {

        private static final long serialVersionUID = 7298597675929755960L;

        @Override
        protected void onPostProcessTarget(final AjaxRequestTarget target) {
            // save scroll position
            target.prependJavaScript(
                    String.format("window.scrollTop = $('#%s').scrollTop();", stContainer.getMarkupId()));

            List<LogStatementTO> recentLogStatements = appenders.getModelObject() == null
                    ? new ArrayList<LogStatementTO>()
                    : restClient.getLastLogStatements(appenders.getModelObject(), lastTimeInMillis.getObject());
            if (!recentLogStatements.isEmpty()) {
                lastTimeInMillis
                        .setObject(recentLogStatements.get(recentLogStatements.size() - 1).getTimeMillis());

                int currentSize = statementView.getModelObject().size();
                int recentSize = recentLogStatements.size();

                List<LogStatementTO> newModelObject = SetUniqueList.<LogStatementTO>setUniqueList(
                        new ArrayList<LogStatementTO>(MAX_STATEMENTS_PER_APPENDER));
                if (currentSize <= MAX_STATEMENTS_PER_APPENDER - recentSize) {
                    newModelObject.addAll(statementView.getModelObject());
                } else {
                    newModelObject.addAll(statementView.getModelObject()
                            .subList(currentSize - (MAX_STATEMENTS_PER_APPENDER - recentSize), currentSize));
                }
                newModelObject.addAll(recentLogStatements);

                statementViewModel.setObject(newModelObject);
                target.add(stContainer);

            }

            // restore scroll position - might not work perfectly if items were removed from the top
            target.appendJavaScript(
                    String.format("$('#%s').scrollTop(window.scrollTop);", stContainer.getMarkupId()));
        }
    });

    appenders.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {

        private static final long serialVersionUID = -1107858522700306810L;

        @Override
        protected void onUpdate(final AjaxRequestTarget target) {
            List<LogStatementTO> lastStatements = appenders.getModelObject() == null
                    ? new ArrayList<LogStatementTO>()
                    : restClient.getLastLogStatements(appenders.getModelObject(), 0);
            statementViewModel.setObject(lastStatements);
            target.add(stContainer);

            lastTimeInMillis.setObject(0L);
        }
    });
}