List of usage examples for org.apache.wicket Component add
public Component add(final Behavior... behaviors)
From source file:ro.nextreports.server.web.dashboard.table.TableRendererPanel.java
License:Apache License
private void setCellStyle(Component header) { Map<String, Object> style = new HashMap<String, Object>(); boolean needed = setIframeStyleParameters(style); if (needed) { String text = HtmlUtil.getCssCode(null, style, needed); header.add(new AttributeAppender("style", Model.of(text))); }/*from w ww .ja v a 2 s . c o m*/ }
From source file:ro.nextreports.server.web.pivot.PivotTable.java
License:Apache License
public PivotTable(String id, PivotModel pivotModel) { super(id);/*from www . j a v a 2 s.c o m*/ List<PivotField> columnFields = pivotModel.getFields(PivotField.Area.COLUMN); List<PivotField> rowFields = pivotModel.getFields(PivotField.Area.ROW); List<PivotField> dataFields = pivotModel.getFields(PivotField.Area.DATA); List<List<Object>> rowKeys = pivotModel.getRowKeys(); List<List<Object>> columnKeys = pivotModel.getColumnKeys(); // rendering header RepeatingView column = new RepeatingView("header"); add(column); int headerRowCount = columnFields.size(); if (headerRowCount == 0) { headerRowCount = 1; } if (dataFields.size() > 1) { // add an extra row (the row with data field titles) headerRowCount++; } Component tmp = null; for (int i = 0; i < headerRowCount; i++) { // rendering row header (first columns) WebMarkupContainer tr = new WebMarkupContainer(column.newChildId()); column.add(tr); RepeatingView rowHeader = new RepeatingView("rowHeader"); tr.add(rowHeader); for (int j = 0; j < rowFields.size(); j++) { if (i < headerRowCount - 1) { // rendering an empty cell tmp = new Label(rowHeader.newChildId(), ""); tmp.add(AttributeModifier.append("class", "empty")); rowHeader.add(tmp); } else { // rendering row field tmp = createTitleLabel(rowHeader.newChildId(), rowFields.get(j)); rowHeader.add(tmp); } } // rendering column keys RepeatingView value = new RepeatingView("value"); tr.add(value); for (List<Object> columnKey : columnKeys) { if (i < columnFields.size()) { PivotField columnField = columnFields.get(i); tmp = createValueLabel(value.newChildId(), columnKey.get(i), columnField); tmp.add(AttributeModifier.append("colspan", dataFields.size())); value.add(tmp); } else { for (PivotField dataField : dataFields) { tmp = createTitleLabel(value.newChildId(), dataField); value.add(tmp); } } } // rendering grand total column RepeatingView grandTotalColumn = new RepeatingView("grandTotalColumn"); if (i == 0) { tmp = new Label(grandTotalColumn.newChildId(), getString("pivot.grandTotal")); tmp.add(AttributeModifier.append("colspan", dataFields.size())); grandTotalColumn.add(tmp); } else if (i < columnFields.size()) { tmp = new WebMarkupContainer(grandTotalColumn.newChildId()); tmp.add(AttributeModifier.append("colspan", dataFields.size())); tmp.add(AttributeModifier.append("class", "empty")); grandTotalColumn.add(tmp); } else { for (PivotField dataField : dataFields) { tmp = createTitleLabel(value.newChildId(), dataField); grandTotalColumn.add(tmp); } } grandTotalColumn.setVisible(!columnFields.isEmpty() && pivotModel.isShowGrandTotalForRow()); tr.add(grandTotalColumn); } // rendering rows RepeatingView row = new RepeatingView("row"); add(row); for (List<Object> rowKey : rowKeys) { WebMarkupContainer tr = new WebMarkupContainer(row.newChildId()); row.add(tr); RepeatingView rowHeader = new RepeatingView("rowHeader"); tr.add(rowHeader); for (int k = 0; k < rowKey.size(); k++) { PivotField rowField = rowFields.get(k); tmp = createValueLabel(rowHeader.newChildId(), rowKey.get(k), rowField); rowHeader.add(tmp); } RepeatingView value = new RepeatingView("value"); tr.add(value); for (List<Object> columnKey : columnKeys) { for (PivotField dataField : dataFields) { Number cellValue = (Number) pivotModel.getValueAt(dataField, rowKey, columnKey); tmp = createValueLabel(value.newChildId(), cellValue, dataField); value.add(tmp); } } if (!columnFields.isEmpty() && pivotModel.isShowGrandTotalForRow()) { MultiMap<PivotField, Object> values = new MultiMap<PivotField, Object>(); for (List<Object> columnKey : columnKeys) { for (PivotField dataField : dataFields) { values.addValue(dataField, pivotModel.getValueAt(dataField, rowKey, columnKey)); } } for (PivotField dataField : dataFields) { double grandTotalForRow = 0.0d; List<Object> items = values.get(dataField); for (Object item : items) { if (item != null) { grandTotalForRow += ((Number) item).doubleValue(); } } tmp = createGrandTotalLabel(value.newChildId(), grandTotalForRow, true); tmp.add(AttributeModifier.append("class", "grand-total")); value.add(tmp); } } } WebMarkupContainer grandTotalRow = new WebMarkupContainer("grandTotalRow"); grandTotalRow.setVisible(!rowFields.isEmpty() && pivotModel.isShowGrandTotalForColumn()); add(grandTotalRow); Label grandTotalRowHeader = new Label("rowHeader", getString("pivot.grandTotal")); grandTotalRowHeader.add(AttributeModifier.append("colspan", rowFields.size())); grandTotalRow.add(grandTotalRowHeader); RepeatingView value = new RepeatingView("value"); grandTotalRow.add(value); Map<PivotField, Double> grandTotal = new HashMap<PivotField, Double>(); for (List<Object> columnKey : columnKeys) { MultiMap<PivotField, Object> values = new MultiMap<PivotField, Object>(); for (List<Object> rowKey : rowKeys) { for (PivotField dataField : dataFields) { values.addValue(dataField, pivotModel.getValueAt(dataField, rowKey, columnKey)); } } for (PivotField dataField : dataFields) { double grandTotalForColumn = 0.0d; List<Object> items = values.get(dataField); for (Object item : items) { if (item != null) { grandTotalForColumn += ((Number) item).doubleValue(); } } if (!grandTotal.containsKey(dataField)) { grandTotal.put(dataField, grandTotalForColumn); } else { grandTotal.put(dataField, grandTotal.get(dataField) + grandTotalForColumn); } tmp = createGrandTotalLabel(value.newChildId(), grandTotalForColumn, false); value.add(tmp); } } if (!columnFields.isEmpty() && pivotModel.isShowGrandTotalForRow()) { for (PivotField dataField : dataFields) { tmp = createGrandTotalLabel(value.newChildId(), grandTotal.get(dataField), true); value.add(tmp); } } }
From source file:ro.nextreports.server.web.report.jasper.JasperRuntimePanel.java
License:Apache License
@SuppressWarnings("unchecked") private void createItem(ListItem<QueryParameter> item) { WebMarkupContainer paletteContainer = new WebMarkupContainer("paletteContainer"); final QueryParameter parameter = item.getModelObject(); IModel generalModel = new PropertyModel(runtimeModel.getParameters(), parameter.getName() + ".rawValue"); IModel listModel = new PropertyModel(runtimeModel.getParameters(), parameter.getName() + ".valueList"); AjaxFormComponentUpdatingBehavior ajaxUpdate = createAjax(parameter); final TextField textField = new TextField("txtValue", generalModel); textField.setVisible(false);/*from www. ja va 2 s. c o m*/ try { textField.setType(Class.forName(parameter.getValueClassName())); } catch (ClassNotFoundException e) { e.printStackTrace(); error(e.getMessage()); } final DateTextField txtDate = new DateTextField("txtDate", generalModel) { @Override public IModel<String> getLabel() { return new Model<String>(getParameterName(parameter)); } }; txtDate.add(new DatePicker() { @Override protected boolean enableMonthYearSelection() { return true; } }); txtDate.setVisible(false); final CheckBox chkBox = new CheckBox("chkBox", generalModel); chkBox.setVisible(false); DropDownChoice downChoice = new DropDownChoice("cmbValue", generalModel, new ArrayList<String>()); downChoice.setVisible(false); Component currentComponent; if (parameter.getSelection().equalsIgnoreCase(QueryParameter.SINGLE_SELECTION)) { if (parameter.getSource() != null && parameter.getSource().trim().length() > 0) { // combo downChoice = new DropDownChoice("cmbValue", generalModel, new LoadableDetachableModel() { @Override protected Object load() { return runtimeModel.getParameters().get(parameter.getName()).getValues(); } }); if (parameter.isMandatory()) { downChoice.setRequired(true); } downChoice.setLabel(new Model<String>(getParameterName(parameter))); downChoice.setVisible(true); currentComponent = downChoice; } else { // not combo if (parameter.getValueClassName().contains("Date")) { if (parameter.isMandatory()) { txtDate.setRequired(true); } txtDate.setVisible(true); currentComponent = txtDate; } else if (parameter.getValueClassName().contains("Boolean")) { if (parameter.isMandatory()) { chkBox.setRequired(true); } chkBox.setLabel(new Model<String>(getParameterName(parameter))); chkBox.setVisible(true); currentComponent = chkBox; } else { if (parameter.isMandatory()) { textField.setRequired(true); } textField.setLabel(new Model<String>(getParameterName(parameter))); textField.setVisible(true); currentComponent = textField; } } paletteContainer.add(new EmptyPanel("palette")); } else { if (parameter.getSource() != null && parameter.getSource().trim().length() > 0) { Palette palette = createPalette(parameter, listModel, ajaxUpdate); paletteContainer.add(palette.setOutputMarkupId(true)); currentComponent = palette; } else { ManualListPanel list = new ManualListPanel(parameter, listModel, 10, ajaxUpdate); paletteContainer.add(list.setOutputMarkupId(true)); currentComponent = list; } } if (USER_PARAM.equals(parameter.getName())) { currentComponent.setEnabled(false); } paramComponentsMap.put(parameter, currentComponent); // if this parameter has dependent parameters // we must update values for those using an ajax update // for Palette this is done in its class if (getChildDependentParameters(parameter).size() > 0) { if (!(currentComponent instanceof Palette)) { currentComponent.add(ajaxUpdate); } } String name = getDisplayableParameterName(parameter); Label lbl = new Label("name", name); lbl.setEscapeModelStrings(false); item.add(lbl); item.add(txtDate.setOutputMarkupId(true)); item.add(downChoice.setOutputMarkupId(true)); item.add(paletteContainer.setOutputMarkupId(true)); item.add(textField.setOutputMarkupId(true)); item.add(chkBox.setOutputMarkupId(true)); }
From source file:ro.nextreports.server.web.report.ParameterRuntimePanel.java
License:Apache License
@SuppressWarnings("unchecked") protected void createItem(ListItem<QueryParameter> item) { Component currentComponent = null; WebMarkupContainer paletteContainer = new WebMarkupContainer("paletteContainer"); final QueryParameter parameter = item.getModelObject(); final IModel generalModel = new PropertyModel(runtimeModel.getParameters(), parameter.getName() + ".rawValue"); IModel listModel = new PropertyModel(runtimeModel.getParameters(), parameter.getName() + ".valueList"); if (runtimeModel.isEdit()) { populateDependentParameters(parameter, null, true); }/*from w ww. j a va 2s. c o m*/ final TextField textField = new TextField("txtValue", generalModel); textField.setVisible(false); try { textField.setType(Class.forName(parameter.getValueClassName())); } catch (ClassNotFoundException e) { e.printStackTrace(); LOG.error(e.getMessage(), e); error(e.getMessage()); } final DateTimeField txtTime = new DateTimeField("txtTime", generalModel) { private static final long serialVersionUID = 1L; @Override public IModel<String> getLabel() { return new Model<String>(getParameterName(parameter)); } @Override protected boolean use12HourFormat() { return false; } @Override protected DateTextField newDateTextField(String id, PropertyModel dateFieldModel) { DateTextField f = super.newDateTextField(id, dateFieldModel); // Important must create a new ajaxUpdate behavior (otherwise an error will rise) // DateTextField uses newDateTextField method in constructor (DateField uses it in onBeforeRenderer method) // that's why for DateField is ok to use the same ajax which is added when component is made visible // for DateTextField ajax behavior is added even if the component is not visible! f.add(createAjax(parameter, generalModel, f)); return f; } protected DatePicker newDatePicker() { return new DatePicker() { private static final long serialVersionUID = 1L; @Override protected void configure(final Map<String, Object> widgetProperties, final IHeaderResponse response, final Map<String, Object> initVariables) { super.configure(widgetProperties, response, initVariables); } @Override protected boolean enableMonthYearSelection() { return true; } }; } }; // add ajax update behavior on hours and minutes textfields txtTime.get("hours").add(createAjax(parameter, generalModel, txtTime.get("hours"), "hours")); txtTime.get("minutes").add(createAjax(parameter, generalModel, txtTime.get("minutes"), "minutes")); txtTime.setVisible(false); final DateField txtDate = new DateField("txtDate", generalModel) { private static final long serialVersionUID = 1L; @Override public IModel<String> getLabel() { return new Model<String>(getParameterName(parameter)); } @Override protected DateTextField newDateTextField(java.lang.String id, PropertyModel dateFieldModel) { DateTextField f = super.newDateTextField(id, dateFieldModel); f.add(createAjax(parameter, generalModel, f)); return f; } protected DatePicker newDatePicker() { return new DatePicker() { private static final long serialVersionUID = 1L; @Override protected void configure(final Map<String, Object> widgetProperties, final IHeaderResponse response, final Map<String, Object> initVariables) { super.configure(widgetProperties, response, initVariables); } @Override protected boolean enableMonthYearSelection() { return true; } }; } }; txtDate.setVisible(false); final CheckBox chkBox = new CheckBox("chkBox", generalModel); chkBox.setVisible(false); DropDownChoice downChoice = new DropDownChoice("cmbValue", generalModel, new ArrayList<String>()); downChoice.setVisible(false); if (parameter.getSelection().equalsIgnoreCase(QueryParameter.SINGLE_SELECTION)) { if (parameter.getSource() != null && parameter.getSource().trim().length() > 0) { // combo downChoice = new DropDownChoice("cmbValue", generalModel, new LoadableDetachableModel() { @Override protected Object load() { // for combo default value can be a simple value or selected for a source (is not an IdName so we make it) // a default value from a manual source is an IdName Object obj = generalModel.getObject(); if ((obj != null) && !(obj instanceof IdName)) { IdName in = new IdName(); in.setId((Serializable) obj); in.setName((Serializable) obj); generalModel.setObject(in); } return runtimeModel.getParameters().get(parameter.getName()).getValues(); } }); if (!parameter.isHidden()) { if (parameter.isMandatory()) { downChoice.setRequired(true); } downChoice.setLabel(new Model<String>(getParameterName(parameter))); downChoice.setVisible(true); } // if parameter is not mandatory, even if we selected something by default, we should allow user to select null values if (!parameter.isMandatory()) { downChoice.setNullValid(true); } currentComponent = downChoice; } else { // not combo if (parameter.getValueClassName().contains("Date")) { if (!parameter.isHidden()) { if (generalModel.getObject() == null) { generalModel.setObject(DateUtil.floor(new Date())); } if (parameter.isMandatory()) { txtDate.setRequired(true); } txtDate.setVisible(true); } currentComponent = txtDate; } else if (parameter.getValueClassName().contains("Timestamp") || parameter.getValueClassName().contains("Time")) { if (!parameter.isHidden()) { if (generalModel.getObject() == null) { generalModel.setObject(DateUtil.floor(new Date())); } if (parameter.isMandatory()) { txtTime.setRequired(true); } txtTime.setVisible(true); } currentComponent = txtTime; } else if (parameter.getValueClassName().contains("Boolean")) { if (!parameter.isHidden()) { if (parameter.isMandatory()) { chkBox.setRequired(true); } chkBox.setLabel(new Model<String>(getParameterName(parameter))); chkBox.setVisible(true); } currentComponent = chkBox; } else { if (!parameter.isHidden()) { if (parameter.isMandatory()) { textField.setRequired(true); } textField.setLabel(new Model<String>(getParameterName(parameter))); textField.setVisible(true); } currentComponent = textField; } } paletteContainer.add(new EmptyPanel("palette")); } else { if (parameter.getSource() != null && parameter.getSource().trim().length() > 0) { if (!parameter.isHidden()) { Palette palette = createPalette(parameter, listModel, createAjax(parameter)); paletteContainer.add(palette.setOutputMarkupId(true)); currentComponent = palette; } else { paletteContainer.add(new EmptyPanel("palette")); } } else { ManualListPanel list = new ManualListPanel(parameter, listModel, 10, createAjax(parameter)); paletteContainer.add(list.setOutputMarkupId(true)); currentComponent = list; } } paramComponentsMap.put(parameter, currentComponent); // if this parameter has dependent parameters // we must update values for those using an ajax update // for Palette this is done in its class // for DateField and DateTimeField is done on the inner DateTextField if (ParameterUtil.getChildDependentParameters(getNextReport(), parameter).size() > 0) { boolean ajaxAlreadyAdded = (currentComponent instanceof Palette) || (currentComponent instanceof DateField) || (currentComponent instanceof DateTimeField); if (!ajaxAlreadyAdded) { currentComponent.add(createAjax(parameter)); } } String name = getDisplayableParameterName(parameter); Label lbl = new Label("name", name); lbl.setEscapeModelStrings(false); lbl.setOutputMarkupId(true); item.add(lbl); txtTime.setOutputMarkupId(true); item.add(txtTime); txtDate.setOutputMarkupId(true); item.add(txtDate); downChoice.setOutputMarkupId(true); item.add(downChoice); paletteContainer.setOutputMarkupId(true); item.add(paletteContainer); textField.setOutputMarkupId(true); item.add(textField); chkBox.setOutputMarkupId(true); item.add(chkBox); }
From source file:sk.drunkenpanda.leaflet.LeafletResourceAppender.java
License:Apache License
/** * {@inheritDoc } //from ww w . ja v a 2 s . c om */ @Override public void onInstantiation(Component component) { if (component instanceof Page) { component.add(LeafletResourcesBehavior.instance()); } }
From source file:wicket.contrib.tinymce4.InPlaceEditComponent.java
License:Open Source License
private void init(Component triggerComponent) { setEscapeModelStrings(false);/*from www.j a v a 2 s .c o m*/ setOutputMarkupId(true); settings = new TinyMCESettings(Theme.modern); settings.setInLine(true); triggerComponent.add(new TinyMceBehavior(settings)); }
From source file:wickettree.table.TreeColumn.java
License:Apache License
public void populateItem(Item<ICellPopulator<T>> cellItem, String componentId, IModel<T> rowModel) { NodeModel<T> nodeModel = (NodeModel<T>) rowModel; Component nodeComponent = getTree().newNodeComponent(componentId, nodeModel.getWrappedModel()); nodeComponent.add(new NodeBorder(nodeModel.getBranches())); cellItem.add(nodeComponent);//from w w w .j a va2s.com }