Example usage for org.apache.wicket Component add

List of usage examples for org.apache.wicket Component add

Introduction

In this page you can find the example usage for org.apache.wicket Component add.

Prototype

public Component add(final Behavior... behaviors) 

Source Link

Document

Adds a behavior modifier to the component.

Usage

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
}