Example usage for org.apache.wicket Component add

List of usage examples for org.apache.wicket Component add

Introduction

In this page you can find the example usage for org.apache.wicket Component add.

Prototype

public Component add(final Behavior... behaviors) 

Source Link

Document

Adds a behavior modifier to the component.

Usage

From source file:org.artifactory.webapp.wicket.page.config.repos.remote.HttpRepoPanel.java

License:Open Source License

@Override
protected List<ITab> getConfigurationTabs() {
    List<ITab> tabs = Lists.newArrayList();

    tabs.add(new AbstractTab(Model.of("Basic Settings")) {
        @Override//from w  w w  .  java2s  . c  o m
        public Panel getPanel(String panelId) {
            return new HttpRepoBasicPanel(panelId, entity);
        }
    });

    tabs.add(new BaseTab(Model.of("Advanced Settings")) {
        @Override
        public Panel getPanel(String panelId) {
            return new HttpRepoAdvancedPanel(panelId, action, entity,
                    cachingDescriptorHelper.getModelMutableDescriptor());
        }

        @Override
        public void onNewTabLink(Component link) {
            super.onNewTabLink(link);
            link.add(new CssClass("wide-tab"));
        }
    });

    List<PropertySet> propertySets = getCachingDescriptorHelper().getModelMutableDescriptor().getPropertySets();
    PropertiesWebAddon propertiesWebAddon = addons.addonByType(PropertiesWebAddon.class);
    tabs.add(propertiesWebAddon.getRepoConfigPropertySetsTab("Property Sets", entity, propertySets));

    replicationDescriptor = cachingDescriptorHelper.getModelMutableDescriptor()
            .getRemoteReplication(entity.getKey());
    if (replicationDescriptor == null) {
        replicationDescriptor = new RemoteReplicationDescriptor();
        replicationDescriptor.setRepoKey(entity.getKey());
    }
    ReplicationWebAddon replicationWebAddon = addons.addonByType(ReplicationWebAddon.class);
    tabs.add(replicationWebAddon.getHttpRepoReplicationPanel("Replication", entity, replicationDescriptor,
            action));

    // packages tab contains add-ons configuration
    tabs.add(new AbstractTab(Model.of("Packages")) {
        @Override
        public Panel getPanel(String panelId) {
            return new HttpRepoPackagesPanel<>(panelId, entity, isCreate());
        }
    });
    return tabs;
}

From source file:org.artifactory.webapp.wicket.page.config.repos.RepoTabbedPanel.java

License:Open Source License

@Override
public TabbedPanel setSelectedTab(int index) {
    setDefaultModelObject(index);//from  w w w  .j  ava2s  . c  o m
    ITab tab = getTabs().get(index);
    final Component component = tab.getPanel(TAB_PANEL_ID);
    component.add(new ScrollDivBehavior());
    addOrReplace(component);
    return this;
}

From source file:org.artifactory.webapp.wicket.page.home.settings.modal.editable.EditableSettingsModalPanel.java

License:Open Source License

public EditableSettingsModalPanel(final DownloadModalSettings settings) {
    contentTextArea = new TextArea<>("content", Model.of(settings.getContent()));
    contentTextArea.setOutputMarkupId(true);

    FilteredResourcesWebAddon filteredResourcesWebAddon = addonsManager
            .addonByType(FilteredResourcesWebAddon.class);
    String saveToFileName = settings.getSaveToFileName();
    form.add(filteredResourcesWebAddon.getSettingsProvisioningBorder("settingsProvisioning", form,
            contentTextArea, saveToFileName));

    final AjaxSettingsDownloadBehavior ajaxSettingsDownloadBehavior = new AjaxSettingsDownloadBehavior(
            saveToFileName) {/*from w w  w  .  j  av a  2 s. c  o  m*/

        @Override
        protected StringResourceStream getResourceStream() {
            FilteredResourcesWebAddon filteredResourcesWebAddon = addonsManager
                    .addonByType(FilteredResourcesWebAddon.class);
            try {
                String filtered = filteredResourcesWebAddon.filterResource(null,
                        (Properties) InfoFactoryHolder.get().createProperties(),
                        new StringReader(contentTextArea.getModelObject()));
                return new StringResourceStream(filtered, settings.getSettingsMimeType());
            } catch (Exception e) {
                log.error("Unable to filter settings: " + e.getMessage());
                return new StringResourceStream(contentTextArea.getModelObject(),
                        settings.getSettingsMimeType());
            }
        }
    };

    form.add(ajaxSettingsDownloadBehavior);

    Component exportLink = new TitledAjaxSubmitLink("export", settings.getDownloadButtonTitle(), form) {
        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            ajaxSettingsDownloadBehavior.initiate(target);
        }
    };
    exportLink.add(new CssClass(new DefaultButtonStyleModel(exportLink)));
    add(exportLink);

    setWidth(700);
    add(new ModalCloseLink("cancel", "Cancel"));

    addContentToBorder();
}

From source file:org.artifactory.webapp.wicket.page.home.settings.modal.ReadOnlySettingsModalPanel.java

License:Open Source License

