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:org.efaps.ui.wicket.components.table.row.RowPanel.java

License:Apache License

/**
 * @param _wicketId wicket id for this component
 * @param _model model for this component
 * @param _tablePanel tablepanel this row is in
 * @param _updateListMenu must the listmenu be updated
 * @param _idx index of the current row//from  ww  w .ja v a2s .c om
 * @throws EFapsException on error
 *
 */
public RowPanel(final String _wicketId, final IModel<UIRow> _model, final TablePanel _tablePanel,
        final boolean _updateListMenu, final int _idx) throws EFapsException {
    super(_wicketId, _model);
    final UIRow uirow = (UIRow) super.getDefaultModelObject();

    final UITable uiTable = (UITable) _tablePanel.getDefaultModelObject();
    int i = uiTable.getTableId();

    final RepeatingView cellRepeater = new RepeatingView("cellRepeater");
    add(cellRepeater);

    boolean firstCell = false;
    if (uiTable.isShowCheckBoxes()) {
        final CheckBoxField checkbox = new CheckBoxField(cellRepeater.newChildId(), uirow.getInstanceKey());
        checkbox.setOutputMarkupId(true);
        checkbox.add(AttributeModifier.append("class", "eFapsTableCheckBoxCell eFapsTableCellClear"));
        cellRepeater.add(checkbox);
        i++;
        firstCell = true;
    }
    if (uiTable.isEditable()) {
        final AjaxAddRemoveRowPanel remove = new AjaxAddRemoveRowPanel(cellRepeater.newChildId(),
                Model.of(uiTable), this);
        remove.setOutputMarkupId(true);
        remove.add(AttributeModifier.append("class", "eFapsTableRemoveRowCell eFapsTableCellClear"));
        cellRepeater.add(remove);
        i++;
        firstCell = true;
    }

    for (final IFilterable filterable : uirow.getCells()) {
        Component cell = null;
        boolean fixedWidth = false;
        if (filterable instanceof AbstractUIField) {
            fixedWidth = ((AbstractUIField) filterable).getFieldConfiguration().isFixedWidth();
            cell = new FieldPanel(cellRepeater.newChildId(), Model.of((AbstractUIField) filterable));
        }
        cell.setOutputMarkupId(true);
        if (fixedWidth) {
            if (firstCell) {
                firstCell = false;
                cell.add(AttributeModifier.append("class",
                        "eFapsTableFirstCell eFapsTableCell" + " eFapsCellFixedWidth" + i));
            } else {
                cell.add(AttributeModifier.append("class", "eFapsTableCell eFapsCellFixedWidth" + i));
            }
        } else {
            if (firstCell) {
                firstCell = false;
                cell.add(AttributeModifier.append("class",
                        "eFapsTableFirstCell eFapsTableCell" + " eFapsCellWidth" + i));
            } else {
                cell.add(AttributeModifier.append("class", "eFapsTableCell eFapsCellWidth" + i));
            }
        }
        if (cellRepeater.size() < 1) {
            cell.add(AttributeModifier.append("class", "eFapsTableCellClear"));
        }
        cellRepeater.add(cell);
        i++;
    }

    final RepeatingView hiddenRepeater = new RepeatingView("hiddenRepeater");
    this.add(hiddenRepeater);
    for (final IHidden hidden : uirow.getHidden()) {
        if (!hidden.isAdded()) {
            hiddenRepeater.add(hidden.getComponent(hiddenRepeater.newChildId()));
            hidden.setAdded(true);
        }
    }
    this.add(new RowId("rowId", Model.of((AbstractInstanceObject) uirow)));
}

From source file:org.efaps.ui.wicket.models.field.factories.NumberUIFactory.java

License:Apache License

@Override
public Component getEditable(final String _wicketId, final AbstractUIField _uiField) throws EFapsException {
    Component ret = null;
    if (applies(_uiField)) {
        switch (_uiField.getFieldConfiguration().getUIType()) {
        case DEFAULT:
        case NUMBER:
            ret = new NumberField(_wicketId, Model.of(_uiField), _uiField.getFieldConfiguration());
            break;
        case BUTTON:
        case CHECKBOX:
        case DROPDOWN:
        case RADIO:
        case SNIPPLET:
            ret = ((UITypeFactory) UITypeFactory.get()).getEditableComp(_wicketId, _uiField);
            ret.add(new FormNumberValidator(_uiField));
            break;
        default:/*from   w w w. j a  v a2s  .  c  o  m*/
            break;
        }
    }
    return ret;
}

