List of usage examples for org.apache.wicket.markup.html.image Image setVisible
public final Component setVisible(final boolean visible)
From source file:com.doculibre.constellio.wicket.panels.header.BasePageHeaderPanel.java
License:Open Source License
public static Image newLargeLogo(String id) { ResourceReference imageResourceReference = new ResourceReference( "logoLarge_" + System.currentTimeMillis()) { @Override//from w ww. ja v a 2s . com protected Resource newResource() { SearchInterfaceConfig searchInterfaceConfig = ConstellioSpringUtils .getSearchInterfaceConfigServices().get(); Resource imageResource; byte[] logoBytes = searchInterfaceConfig.getLogoLargeContent(); // Convert resource path to absolute path relative to base package if (logoBytes != null) { imageResource = new ByteArrayResource("image", logoBytes); } else { imageResource = PackageResource.get(BaseConstellioPage.class, "images/logo_constellio.gif"); } return imageResource; } }; Image image = new NonCachingImage(id, imageResourceReference); image.setVisible(!ConstellioSession.get().isPortletMode()); return image; }
From source file:com.doculibre.constellio.wicket.panels.header.BasePageHeaderPanel.java
License:Open Source License
public static Image newSmallLogo(String id) { ResourceReference imageResourceReference = new ResourceReference( "logoSmall_" + System.currentTimeMillis()) { @Override//from ww w. ja v a 2 s . co m protected Resource newResource() { SearchInterfaceConfig searchInterfaceConfig = ConstellioSpringUtils .getSearchInterfaceConfigServices().get(); Resource imageResource; byte[] logoBytes = searchInterfaceConfig.getLogoSmallContent(); // Convert resource path to absolute path relative to base package if (logoBytes != null) { imageResource = new ByteArrayResource("image", logoBytes); } else { imageResource = PackageResource.get(BaseConstellioPage.class, "images/logo_petit.png"); } return imageResource; } }; Image image = new NonCachingImage(id, imageResourceReference); image.setVisible(!ConstellioSession.get().isPortletMode()); return image; }
From source file:nl.knaw.dans.dccd.web.search.DccdHitPanel.java
License:Apache License
/** * display the search result// w w w. j av a2 s. co m * get all information to display from the SearchBean * instead of from the Project and it's Tridas * * @param dccdHit */ private void init(final DccdSB dccdHit) { Link viewResultLink = new Link("viewResult") { private static final long serialVersionUID = 1L; @Override public void onClick() { // now navigate to view page with given project; retrieveProjectAndObject(dccdHit); // Note: could also give selected entity object! String selectedEntityId = object.getId(); setResponsePage(new ProjectViewPage(project, selectedEntityId)); } }; add(viewResultLink); addObjectInformation(viewResultLink, dccdHit); addProjectInformation(viewResultLink, dccdHit); boolean hasMarkerOnMap = false; if (dccdHit.hasLatLng()) { //Check for permission DccdUser user = (DccdUser) ((DccdSession) getSession()).getUser(); ProjectPermissionLevel effectivelevel = dccdHit.getEffectivePermissionLevel(user); Boolean isAllowedToViewLocation = ProjectPermissionLevel.OBJECT.isPermittedBy(effectivelevel); hasMarkerOnMap = isAllowedToViewLocation; } // add location marker icon ResourceReference markerIconImageReference = GeoViewer.getDefaultMarkerIconImageReference(); if (hasMarkerOnMap) { // use index specific marker icon image int latLngMarkerIndex = dccdHit.latLngMarkerIndex; logger.debug("Marker index to use on HitPanel: " + latLngMarkerIndex); if (latLngMarkerIndex >= 0) markerIconImageReference = GeoViewer.getLetterMarkerIconImageReference(latLngMarkerIndex); } Image geoMarkerIconImage = new Image("geoMarkerIconImage", markerIconImageReference); viewResultLink.add(geoMarkerIconImage); // only show icon if marker is on the map geoMarkerIconImage.setVisible(hasMarkerOnMap); }
From source file:nl.knaw.dans.dccd.web.search.DccdProjectHitPanel.java
License:Apache License
private void addProjectInformation(final DccdProjectSB dccdHit) { String projectTitleStr = dccdHit.getTridasProjectTitle();//tridasProject.getTitle(); //add(new Label("project_title", projectTitleStr)); // Make a link to the project view page // Put it on the whole panel Link viewLink = new Link("project_view")//, new Model(resultItem)) {/*from w w w. j a v a 2 s . c o m*/ private static final long serialVersionUID = 1L; @Override public void onClick() { // now navigate to view page with given project; retrieveProject(dccdHit); setResponsePage(new ProjectViewPage(project)); } }; add(viewLink); //viewLink.add(new Label("project_title",projectTitleStr)); // Show status, ProjectHits are shown only to the Manager(MyProjects) or admin?, // so we don't need to check here //viewLink.add(new Label("project_status_value", dccdHit.getAdministrativeState())); viewLink.add(new Label("project_status_value", new StringResourceModel("datasetState.${administrativeState}", this, new Model(dccdHit)))); // TODO show administrativeMetadata.lastStateChange // using the title as link text LOOKS NORMAL TO THE USER Link viewLinkOnTitle = new Link("project_title_view")//, new Model(resultItem)) { private static final long serialVersionUID = 1L; @Override public void onClick() { // now navigate to view page with given project; retrieveProject(dccdHit); setResponsePage(new ProjectViewPage(project)); } }; viewLinkOnTitle.add(new Label("project_title", projectTitleStr)); viewLink.add(viewLinkOnTitle); //ID: <project identifier> (domain: <project domain>) String identifierStr = ""; if (dccdHit.hasTridasProjectIdentifier()) identifierStr = dccdHit.getTridasProjectIdentifier(); String domainStr = ""; if (dccdHit.hasTridasProjectIdentifierDomain()) domainStr = dccdHit.getTridasProjectIdentifierDomain(); viewLink.add(new Label("identifier", identifierStr)); Label domainLabel = new Label("domain", domainStr); viewLink.add(domainLabel); //Lab(s): <lab name>, <lab place>, <lab country> viewLink.add(new Label("project_laboratory", DccdHitPanel.getProjectLabString(dccdHit))); // investigator String projectInvestigatorStr = ""; if (dccdHit.hasTridasProjectInvestigator()) { projectInvestigatorStr = dccdHit.getTridasProjectInvestigator(); } viewLink.add(new Label("project_investigator", projectInvestigatorStr)); //Type(s): <type normal> viewLink.add(new Label("project_type", DccdHitPanel.getProjectTypeString(dccdHit))); //Category: <category normal> viewLink.add(new Label("project_category", DccdHitPanel.getProjectCategoryString(dccdHit))); //<project description> viewLink.add(new Label("project_description", DccdHitPanel.getProjectDescriptionString(dccdHit))); // add location marker icon // You always have Permission on the MyProjects Page! boolean hasMarkerOnMap = dccdHit.hasLatLng(); ResourceReference markerIconImageReference = GeoViewer.getDefaultMarkerIconImageReference(); if (hasMarkerOnMap) { // use index specific marker icon image int latLngMarkerIndex = dccdHit.latLngMarkerIndex; logger.debug("Marker index to use on HitPanel: " + latLngMarkerIndex); if (latLngMarkerIndex >= 0) markerIconImageReference = GeoViewer.getLetterMarkerIconImageReference(latLngMarkerIndex); } Image geoMarkerIconImage = new Image("geoMarkerIconImage", markerIconImageReference); viewLink.add(geoMarkerIconImage); // only show icon if marker is on the map geoMarkerIconImage.setVisible(hasMarkerOnMap); }
From source file:org.dcm4chee.web.war.tc.TCCaseViewPage.java
License:LGPL
@SuppressWarnings("serial") public TCCaseViewPage(PageParameters params) { super(params); if (StudyPermissionHelper.get().isSSO()) { add(new AbstractAjaxTimerBehavior(Duration.milliseconds(1)) { private static final long serialVersionUID = 1L; @Override/*from w w w .ja v a 2s.c o m*/ protected void onTimer(AjaxRequestTarget arg0) { try { StudyPermissionHelper.get().doDicomAuthentication(); } catch (Exception e) { log.error(getClass().getName() + ": error doing dicom authentication: ", e); } finally { this.stop(); } } }); } add(TCEnvironment.getCSSHeaderContributor()); add((popupManager = new TCPopupManager()).getGlobalHideOnOutsideClickHandler()); add(new Label("tc-casepage-title", TCUtilities.getLocalizedString("tc.casepage.title"))); String uid = params.getString("uid"); if (uid != null) { TCQueryLocal dao = (TCQueryLocal) JNDIUtils.lookup(TCQueryLocal.JNDI_NAME); Instance instance = dao.findInstanceByUID(uid); final Image logo = new Image("img_logo", new ResourceReference(ModuleSelectorPanel.class, "images/logo.gif")); logo.setOutputMarkupId(true); logo.setVisible(false); add(logo); if (instance != null) { try { final TCViewPanel panel = new TCViewPanel("tc-case", new TCModel(instance), new TCAttributeVisibilityStrategy(new Model<Boolean>(false)) { @Override public boolean isAttributeVisible(TCAttribute attr) { if (TCEnvironment.isPrincipalAuthorized("TCViewRestricted")) { return true; } return !attr.isRestricted(); } }, null); add(panel); add(getErrorComponent(null)); logo.setVisible(true); add(new HeaderContributor(new IHeaderContributor() { public void renderHead(IHeaderResponse response) { StringBuilder js = new StringBuilder(); js.append("updateTCViewDialog(true);"); js.append(panel.getDisableTabsJavascript()); js.append(panel.getHideTabsJavascript()); response.renderOnDomReadyJavascript(js.toString()); } })); } catch (Exception e) { add(new WebMarkupContainer("tc-case").setVisible(false)); add(getErrorComponent(TCUtilities.getLocalizedString("tc.casepage.error.text"))); log.error(null, e); } } else { add(new WebMarkupContainer("tc-case").setVisible(false)); add(getErrorComponent(MessageFormat .format(TCUtilities.getLocalizedString("tc.casepage.casenotfound.text"), uid))); } } else { add(new WebMarkupContainer("tc-case").setVisible(false)); add(getErrorComponent(TCUtilities.getLocalizedString("tc.casepage.casenotspecified.text"))); } }
From source file:org.headsupdev.agile.web.components.issues.IssuePanelRow.java
License:Open Source License
public IssuePanelRow(String id, Issue issue, final HeadsUpPage page, final boolean hideProject, final boolean hideMilestone, boolean hideAssignee) { super(id);//from w ww .ja v a2 s. com issue = (Issue) ((HibernateStorage) Manager.getStorageInstance()).getHibernateSession().load(Issue.class, issue.getInternalId()); this.issue = issue; User currentUser = page.getSession().getUser(); add(CSSPackageResource.getHeaderContribution(getClass(), "issue.css")); final boolean timeEnabled = Boolean.parseBoolean( page.getProject().getConfigurationValue(StoredProject.CONFIGURATION_TIMETRACKING_ENABLED)); PageParameters params = new PageParameters(); params.add("project", issue.getProject().getId()); params.add("id", String.valueOf(issue.getId())); WebMarkupContainer cell = new WebMarkupContainer("id-cell"); Class<? extends Page> viewClass = page.getPageClass("issues/view"); if (viewClass != null) { Link idLink = new BookmarkablePageLink("id-link", viewClass, params); idLink.add(new Label("id-label", String.valueOf(issue.getId()))); cell.add(idLink); cell.add(new WebMarkupContainer("id-label").setVisible(false)); } else { cell.add(new WebMarkupContainer("id-link").setVisible(false)); cell.add(new Label("id-label", String.valueOf(issue.getId()))); } add(cell); cell = new WebMarkupContainer("summary-cell"); if (viewClass != null) { Link summaryLink = new BookmarkablePageLink("summary-link", viewClass, params); summaryLink.add(new Label("summary-label", issue.getSummary())); cell.add(summaryLink); cell.add(new WebMarkupContainer("summary-label").setVisible(false)); } else { cell.add(new WebMarkupContainer("summary-link").setVisible(false)); cell.add(new Label("summary-label", issue.getSummary())); } add(cell); Label label = new Label("project", (issue.getProject() == null) ? "" : issue.getProject().toString()); add(label.setVisible(!hideProject)); add(new Label("order", issue.getOrder() == null ? "" : String.valueOf(issue.getOrder()))); add(new Label("status", IssueUtils.getStatusDescription(issue))); WebMarkupContainer type = new WebMarkupContainer("type"); add(type); final String issueType = IssueUtils.getTypeName(issue.getType()); String typeIcon = "type/" + issueType + ".png"; type.add(new Image("type-icon", new ResourceReference(IssueListPanel.class, typeIcon)) .add(new AttributeModifier("alt", true, new Model<String>() { @Override public String getObject() { return issueType; } })).add(new AttributeModifier("title", true, new Model<String>() { @Override public String getObject() { return issueType; } }))); String image = null; switch (issue.getPriority()) { case Issue.PRIORITY_BLOCKER: image = "blocker.png"; break; case Issue.PRIORITY_CRITICAL: image = "critical.png"; break; case Issue.PRIORITY_MINOR: image = "minor.png"; break; case Issue.PRIORITY_TRIVIAL: image = "trivial.png"; break; } if (image == null) { WebMarkupContainer ico = new WebMarkupContainer("priority-icon"); ico.setVisible(false); type.add(ico); } else { type.add(new Image("priority-icon", new ResourceReference(IssueListPanel.class, image))); } if (((HibernateStorage) Manager.getStorageInstance()).getResourceManager().isIssueMissingEstimate(issue)) { if (((HibernateStorage) Manager.getStorageInstance()).getResourceManager() .isIssueSeriouslyMissingEstimate(issue)) { type.add(new Image("overworked-icon", new ResourceReference(HeadsUpPage.class, "images/fail.png"))); } else { type.add(new Image("overworked-icon", new ResourceReference(HeadsUpPage.class, "images/warn.png"))); } } else { type.add(new WebMarkupContainer("overworked-icon").setVisible(false)); } boolean attachments = issue.getAttachments().size() > 0; Image attachImage = new Image("attachment-icon", new ResourceReference(IssueListPanel.class, "attach.png")); type.add(attachImage.setVisible(attachments)); cell = new WebMarkupContainer("assigned-cell"); if (!hideAssignee) { if (issue.getAssignee() != null) { params = new PageParameters(); params.add("project", issue.getProject().getId()); params.add("username", issue.getAssignee().getUsername()); Class<? extends Page> userClass = page.getPageClass("account"); if (userClass != null) { cell.add(new GravatarLinkPanel("gravatar", issue.getAssignee(), HeadsUpPage.SMALL_AVATAR_EDGE_LENGTH)); Link assignedLink = new BookmarkablePageLink("assigned-link", userClass, params); assignedLink.add(new Label("assigned-label", issue.getAssignee().getFullnameOrUsername())); cell.add(assignedLink); cell.add(new WebMarkupContainer("assigned-label").setVisible(false)); cell.add(new WebMarkupContainer("assign-link").setVisible(false)); cell.add(new WebMarkupContainer("assign-choice").setVisible(false)); } else { cell.add(new WebMarkupContainer("gravatar").setVisible(false)); cell.add(new WebMarkupContainer("assigned-link").setVisible(false)); cell.add(new Label("assigned-label", issue.getAssignee().getFullnameOrUsername())); cell.add(new WebMarkupContainer("assign-link").setVisible(false)); cell.add(new WebMarkupContainer("assign-choice").setVisible(false)); } } else { final UserDropDownChoice assignChoice = new UserDropDownChoice("assign-choice") { @Override protected boolean wantOnSelectionChangedNotifications() { return true; } @Override protected void onSelectionChanged(User newSelection) { IssuePanelRow.this.issue = (Issue) ((HibernateStorage) Manager.getStorageInstance()) .getHibernateSession().merge(IssuePanelRow.this.issue); // if we have an assignee that is not watching then add them to the watchers if (newSelection != null && !IssuePanelRow.this.issue.getWatchers().contains(newSelection)) { IssuePanelRow.this.issue.getWatchers().add(newSelection); } IssuePanelRow.this.issue.setAssignee(newSelection); } }; assignChoice.setModel(new PropertyModel<User>(issue, "assignee")); Link assignLink = new AjaxFallbackLink("assign-link") { @Override public void onClick(AjaxRequestTarget ajaxRequestTarget) { this.setVisible(false); ajaxRequestTarget.addComponent(this); assignChoice.setVisible(true); ajaxRequestTarget.addComponent(assignChoice); } }; cell.add(assignLink.setOutputMarkupId(true) .setVisible(Permissions.canEditIssue(currentUser, page.getProject()))); cell.add(new WebMarkupContainer("gravatar").setVisible(false)); cell.add( assignChoice.setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true).setVisible(false)); cell.add(new WebMarkupContainer("assigned-label").setVisible(false)); cell.add(new WebMarkupContainer("assigned-link").setVisible(false)); } } else { cell.add(new WebMarkupContainer("gravatar").setVisible(false)); cell.add(new WebMarkupContainer("assigned-link").setVisible(false)); cell.add(new WebMarkupContainer("assigned-label").setVisible(false)); cell.add(new WebMarkupContainer("assign-link").setVisible(false)); cell.add(new WebMarkupContainer("assign-choice").setVisible(false)); } add(cell.setVisible(!hideAssignee)); cell = new WebMarkupContainer("milestone-cell"); Milestone milestone = issue.getMilestone(); if (milestone == null) { cell.add(new WebMarkupContainer("milestone-link").setVisible(false)); cell.add(new WebMarkupContainer("milestone-label").setVisible(false)); final MilestoneDropDownChoice milestoneChoice = new MilestoneDropDownChoice("setmilestone-choice", issue.getProject()) { @Override protected boolean wantOnSelectionChangedNotifications() { return true; } @Override protected void onSelectionChanged(Milestone newSelection) { IssuePanelRow.this.issue = (Issue) ((HibernateStorage) Manager.getStorageInstance()) .getHibernateSession().merge(IssuePanelRow.this.issue); Milestone newMilestone = (Milestone) ((HibernateStorage) Manager.getStorageInstance()) .getHibernateSession().merge(newSelection); IssuePanelRow.this.issue.setMilestone(newMilestone); } }; milestoneChoice.setModel(new PropertyModel<Milestone>(issue, "milestone")); Link setMilestoneLink = new AjaxFallbackLink("setmilestone-link") { @Override public void onClick(AjaxRequestTarget ajaxRequestTarget) { this.setVisible(false); ajaxRequestTarget.addComponent(this); milestoneChoice.setVisible(true); ajaxRequestTarget.addComponent(milestoneChoice); } }; cell.add(setMilestoneLink.setOutputMarkupId(true) .setVisible(Permissions.canEditIssue(currentUser, page.getProject()))); cell.add(milestoneChoice.setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true).setVisible(false)); } else { params = new PageParameters(); params.add("project", milestone.getProject().getId()); params.add("id", milestone.getName()); Class<? extends Page> milestoneClass = page.getPageClass("milestones/view"); if (milestoneClass != null) { Link milestoneLink = new BookmarkablePageLink("milestone-link", milestoneClass, params); milestoneLink.add(new Label("milestone-label", milestone.toString())); cell.add(milestoneLink); cell.add(new WebMarkupContainer("milestone-label").setVisible(false)); } else { cell.add(new WebMarkupContainer("milestone-link").setVisible(false)); cell.add(new Label("milestone-label", milestone.toString())); } cell.add(new WebMarkupContainer("setmilestone-link").setVisible(false)); cell.add(new WebMarkupContainer("setmilestone-choice").setVisible(false)); } add(cell.setVisible(!hideMilestone)); cell = new WebMarkupContainer("hours-cell"); cell.add(new Label("hours", new IssueHoursRemainingModel(issue))); add(cell.setVisible(timeEnabled)); }
From source file:org.jabylon.rest.ui.wicket.panels.ProjectResourcePanel.java
License:Open Source License
protected Item<?> addCSSIcon(String icon) { WebMarkupContainer markupContainer = new WebMarkupContainer("css-icon"); item.add(markupContainer);/*from w ww .java 2s. co m*/ markupContainer.add(new AttributeModifier("class", icon)); Image image = new Image("regular-image", "not-there.gif"); image.setVisible(false); item.add(image); return item; }
From source file:org.obiba.onyx.quartz.editor.openAnswer.validation.ValidationDataSourceWindow.java
License:Open Source License
public ValidationDataSourceWindow(String id, IModel<ComparingDataSource> model, final IModel<Question> questionModel, final IModel<Questionnaire> questionnaireModel, final DataType dataType, final ModalWindow modalWindow) { super(id, model); this.dataType = dataType; final ValueType valueType = VariableUtils.convertToValueType(dataType); add(CSSPackageResource.getHeaderContribution(ValidationDataSourceWindow.class, "ValidationDataSourceWindow.css")); variableWindow = new ModalWindow("variableWindow"); variableWindow.setCssClassName("onyx"); variableWindow.setInitialWidth(950); variableWindow.setInitialHeight(540); variableWindow.setResizable(true);/*from w ww . j a va2 s . c om*/ variableWindow.setTitle(new ResourceModel("Variable")); add(variableWindow); final Questionnaire questionnaire = questionnaireModel.getObject(); final OpenAnswerValidator validator = new OpenAnswerValidator(); if (model.getObject() != null) { ComparingDataSource comparingDataSource = model.getObject(); validator.setOperator(comparingDataSource.getComparisonOperator()); IDataSource dataSourceRight = comparingDataSource.getDataSourceRight(); if (dataSourceRight instanceof VariableDataSource) { VariableDataSource variableDataSource = (VariableDataSource) dataSourceRight; if (questionnaire.getName().equals(variableDataSource.getTableName())) { try { validator.setVariable(questionnaire.getVariable(variableDataSource.getVariableName())); validator.setType(Type.VARIABLE); } catch (IllegalArgumentException e) { // not found in this questionnaire } } if (validator.getType() == null) { // not found yet Variable variable = variableUtils.findVariable(variableDataSource); if (variable != null) { try { validator.setVariable(questionnaire.getVariable(variable.getName())); validator.setType(Type.VARIABLE); } catch (IllegalArgumentException e) { // not found Question question = VariableUtils.findQuestion(variable, QuestionnaireFinder.getInstance(questionnaire)); validator.setType(Type.QUESTION_CATEGORY); validator.setQuestion(question); Category category = VariableUtils.findCategory(variable, question); validator.setCategory(category); validator.setOpenAnswer(VariableUtils.findOpenAnswer(variable, category)); } } } } else if (dataSourceRight instanceof JavascriptDataSource) { JavascriptDataSource javascriptDataSource = (JavascriptDataSource) dataSourceRight; validator.setType(JAVASCRIPT); validator.setScript(javascriptDataSource.getScript()); } } feedbackPanel = new FeedbackPanel("content"); feedbackWindow = new FeedbackWindow("feedback"); feedbackWindow.setOutputMarkupId(true); add(feedbackWindow); add(form = new Form<OpenAnswerValidator>("form", new Model<OpenAnswerValidator>(validator))); form.setMultiPart(false); IChoiceRenderer<ComparisonOperator> operatorRenderer = new IChoiceRenderer<ComparisonOperator>() { @Override public String getIdValue(ComparisonOperator operator, int index) { return operator.name(); } @Override public Object getDisplayValue(ComparisonOperator operator) { return new StringResourceModel("Operator." + operator, ValidationDataSourceWindow.this, null) .getString(); } }; List<ComparisonOperator> comparisonOperatorAsList = null; if (dataType == DataType.TEXT) { comparisonOperatorAsList = Arrays.asList(ComparisonOperator.eq, ComparisonOperator.ne, ComparisonOperator.in); } else { comparisonOperatorAsList = Arrays.asList(ComparisonOperator.values()); } final DropDownChoice<ComparisonOperator> operator = new DropDownChoice<ComparisonOperator>("operator", new PropertyModel<ComparisonOperator>(form.getModel(), "operator"), comparisonOperatorAsList, operatorRenderer); form.add(operator.setLabel(new ResourceModel("Operator")).setRequired(true)) .add(new SimpleFormComponentLabel("operatorLabel", operator)); final RadioGroup<Type> validationType = new RadioGroup<Type>("validationType", new PropertyModel<Type>(form.getModel(), "type")); form.add(validationType.setLabel(new ResourceModel("Variable")).setRequired(true)); final Radio<Type> questionType = new Radio<Type>("questionType", new Model<Type>(QUESTION_CATEGORY)); questionType.setLabel(new ResourceModel("QuestionType")); validationType.add(questionType).add(new SimpleFormComponentLabel("questionTypeLabel", questionType)); final WebMarkupContainer questionTypeContainer = new WebMarkupContainer("questionTypeContainer"); questionTypeContainer.setOutputMarkupId(true); validationType.add(questionTypeContainer); final WebMarkupContainer questionConditionContainer = new WebMarkupContainer("questionConditionContainer"); questionConditionContainer.setVisible(validator.getType() == QUESTION_CATEGORY); questionTypeContainer.add(questionConditionContainer); if (questionnaire.getQuestionnaireCache() == null) { QuestionnaireFinder.getInstance(questionnaire).buildQuestionnaireCache(); } List<Question> questions = new ArrayList<Question>( questionnaire.getQuestionnaireCache().getQuestionCache().values()); Collections.sort(questions, new QuestionnaireElementComparator()); final Multimap<Question, Category> questionCategories = LinkedHashMultimap.create(); final Multimap<Category, OpenAnswerDefinition> categoryOpenAnswer = LinkedHashMultimap.create(); for (Question q : questions) { if (!q.equals(questionModel.getObject()) && q.getType() != QuestionType.BOILER_PLATE) { final List<Category> findCategories = findCategories(q); for (Category category : findCategories) { categoryOpenAnswer.putAll(category, category.getOpenAnswerDefinitionsByName().values()); } questionCategories.putAll(q, findCategories); } } final DropDownChoice<Question> questionName = new DropDownChoice<Question>("question", new PropertyModel<Question>(form.getModel(), "question"), new ArrayList<Question>(questionCategories.keySet()), new QuestionnaireElementNameRenderer()) { @Override public boolean isRequired() { return validationType.getModelObject() == QUESTION_CATEGORY; } }; questionName.setLabel(new ResourceModel("Question")); questionConditionContainer.add(questionName) .add(new SimpleFormComponentLabel("questionLabel", questionName)); final List<Category> categories = questionName.getModelObject() == null ? new ArrayList<Category>() : new ArrayList<Category>(questionCategories.get(questionName.getModelObject())); final DropDownChoice<Category> categoryName = new DropDownChoice<Category>("category", new PropertyModel<Category>(form.getModel(), "category"), categories, new QuestionnaireElementNameRenderer()) { @Override public boolean isRequired() { return validationType.getModelObject() == QUESTION_CATEGORY; } }; categoryName.setLabel(new ResourceModel("Category")); questionConditionContainer.add(categoryName) .add(new SimpleFormComponentLabel("categoryLabel", categoryName)); final List<OpenAnswerDefinition> openAnswers = categoryName.getModelObject() == null ? new ArrayList<OpenAnswerDefinition>() : new ArrayList<OpenAnswerDefinition>(categoryOpenAnswer.get(categoryName.getModelObject())); final DropDownChoice<OpenAnswerDefinition> openAnswerName = new DropDownChoice<OpenAnswerDefinition>( "openAnswer", new PropertyModel<OpenAnswerDefinition>(form.getModel(), "openAnswer"), openAnswers, new QuestionnaireElementNameRenderer()) { @Override public boolean isRequired() { return validationType.getModelObject() == QUESTION_CATEGORY; } }; questionName.add(new OnChangeAjaxBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { categories.clear(); openAnswers.clear(); categories.addAll(questionName.getModelObject() == null ? new ArrayList<Category>() : new ArrayList<Category>(questionCategories.get(questionName.getModelObject()))); openAnswers.addAll(categories.isEmpty() ? new ArrayList<OpenAnswerDefinition>() : new ArrayList<OpenAnswerDefinition>(categoryOpenAnswer.get(categories.get(0)))); target.addComponent(categoryName); target.addComponent(openAnswerName); } }); categoryName.add(new OnChangeAjaxBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { openAnswers.clear(); openAnswers.addAll(categoryName.getModelObject() == null ? new ArrayList<OpenAnswerDefinition>() : new ArrayList<OpenAnswerDefinition>( categoryOpenAnswer.get(categoryName.getModelObject()))); target.addComponent(openAnswerName); } }); openAnswerName.setLabel(new ResourceModel("OpenAnswer")); questionConditionContainer.add(openAnswerName) .add(new SimpleFormComponentLabel("openAnswerLabel", openAnswerName)); Radio<Type> variableType = new Radio<Type>("variableType", new Model<Type>(VARIABLE)); variableType.setLabel(new ResourceModel("Variable")); validationType.add(variableType).add(new SimpleFormComponentLabel("variableTypeLabel", variableType)); final WebMarkupContainer variableTypeContainer = new WebMarkupContainer("variableTypeContainer"); variableTypeContainer.setOutputMarkupId(true); validationType.add(variableTypeContainer); final WebMarkupContainer variableContainer = new WebMarkupContainer("variableContainer"); variableContainer.setVisible(validator.getType() == VARIABLE); variableTypeContainer.add(variableContainer); final List<Variable> variables = new ArrayList<Variable>( Collections2.filter(questionnaire.getVariables(), new Predicate<Variable>() { @Override public boolean apply(Variable v) { // Filter for text when the operator is 'IN' if (validator.getOperator() != null && validator.getOperator().equals(ComparisonOperator.in)) { return v.getValueType().equals(VariableUtils.convertToValueType(DataType.TEXT)); } return v.getValueType().equals(valueType); } })); final DropDownChoice<Variable> variableDropDown = new DropDownChoice<Variable>("variable", new PropertyModel<Variable>(form.getModel(), "variable"), variables, new VariableRenderer()) { @Override public boolean isRequired() { return validationType.getModelObject() == VARIABLE; } }; variableDropDown.setLabel(new ResourceModel("Variable")).setOutputMarkupId(true); variableContainer.add(variableDropDown); final WebMarkupContainer previewVariableVisibility = new WebMarkupContainer("previewVariableVisibility"); variableContainer.add(previewVariableVisibility.setOutputMarkupId(true)); final Image previewVariable = new Image("previewVariable", Images.ZOOM); previewVariable.add(new AttributeModifier("title", true, new ResourceModel("Preview"))); previewVariable.setVisible(variableDropDown.getModelObject() != null); previewVariableVisibility.add(previewVariable); final Label previewScript = new Label("previewScript", variableDropDown.getModelObject() == null ? "" : variableDropDown.getModelObject().getAttributeStringValue("script")); previewScript.add(new SyntaxHighlighterBehavior()); previewScript.add(new AttributeAppender("style", true, new Model<String>("display: none;"), " ")); previewVariableVisibility.add(previewScript); final Map<String, Object> tooltipCfg = new HashMap<String, Object>(); tooltipCfg.put("delay", 100); tooltipCfg.put("showURL", false); tooltipCfg.put("top", -30); tooltipCfg.put("bodyHandler", "function() { return $(\"#" + previewScript.getMarkupId(true) + "\").html(); }"); previewVariable.add(new TooltipBehavior(null, tooltipCfg)); variableContainer.add(new AjaxLink<Void>("newVariable") { @Override public void onClick(AjaxRequestTarget target) { @SuppressWarnings({ "rawtypes", "unchecked" }) VariablePanel variablePanel = new VariablePanel("content", new Model(null), questionnaireModel, valueType) { @Override public void onSave(@SuppressWarnings("hiding") AjaxRequestTarget target, Variable createdVariable) { variables.add(createdVariable); questionnaire.addVariable(createdVariable); variableDropDown.setModelObject(createdVariable); previewVariable.setVisible(true); previewScript.setDefaultModelObject(createdVariable.getAttributeStringValue("script")); variableWindow.close(target); target.addComponent(variableDropDown); target.addComponent(previewVariableVisibility); } @Override public void onCancel(@SuppressWarnings("hiding") AjaxRequestTarget target) { variableWindow.close(target); } }; variableWindow.setContent(variablePanel); variableWindow.show(target); } }.add(new Image("newVariableImg", Images.ADD)) .add(new AttributeModifier("title", true, new ResourceModel("NewVariable")))); variableDropDown.add(new OnChangeAjaxBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { Variable variable = variableDropDown.getModelObject(); previewVariable.setVisible(variable != null); previewScript.setDefaultModelObject( variable == null ? null : variable.getAttributeStringValue("script")); target.addComponent(previewVariableVisibility); } }); Radio<Type> javascriptType = new Radio<Type>("javascriptType", new Model<Type>(JAVASCRIPT)); javascriptType.setLabel(new ResourceModel("JavascriptType")); validationType.add(javascriptType).add(new SimpleFormComponentLabel("javascriptTypeLabel", javascriptType)); final TextArea<String> javascriptField = new TextArea<String>("javascriptField", new PropertyModel<String>(validator, "script")); javascriptField.setOutputMarkupPlaceholderTag(true); javascriptField.setVisible(validator.getType() == JAVASCRIPT); validationType.add(javascriptField); javascriptField.add(new IValidator<String>() { @Override public void validate(final IValidatable<String> validatable) { JavascriptUtils.compile(validatable.getValue(), questionModel.getObject().getName(), ValidationDataSourceWindow.this, form); } }); validationType.add(new AjaxFormChoiceComponentUpdatingBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { Type type = validationType.getModelObject(); switch (type) { case QUESTION_CATEGORY: variableDropDown.setModelObject(null); javascriptField.setModelObject(null); break; case VARIABLE: questionName.setModelObject(null); categoryName.setModelObject(null); openAnswerName.setModelObject(null); javascriptField.setModelObject(null); break; case JAVASCRIPT: variableDropDown.setModelObject(null); questionName.setModelObject(null); categoryName.setModelObject(null); openAnswerName.setModelObject(null); break; } questionConditionContainer.setVisible(type == QUESTION_CATEGORY); variableContainer.setVisible(type == VARIABLE); javascriptField.setVisible(type == JAVASCRIPT); target.addComponent(questionTypeContainer); target.addComponent(variableTypeContainer); target.addComponent(javascriptField); } }); form.add(new SaveCancelPanel("saveCancel", form) { @Override protected void onSave(AjaxRequestTarget target, Form<?> form1) { IDataSource dataSource = null; switch (validator.getType()) { case QUESTION_CATEGORY: Question question = validator.getQuestion(); OpenAnswerDefinition openAnswer = validator.getOpenAnswer(); String variableName = openAnswer.getVariableName(question.getName()); if (StringUtils.isNotBlank(variableName)) { dataSource = new VariableDataSource(questionnaire.getName() + ":" + variableName); } else { dataSource = new VariableDataSource(questionnaire.getName() + ":" + question.getName() + "." + validator.getCategory().getName() + "." + openAnswer.getName()); } break; case VARIABLE: dataSource = new VariableDataSource( questionnaire.getName() + ":" + validator.getVariable().getName()); break; case JAVASCRIPT: dataSource = new JavascriptDataSource(validator.getScript(), VariableUtils.convertToValueType(dataType).getName(), questionnaire.getName()); ((JavascriptDataSource) dataSource) .setSequence(validator.getOperator() == ComparisonOperator.in); break; } ComparingDataSource comparingDataSource = new ComparingDataSource(null, validator.getOperator(), dataSource); ValidationDataSourceWindow.this.onSave(target, comparingDataSource); modalWindow.close(target); } @Override protected void onCancel(AjaxRequestTarget target, @SuppressWarnings("hiding") Form<?> form) { modalWindow.close(target); } @Override protected void onError(AjaxRequestTarget target, @SuppressWarnings("hiding") Form<?> form) { feedbackWindow.setContent(feedbackPanel); feedbackWindow.show(target); } }); }
From source file:org.obiba.onyx.quartz.editor.question.condition.ConditionPanel.java
License:Open Source License
public ConditionPanel(String id, final IModel<Question> questionModel, final IModel<Questionnaire> questionnaireModel) { super(id);//from w w w. jav a 2 s. c o m this.questionModel = questionModel; this.questionnaireModel = questionnaireModel; add(CSSPackageResource.getHeaderContribution(ConditionPanel.class, "ConditionPanel.css")); variableWindow = new ModalWindow("variableWindow"); variableWindow.setCssClassName("onyx"); variableWindow.setInitialWidth(950); variableWindow.setInitialHeight(540); variableWindow.setResizable(true); variableWindow.setTitle(new ResourceModel("Variable")); add(variableWindow); add(new MultiLineLabel("explain", new ResourceModel("Explain"))); Condition condition = new Condition(); final Question question = questionModel.getObject(); final Questionnaire questionnaire = questionnaireModel.getObject(); QuestionnaireFinder questionnaireFinder = QuestionnaireFinder.getInstance(questionnaire); questionnaireFinder.buildQuestionnaireCache(); // need a fresh cache final IDataSource initialCondition = question.getCondition(); if (initialCondition != null) { if (initialCondition instanceof VariableDataSource) { VariableDataSource variableDataSource = (VariableDataSource) initialCondition; if (questionnaire.getName().equals(variableDataSource.getTableName())) { try { condition.setVariable(questionnaire.getVariable(variableDataSource.getVariableName())); condition.setType(Type.VARIABLE); } catch (IllegalArgumentException e) { // not found in this questionnaire } } if (condition.getType() == NONE) { // not found yet Variable variable = variableUtils.findVariable(variableDataSource); if (variable != null) { try { condition.setVariable(questionnaire.getVariable(variable.getName())); condition.setType(Type.VARIABLE); } catch (IllegalArgumentException e) { // not found Question questionCondition = VariableUtils.findQuestion(variable, questionnaireFinder); condition.setType(Type.QUESTION_CATEGORY); condition.setQuestion(questionCondition); condition.setCategory(VariableUtils.findCategory(variable, questionCondition)); } } } } else if (initialCondition instanceof JavascriptDataSource) { condition.setType(JAVASCRIPT); condition.setScript(((JavascriptDataSource) initialCondition).getScript()); } } Model<Condition> model = new Model<Condition>(condition); setDefaultModel(model); final Form<Void> form = new Form<Void>("form"); add(form); final RadioGroup<Type> conditionType = new RadioGroup<Type>("conditionType", new PropertyModel<Type>(model, "type")); conditionType.setLabel(new ResourceModel("ConditionType")).setRequired(true); form.add(conditionType); final Radio<Type> noneType = new Radio<Type>("none", new Model<Type>(NONE)); noneType.setLabel(new ResourceModel("NoCondition")); conditionType.add(noneType).add(new SimpleFormComponentLabel("noneLabel", noneType)); final Radio<Type> questionType = new Radio<Type>("questionType", new Model<Type>(QUESTION_CATEGORY)); questionType.setLabel(new ResourceModel("QuestionType")); conditionType.add(questionType).add(new SimpleFormComponentLabel("questionTypeLabel", questionType)); final WebMarkupContainer questionTypeContainer = new WebMarkupContainer("questionTypeContainer"); questionTypeContainer.setOutputMarkupId(true); conditionType.add(questionTypeContainer); final WebMarkupContainer questionConditionContainer = new WebMarkupContainer("questionConditionContainer"); questionConditionContainer.setVisible(condition.getType() == QUESTION_CATEGORY); questionTypeContainer.add(questionConditionContainer); final List<Question> questions = new ArrayList<Question>(Collections2.filter( questionnaire.getQuestionnaireCache().getQuestionCache().values(), new Predicate<Question>() { @Override public boolean apply(Question q) { return !q.equals(question) && q.getType() != QuestionType.BOILER_PLATE; } })); Collections.sort(questions, new QuestionnaireElementComparator()); questionName = new DropDownChoice<Question>("question", new PropertyModel<Question>(model, "question"), questions, new QuestionnaireElementNameRenderer()) { @Override public boolean isRequired() { return conditionType.getModelObject() == QUESTION_CATEGORY; } }; questionName.setLabel(new ResourceModel("Question")); questionName.setNullValid(false); questionConditionContainer.add(questionName) .add(new SimpleFormComponentLabel("questionLabel", questionName)); final List<Category> categories = findCategories(); final DropDownChoice<Category> categoryName = new DropDownChoice<Category>("category", new PropertyModel<Category>(model, "category"), categories, new QuestionnaireElementNameRenderer()) { @Override public boolean isRequired() { return conditionType.getModelObject() == QUESTION_CATEGORY; } }; categoryName.setLabel(new ResourceModel("Category")); categoryName.setNullValid(false); questionConditionContainer.add(categoryName) .add(new SimpleFormComponentLabel("categoryLabel", categoryName)); questionName.add(new OnChangeAjaxBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { categories.clear(); categories.addAll(findCategories()); target.addComponent(categoryName); } }); Radio<Type> variableType = new Radio<Type>("variableType", new Model<Type>(VARIABLE)); variableType.setLabel(new ResourceModel("VariableType")); conditionType.add(variableType).add(new SimpleFormComponentLabel("variableTypeLabel", variableType)); final WebMarkupContainer variableTypeContainer = new WebMarkupContainer("variableTypeContainer"); variableTypeContainer.setOutputMarkupId(true); conditionType.add(variableTypeContainer); final WebMarkupContainer variableContainer = new WebMarkupContainer("variableContainer"); variableContainer.setVisible(condition.getType() == VARIABLE); variableTypeContainer.add(variableContainer); final List<Variable> variables = new ArrayList<Variable>( Collections2.filter(questionnaire.getVariables(), new Predicate<Variable>() { @Override public boolean apply(Variable v) { return v.getValueType().equals(BooleanType.get()); } })); final DropDownChoice<Variable> variableDropDown = new DropDownChoice<Variable>("variable", new PropertyModel<Variable>(model, "variable"), variables, new VariableRenderer()) { @Override public boolean isRequired() { return conditionType.getModelObject() == VARIABLE; } }; variableDropDown.setLabel(new ResourceModel("Variable")).setOutputMarkupId(true); variableContainer.add(variableDropDown); final WebMarkupContainer previewVariableVisibility = new WebMarkupContainer("previewVariableVisibility"); variableContainer.add(previewVariableVisibility.setOutputMarkupId(true)); final Image previewVariable = new Image("previewVariable", Images.ZOOM); previewVariable.add(new AttributeModifier("title", true, new ResourceModel("Preview"))); previewVariable.setVisible(variableDropDown.getModelObject() != null); previewVariableVisibility.add(previewVariable); final Label previewScript = new Label("previewScript", variableDropDown.getModelObject() == null ? "" : variableDropDown.getModelObject().getAttributeStringValue("script")); previewScript.add(new SyntaxHighlighterBehavior()); previewScript.add(new AttributeAppender("style", true, new Model<String>("display: none;"), " ")); previewVariableVisibility.add(previewScript); final Map<String, Object> tooltipCfg = new HashMap<String, Object>(); tooltipCfg.put("delay", 100); tooltipCfg.put("showURL", false); tooltipCfg.put("top", -30); tooltipCfg.put("bodyHandler", "function() { return $(\"#" + previewScript.getMarkupId(true) + "\").html(); }"); previewVariable.add(new TooltipBehavior(null, tooltipCfg)); variableContainer.add(new AjaxLink<Void>("newVariable") { @Override public void onClick(AjaxRequestTarget target) { @SuppressWarnings({ "rawtypes", "unchecked" }) VariablePanel variablePanel = new VariablePanel("content", new Model(null), questionnaireModel, BooleanType.get()) { @Override public void onSave(@SuppressWarnings("hiding") AjaxRequestTarget target, Variable createdVariable) { variables.add(createdVariable); questionnaire.addVariable(createdVariable); variableDropDown.setModelObject(createdVariable); previewVariable.setVisible(true); previewScript.setDefaultModelObject(createdVariable.getAttributeStringValue("script")); variableWindow.close(target); target.addComponent(variableDropDown); target.addComponent(previewVariableVisibility); } @Override public void onCancel(@SuppressWarnings("hiding") AjaxRequestTarget target) { variableWindow.close(target); } }; variableWindow.setContent(variablePanel); variableWindow.show(target); } }.add(new Image("newVariableImg", Images.ADD)) .add(new AttributeModifier("title", true, new ResourceModel("NewVariable")))); variableDropDown.add(new OnChangeAjaxBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { Variable variable = variableDropDown.getModelObject(); previewVariable.setVisible(variable != null); previewScript.setDefaultModelObject( variable == null ? null : variable.getAttributeStringValue("script")); target.addComponent(previewVariableVisibility); } }); Radio<Type> javascriptType = new Radio<Type>("javascriptType", new Model<Type>(JAVASCRIPT)); javascriptType.setLabel(new ResourceModel("JavascriptType")); conditionType.add(javascriptType).add(new SimpleFormComponentLabel("javascriptTypeLabel", javascriptType)); final TextArea<String> javascriptField = new TextArea<String>("javascriptField", new PropertyModel<String>(condition, "script")); javascriptField.setOutputMarkupPlaceholderTag(true); javascriptField.setVisible(condition.getType() == JAVASCRIPT); conditionType.add(javascriptField); javascriptField.add(new IValidator<String>() { @Override public void validate(final IValidatable<String> validatable) { JavascriptUtils.compile(validatable.getValue(), question.getName(), ConditionPanel.this, form); } }); conditionType.add(new AjaxFormChoiceComponentUpdatingBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { Type type = conditionType.getModelObject(); switch (type) { case NONE: questionName.setModelObject(null); categoryName.setModelObject(null); variableDropDown.setModelObject(null); javascriptField.setModelObject(null); break; case QUESTION_CATEGORY: variableDropDown.setModelObject(null); javascriptField.setModelObject(null); break; case VARIABLE: questionName.setModelObject(null); categoryName.setModelObject(null); javascriptField.setModelObject(null); break; case JAVASCRIPT: questionName.setModelObject(null); categoryName.setModelObject(null); variableDropDown.setModelObject(null); break; } questionConditionContainer.setVisible(type == QUESTION_CATEGORY); variableContainer.setVisible(type == VARIABLE); javascriptField.setVisible(type == JAVASCRIPT); target.addComponent(questionTypeContainer); target.addComponent(variableTypeContainer); target.addComponent(javascriptField); } }); }
From source file:org.obiba.onyx.wicket.link.AbstractImageLink.java
License:Open Source License
/** * Hide image tag./*from w w w .ja va2s . com*/ */ private void addNoDecorator() { Image image = new Image("decorator"); image.setVisible(false); link.add(image); }