List of usage examples for org.apache.wicket Component add
public Component add(final Behavior... behaviors)
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()); }