From source file:org.eknet.wicket.commons.yaml.SubcolumnDef.java

License:Apache License

public void setColumnContent(ComponentSupplier<?> supplier, ContentAlign align) {
    Component c = supplier.get("ccontent");
    c.add(new AttributeModifier("class", align.getCssClass()));
    columnDef.addOrReplace(c);/*ww w  .  java 2s. c  o  m*/
}

From source file:org.geoserver.gwc.web.gridset.TileMatrixSetEditor.java

License:Open Source License

/**
 * @param id/* www.j  a va 2  s.c  o m*/
 * @param model
 *            the model over the appropriate list of {@link Grid}
 * @see WMSInfo#getAuthorityURLs()
 * @see LayerInfo#getAuthorityURLs()
 * @see LayerGroupInfo#getAuthorityURLs()
 */
public TileMatrixSetEditor(final String id, final IModel<GridSetInfo> info) {
    super(id, new PropertyModel<List<Grid>>(info, "levels"));
    add(new TileMatrixSetValidator());

    final IModel<List<Grid>> list = getModel();
    checkNotNull(list.getObject());

    this.info = info;
    this.readOnly = info.getObject().isInternal();

    // container for ajax updates
    final WebMarkupContainer container = new WebMarkupContainer("container");
    container.setOutputMarkupId(true);
    add(container);

    final IModel<Boolean> preserveesolutionsModel = new PropertyModel<Boolean>(info, "resolutionsPreserved");

    final RadioGroup<Boolean> resolutionsOrScales = new RadioGroup<Boolean>("useResolutionsOrScalesGroup",
            preserveesolutionsModel);
    container.add(resolutionsOrScales);

    Radio<Boolean> preserveResolutions = new Radio<Boolean>("preserveResolutions",
            new Model<Boolean>(Boolean.TRUE));
    Radio<Boolean> preserveScales = new Radio<Boolean>("preserveScales", new Model<Boolean>(Boolean.FALSE));

    resolutionsOrScales.add(preserveResolutions);
    resolutionsOrScales.add(preserveScales);

    // update the table when this option changes so either the resolutions or scales column is
    // enabled
    resolutionsOrScales.add(new AjaxFormChoiceComponentUpdatingBehavior() {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            resolutionsOrScales.processInput();
            final boolean useResolutions = resolutionsOrScales.getModelObject().booleanValue();
            Iterator<? extends ListItem<Grid>> iterator = grids.iterator();
            while (iterator.hasNext()) {
                ListItem<Grid> next = iterator.next();
                next.get("resolution").setEnabled(useResolutions);
                next.get("scale").setEnabled(!useResolutions);
            }
            target.addComponent(table);
        }
    });

    // the link list
    table = new WebMarkupContainer("table");
    table.setOutputMarkupId(true);

    table.add(thLabel("level"));
    table.add(thLabel("resolution"));
    table.add(thLabel("scale"));
    table.add(thLabel("name"));
    table.add(thLabel("tiles"));

    container.add(table);

    grids = new ListView<Grid>("gridLevels", new ArrayList<Grid>(list.getObject())) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onBeforeRender() {
            super.onBeforeRender();
        }

        @Override
        protected void populateItem(final ListItem<Grid> item) {
            // odd/even style
            final int index = item.getIndex();
            item.add(new SimpleAttributeModifier("class", index % 2 == 0 ? "even" : "odd"));

            item.add(new Label("zoomLevel", String.valueOf(index)));

            final TextField<Double> resolution;
            final TextField<Double> scale;
            final TextField<String> name;
            final Label tiles;
            final Component removeLink;

            resolution = new DecimalTextField("resolution",
                    new PropertyModel<Double>(item.getModel(), "resolution"));
            resolution.setOutputMarkupId(true);
            item.add(resolution);

            scale = new DecimalTextField("scale", new PropertyModel<Double>(item.getModel(), "scaleDenom"));
            scale.setOutputMarkupId(true);
            item.add(scale);

            name = new TextField<String>("name", new PropertyModel<String>(item.getModel(), "name"));
            item.add(name);

            IModel<String> tilesModel = new IModel<String>() {
                private static final long serialVersionUID = 1L;

                @Override
                public String getObject() {
                    // resolution.processInput();
                    Double res = resolution.getModelObject();
                    GridSetInfo gridSetInfo = TileMatrixSetEditor.this.info.getObject();
                    final ReferencedEnvelope extent = gridSetInfo.getBounds();
                    if (res == null || extent == null) {
                        return "--";
                    }
                    final int tileWidth = gridSetInfo.getTileWidth();
                    final int tileHeight = gridSetInfo.getTileHeight();
                    final double mapUnitWidth = tileWidth * res.doubleValue();
                    final double mapUnitHeight = tileHeight * res.doubleValue();

                    final long tilesWide = (long) Math
                            .ceil((extent.getWidth() - mapUnitWidth * 0.01) / mapUnitWidth);
                    final long tilesHigh = (long) Math
                            .ceil((extent.getHeight() - mapUnitHeight * 0.01) / mapUnitHeight);

                    NumberFormat nf = NumberFormat.getIntegerInstance();// so it shows grouping
                                                                        // for large numbers
                    String tilesStr = nf.format(tilesWide) + " x " + nf.format(tilesHigh);

                    return tilesStr;
                }

                @Override
                public void detach() {
                    //
                }

                @Override
                public void setObject(String object) {
                    //
                }
            };

            tiles = new Label("tiles", tilesModel);
            tiles.setOutputMarkupId(true);
            item.add(tiles);

            // remove link
            if (TileMatrixSetEditor.this.readOnly) {
                removeLink = new Label("removeLink", "");
            } else {
                removeLink = new ImageAjaxLink("removeLink", GWCIconFactory.DELETE_ICON) {
                    private static final long serialVersionUID = 1L;

                    @Override
                    protected void onClick(AjaxRequestTarget target) {
                        List<Grid> list = new ArrayList<Grid>(grids.getModelObject());
                        int index = ((Integer) getDefaultModelObject()).intValue();
                        list.remove(index);
                        grids.setModelObject(list);
                        target.addComponent(container);
                    }
                };
                removeLink.setDefaultModel(new Model<Integer>(Integer.valueOf(index)));
                removeLink.add(new AttributeModifier("title", true,
                        new ResourceModel("TileMatrixSetEditor.removeLink")));
            }
            item.add(removeLink);

            final boolean isResolutionsPreserved = preserveesolutionsModel.getObject();
            resolution.setEnabled(isResolutionsPreserved);
            scale.setEnabled(!isResolutionsPreserved);

            resolution.add(new AjaxFormComponentUpdatingBehavior("onblur") {
                private static final long serialVersionUID = 1L;

                @Override
                protected void onUpdate(AjaxRequestTarget target) {
                    resolution.processInput();
                    Double res = resolution.getModelObject();
                    Double scaleDenominator = null;
                    if (null != res) {
                        GridSetInfo gridSetInfo = TileMatrixSetEditor.this.info.getObject();
                        Double metersPerUnit = gridSetInfo.getMetersPerUnit();
                        if (metersPerUnit != null) {
                            scaleDenominator = res.doubleValue() * metersPerUnit.doubleValue()
                                    / GridSetFactory.DEFAULT_PIXEL_SIZE_METER;
                        }
                    }
                    scale.setModelObject(scaleDenominator);
                    target.addComponent(resolution);
                    target.addComponent(scale);
                    target.addComponent(tiles);
                }
            });

            scale.add(new AjaxFormComponentUpdatingBehavior("onblur") {
                private static final long serialVersionUID = 1L;

                @Override
                protected void onUpdate(AjaxRequestTarget target) {
                    scale.processInput();
                    final Double scaleDenominator = scale.getModelObject();
                    Double res = null;
                    if (null != scaleDenominator) {
                        GridSetInfo gridSetInfo = TileMatrixSetEditor.this.info.getObject();
                        final double pixelSize = gridSetInfo.getPixelSize();
                        Double metersPerUnit = gridSetInfo.getMetersPerUnit();
                        if (metersPerUnit != null) {
                            res = pixelSize * scaleDenominator / metersPerUnit;
                        }
                    }
                    resolution.setModelObject(res);
                    target.addComponent(resolution);
                    target.addComponent(scale);
                    target.addComponent(tiles);
                }
            });
        }
    };
    grids.setOutputMarkupId(true);
    // this is necessary to avoid loosing item contents on edit/validation checks
    grids.setReuseItems(true);
    table.add(grids);

}

