List of usage examples for org.apache.wicket.extensions.ajax.markup.html.modal ModalWindow close
public void close(final IPartialPageRequestHandler target)
From source file:org.geoserver.web.data.layergroup.RootLayerEntryPanel.java
License:Open Source License
@SuppressWarnings({ "rawtypes" }) public RootLayerEntryPanel(String id, final Form form, WorkspaceInfo workspace) { super(id);//from w w w .j ava 2 s. co m setOutputMarkupId(true); final TextField<LayerInfo> rootLayerField = new TextField<LayerInfo>("rootLayer") { @Override public IConverter getConverter(Class<?> type) { return form.getConverter(type); } }; rootLayerField.setOutputMarkupId(true); rootLayerField.setRequired(true); add(rootLayerField); // global styles List<StyleInfo> globalStyles = new ArrayList<StyleInfo>(); List<StyleInfo> allStyles = GeoServerApplication.get().getCatalog().getStyles(); for (StyleInfo s : allStyles) { if (s.getWorkspace() == null) { globalStyles.add(s); } } // available styles List<StyleInfo> styles = new ArrayList<StyleInfo>(); styles.addAll(globalStyles); if (workspace != null) { styles.addAll(GeoServerApplication.get().getCatalog().getStylesByWorkspace(workspace)); } DropDownChoice<StyleInfo> styleField = new DropDownChoice<StyleInfo>("rootLayerStyle", styles) { @Override public IConverter getConverter(Class<?> type) { return form.getConverter(type); } }; styleField.setNullValid(true); add(styleField); final ModalWindow popupWindow = new ModalWindow("popup"); add(popupWindow); add(new AjaxLink("add") { @Override public void onClick(AjaxRequestTarget target) { popupWindow.setInitialHeight(375); popupWindow.setInitialWidth(525); popupWindow.setTitle(new ParamResourceModel("chooseLayer", this)); popupWindow.setContent(new LayerListPanel(popupWindow.getContentId()) { @Override protected void handleLayer(LayerInfo layer, AjaxRequestTarget target) { popupWindow.close(target); ((LayerGroupInfo) form.getModelObject()).setRootLayer(layer); target.addComponent(rootLayerField); } }); popupWindow.show(target); } }); }
From source file:org.geoserver.wps.web.SubProcessBuilder.java
License:Open Source License
public SubProcessBuilder(ExecuteRequest request, final ModalWindow window) { Form form = new Form("form"); add(form);/*from w ww .j a va 2 s . c o m*/ final WPSRequestBuilderPanel builder = new WPSRequestBuilderPanel("builder", request); form.add(builder); form.add(new AjaxSubmitLink("apply") { @Override protected void onSubmit(AjaxRequestTarget target, Form form) { window.close(target); } @Override protected void onError(AjaxRequestTarget target, Form form) { super.onError(target, form); target.addComponent(builder.getFeedbackPanel()); } }); }
From source file:org.obiba.onyx.quartz.core.wicket.layout.impl.simplified.ModalFeedbackPanel.java
License:Open Source License
/** * @param id Component id./*from ww w . j av a 2 s . c o m*/ * @param feedbackWindow ModalWindow in which the panel will be displayed. */ @SuppressWarnings("serial") public ModalFeedbackPanel(final ModalWindow feedbackWindow) { super("content"); feedbackWindow.setTitle(new StringResourceModel("ModalWindowTitle", this, null)); feedbackWindow.setResizable(false); this.setEscapeModelStrings(false); add(new AjaxImageLink("close", new StringResourceModel("CloseModalButton", this, null)) { @Override public void onClick(AjaxRequestTarget target) { feedbackWindow.close(target); } }); }
From source file:org.obiba.onyx.quartz.editor.category.CategoryWindow.java
License:Open Source License
public CategoryWindow(String id, final IModel<QuestionCategory> model, final IModel<Questionnaire> questionnaireModel, final IModel<LocaleProperties> localePropertiesModel, final ModalWindow modalWindow) { super(id, model); QuestionCategory questionCategory = model.getObject(); final Category category = questionCategory.getCategory(); add(form = new Form<QuestionCategory>("form", model)); form.setMultiPart(false);//from w w w.j a v a 2 s . c o m feedbackPanel = new FeedbackPanel("content"); feedbackWindow = new FeedbackWindow("feedback"); feedbackWindow.setOutputMarkupId(true); add(feedbackWindow); List<ITab> tabs = new ArrayList<ITab>(); AjaxSubmitTabbedPanel ajaxSubmitTabbedPanel = new AjaxSubmitTabbedPanel("categoryTabs", feedbackPanel, feedbackWindow, tabs); tabs.add(new PanelCachingTab(new AbstractTab(new ResourceModel("Category")) { @Override public Panel getPanel(String panelId) { categoryPanel = new CategoryPanel(panelId, model, questionnaireModel, localePropertiesModel, feedbackPanel, feedbackWindow) { }; return categoryPanel; } })); tabs.add(new PanelCachingTab(new AbstractTab(new ResourceModel("OpenAnswerDefinitions")) { @Override public Panel getPanel(String panelId) { return new OpenAnswerListPanel(panelId, model, questionnaireModel, localePropertiesModel, feedbackPanel, feedbackWindow); } })); tabs.add(new PanelCachingTab(new AbstractTab(new ResourceModel("Attributes")) { @Override public Panel getPanel(String panelId) { return new AttributesPanel(panelId, new Model<Category>(category), questionnaireModel.getObject().getLocales(), feedbackPanel, feedbackWindow); } })); form.add(ajaxSubmitTabbedPanel); form.add(new SaveCancelPanel("saveCancel", form) { @Override protected void onSave(AjaxRequestTarget target, Form<?> form1) { categoryPanel.onSave(target); CategoryWindow.this.onSave(target, form.getModelObject()); modalWindow.close(target); } @Override protected void onCancel(AjaxRequestTarget target, Form<?> form1) { CategoryWindow.this.onCancel(target, form.getModelObject()); 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.openAnswer.autocomplete.SuggestionItemWindow.java
License:Open Source License
public SuggestionItemWindow(String id, IModel<OpenAnswerDefinition> model, IModel<String> itemModel, IModel<LocaleProperties> localePropertiesModel, final ModalWindow modalWindow) { super(id, model); feedbackPanel = new FeedbackPanel("content"); feedbackWindow = new FeedbackWindow("feedback"); feedbackWindow.setOutputMarkupId(true); add(feedbackWindow);// w w w .j a va 2 s .c o m OpenAnswerDefinitionSuggestion openAnswerSuggestion = new OpenAnswerDefinitionSuggestion(model.getObject()); final Form<OpenAnswerDefinition> form = new Form<OpenAnswerDefinition>("form", model); form.setMultiPart(false); add(form); String originalItem = itemModel.getObject(); final TextField<String> name = new TextField<String>("name", itemModel); name.setLabel(new ResourceModel("Name")); name.add(new RequiredFormFieldBehavior()); form.add(name).add(new SimpleFormComponentLabel("nameLabel", name)); // excludes other openAnswer label properties Map<String, Boolean> visibleStates = new HashMap<String, Boolean>(); visibleStates.put("label", false); visibleStates.put("unitLabel", false); for (String item : openAnswerSuggestion.getSuggestionItems()) { visibleStates.put(item, StringUtils.equals(item, originalItem)); } form.add(new LabelsPanel("labels", localePropertiesModel, model, feedbackPanel, feedbackWindow, null, visibleStates)); form.add(new SaveCancelPanel("saveCancel", form) { @Override protected void onSave(AjaxRequestTarget target, Form<?> form1) { if (form.hasError()) return; SuggestionItemWindow.this.onSave(target, name.getModelObject()); modalWindow.close(target); } @Override protected void onCancel(AjaxRequestTarget target, Form<?> form1) { SuggestionItemWindow.this.onCancel(target); modalWindow.close(target); } @Override protected void onError(AjaxRequestTarget target, Form<?> form) { feedbackWindow.setContent(feedbackPanel); feedbackWindow.show(target); } }); }
From source file:org.obiba.onyx.quartz.editor.openAnswer.OpenAnswerWindow.java
License:Open Source License
public OpenAnswerWindow(String id, final IModel<OpenAnswerDefinition> model, final IModel<Category> categoryModel, final IModel<Question> questionModel, final IModel<Questionnaire> questionnaireModel, final IModel<LocaleProperties> localePropertiesModel, final ModalWindow modalWindow) { super(id, model); feedbackPanel = new FeedbackPanel("content"); feedbackWindow = new FeedbackWindow("feedback"); feedbackWindow.setOutputMarkupId(true); add(feedbackWindow);/*w w w . j av a 2s .c o m*/ add(form = new Form<OpenAnswerDefinition>("form", model)); form.setMultiPart(false); List<ITab> tabs = new ArrayList<ITab>(); AjaxSubmitTabbedPanel ajaxSubmitTabbedPanel = new AjaxSubmitTabbedPanel("openAnswerTabs", feedbackPanel, feedbackWindow, tabs); tabs.add(new PanelCachingTab(new AbstractTab(new ResourceModel("OpenAnswerDefinition")) { @Override public Panel getPanel(String panelId) { switch (model.getObject().getOpenAnswerType()) { case AUDIO_RECORDING: openAnswerPanel = new AudioOpenAnswerPanel(panelId, model, categoryModel, questionModel, questionnaireModel); break; case AUTO_COMPLETE: openAnswerPanel = new AutoCompleteOpenAnswerPanel(panelId, model, categoryModel, questionModel, questionnaireModel, localePropertiesModel, feedbackPanel, feedbackWindow); break; default: openAnswerPanel = new OpenAnswerPanel(panelId, model, categoryModel, questionModel, questionnaireModel, localePropertiesModel, feedbackPanel, feedbackWindow); } return openAnswerPanel; } })); tabs.add(new PanelCachingTab(new AbstractTab(new ResourceModel("Attributes")) { @Override public Panel getPanel(String panelId) { return new AttributesPanel(panelId, new Model<OpenAnswerDefinition>(model.getObject()), questionnaireModel.getObject().getLocales(), feedbackPanel, feedbackWindow); } })); form.add(ajaxSubmitTabbedPanel); form.add(new SaveCancelPanel("saveCancel", form) { @Override protected void onSave(AjaxRequestTarget target, Form<?> form1) { ((SaveablePanel) openAnswerPanel).onSave(target); if (form.hasError()) return; OpenAnswerWindow.this.onSave(target, form.getModelObject()); modalWindow.close(target); } @Override protected void onCancel(AjaxRequestTarget target, Form<?> form1) { OpenAnswerWindow.this.onCancel(target, form.getModelObject()); 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.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);// w ww . j a v a 2s . 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.CopyQuestionPanel.java
License:Open Source License
public CopyQuestionPanel(String id, final IModel<Question> model, final IModel<Questionnaire> questionnaireModel, final ModalWindow modalWindow) { super(id, model); this.questionnaireModel = questionnaireModel; final Questionnaire questionnaire = questionnaireModel.getObject(); final QuestionnaireFinder questionnaireFinder = QuestionnaireFinder.getInstance(questionnaire); questionnaire.setQuestionnaireCache(null); feedbackPanel = new FeedbackPanel("content"); feedbackWindow = new FeedbackWindow("feedback"); feedbackWindow.setOutputMarkupId(true); add(feedbackWindow);//from ww w. ja va 2 s . c o m Form<?> form = new Form<Void>("form"); form.setMultiPart(false); final Question question = model.getObject(); String newName = new StringResourceModel(COPY_OF, CopyQuestionPanel.this, null, new Object[] { question.getName() }).getString(); name = new TextField<String>("name", new Model<String>(newName)); name.setLabel(new ResourceModel("Name")); name.add(new RequiredFormFieldBehavior()); name.add(new PatternValidator(QuartzEditorPanel.ELEMENT_NAME_PATTERN)); name.add(new AbstractValidator<String>() { @Override protected void onValidate(IValidatable<String> validatable) { if (questionnaireFinder.findQuestion(validatable.getValue()) != null) { error(validatable, "QuestionAlreadyExists"); } } }); form.add(name); form.add(new SimpleFormComponentLabel("nameLabel", name)); form.add(new HelpTooltipPanel("nameHelp", new ResourceModel("Name.Tooltip"))); categories = new RadioGroup<CategoryAction>("categories", new Model<CategoryAction>(CategoryAction.SHARE)); categories.setLabel(new ResourceModel("Categories")).setRequired(true); form.add(categories); final Radio<CategoryAction> copyCategories = new Radio<CategoryAction>("copyCategories", new Model<CategoryAction>(CategoryAction.COPY)); copyCategories.setLabel(new ResourceModel("Categories.Copy")); categories.add(copyCategories).add(new SimpleFormComponentLabel("copyCategoriesLabel", copyCategories)); final Radio<CategoryAction> shareCategories = new Radio<CategoryAction>("shareCategories", new Model<CategoryAction>(CategoryAction.SHARE)); shareCategories.setLabel(new ResourceModel("Categories.Share")); categories.add(shareCategories).add(new SimpleFormComponentLabel("shareCategoriesLabel", shareCategories)); final DropDownChoice<Page> pageDropDown = new DropDownChoice<Page>("page", new Model<Page>(question.getPage()), questionnaire.getPages(), new QuestionnaireElementNameRenderer()); pageDropDown.setRequired(true); pageDropDown.setNullValid(false); pageDropDown.setLabel(new ResourceModel("Page")); form.add(pageDropDown).add(new SimpleFormComponentLabel("pageLabel", pageDropDown)); form.add(new HelpTooltipPanel("pageHelp", new ResourceModel("Page.Tooltip"))); form.add(new SaveCancelPanel("saveCancel", form) { @Override protected void onSave(AjaxRequestTarget target, @SuppressWarnings("hiding") Form<?> form) { LocaleProperties localeProperties = new LocaleProperties(); Question copy = copyQuestion(localeProperties); pageDropDown.getModelObject().addQuestion(copy); try { questionnairePersistenceUtils.persist(questionnaire, localeProperties); questionnaire.setQuestionnaireCache(null); CopyQuestionPanel.this.onSave(target, copy); modalWindow.close(target); } catch (Exception e) { log.error("Cannot persist questionnaire", e); error(e.getClass() + ": " + e.getMessage()); feedbackWindow.setContent(feedbackPanel); feedbackWindow.show(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); } }); add(form); }
From source file:org.obiba.onyx.quartz.editor.question.QuestionWindow.java
License:Open Source License
public QuestionWindow(String id, final IModel<EditedQuestion> model, final IModel<Questionnaire> questionnaireModel, final IModel<LocaleProperties> localePropertiesModel, final ModalWindow modalWindow) { super(id, model); feedbackPanel = new FeedbackPanel("content"); feedbackWindow = new FeedbackWindow("feedback"); feedbackWindow.setOutputMarkupId(true); add(feedbackWindow);// w ww . j a v a 2s. co m questionTab = new SavableHidableTab(new ResourceModel("Question")) { private QuestionPanel questionPanel; @Override public Panel getPanel(String panelId) { if (questionPanel == null) { questionPanel = new QuestionPanel(panelId, model, questionnaireModel, localePropertiesModel, feedbackPanel, feedbackWindow, false) { @Override public void onQuestionTypeChange(AjaxRequestTarget target, QuestionType questionType) { } }; } return questionPanel; } @Override public void save(AjaxRequestTarget target) { questionPanel.onSave(target); } @Override public boolean isVisible() { return true; } }; conditionTab = new SavableHidableTab(new ResourceModel("Conditions")) { private ConditionPanel panel; @Override public Panel getPanel(String panelId) { if (panel == null) { panel = new ConditionPanel(panelId, new Model<Question>(model.getObject().getElement()), questionnaireModel); } return panel; } @Override public void save(AjaxRequestTarget target) { if (panel != null) panel.onSave(target); } @Override public boolean isVisible() { return true; } }; AbstractTab attributeTab = new AbstractTab(new ResourceModel("Attributes")) { @Override public Panel getPanel(String panelId) { return new AttributesPanel(panelId, new Model<Question>(model.getObject().getElement()), questionnaireModel.getObject().getLocales(), feedbackPanel, feedbackWindow); } }; form = new Form<EditedQuestion>("form", model); form.setMultiPart(false); localePropertiesUtils.load(localePropertiesModel.getObject(), questionnaireModel.getObject(), model.getObject().getElement()); List<ITab> tabs = new ArrayList<ITab>(); tabs.add(questionTab); tabs.add(attributeTab); tabs.add(conditionTab); AjaxSubmitTabbedPanel ajaxSubmitTabbedPanel = new AjaxSubmitTabbedPanel("tabs", feedbackPanel, feedbackWindow, tabs); add(ajaxSubmitTabbedPanel); form.add(ajaxSubmitTabbedPanel); add(form); form.add(new SaveCancelPanel("saveCancel", form) { @Override protected void onSave(AjaxRequestTarget target, Form<?> form1) { questionTab.save(target); conditionTab.save(target); QuestionWindow.this.onSave(target, form.getModelObject()); modalWindow.close(target); } @Override protected void onCancel(AjaxRequestTarget target, Form<?> form1) { QuestionWindow.this.onCancel(target, form.getModelObject()); 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.questionnaire.UploadQuestionnairePanel.java
License:Open Source License
public UploadQuestionnairePanel(String id, final ModalWindow uploadWindow, IModel<Questionnaire> questionnaireModel) { super(id);//from w w w. j a v a 2s. c o m final Questionnaire updatedQuestionnaire = questionnaireModel == null ? null : questionnaireModel.getObject(); feedbackPanel = new FeedbackPanel("content"); feedbackWindow = new FeedbackWindow("feedback"); feedbackWindow.setOutputMarkupId(true); add(feedbackWindow); zipFile = new FileUploadField("zip"); zipFile.setLabel(new ResourceModel("File.ZIP")); zipFile.setRequired(true); Form<?> form = new Form<Void>("form") { @Override protected void onSubmit() { FileUpload zip = zipFile.getFileUpload(); if (zip == null) { error(getLocalizer().getString("Error.NoFileUploaded", UploadQuestionnairePanel.this)); return; } String clientFileName = zip.getClientFileName(); if (!clientFileName.endsWith(".zip")) { error(getLocalizer().getString("Error.NotAZipFile", UploadQuestionnairePanel.this)); return; } try { ZipInputStream zis = new ZipInputStream(zip.getInputStream()); ZipEntry entry = null; Questionnaire questionnaire = null; List<File> localeProperties = new ArrayList<File>(); while ((entry = zis.getNextEntry()) != null) { if (!entry.isDirectory()) { String name = entry.getName(); // ONYX-1534 lookup for files anywhere in the file hierarchy if (name.contains("/")) { name = name.substring(name.lastIndexOf('/') + 1); } int n; if ("questionnaire.xml".equals(name)) { ByteArrayOutputStream out = new ByteArrayOutputStream(); while ((n = zis.read(BUFFER, 0, BUFFER_SIZE)) > -1) { out.write(BUFFER, 0, n); } questionnaire = questionnaireBundleManager .load(new ByteArrayInputStream(out.toByteArray())); try { out.close(); } catch (Exception e) { } if (updatedQuestionnaire == null) { for (QuestionnaireBundle bundle : questionnaireBundleManager.bundles()) { if (questionnaire.getName().equals(bundle.getName())) { error(new StringResourceModel("Error.QuestionnaireAlreadyExists", UploadQuestionnairePanel.this, null, new Object[] { questionnaire.getName() }).getString()); return; } } } else { if (!questionnaire.getName().equals(updatedQuestionnaire.getName())) { error(new StringResourceModel( "Error.NameDifferentFromQuestionnaireToUpdate", UploadQuestionnairePanel.this, null, new Object[] { questionnaire.getName(), updatedQuestionnaire.getName() }) .getString()); return; } } } else if (name.endsWith(".properties")) { File tmp = new File(name); FileOutputStream out = new FileOutputStream(tmp); while ((n = zis.read(BUFFER, 0, BUFFER_SIZE)) > -1) { out.write(BUFFER, 0, n); } localeProperties.add(tmp); try { out.close(); } catch (Exception e) { } } } zis.closeEntry(); } if (questionnaire == null) { error(new StringResourceModel("Error.MissingFile", UploadQuestionnairePanel.this, null, new Object[] { "questionnaire.xml" }).getString()); } else { for (Locale locale : questionnaire.getLocales()) { final String fileName = "language_" + locale.getLanguage() + ".properties"; File localeFile = Iterables.find(localeProperties, new Predicate<File>() { public boolean apply(File file) { return file.getName().equals(fileName); } }); if (localeFile == null) { error(new StringResourceModel("Error.MissingFile", UploadQuestionnairePanel.this, null, new Object[] { fileName }).getString()); } if (hasError()) return; } QuestionnaireBundle bundle = questionnaireBundleManager.createBundle(questionnaire, localeProperties.toArray(new File[localeProperties.size()])); questionnaireBundleManager.flushBundle(bundle); questionnaireRegister.register(questionnaire); } // cleanup new File(clientFileName).delete(); for (File f : localeProperties) { f.delete(); } } catch (IOException e) { log.error("IOException", e); error(getLocalizer().getString("Error.CannotReadFile", UploadQuestionnairePanel.this) + ": " + e.getMessage()); } } }; form.setMultiPart(true); add(form); form.add(zipFile).add(new SimpleFormComponentLabel("zipLabel", zipFile)) .add(new HelpTooltipPanel("zipHelp", new ResourceModel("File.ZIP.Tooltip"))); form.add(new SaveCancelPanel("saveCancel", form) { @Override protected void onSave(AjaxRequestTarget target, Form<?> form1) { UploadQuestionnairePanel.this.onSave(target); uploadWindow.close(target); } @Override protected void onCancel(AjaxRequestTarget target, @SuppressWarnings("hiding") Form<?> form) { uploadWindow.close(target); } @Override protected void onError(AjaxRequestTarget target, @SuppressWarnings("hiding") Form<?> form) { feedbackWindow.setContent(feedbackPanel); feedbackWindow.show(target); } }); }