List of usage examples for org.apache.wicket.extensions.markup.html.tabs PanelCachingTab PanelCachingTab
public PanelCachingTab(final ITab delegate)
From source file:org.geoserver.community.css.web.CssDemoPage.java
License:Open Source License
private void doMainLayout() { final Fragment mainContent = new Fragment("main-content", "normal", this); final ModalWindow popup = new ModalWindow("popup"); mainContent.add(popup);// w w w .jav a2 s. c o m final StyleNameModel styleNameModel = new StyleNameModel(style); final PropertyModel layerNameModel = new PropertyModel(layer, "prefixedName"); mainContent.add(new AjaxLink("create.style", new ParamResourceModel("CssDemoPage.createStyle", this)) { public void onClick(AjaxRequestTarget target) { target.appendJavascript("Wicket.Window.unloadConfirmation = false;"); popup.setInitialHeight(200); popup.setInitialWidth(300); popup.setTitle(new Model("Choose name for new style")); popup.setContent(new StyleNameInput(popup.getContentId(), CssDemoPage.this)); popup.show(target); } }); mainContent.add(new SimpleAjaxLink("change.style", styleNameModel) { public void onClick(AjaxRequestTarget target) { target.appendJavascript("Wicket.Window.unloadConfirmation = false;"); popup.setInitialHeight(400); popup.setInitialWidth(600); popup.setTitle(new Model("Choose style to edit")); popup.setContent(new StyleChooser(popup.getContentId(), CssDemoPage.this)); popup.show(target); } }); mainContent.add(new SimpleAjaxLink("change.layer", layerNameModel) { public void onClick(AjaxRequestTarget target) { target.appendJavascript("Wicket.Window.unloadConfirmation = false;"); popup.setInitialHeight(400); popup.setInitialWidth(600); popup.setTitle(new Model("Choose layer to edit")); popup.setContent(new LayerChooser(popup.getContentId(), CssDemoPage.this)); popup.show(target); } }); mainContent .add(new AjaxLink("associate.styles", new ParamResourceModel("CssDemoPage.associateStyles", this)) { public void onClick(AjaxRequestTarget target) { target.appendJavascript("Wicket.Window.unloadConfirmation = false;"); popup.setInitialHeight(400); popup.setInitialWidth(600); popup.setTitle(new Model("Choose layers to associate")); popup.setContent(new MultipleLayerChooser(popup.getContentId(), CssDemoPage.this)); popup.show(target); } }); ParamResourceModel associateToLayer = new ParamResourceModel("CssDemoPage.associateDefaultStyle", this, styleNameModel, layerNameModel); final SimpleAjaxLink associateDefaultStyle = new SimpleAjaxLink("associate.default.style", new Model(), associateToLayer) { public void onClick(final AjaxRequestTarget linkTarget) { final Component theComponent = this; dialog.setResizable(false); dialog.setHeightUnit("em"); dialog.setWidthUnit("em"); dialog.setInitialHeight(7); dialog.setInitialWidth(50); dialog.showOkCancel(linkTarget, new DialogDelegate() { boolean success = false; @Override protected boolean onSubmit(AjaxRequestTarget target, Component contents) { layer.setDefaultStyle(style); getCatalog().save(layer); theComponent.setEnabled(false); success = true; return true; } @Override public void onClose(AjaxRequestTarget target) { super.onClose(target); target.addComponent(theComponent); if (success) { CssDemoPage.this.info(new ParamResourceModel("CssDemoPage.styleAssociated", CssDemoPage.this, styleNameModel, layerNameModel).getString()); target.addComponent(getFeedbackPanel()); } } @Override protected Component getContents(String id) { ParamResourceModel confirm = new ParamResourceModel("CssDemoPage.confirmAssocation", CssDemoPage.this, styleNameModel.getObject(), layerNameModel.getObject(), layer.getDefaultStyle().getName()); return new Label(id, confirm); } }); } }; associateDefaultStyle.setOutputMarkupId(true); if (layer.getDefaultStyle().equals(style)) { associateDefaultStyle.setEnabled(false); } mainContent.add(associateDefaultStyle); final IModel<String> sldModel = new AbstractReadOnlyModel<String>() { public String getObject() { try { // if file already in css format transform to sld, otherwise load the SLD file if (CssHandler.FORMAT.equals(style.getFormat())) { StyledLayerDescriptor sld = Styles.sld(style.getStyle()); return Styles.string(sld, new SLDHandler(), SLDHandler.VERSION_10, true); } else { File file = findStyleFile(style); if (file != null && file.isFile()) { BufferedReader reader = null; try { reader = new BufferedReader(new FileReader(file)); StringBuilder builder = new StringBuilder(); char[] line = new char[4096]; int len = 0; while ((len = reader.read(line, 0, 4096)) >= 0) builder.append(line, 0, len); return builder.toString(); } finally { if (reader != null) reader.close(); } } else { return "No SLD file found for this style. One will be generated automatically if you save the CSS."; } } } catch (IOException e) { throw new WicketRuntimeException(e); } } }; final CompoundPropertyModel model = new CompoundPropertyModel<CssDemoPage>(CssDemoPage.this); List<ITab> tabs = new ArrayList<ITab>(); tabs.add(new PanelCachingTab(new AbstractTab(new Model("Generated SLD")) { public Panel getPanel(String id) { SLDPreviewPanel panel = new SLDPreviewPanel(id, sldModel); sldPreview = panel.getLabel(); return panel; } })); tabs.add(new PanelCachingTab(new AbstractTab(new Model("Map")) { public Panel getPanel(String id) { return map = new OpenLayersMapPanel(id, layer, style); } })); if (layer.getResource() instanceof FeatureTypeInfo) { tabs.add(new PanelCachingTab(new AbstractTab(new Model("Data")) { public Panel getPanel(String id) { try { return new DataPanel(id, model, (FeatureTypeInfo) layer.getResource()); } catch (IOException e) { throw new WicketRuntimeException(e); } }; })); } else if (layer.getResource() instanceof CoverageInfo) { tabs.add(new PanelCachingTab(new AbstractTab(new Model("Data")) { public Panel getPanel(String id) { return new BandsPanel(id, (CoverageInfo) layer.getResource()); }; })); } tabs.add(new AbstractTab(new Model("CSS Reference")) { public Panel getPanel(String id) { return new DocsPanel(id); } }); File sldFile = findStyleFile(style); File cssFile = new File(sldFile.getParentFile(), style.getName() + ".css"); mainContent.add(new StylePanel("style.editing", model, CssDemoPage.this, cssFile)); mainContent.add(new AjaxTabbedPanel("context", tabs)); add(mainContent); add(dialog = new GeoServerDialog("dialog")); }
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);//w w w.j a v a2 s. com 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.locale.LabelsPanel.java
License:Open Source License
/** * @param id//from w w w. j a va2 s. c o m * @param model * @param elementModel * @param feedbackPanel * @param feedbackWindow * @param tooltips * @param visibleStates Map with label element as key and a boolean set to true to show it or false to hide it. * Set to null to display all labels. */ public LabelsPanel(String id, IModel<LocaleProperties> model, IModel<? extends IQuestionnaireElement> elementModel, FeedbackPanel feedbackPanel, FeedbackWindow feedbackWindow, Map<String, IModel<String>> tooltips, final Map<String, Boolean> visibleStates) { super(id, model); this.elementModel = elementModel; this.tooltips = tooltips; setOutputMarkupId(true); add(CSSPackageResource.getHeaderContribution(LabelsPanel.class, "LabelsPanel.css")); LocaleProperties localeProperties = (LocaleProperties) getDefaultModelObject(); final ListMultimap<Locale, KeyValue> elementLabels = localeProperties .getElementLabels(elementModel.getObject()); Locale userLocale = Session.get().getLocale(); List<ITab> tabs = new ArrayList<ITab>(); for (final Locale locale : localeProperties.getLocales()) { AbstractTab tab = new AbstractTab(new Model<String>(locale.getDisplayLanguage(userLocale))) { @Override public Panel getPanel(String panelId) { return new InputPanel(panelId, new ListModel<KeyValue>(elementLabels.get(locale)), visibleStates); } }; ITab panelCachingTab = new PanelCachingTab(tab); tabs.add(panelCachingTab); tabByLocale.put(locale, panelCachingTab); } tabbedPanel = new AjaxSubmitTabbedPanel("tabs", feedbackPanel, feedbackWindow, tabs); tabbedPanel.setVisible(tabs.size() > 0); tabsContainer = new WebMarkupContainer("tabsContainer"); tabsContainer.setOutputMarkupId(true); tabsContainer.add(tabbedPanel); Form<LocaleProperties> form = new Form<LocaleProperties>("form", model); form.setMultiPart(false); form.setOutputMarkupId(true); form.add(tabsContainer); add(form); }
From source file:org.obiba.onyx.quartz.editor.locale.LabelsPanel.java
License:Open Source License
public void onModelChange(AjaxRequestTarget target) { LocaleProperties localeProperties = (LocaleProperties) getDefaultModelObject(); final ListMultimap<Locale, KeyValue> elementLabels = localeProperties .getElementLabels(elementModel.getObject()); Locale userLocale = Session.get().getLocale(); @SuppressWarnings("unchecked") Collection<Locale> removedLocales = CollectionUtils.subtract(tabByLocale.keySet(), localeProperties.getLocales()); List<ITab> tabs = tabbedPanel.getTabs(); for (Locale locale : removedLocales) { ITab tabToRemove = tabByLocale.get(locale); int selectedTabIndex = tabbedPanel.getSelectedTab(); ITab selectedTab = tabs.get(selectedTabIndex); tabs.remove(tabToRemove);/*from w w w . j av a 2s . c om*/ tabByLocale.remove(locale); if (tabToRemove != selectedTab) { for (int i = 0; i < tabs.size(); i++) { ITab tab = tabs.get(i); if (selectedTab == tab) { tabbedPanel.setSelectedTab(i); break; } } } else { tabbedPanel.setSelectedTab(0); } } for (final Locale locale : localeProperties.getLocales()) { if (!tabByLocale.containsKey(locale)) { AbstractTab tab = new AbstractTab(new Model<String>(locale.getDisplayLanguage(userLocale))) { @Override public Panel getPanel(String panelId) { return new InputPanel(panelId, new ListModel<KeyValue>(elementLabels.get(locale)), null); } }; ITab panelCachingTab = new PanelCachingTab(tab); tabByLocale.put(locale, panelCachingTab); tabs.add(panelCachingTab); if (tabs.size() == 1) tabbedPanel.setSelectedTab(0); } } tabbedPanel.setVisible(tabs.size() > 0); target.addComponent(tabsContainer); }
From source file:org.obiba.onyx.quartz.editor.openAnswer.autocomplete.SuggestionVariableValuesPanel.java
License:Open Source License
public SuggestionVariableValuesPanel(String id, IModel<OpenAnswerDefinition> model, IModel<Questionnaire> questionnaireModel, FeedbackPanel feedbackPanel, FeedbackWindow feedbackWindow) { super(id, model); final OpenAnswerDefinitionSuggestion openAnswerSuggestion = new OpenAnswerDefinitionSuggestion( model.getObject());/*from ww w. j ava 2 s . c om*/ List<String> datasources = new ArrayList<String>(); for (Datasource ds : magmaInstanceProvider.getDatasources()) { datasources.add(ds.getName()); } Collections.sort(datasources); datasource = new DropDownChoice<String>("datasource", new Model<String>(openAnswerSuggestion.getDatasource()), datasources); datasource.setLabel(new ResourceModel("Datasource")); datasource.setNullValid(false); datasource.setRequired(true); datasource.add(new RequiredFormFieldBehavior()); datasource.add(new OnChangeAjaxBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { openAnswerSuggestion.clearVariableValues(); table.setModelObject(null); target.addComponent(table); target.addComponent(datasource); target.addComponent(variableTabbedPanel); } }); add(datasource).add(new SimpleFormComponentLabel("datasourceLabel", datasource)); IModel<List<String>> tableChoiceModel = new AbstractReadOnlyModel<List<String>>() { @Override public List<String> getObject() { if (datasource.getModelObject() == null) { return Collections.emptyList(); } List<String> tables = new ArrayList<String>(); for (ValueTable vt : magmaInstanceProvider.getDatasource(datasource.getModelObject()) .getValueTables()) { tables.add(datasource.getModelObject() + "." + vt.getName()); } Collections.sort(tables); return tables; } }; table = new DropDownChoice<String>("table", new PropertyModel<String>(new Model<OpenAnswerDefinitionSuggestion>(openAnswerSuggestion), "table"), tableChoiceModel, new IChoiceRenderer<String>() { @Override public Object getDisplayValue(String object) { return getTableName(object); } @Override public String getIdValue(String object, int index) { return object; } }); table.setLabel(new ResourceModel("Table")); table.setOutputMarkupId(true); table.setNullValid(false); table.setRequired(true); table.add(new RequiredFormFieldBehavior()); table.add(new OnChangeAjaxBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { openAnswerSuggestion.clearVariableValues(); // Set the entity type from the selected table. String path = table.getDefaultModelObjectAsString(); String entityType = null; try { if (path != null) { ValueTable valueTable = magmaInstanceProvider.resolveTable(path); entityType = valueTable.getEntityType(); } } catch (MagmaRuntimeException e) { // ignore } openAnswerSuggestion.setEntityType(entityType); target.addComponent(table); target.addComponent(variableTabbedPanel); } }); add(table).add(new SimpleFormComponentLabel("tableLabel", table)); Locale userLocale = Session.get().getLocale(); List<ITab> tabs = new ArrayList<ITab>(); for (final Locale locale : questionnaireModel.getObject().getLocales()) { AbstractTab tab = new AbstractTab(new Model<String>(locale.getDisplayLanguage(userLocale))) { @Override public Panel getPanel(String panelId) { return new VariablePanel(panelId, new VariableModel(openAnswerSuggestion, locale)); } }; tabs.add(new PanelCachingTab(tab)); } variableTabbedPanel = new AjaxSubmitTabbedPanel("variableTabs", feedbackPanel, feedbackWindow, tabs); variableTabbedPanel.setVisible(!tabs.isEmpty()); WebMarkupContainer variableTabsContainer = new WebMarkupContainer("variableTabsContainer"); variableTabsContainer.setOutputMarkupId(true); variableTabsContainer.add(variableTabbedPanel); add(variableTabsContainer); }
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);//from w ww . j av a 2 s. co 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.widget.attributes.AttributesEditPanel.java
License:Open Source License
public AttributesEditPanel(String id, final IModel<? extends Attributable> attributable, final IModel<FactorizedAttribute> fam, List<Locale> locales, final FeedbackPanel feedbackPanel, final FeedbackWindow feedbackWindow) { super(id);/*from w ww. j a v a2 s . co m*/ Form<Attribute> form = new Form<Attribute>("form"); final FactorizedAttribute fao = fam.getObject(); final Attributable ao = attributable.getObject(); initialNamespace = fao.getNamespace() == null ? "" : fao.getNamespace(); initialName = fao.getName() == null ? "" : fao.getName(); namespaceField = new TextField<String>("namespace", new PropertyModel<String>(fam, "namespace")); nameField = new TextField<String>("name", new PropertyModel<String>(fam, "name")); namespaceField.setLabel(new ResourceModel("Namespace")); nameField.setLabel(new ResourceModel("Name")); form.add(namespaceField).add(new SimpleFormComponentLabel("namespaceLabel", namespaceField)); form.add(nameField).add(new SimpleFormComponentLabel("nameLabel", nameField)); Locale userLocale = Session.get().getLocale(); List<ITab> tabs = new ArrayList<ITab>(); AjaxSubmitTabbedPanel astp = new AjaxSubmitTabbedPanel("tabsLocale", feedbackPanel, feedbackWindow, tabs); AbstractTab nlTab = new AbstractTab(new ResourceModel("NoLocale")) { @Override public Panel getPanel(String panelId) { return new InputPanel(panelId, fao.getValues().get(null)); } }; tabs.add(new PanelCachingTab(nlTab)); for (final Locale locale : locales) { AbstractTab tab = new AbstractTab(new Model<String>(locale.getDisplayLanguage(userLocale))) { @Override public Panel getPanel(String panelId) { return new InputPanel(panelId, fao.getValues().get(locale)); } }; tabs.add(new PanelCachingTab(tab)); } add(form); form.add(astp); form.add(new SaveCancelPanel("saveCancel", form) { @Override protected void onSave(AjaxRequestTarget target, Form<?> form) { validate(form, ao, fao); if (form.hasError()) return; ao.removeAttributes(initialNamespace, initialName); for (Map.Entry<Locale, IModel<String>> entry : fao.getValues().entrySet()) { if (Strings.isNullOrEmpty(entry.getValue().getObject()) == false) { ao.addAttribute(fao.getNamespace(), fao.getName(), entry.getValue().getObject(), entry.getKey()); } } Dialog.closeCurrent(target); } @Override protected void onCancel(AjaxRequestTarget target, Form<?> form) { Dialog.closeCurrent(target); } @Override protected void onError(AjaxRequestTarget target, Form<?> form) { feedbackWindow.setContent(feedbackPanel); feedbackWindow.show(target); } }); }