From source file:org.geoserver.gwc.web.layer.GridSubsetsEditor.java

License:Open Source License

public GridSubsetsEditor(final String id, final IModel<Set<XMLGridSubset>> model) {
    super(id, model);
    add(validator = new GridSubsetListValidator());

    // container for ajax updates
    final WebMarkupContainer container = new WebMarkupContainer("container");
    container.setOutputMarkupId(true);//from   ww w.j  ava2s  .  c  om
    add(container);

    // the link list
    table = new WebMarkupContainer("table");
    table.setOutputMarkupId(true);

    container.add(table);

    grids = new ListView<XMLGridSubset>("gridSubsets", new ArrayList<XMLGridSubset>(model.getObject())) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onBeforeRender() {
            super.onBeforeRender();
        }

        @Override
        protected void populateItem(final ListItem<XMLGridSubset> item) {
            // odd/even style
            final int index = item.getIndex();
            item.add(new SimpleAttributeModifier("class", index % 2 == 0 ? "even" : "odd"));

            final XMLGridSubset gridSubset = item.getModelObject();
            GridSetBroker gridSetBroker = GWC.get().getGridSetBroker();

            String gridsetDescription = null;
            int gridsetLevels;
            boolean gridsetExists;
            {
                final GridSet gridSet = gridSetBroker.get(gridSubset.getGridSetName());
                gridsetExists = gridSet != null;
                if (gridsetExists) {
                    gridsetLevels = gridSet.getNumLevels();
                    gridsetDescription = gridSet.getDescription();
                } else {
                    gridsetLevels = gridSubset.getZoomStop() == null ? 1 : gridSubset.getZoomStop().intValue();
                }
            }
            final Label gridSetLabel;
            final Component gridSetBounds;

            gridSetLabel = new Label("gridSet", new PropertyModel<String>(item.getModel(), "gridSetName"));
            if (!gridsetExists) {
                gridSetLabel.add(new AttributeModifier("style", true,
                        new Model<String>("color:red;text-decoration:line-through;")));
                getPage().warn("GridSet " + gridSubset.getGridSetName() + " does not exist");
            }
            item.add(gridSetLabel);
            if (null != gridsetDescription) {
                gridSetLabel.add(new AttributeModifier("title", true, new Model<String>(gridsetDescription)));
            }

            final Component removeLink;

            final int maxZoomLevel = gridsetLevels - 1;
            final ArrayList<Integer> zoomLevels = new ArrayList<Integer>(maxZoomLevel + 1);
            for (int z = 0; z <= maxZoomLevel; z++) {
                zoomLevels.add(Integer.valueOf(z));
            }

            // zoomStart has all zoom levels as choices
            // zoomStop choices start at zoomStart's selection
            // minCachedLevel start at zoomStart's selection and ends at zoomStop's selection
            // maxCachedLevel start at minCachedLevels' and ends at zoomStop's selection

            final IModel<Integer> zoomStartModel;
            final IModel<Integer> zoomStopModel;
            final IModel<Integer> minCachedLevelModel;
            final IModel<Integer> maxCachedLevelModel;

            final ZoomLevelDropDownChoice zoomStart;
            final ZoomLevelDropDownChoice zoomStop;
            final ZoomLevelDropDownChoice minCachedLevel;
            final ZoomLevelDropDownChoice maxCachedLevel;

            zoomStartModel = new PropertyModel<Integer>(item.getModel(), "zoomStart");
            zoomStopModel = new PropertyModel<Integer>(item.getModel(), "zoomStop");
            minCachedLevelModel = new PropertyModel<Integer>(item.getModel(), "minCachedLevel");
            maxCachedLevelModel = new PropertyModel<Integer>(item.getModel(), "maxCachedLevel");

            @SuppressWarnings({ "rawtypes", "unchecked" })
            final IModel<List<Integer>> allLevels = new Model(zoomLevels);

            zoomStart = new ZoomLevelDropDownChoice("zoomStart", zoomStartModel, allLevels);
            zoomStart.setEnabled(gridsetExists);
            item.add(zoomStart);

            zoomStop = new ZoomLevelDropDownChoice("zoomStop", zoomStopModel, allLevels);
            zoomStop.setEnabled(gridsetExists);
            item.add(zoomStop);

            minCachedLevel = new ZoomLevelDropDownChoice("minCachedLevel", minCachedLevelModel, allLevels);
            minCachedLevel.setEnabled(gridsetExists);
            item.add(minCachedLevel);

            maxCachedLevel = new ZoomLevelDropDownChoice("maxCachedLevel", maxCachedLevelModel, allLevels);
            maxCachedLevel.setEnabled(gridsetExists);
            item.add(maxCachedLevel);

            for (ZoomLevelDropDownChoice dropDown : Arrays.asList(zoomStart, zoomStop, minCachedLevel,
                    maxCachedLevel)) {
                dropDown.add(new OnChangeAjaxBehavior() {
                    private static final long serialVersionUID = 1L;

                    // cascades to zoomStop, min and max cached levels
                    @Override
                    protected void onUpdate(AjaxRequestTarget target) {
                        updateValidZoomRanges(zoomStart, zoomStop, minCachedLevel, maxCachedLevel, target);
                    }
                });
            }

            updateValidZoomRanges(zoomStart, zoomStop, minCachedLevel, maxCachedLevel, null);

            // gridSetBounds = new EnvelopePanel("bounds");
            // gridSetBounds.setCRSFieldVisible(false);
            // gridSetBounds.setCrsRequired(false);
            // gridSetBounds.setLabelsVisibility(false);
            // gridSetBounds.setModel(new Model<ReferencedEnvelope>(new ReferencedEnvelope()));
            gridSetBounds = new Label("bounds", new ResourceModel("GridSubsetsEditor.bounds.dynamic"));
            item.add(gridSetBounds);

            removeLink = new ImageAjaxLink("removeLink", GWCIconFactory.DELETE_ICON) {
                private static final long serialVersionUID = 1L;

                @Override
                protected void onClick(AjaxRequestTarget target) {
                    List<XMLGridSubset> list;
                    list = new ArrayList<XMLGridSubset>(grids.getModelObject());
                    final XMLGridSubset subset = (XMLGridSubset) getDefaultModelObject();

                    list.remove(subset);

                    grids.setModelObject(list);

                    List<String> choices = new ArrayList<String>(availableGridSets.getChoices());
                    choices.add(subset.getGridSetName());
                    Collections.sort(choices);
                    availableGridSets.setChoices(choices);

                    target.addComponent(container);
                    target.addComponent(availableGridSets);
                }
            };
            removeLink.setDefaultModel(item.getModel());
            removeLink.add(
                    new AttributeModifier("title", true, new ResourceModel("GridSubsetsEditor.removeLink")));
            item.add(removeLink);
        }
    };

    grids.setOutputMarkupId(true);
    // this is necessary to avoid loosing item contents on edit/validation checks
    grids.setReuseItems(true);
    table.add(grids);

    List<String> gridSetNames = new ArrayList<String>(GWC.get().getGridSetBroker().getNames());
    for (XMLGridSubset gs : model.getObject()) {
        gridSetNames.remove(gs.getGridSetName());
    }
    Collections.sort(gridSetNames);

    GeoServerAjaxFormLink addGridsubsetLink = new GeoServerAjaxFormLink("addGridSubset") {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onClick(AjaxRequestTarget target, Form form) {
            availableGridSets.processInput();

            final String selectedGridset = availableGridSets.getModelObject();
            if (null == selectedGridset) {
                return;
            }

            List<String> choices = new ArrayList<String>(availableGridSets.getChoices());
            choices.remove(selectedGridset);
            availableGridSets.setChoices(choices);
            availableGridSets.setEnabled(!choices.isEmpty());

            XMLGridSubset newSubset = new XMLGridSubset();
            newSubset.setGridSetName(selectedGridset);
            grids.getModelObject().add(newSubset);

            target.addComponent(table);
            target.addComponent(availableGridSets);
        }
    };
    addGridsubsetLink.add(new Icon("addIcon", GWCIconFactory.ADD_ICON));
    add(addGridsubsetLink);

    availableGridSets = new DropDownChoice<String>("availableGridsets", new Model<String>(), gridSetNames);
    availableGridSets.setOutputMarkupId(true);
    add(availableGridSets);

}