public ReadOnlySettingsModalPanel(final DownloadModalSettings settings) {
    super(new SyntaxHighlighter("content", settings.getContent(), settings.getSyntax()));

    final AjaxSettingsDownloadBehavior ajaxSettingsDownloadBehavior = new AjaxSettingsDownloadBehavior(
            settings.getSaveToFileName()) {

        @Override/*from  ww w .  j  a v a  2s.  co  m*/
        protected StringResourceStream getResourceStream() {
            FilteredResourcesWebAddon filteredResourcesWebAddon = addonsManager
                    .addonByType(FilteredResourcesWebAddon.class);
            String settingsMimeType = settings.getSettingsMimeType();
            String settingsContent = settings.getContent();
            try {
                String filtered = filteredResourcesWebAddon.filterResource(null,
                        (Properties) InfoFactoryHolder.get().createProperties(),
                        new StringReader(settingsContent));
                return new StringResourceStream(filtered, settingsMimeType);
            } catch (Exception e) {
                log.error("Unable to filter settings: " + e.getMessage());
                return new StringResourceStream(settingsContent, settingsMimeType);
            }
        }
    };

    add(ajaxSettingsDownloadBehavior);

    Component exportLink = new TitledAjaxLink("export", settings.getDownloadButtonTitle()) {
        public void onClick(AjaxRequestTarget target) {
            ajaxSettingsDownloadBehavior.initiate(target);
        }
    };
    exportLink.add(new CssClass(new DefaultButtonStyleModel(exportLink)));
    add(exportLink);

    setWidth(700);
    add(new ModalCloseLink("cancel", "Cancel"));
}

From source file:org.artifactory.webapp.wicket.page.security.profile.BintrayProfilePanel.java

License:Open Source License

public BintrayProfilePanel(String id, final T model, boolean enableFields) {
    super(id);/*from  w  w  w.j  a  v  a 2  s. c  o  m*/
    setOutputMarkupId(true);
    setDefaultModel(getModel(model));
    add(new CssClass("display:block"));
    bintrayUsername = new TextField<>("bintrayUsername", new Model<>(HIDDEN_PASSWORD));
    bintrayUsername.setEnabled(enableFields);
    bintrayUsername.setRequired(false);
    add(bintrayUsername);
    bintrayApiKey = new PasswordTextField("bintrayApiKey", new PropertyModel<String>(model, "bintrayApiKey"));
    bintrayApiKey.setResetPassword(false);
    bintrayApiKey.setEnabled(enableFields);
    bintrayApiKey.setRequired(false);
    add(bintrayApiKey);
    addHelpBubbles();
    Component bintrayLink;
    if (StringUtils.isBlank(getBintrayAuth())) {
        bintrayLink = new ExternalLink("bintrayLink", bintrayService.getBintrayRegistrationUrl(),
                "Register to Bintray...");
        bintrayLink.add(new CssClass("bintray-link"));
    } else {
        bintrayLink = new WebMarkupContainer("bintrayLink");
        bintrayLink.setVisible(false);
    }
    add(bintrayLink);

    testButton = new TitledAjaxSubmitLink("test", "Test") {
        @Override
        protected void onSubmit(AjaxRequestTarget target, Form form) {
            try {
                Map<String, String> headersMap = WicketUtils.getHeadersMap();
                BintrayUser bintrayUser = bintrayService.getBintrayUser(getBintrayUser(), getBintrayApiKey(),
                        headersMap);
                info("Successfully authenticated '" + bintrayUser.getFullName() + "'");
            } catch (IOException e) {
                error("Connection failed with exception: " + e.getMessage());
            } catch (BintrayException e) {
                error("Could not authenticate user: " + e.getStatus() + " " + e.getMessage());
            } catch (IllegalArgumentException e) {
                error(e.getMessage());
            }
            AjaxUtils.refreshFeedback(target);
        }

        @Override
        protected IAjaxCallDecorator getAjaxCallDecorator() {
            return new ImmediateAjaxIndicatorDecorator();
        }
    };
    testButton.setEnabled(false);
    add(testButton);
}

From source file:org.artifactory.webapp.wicket.panel.tabbed.tab.BaseTab.java

License:Open Source License

public void onNewTabLink(Component link) {
    if (!isEnabled()) {
        link.add(new DisableLinkBehavior());
    }
}

From source file:org.cast.isi.ISIXmlComponent.java

License:Open Source License