From source file:org.geoserver.importer.web.ImportTaskTable.java

License:Open Source License

@Override
protected Component getComponentForProperty(String id, final IModel itemModel, Property property) {
    if (property == ImportTaskProvider.NAME) {
        return new LayerLinkPanel(id, itemModel);
    }// w w w . java  2 s .com

    if (property == ImportTaskProvider.STATUS) {
        ImportTask.State state = (ImportTask.State) property.getModel(itemModel).getObject();
        Component c = null;
        if (state == ImportTask.State.ERROR) {
            c = new SimpleAjaxLink<ImportTask>(id, itemModel,
                    new StatusDescriptionModel(property.getModel(itemModel))) {
                @Override
                protected void onClick(AjaxRequestTarget target) {
                    popupWindow.setContent(
                            new ExceptionPanel(popupWindow.getContentId(), getModelObject().getError()));
                    popupWindow.show(target);
                }
            };
        } else {

            c = new Label(id, new StatusDescriptionModel(property.getModel(itemModel)));
        }

        String cssClass = new StatusIconModel(property.getModel(itemModel)).getCssClass();
        return c.add(new SimpleAttributeModifier("class", cssClass));
    }
    if (property == ImportTaskProvider.ACTION) {

        ImportTask.State state = (ImportTask.State) property.getModel(itemModel).getObject();
        switch (state) {
        case COMPLETE:
            //link to map preview
            return new LayerPreviewPanel(id, itemModel);
        case NO_CRS:
            //provide link to choose crs
            return new NoCRSPanel(id, itemModel);
        //return createFixCRSLink(id, itemModel);
        case READY:
            //return advanced option link
            //for now disable if this is not a vector layer
            ImportTask task = (ImportTask) itemModel.getObject();
            if (task.getLayer() != null && task.getLayer().getResource() instanceof FeatureTypeInfo) {
                return new AdvancedOptionPanel(id, itemModel);
            }
            return new WebMarkupContainer(id);
        default:
            return new WebMarkupContainer(id);
        }
    }
    return null;
}

From source file:org.geoserver.web.data.store.DefaultDataStoreEditPanel.java

License:Open Source License

/**
 * Creates a new parameters panel with a list of input fields matching the {@link Param}s for
 * the factory related to the {@code DataStoreInfo} that's the model of the provided {@code
 * Form}./*from   w w w . j a v  a2  s .co  m*/
 * 
 * @param componentId
 *            the id for this component instance
 * @param storeEditForm
 *            the form being build by the calling class, whose model is the
 *            {@link DataStoreInfo} being edited
 */
public DefaultDataStoreEditPanel(final String componentId, final Form storeEditForm) {
    super(componentId, storeEditForm);

    final IModel model = storeEditForm.getModel();
    final DataStoreInfo info = (DataStoreInfo) model.getObject();
    final Catalog catalog = getCatalog();
    final ResourcePool resourcePool = catalog.getResourcePool();
    DataAccessFactory dsFactory;
    try {
        dsFactory = resourcePool.getDataStoreFactory(info);
    } catch (IOException e) {
        throw new RuntimeException(e);
    }

    final Map<String, ParamInfo> paramsMetadata = new LinkedHashMap<String, ParamInfo>();

    {
        final boolean isNew = null == info.getId();
        final Param[] dsParams = dsFactory.getParametersInfo();
        for (Param p : dsParams) {
            ParamInfo paramInfo = new ParamInfo(p);
            // hide the repository params, the resource pool will inject it transparently
            if (!Repository.class.equals(paramInfo.getBinding())) {
                paramsMetadata.put(p.key, paramInfo);
                if (isNew && !p.isDeprecated()) {
                    applyParamDefault(paramInfo, info);
                }
            }
        }
    }

    final List<String> keys = new ArrayList<String>(paramsMetadata.keySet());
    final IModel paramsModel = new PropertyModel(model, "connectionParameters");

    ListView paramsList = new ListView("parameters", keys) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem item) {
            String paramName = item.getDefaultModelObjectAsString();
            ParamInfo paramMetadata = paramsMetadata.get(paramName);

            Component inputComponent;
            inputComponent = getInputComponent("parameterPanel", paramsModel, paramMetadata);

            String description = paramMetadata.getTitle();
            if (description != null) {
                inputComponent.add(new SimpleAttributeModifier("title", description));
            }
            item.add(inputComponent);
        }
    };
    // needed for form components not to loose state
    paramsList.setReuseItems(true);

    add(paramsList);

}