@Override
public Component getDynamicComponent(final String wicketId, final Element elt) {

    if (wicketId.startsWith("object_")) {
        NodeList nodes = elt.getChildNodes();
        String archive = null;// w  w w  .j a va  2 s .co m
        String dataFile = null;
        for (int i = 0; i < nodes.getLength(); i++) {
            Node nextNode = nodes.item(i);
            if (nextNode instanceof Element) {
                Element next = (Element) nodes.item(i);
                if (next.getAttribute("name").equals("archive")) {
                    archive = next.getAttribute("value");
                } else if (next.getAttribute("name").equals("dataFile")) {
                    dataFile = next.getAttribute("value");
                }
            }
        }
        if (archive != null) {

            String jarUrl = RequestCycle.get().urlFor(getRelativeRef(archive + ".jar"), new PageParameters())
                    .toString();
            String dataUrl = RequestCycle.get().urlFor(getRelativeRef(dataFile), new PageParameters())
                    .toString();

            DeployJava dj = new DeployJava(wicketId);
            dj.setArchive(jarUrl);
            dj.setCode(elt.getAttribute("src"));
            dj.addParameter("dataFile", dataUrl);
            return dj;
        }
        return super.getDynamicComponent(wicketId, elt);

        // link to a short glossary definition modal or main glossary window
    } else if (wicketId.startsWith("glossaryLink_")) {
        IModel<String> wordModel = new Model<String>(elt.getAttribute("word"));
        String glossaryLinkType = ISIApplication.get().getGlossaryLinkType();
        if (glossaryLinkType.equals(ISIApplication.GLOSSARY_TYPE_MODAL) && pageHasMiniGlossary()
                && miniGlossaryModal != null) {
            return new MiniGlossaryLink(wicketId, wordModel, miniGlossaryModal);

        } else if (glossaryLinkType.equals(ISIApplication.GLOSSARY_TYPE_INLINE)) {
            return new EmptyPanel(wicketId);

        } else {
            // Default case: glossary type is MAIN, or we wanted a modal but have no place to put it
            // (eg, we're in a popup window, or modal window)
            GlossaryLink glossaryLink = new GlossaryLink(wicketId, wordModel);
            ISIApplication.get().setLinkProperties(glossaryLink);
            return glossaryLink;
        }

        // inline glossary: linked word
    } else if (wicketId.startsWith("glossword")) {
        WebMarkupContainer glossaryWord = new WebMarkupContainer(wicketId);
        glossaryWord
                .setVisible(ISIApplication.get().glossaryLinkType.equals(ISIApplication.GLOSSARY_TYPE_INLINE));
        return glossaryWord;

        // inline glossary: definition
    } else if (wicketId.startsWith("glossdef")) {
        // Span element, to be filled in with the glossary short def.
        String word = elt.getAttribute("word");
        final String def = ISIApplication.get().getGlossary().getShortDefById(word);
        WebMarkupContainer container;
        container = new WebMarkupContainer(wicketId) {
            private static final long serialVersionUID = 1L;

            @Override
            public void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag) {
                replaceComponentTagBody(markupStream, openTag, def);
            }
        };
        container.add(new AttributeRemover("word"));
        container.setVisible(ISIApplication.get().glossaryLinkType.equals(ISIApplication.GLOSSARY_TYPE_INLINE));
        return container;

        // inline glossary: "more" link to main glossary window         
    } else if (wicketId.startsWith("glosslink")) {
        IModel<String> wordModel = new Model<String>(elt.getAttribute("word"));
        GlossaryLink glossaryLink = new GlossaryLink(wicketId, wordModel);
        ISIApplication.get().setLinkProperties(glossaryLink);
        glossaryLink
                .setVisible(ISIApplication.get().glossaryLinkType.equals(ISIApplication.GLOSSARY_TYPE_INLINE));
        return glossaryLink;

    } else if (wicketId.startsWith("link_")) {
        String href = elt.getAttribute("href");
        // According to NIMAS, href should be in the form "filename.xml#ID"  or just "#ID" for within-file link
        // For authors' convenience, we accept simple "ID" as well.
        int hashLocation = href.indexOf('#');
        if (hashLocation > 0) {
            // filename#ID case
            return new SectionLinkFactory().linkTo(wicketId, href.substring(0, hashLocation),
                    href.substring(hashLocation + 1));
        }
        // "#ID" or "ID" case:
        String file = getModel().getObject().getXmlDocument().getName(); // same file as we're currently viewing
        String id = href.substring(hashLocation + 1); // start at index 0 or 1
        return new SectionLinkFactory().linkTo(wicketId, file, id);

    } else if (wicketId.startsWith("popupLink_")) {
        String href = elt.getAttribute("href");
        // According to NIMAS, href should be in the form "filename.xml#ID"  or just "#ID" for within-file link
        // For authors' convenience, we accept simple "ID" as well.
        int hashLocation = href.indexOf('#');
        String file;
        if (hashLocation > 0) {
            file = href.substring(0, hashLocation);
        } else { // "#ID" or "ID" case:
            file = getModel().getObject().getXmlDocument().getName(); // same file as we're currently viewing
        }
        XmlDocument document = xmlService.getDocument(file);
        String xmlId = href.substring(hashLocation + 1);
        XmlSection section = document.getById(xmlId);
        XmlSectionModel mSection = new XmlSectionModel(section);
        return new AuthoredPopupLink(wicketId, xmlId, mSection);

    } else if (wicketId.startsWith("noteBackLink_")) {
        // Link back from a note to its (first) noteref.
        String idref = elt.getAttribute("idref");
        // Find candidate noterefs in this chapter
        XmlSection sec = getModel().getObject();
        XPath xPath = XPathFactory.newInstance().newXPath();
        xPath.setNamespaceContext(XmlService.get().getNamespaceContext());
        XmlSection linkSection = null;
        String linkText = "?";
        try {
            String path = String.format("//dtb:noteref[@idref='#%s']", idref);
            NodeList nl = (NodeList) xPath.evaluate(path,
                    sec.getXmlDocument().getDocument().getDocumentElement(), XPathConstants.NODESET);
            if (nl.getLength() > 0) {
                Element node = null;
                node = (Element) nl.item(0);
                linkText = node.getTextContent();
                // Scan parents until you find the smallest enclosing XML Section.
                while (linkSection == null && node.getParentNode() != null) {
                    String id = node.getAttributeNS(null, "id");
                    if (id != null) {
                        linkSection = sec.getXmlDocument().getById(id);
                    }
                    node = (Element) node.getParentNode();
                }
            }
        } catch (XPathExpressionException e) {
            e.printStackTrace(); // malformed expression - shouldn't happen
        }
        if (linkSection != null) {
            BookmarkablePageLink<ISIStandardPage> link = new SectionLinkFactory().linkTo(wicketId, linkSection,
                    "note_" + idref);
            link.add(new AttributeRemover("idref"));
            link.add(new Label("text", linkText));
            return link;
        } else {
            log.debug("Could not find noteref for note: idref={}", idref);
            return new SectionLinkFactory().linkToPage(wicketId, null);
        }

    } else if (wicketId.startsWith("fileLink_")) {
        // link to file in content directory
        return new ResourceLink<Object>(wicketId, getRelativeRef(elt.getAttribute("href")));

    } else if (wicketId.startsWith("sectionIcon_")) {
        WebComponent icon = ISIApplication.get().makeIcon(wicketId, elt.getAttribute("class"));
        icon.add(AttributeModifier.replace("class", new Model<String>("sectionIcon")));
        return icon;

    } else if (wicketId.startsWith("thumbRating_")) {
        ContentLoc loc = new ContentLoc(getModel().getObject());
        String thumbId = elt.getAttribute("id");
        ThumbPanel thumbPanel = new ThumbPanel(wicketId, loc, thumbId);
        thumbPanel.add(new AttributeRemover("id"));
        return thumbPanel;

    } else if (wicketId.startsWith("thumbRatingDescription_")) {
        Label thumbRatingDescription = new Label(wicketId,
                new ResourceModel("thumbRatingPanel.ratingDescription", "Rate It:"));
        return thumbRatingDescription;

    } else if (wicketId.startsWith("mediaThumbImage_")) {
        String src = elt.getAttribute("src");
        ResourceReference imgRef = getRelativeRef(src);
        Image image = new Image(wicketId, imgRef) {
            private static final long serialVersionUID = 1L;

            @Override
            protected void onComponentTag(final ComponentTag tag) {
                super.onComponentTag(tag);
                tag.put("width", elt.getAttribute("width"));
                tag.put("height", elt.getAttribute("height"));
            }
        };
        return image;

    } else if (wicketId.startsWith("mediaThumbLink_")) {
        String videoId = elt.getAttributeNS(null, "videoId");
        XmlSectionModel currentSectionModel = getModel();
        VideoLink videoLink = new VideoLink(wicketId, videoId, currentSectionModel);
        videoLink.add(new AttributeRemover("videoId"));
        return videoLink;

    } else if (wicketId.startsWith("videoplayer_")) {
        String videoSrc = elt.getAttribute("src");
        ResourceReference videoRef = getRelativeRef(videoSrc);
        String videoUrl = getRequestCycle().mapUrlFor(videoRef, null).toString();

        Integer width = Integer.valueOf(elt.getAttribute("width"));
        Integer height = Integer.valueOf(elt.getAttribute("height"));

        String preview = elt.getAttribute("poster");
        String captions = elt.getAttribute("captions");
        String audioDescription = elt.getAttribute("audiodescription");

        MediaPlayerPanel comp = new MediaPlayerPanel(wicketId, videoUrl, width, height) {
            private static final long serialVersionUID = 1L;

            @Override
            public void onPlay(String status) {
                if (cwmSessionService.isSignedIn())
                    eventService.saveEvent("video:view",
                            "id=" + elt.getAttribute("videoId") + ",state=" + status, contentPage);
            }
        };

        comp.setFullScreen(true);
        comp.setUseOnPlay(true);

        if (!Strings.isEmpty(preview))
            comp.setPreview(getRelativeRef(preview));

        if (!Strings.isEmpty(captions))
            comp.setCaptionFile(getRelativeRef(captions));

        if (!Strings.isEmpty(audioDescription))
            comp.setAudioDescriptionFile(getRelativeRef(audioDescription));

        comp.add(new AttributeRemover("src", "width", "height", "poster", "captions", "audiodescription",
                "videoId"));

        return comp;

    } else if (wicketId.startsWith("audioplayer_")) {
        String audioSrc = elt.getAttribute("src");
        ResourceReference audioRef = getRelativeRef(audioSrc);
        String audioUrl = getRequestCycle().mapUrlFor(audioRef, null).toString();

        int width = 400;
        if (!elt.getAttribute("width").equals("")) {
            try {
                width = Integer.parseInt(elt.getAttribute("width").trim());
            } catch (Exception e) {
                log.debug("Can't get width for {}: {}", audioUrl, e);
                width = 400;
            }
        }
        AudioPlayerPanel player = new AudioPlayerPanel(wicketId, audioUrl, width, 20);
        player.setShowDownloadLink(false);
        player.setRenderBodyOnly(true);

        String preview = elt.getAttribute("poster");
        if (!Strings.isEmpty(preview))
            player.setPreview(getRelativeRef(preview));

        return player;

    } else if (wicketId.startsWith("swf_")) {

        ResourceReference swfRef = getRelativeRef(elt.getAttribute("src"));
        return new FlashAppletPanel(wicketId, swfRef, Integer.valueOf(elt.getAttribute("width")),
                Integer.valueOf(elt.getAttribute("height")), "");

    } else if (wicketId.startsWith("feedbackButton_")) {
        ContentLoc loc = new ContentLoc(getModel().getObject());
        String responseGroupId = elt.getAttribute("rgid");
        IModel<Prompt> pm = responseService.getOrCreatePrompt(PromptType.FEEDBACK, loc, responseGroupId);
        ResponseFeedbackButtonPanel component = new ResponseFeedbackButtonPanel(wicketId, pm,
                responseFeedbackPanel);
        String forRole = elt.getAttribute("for");
        component.setVisibilityAllowed(isTeacher ? forRole.equals("teacher") : forRole.equals("student"));
        component.add(new AttributeRemover("rgid", "for"));
        return component;
    } else if (wicketId.startsWith("scoreButtons_")) {
        if (isGuest)
            return new EmptyPanel(wicketId);
        IModel<Prompt> promptModel = getPrompt(elt);
        IModel<User> studentModel = ISISession.get().getTargetUserModel();
        ISortableDataProvider<Response> responseProvider = responseService
                .getResponseProviderForPrompt(promptModel, studentModel);
        TeacherScoreResponseButtonPanel component = new TeacherScoreResponseButtonPanel(wicketId,
                responseProvider);
        return component;
    } else if (wicketId.startsWith("showScore_")) {
        if (isGuest)
            return new EmptyPanel(wicketId);
        IModel<Prompt> promptModel = getPrompt(elt);
        IModel<User> studentModel = cwmSessionService.getUserModel();
        ISortableDataProvider<Response> responseProvider = responseService
                .getResponseProviderForPrompt(promptModel, studentModel);
        ScorePanel component = new StudentScorePanel(wicketId, responseProvider);
        return component;
        // A container for a single-select form and whiteboard, notebook links
    } else if (wicketId.startsWith("responseContainer")) {
        return new WebMarkupContainer(wicketId);
        // A single-select, multiple choice form.  MultipleChoiceItems will be added to a RadioGroup
        // child of this form.  
    } else if (wicketId.startsWith("select1_immediate_")) {
        return makeImmediateResponseForm(wicketId, elt);
        // A single-select, multiple choice form.  MultipleChoiceItems will be added to a RadioGroup
        // child of this form.  
    } else if (wicketId.startsWith("select1_delay_")) {
        return makeDelayedResponseForm(wicketId, elt);
        // buttons for viewing in whiteboard and notebook
    } else if (wicketId.startsWith("viewActions")) {
        IModel<Prompt> mPrompt = getPrompt(elt, PromptType.SINGLE_SELECT);
        Long promptId = mPrompt.getObject().getId();
        ResponseViewActionsPanel component = new ResponseViewActionsPanel(wicketId, promptId);
        component.add(new AttributeRemover("rgid", "title", "group", "type"));
        return component;
        // A single-select, multiple choice disabled form.  MultipleChoiceItems will be added to a RadioGroup
        // child of this form.  
    } else if (wicketId.startsWith("select1_view_immediate")) {
        return makeImmediateResponseView(wicketId, elt);
        // A single-select, multiple choice disabled form.  MultipleChoiceItems will be added to a RadioGroup
        // child of this form.  
    } else if (wicketId.startsWith("select1_view_delay")) {
        return makeDelayedResponseView(wicketId, elt);
        // A multiple choice radio button. Stores a "correct" value. This is
        // added to a generic RadioGroup in a SingleSelectForm.
    } else if (wicketId.startsWith("selectItem_")) {
        Component mcItem = new SingleSelectItem(wicketId,
                new Model<String>(wicketId.substring("selectItem_".length())),
                Boolean.valueOf(elt.getAttribute("correct")));
        mcItem.add(new AttributeRemover("correct"));
        return mcItem;

        // A message associated with a wicketId.startsWith("selectItem_").
        // The wicketId of the associated SingleSelectItem should be provided as a "for" attribute.
        // Visibility based on whether the corresponding radio button is selected in the enclosing form.
    } else if (wicketId.startsWith("selectMessage_")) {
        return new SingleSelectMessage(wicketId, elt.getAttribute("for")).add(new AttributeRemover("for"));

        // A delayed feedback message associated with a wicketId.startsWith("selectItem_").
        // The wicketId of the associated SingleSelectItem should be provided as a "for" attribute.
        // Visibility based on whether the response has been reviewed.
    } else if (wicketId.startsWith("selectDelayMessage_")) {
        ISIXmlSection section = getISIXmlSection();
        IModel<XmlSection> currentSectionModel = new XmlSectionModel(section);
        SingleSelectDelayMessage component = new SingleSelectDelayMessage(wicketId, currentSectionModel);
        return component.add(new AttributeRemover("for"));

    } else if (wicketId.startsWith("responseList_")) {
        if (isGuest)
            return new MessageBox(wicketId, "guestResponseArea");
        ContentLoc loc = new ContentLoc(getModel().getObject());
        String responseGroupId = elt.getAttribute("rgid");
        ResponseMetadata metadata = getResponseMetadata(responseGroupId);
        IModel<Prompt> mPrompt = responseService.getOrCreatePrompt(PromptType.RESPONSEAREA, loc,
                responseGroupId, metadata.getCollection());
        ResponseList dataView = new ResponseList(wicketId, mPrompt, metadata, loc,
                ISISession.get().getTargetUserModel());
        dataView.setContext(getResponseListContext(false));
        dataView.setAllowEdit(!isTeacher);
        dataView.setAllowNotebook(!inGlossary && !isTeacher && ISIApplication.get().isNotebookOn());
        dataView.setAllowWhiteboard(!inGlossary && ISIApplication.get().isWhiteboardOn());
        dataView.add(new AttributeRemover("rgid", "group"));
        return dataView;

    } else if (wicketId.startsWith("locking_responseList_")) {
        if (isGuest)
            return new EmptyPanel(wicketId);
        ContentLoc loc = new ContentLoc(getModel().getObject());
        String responseGroupId = elt.getAttribute("rgid");
        ResponseMetadata metadata = getResponseMetadata(responseGroupId);
        IModel<Prompt> mPrompt = responseService.getOrCreatePrompt(PromptType.RESPONSEAREA, loc,
                responseGroupId, metadata.getCollection());
        ResponseList dataView = new LockingResponseList(wicketId, mPrompt, metadata, loc,
                ISISession.get().getTargetUserModel());
        dataView.setContext(getResponseListContext(false));
        dataView.setAllowEdit(!isTeacher);
        dataView.setAllowNotebook(!inGlossary && !isTeacher && ISIApplication.get().isNotebookOn());
        dataView.setAllowWhiteboard(!inGlossary && ISIApplication.get().isWhiteboardOn());
        dataView.add(new AttributeRemover("rgid", "group"));
        return dataView;

    } else if (wicketId.startsWith("period_responseList_")) {
        if (isGuest)
            return new MessageBox(wicketId, "guestResponseArea");
        ContentLoc loc = new ContentLoc(getModel().getObject());
        String responseGroupId = elt.getAttribute("rgid");
        ResponseMetadata metadata = getResponseMetadata(responseGroupId);
        IModel<Prompt> mPrompt = responseService.getOrCreatePrompt(PromptType.RESPONSEAREA, loc,
                responseGroupId, metadata.getCollection());
        PeriodResponseList dataView = new PeriodResponseList(wicketId, mPrompt, metadata, loc,
                ISISession.get().getCurrentPeriodModel());
        dataView.setContext(getResponseListContext(true));
        dataView.setAllowEdit(!isTeacher);
        dataView.setAllowNotebook(!inGlossary && !isTeacher && ISIApplication.get().isNotebookOn());
        dataView.setAllowWhiteboard(!inGlossary && ISIApplication.get().isWhiteboardOn());
        dataView.add(new AttributeRemover("rgid", "group"));
        return dataView;

    } else if (wicketId.startsWith("responseButtons_")) {
        ContentLoc loc = new ContentLoc(getModel().getObject());
        String responseGroupId = elt.getAttribute("rgid");
        Element xmlElement = getModel().getObject().getElement().getOwnerDocument()
                .getElementById(responseGroupId);
        ResponseMetadata metadata = new ResponseMetadata(xmlElement);
        if (!ISIApplication.get().isUseAuthoredResponseType()) {
            // set all the response types to the default per application configuration here
            metadata = adjustResponseTypes(metadata);
        }
        IModel<Prompt> mPrompt = responseService.getOrCreatePrompt(PromptType.RESPONSEAREA, loc,
                metadata.getId(), metadata.getCollection());
        ResponseButtons buttons = new ResponseButtons(wicketId, mPrompt, metadata, loc);
        buttons.setVisible(!isTeacher);
        return buttons;

    } else if (wicketId.startsWith("locking_responseButtons_")) {
        ContentLoc loc = new ContentLoc(getModel().getObject());
        String responseGroupId = elt.getAttribute("rgid");
        Element xmlElement = getModel().getObject().getElement().getOwnerDocument()
                .getElementById(responseGroupId);
        ResponseMetadata metadata = new ResponseMetadata(xmlElement);
        if (!ISIApplication.get().isUseAuthoredResponseType()) {
            // set all the response types to the default per application configuration here
            metadata = adjustResponseTypes(metadata);
        }
        IModel<Prompt> mPrompt = responseService.getOrCreatePrompt(PromptType.RESPONSEAREA, loc,
                metadata.getId(), metadata.getCollection());
        return new LockingResponseButtons(wicketId, mPrompt, metadata, loc, cwmSessionService.getUserModel());

    } else if (wicketId.startsWith("ratePanel_")) {
        if (isGuest)
            return ISIApplication.get().getLoginMessageComponent(wicketId);
        ContentLoc loc = new ContentLoc(getModel().getObject());
        String promptText = null;
        String ratingId = elt.getAttribute("id");
        NodeList nodes = elt.getChildNodes();
        // extract the prompt text authored - we might want to consider re-writing this
        // to use xsl instead of this - but this works for now - ldm
        for (int i = 0; i < nodes.getLength(); i++) {
            Node nextNode = nodes.item(i);
            if (nextNode instanceof Element) {
                Element next = (Element) nodes.item(i);
                if (next.getAttribute("class").equals("prompt")) {
                    //get all the html under the prompt element
                    promptText = new TransformResult(next).getString();
                }
            }
        }
        RatePanel ratePanel = new RatePanel(wicketId, loc, ratingId, promptText);
        ratePanel.add(new AttributeRemover("id"));
        ratePanel.add(new AttributeRemover("type"));
        return ratePanel;

    } else if (wicketId.startsWith("teacherBar_")) {
        WebMarkupContainer teacherBar = new WebMarkupContainer(wicketId);
        teacherBar.setVisible(isTeacher && !inGlossary);
        return teacherBar;

    } else if (wicketId.startsWith("compareResponses_")) {
        IModel<Prompt> mPrompt = getPrompt(elt);
        BookmarkablePageLink<Page> bpl = new BookmarkablePageLink<Page>(wicketId,
                ISIApplication.get().getPeriodResponsePageClass());
        bpl.getPageParameters().add("promptId", mPrompt.getObject().getId());
        ISIApplication.get().setLinkProperties(bpl);
        bpl.setVisible(isTeacher);
        bpl.add(new AttributeRemover("rgid", "for", "type"));
        return bpl;

    } else if (wicketId.startsWith("agent_")) {
        String title = elt.getAttribute("title");
        if (Strings.isEmpty(title))
            title = new StringResourceModel("isi.defaultAgentButtonText", this, null, "Help").getObject();
        AgentLink link = new AgentLink(wicketId, title, elt.getAttribute("responseAreaId"));
        link.add(new AttributeRemover("title", "responseAreaId"));
        return link;

    } else if (wicketId.startsWith("image_")) {
        String src = elt.getAttribute("src");
        ResourceReference imgRef = getRelativeRef(src);
        return new Image(wicketId, imgRef);

    } else if (wicketId.startsWith("imageThumb_")) {
        String src = elt.getAttribute("src");
        int ext = src.lastIndexOf('.');
        src = src.substring(0, ext) + "_t" + src.substring(ext);
        ResourceReference imgRef = getRelativeRef(src);
        Image img = new Image(wicketId, imgRef);
        // FIXME these attributes were removed because indira was adding height and width of the detail image
        // not the thumbnail image - remove when indira gets removed
        img.add(new AttributeRemover("width", "height"));
        return img;

    } else if (wicketId.startsWith("imageDetailButton_")) {
        // for thumbnail images only - no longer for more info
        return new ImageDetailButtonPanel(wicketId, wicketId.substring("imageDetailButton_".length()));
        //        We may want to put some of this back, but for now assuming that any time XSLT requests an image detail button we'll put one in.
        //         if (contentPage == null && !inGlossary) // Don't do imageDetails on non-content pages (e.g. the Table of Contents)
        //            return new WebMarkupContainer(wicketId).setVisible(false);

    } else if (wicketId.startsWith("imgToggleHeader") || wicketId.startsWith("imgDetailToggleHeader")
            || wicketId.startsWith("objectToggleHeader")) {
        // long description header for toggle area

        String src = elt.getAttribute("src");

        // remove everything but the name of the media
        int lastIndex = src.lastIndexOf("/") + 1;
        src = src.substring(lastIndex, src.length());

        Label label;
        String eventType = "ld";
        String detail = null;
        if (wicketId.startsWith("img")) {
            label = new Label(wicketId,
                    new ResourceModel("imageLongDescription.toggleHeading", "image information"));
            String imageId = elt.getAttribute("imageId");
            detail = "imageId=" + imageId;
            label.add(new AttributeRemover("imageId"));
            if (wicketId.startsWith("imgDetailToggleHeader")) {
                label = new Label(wicketId,
                        new ResourceModel("imageLongDescription.toggleHeading", "image information"));
                detail = detail + ",context=detail";
            }
        } else { // video or mp3 files
            if (src.contains(".mp3")) {
                label = new Label(wicketId,
                        new ResourceModel("audioLongDescription.toggleHeading", "more audio information"));
            } else {
                label = new Label(wicketId,
                        new ResourceModel("videoLongDescription.toggleHeading", "more video information"));
            }
            detail = "src=" + src;
        }

        label.add(
                new CollapseBoxBehavior("onclick", eventType, ((ISIBasePage) getPage()).getPageName(), detail));
        label.add(new AttributeRemover("src"));
        return label;

    } else if (wicketId.startsWith("annotatedImage_")) {
        // image with hotspots
        AnnotatedImageComponent annotatedImageComponent = new AnnotatedImageComponent(wicketId, elt,
                getModel());
        annotatedImageComponent.add(new AttributeRemover("annotatedImageId"));
        return annotatedImageComponent;

    } else if (wicketId.startsWith("hotSpot_")) {
        // clickable areas on annotated images
        HotSpotComponent hotSpotComponent = new HotSpotComponent(wicketId, elt);
        hotSpotComponent.add(new AttributeRemover("annotatedImageId"));
        return hotSpotComponent;

    } else if (wicketId.startsWith("slideShow_")) {
        SlideShowComponent slideShowComponent = new SlideShowComponent(wicketId, elt);
        return slideShowComponent;

    } else if (wicketId.startsWith("collapseBox_")) {
        WebMarkupContainer collapseBox = new WebMarkupContainer(wicketId);
        return collapseBox;

    } else if (wicketId.startsWith("feedbackStatusIndicator_")) {
        FeedbackStatusIndicator feedbackStatusIndicator = new FeedbackStatusIndicator(wicketId);
        return feedbackStatusIndicator;

    } else if (wicketId.startsWith("collapseBoxControl-")) {
        String boxSequence = (wicketId.substring("collapseBoxControl-".length()).equals("") ? "0"
                : wicketId.substring("collapseBoxControl-".length()));
        CollapseBoxHeader collapseBoxHeader = new CollapseBoxHeader(wicketId, boxSequence);
        return collapseBoxHeader;

    } else if (wicketId.startsWith("iScienceLink-")) {
        return new AjaxFallbackLink<Object>(wicketId) {
            private static final long serialVersionUID = 1L;

            @Override
            public void onClick(AjaxRequestTarget target) {
                target.prependJavaScript(
                        "$('#iScienceVideo-" + wicketId.substring("iScienceLink-".length()) + "').jqmShow();");
                eventService.saveEvent("iscience:view",
                        "Video #" + wicketId.substring("iScienceLink-".length()),
                        ((ISIBasePage) getPage()).getPageName());
            }
        };

    } else if (wicketId.startsWith("youtube_")) {
        int width = getWidth(elt, 640);
        int height = getHeight(elt, 385);
        String src = elt.getAttribute("src");
        src = src.replace("youtube.com/watch?v=", "youtube.com/v/");

        FlashAppletPanel panel = new FlashAppletPanel(wicketId, width, height);
        panel.add(new AttributeRemover("src", "width", "height"));
        panel.setAppletHRef(src);
        panel.setFullScreen(true);
        return panel;

    } else if (wicketId.startsWith("pageLinkPanel_")) {
        String id = elt.getAttribute("id");
        IModel<XmlSection> currentSectionModel = new XmlSectionModel(
                getModel().getObject().getXmlDocument().getById(id));
        PageLinkPanel panel = new PageLinkPanel(wicketId, currentSectionModel, null);
        panel.add(new AttributeRemover("id"));
        return panel;

    } else if (wicketId.startsWith("sectionStatusIcon_")) {
        String id = elt.getAttribute("id");
        IModel<XmlSection> currentSectionModel = new XmlSectionModel(
                getModel().getObject().getXmlDocument().getById(id));
        return new StudentSectionCompleteToggleImageLink(wicketId, currentSectionModel);

    } else if (wicketId.startsWith("inactiveSectionStatusIcon_")) {
        String id = elt.getAttribute("id");
        IModel<XmlSection> currentSectionModel = new XmlSectionModel(
                getModel().getObject().getXmlDocument().getById(id));
        return new SectionCompleteImageContainer(wicketId, currentSectionModel);

    } else if (wicketId.startsWith("itemSummary_")) {
        boolean noAnswer = Boolean.parseBoolean(elt.getAttributeNS(null, "noAnswer"));
        Component singleSelectComponent = new SingleSelectSummaryXmlComponentHandler().makeComponent(wicketId,
                elt, getModel(), noAnswer);
        singleSelectComponent.add(new AttributeRemover("noAnswer"));
        return singleSelectComponent;

    } else if (wicketId.startsWith("shy")) {
        return new ShyContainer(wicketId);
    } else {
        return super.getDynamicComponent(wicketId, elt);
    }
}