From source file:org.geoserver.web.translator.view.TranslationEditPage.java

License:Open Source License

private Component changeUiLanguageChoice() {
    final IModel sessionModel = new Model(getSession());
    final IModel uiLocaleModel = new PropertyModel(sessionModel, "locale");
    IModel choices = new LocaleListDetachableModel(true, uiLocaleModel);

    final Component uiLanguageChoice = new LocaleDropDown("changeUiLanguage", uiLocaleModel, uiLocaleModel,
            choices);/*from w ww. j  a va 2  s .  co m*/

    uiLanguageChoice.add(new AjaxFormSubmitBehavior(changeUILanguageForm, "onChange") {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onSubmit(final AjaxRequestTarget target) {
            getGeoServerApplication().clearWicketCaches();
            setResponsePage(TranslationEditPage.this);
        }

        @Override
        protected void onError(final AjaxRequestTarget target) {
            //
        }
    });
    return uiLanguageChoice;
}

From source file:org.hippoecm.frontend.plugins.gallery.columns.modify.MimeTypeAttributeModifier.java

License:Apache License

@Override
public AttributeModifier getCellAttributeModifier(Node node) {
    return new CssClassAppender(new MimeTypeAttributeModel(new JcrNodeModel(node))) {
        @Override//from   w ww .  j a v a 2s  .co m
        public void bind(Component hostComponent) {
            super.bind(hostComponent);
            hostComponent.add(new Behavior() {
                @Override
                public void renderHead(Component component, final IHeaderResponse response) {
                    response.render(CssHeaderItem.forReference(CSS_RESOURCE_REFERENCE));
                }
            });
        }
    };
}

From source file:org.hippoecm.frontend.plugins.gallery.editor.ImageCropEditorDialog.java

License:Apache License

public ImageCropEditorDialog(IModel<Node> jcrImageNodeModel, GalleryProcessor galleryProcessor) {
    super(jcrImageNodeModel);

    setSize(DIALOG_SIZE);/*from w  w  w  .  j a  v a2s. c o  m*/
    setTitleKey(DIALOG_TITLE);

    this.galleryProcessor = galleryProcessor;
    Node thumbnailImageNode = jcrImageNodeModel.getObject();

    HiddenField<String> regionField = new HiddenField<>("region", new PropertyModel<>(this, "region"));
    regionField.setOutputMarkupId(true);
    add(regionField);

    Component originalImage, imgPreview;
    try {
        Node originalImageNode = thumbnailImageNode.getParent()
                .getNode(HippoGalleryNodeType.IMAGE_SET_ORIGINAL);
        originalImageDimension = new Dimension(
                (int) originalImageNode.getProperty(HippoGalleryNodeType.IMAGE_WIDTH).getLong(),
                (int) originalImageNode.getProperty(HippoGalleryNodeType.IMAGE_HEIGHT).getLong());

        JcrNodeModel originalNodeModel = new JcrNodeModel(originalImageNode);
        originalImage = new JcrImage("image", new JcrResourceStream(originalNodeModel));
        imgPreview = new JcrImage("imagepreview", new JcrResourceStream(originalNodeModel));

    } catch (RepositoryException e) {
        log.error("Cannot retrieve original image", e);
        error(e);
        originalImage = new EmptyPanel("image");
        imgPreview = new EmptyPanel("imagepreview");
    }

    WebMarkupContainer imagePreviewContainer = new WebMarkupContainer("previewcontainer");
    imagePreviewContainer.setOutputMarkupId(true);
    try {
        configuredDimension = galleryProcessor.getDesiredResourceDimension(thumbnailImageNode);
        thumbnailDimension = handleZeroValueInDimension(originalImageDimension, configuredDimension);

        final double previewCropFactor = determinePreviewScalingFactor(thumbnailDimension.getWidth(),
                thumbnailDimension.getHeight());
        final double previewWidth = Math.floor(previewCropFactor * thumbnailDimension.getWidth());
        final double previewHeight = Math.floor(previewCropFactor * thumbnailDimension.getHeight());

        imagePreviewContainer
                .add(new AttributeAppender("style", Model.of("width:" + previewWidth + "px"), ";"));
        imagePreviewContainer
                .add(new AttributeAppender("style", Model.of("height:" + previewHeight + "px"), ";"));

    } catch (RepositoryException | GalleryException e) {
        log.error("Cannot retrieve thumbnail dimensions", e);
        error(e);
    }

    boolean isUpscalingEnabled = true;
    try {
        isUpscalingEnabled = galleryProcessor.isUpscalingEnabled(thumbnailImageNode);
    } catch (GalleryException | RepositoryException e) {
        log.error("Cannot retrieve Upscaling configuration option", e);
        error(e);
    }

    Label thumbnailSize = new Label("thumbnail-size", new StringResourceModel("thumbnail-size", this, null));
    thumbnailSize.setOutputMarkupId(true);
    add(thumbnailSize);
    //
    cropSettings = new ImageCropSettings(regionField.getMarkupId(), imagePreviewContainer.getMarkupId(),
            originalImageDimension, configuredDimension, thumbnailDimension, isUpscalingEnabled, false,
            thumbnailSize.getMarkupId(true));

    if (configuredDimension.width > originalImageDimension.width
            || configuredDimension.height > originalImageDimension.height) {
        final double cropFactor = determineScalingFactor(configuredDimension.getWidth(),
                configuredDimension.getHeight(), originalImageDimension.getWidth(),
                originalImageDimension.getHeight());
        cropSettings.setInitialWidth((int) Math.floor(cropFactor * configuredDimension.getWidth()));
        cropSettings.setInitialHeight((int) Math.floor(cropFactor * configuredDimension.getHeight()));
    }

    final ImageCropBehavior imageCropBehavior = new ImageCropBehavior(cropSettings);
    final IModel<Boolean> fitViewModel = new PropertyModel<>(this.cropSettings, "fitView");
    final AjaxCheckBox fitViewCheckbox = new AjaxCheckBox("fit-view", fitViewModel) {
        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            executeFitInView(target, imageCropBehavior);
        }
    };
    fitViewCheckbox.setOutputMarkupId(true);
    add(fitViewCheckbox);

    originalImage.add(imageCropBehavior);
    originalImage.setOutputMarkupId(true);

    add(originalImage);
    imgPreview.add(new AttributeAppender("style", Model.of("position:absolute"), ";"));
    imagePreviewContainer.add(imgPreview);
    imagePreviewContainer.setVisible(cropSettings.isPreviewVisible());
    add(imagePreviewContainer);

    add(new Label("preview-description",
            cropSettings.isPreviewVisible() ? new StringResourceModel("preview-description-enabled", this, null)
                    : new StringResourceModel("preview-description-disabled", this, null)));

    compressionQuality = 1.0f;
    try {
        compressionQuality = galleryProcessor.getScalingParametersMap().get(thumbnailImageNode.getName())
                .getCompressionQuality();
    } catch (RepositoryException e) {
        log.info("Cannot retrieve compression quality.", e);
    }
}