From source file:org.cast.isi.ISIXmlComponent.java

License:Open Source License

private Component makeImmediateResponseForm(String wicketId, Element elt) {
    Component selectForm = new ScoredImmediateFeedbackSingleSelectForm(wicketId,
            getPrompt(elt, PromptType.SINGLE_SELECT));
    selectForm.add(new AttributeRemover("rgid", "title", "group", "type"));
    return selectForm;
}

From source file:org.cdlflex.ui.ajax.behavior.data.repeater.table.ClickAwareBehavior.java

License:Apache License

@SuppressWarnings("unchecked")
@Override//  w  w w  .j a  v  a  2 s. co m
public void bind(Component component) {
    if (!(component instanceof DataTable)) {
        LOG.warn("Can not add behavior to " + component + ". Not a DataTable");
        return;
    }

    ((DataTable) component).getRowCallbacks().add(this);
    component.add(new CssClassNameAppender("clickable"));
}

From source file:org.cdlflex.ui.ajax.behavior.data.repeater.table.SelectionAwareBehavior.java

License:Apache License

@SuppressWarnings("unchecked")
@Override/*from   w w  w. j a v  a  2s  .  com*/
public void bind(Component component) {
    if (!(component instanceof DataTable)) {
        LOG.warn("Can not add behavior to " + component + ". Not a DataTable");
        return;
    }

    ((DataTable) component).getRowCallbacks().add(this);

    component.add(new FrontendDependencyBehavior(new SelectionAwareWidgetReference()));
    component.add(newWidgetBehavior());
}