Example usage for org.apache.wicket.ajax AjaxEventBehavior AjaxEventBehavior

List of usage examples for org.apache.wicket.ajax AjaxEventBehavior AjaxEventBehavior

Introduction

In this page you can find the example usage for org.apache.wicket.ajax AjaxEventBehavior AjaxEventBehavior.

Prototype

public AjaxEventBehavior(String event) 

Source Link

Document

Construct.

Usage

From source file:org.geoserver.web.data.resource.ResourceConfigurationPageTest.java

License:Open Source License

@Test
public void testUpdateResource() {
    LayerInfo layer = getGeoServerApplication().getCatalog().getLayerByName(getLayerId(MockData.GEOMETRYLESS));

    login();/*from ww w .j av a  2  s  . c  o  m*/
    ResourceConfigurationPage page = new ResourceConfigurationPage(layer, false);

    tester.startPage(page);
    tester.assertContainsNot("the_geom");

    FeatureTypeInfo info = getCatalog().getResourceByName(MockData.BRIDGES.getLocalPart(),
            FeatureTypeInfo.class);

    //Apply the new feature to the page
    page.add(new AjaxEventBehavior("ondblclick") {
        public void onEvent(AjaxRequestTarget target) {
            page.updateResource(info, target);
        }
    });
    tester.executeAjaxEvent(page, "ondblclick");
    print(tester.getLastRenderedPage(), true, true);

    //verify contents were updated
    tester.assertContains("the_geom");
}

From source file:org.geoserver.web.netcdf.GHRSSTExtensionPanel.java

License:Open Source License

public GHRSSTExtensionPanel(String id, IModel<?> model, NetCDFPanel parent) {
    super(id, model);
    this.parent = parent;

    PropertyModel<MetadataMap> metadataModel = new PropertyModel<>(model, "metadata");
    enabled = new CheckBox("enabled",
            new MetadataMapModel<>(metadataModel, GHRSSTEncoder.SETTINGS_KEY, Boolean.class));
    add(enabled);//from  w  ww . ja  va2s.  c  om

    WebMarkupContainer settings = new WebMarkupContainer("settings");
    settings.setOutputMarkupId(true);
    add(settings);
    this.rdac = getAutocompleter("rdac",
            new MetadataMapModel<>(metadataModel, GHRSSTEncoder.SETTINGS_RDAC_KEY, String.class), RDACS);
    rdac.setRequired(true);
    settings.add(rdac);
    this.processingLevel = getAutocompleter("processingLevel",
            new MetadataMapModel<>(metadataModel, GHRSSTEncoder.SETTINGS_PROCESSING_LEVEL_KEY, String.class),
            PROCESSING_LEVELS);
    processingLevel.setRequired(true);
    settings.add(processingLevel);
    this.sstType = getAutocompleter("sstType",
            new MetadataMapModel<>(metadataModel, GHRSSTEncoder.SETTINGS_SST_TYPE, String.class), SST_TYPES);
    sstType.setRequired(true);
    settings.add(sstType);
    this.productString = getAutocompleter("productString",
            new MetadataMapModel<>(metadataModel, GHRSSTEncoder.SETTINGS_PRODUCT_STRING, String.class),
            PRODUCT_STRINGS);
    productString.setRequired(true);
    settings.add(productString);

    // enable/disable on open 
    settings.visitChildren((component, visit) -> {
        component.setEnabled(Boolean.TRUE.equals(enabled.getModelObject()));
    });

    enabled.add(new AjaxEventBehavior("change") {
        @Override
        protected void onEvent(AjaxRequestTarget target) {
            enabled.processInput();
            boolean enableSettings = Boolean.TRUE.equals(enabled.getModelObject());
            settings.visitChildren((component, visit) -> {
                component.setEnabled(enableSettings);
            });
            target.add(settings);
        }
    });
}

From source file:org.geoserver.web.treeview.TreeViewTest.java

License:Open Source License

@Test
public void testSelection() {
    //initially nothing selected
    assertTrue(treeView.getSelectedNodes().isEmpty());
    assertEquals(0, treeView.getSelectedViews().length);

    //select programmatically, without ajax
    treeView.setSelectedNode(four);/*from   www. ja  v a 2  s  . c o m*/
    assertArrayEquals(new Object[] { four }, treeView.getSelectedNodes().toArray());
    //automatic expand
    assertEquals(true, two.getExpanded().getObject());
    assertEquals(true, one.getExpanded().getObject());
    //view
    tester.startComponentInPage(treeView);
    assertEquals("4", treeView.getSelectedViews()[0].getId());
    assertTrue(
            tester.getComponentFromLastRenderedPage("treeView:rootView:1:children:2:children:4:selectableLabel")
                    .getBehaviors().contains(TreeView.SELECTED_BEHAVIOR));

    //to test selection listening:
    final AtomicBoolean fired = new AtomicBoolean();
    treeView.addSelectionListener(target -> {
        fired.set(true);
    });

    //select programmatically, with ajax        
    treeView.add(new AjaxEventBehavior("testSelectWithAjax") {
        private static final long serialVersionUID = 4422989219680841271L;

        @Override
        protected void onEvent(AjaxRequestTarget target) {
            treeView.setSelectedNode(three, target);
        }
    });
    fired.set(false);
    tester.executeAjaxEvent(treeView, "testSelectWithAjax");
    assertTrue(fired.get());
    assertArrayEquals(new Object[] { three }, treeView.getSelectedNodes().toArray());
    assertEquals("3", treeView.getSelectedViews()[0].getId());
    assertFalse(
            tester.getComponentFromLastRenderedPage("treeView:rootView:1:children:2:children:4:selectableLabel")
                    .getBehaviors().contains(TreeView.SELECTED_BEHAVIOR));
    assertTrue(tester.getComponentFromLastRenderedPage("treeView:rootView:1:children:3:selectableLabel")
            .getBehaviors().contains(TreeView.SELECTED_BEHAVIOR));

    //select with gui 
    fired.set(false);
    tester.executeAjaxEvent("treeView:rootView:1:children:2:label:selectableLabel", "click");
    assertTrue(fired.get());
    assertArrayEquals(new Object[] { two }, treeView.getSelectedNodes().toArray());
    assertEquals("2", treeView.getSelectedViews()[0].getId());
    assertFalse(tester.getComponentFromLastRenderedPage("treeView:rootView:1:children:3:selectableLabel")
            .getBehaviors().contains(TreeView.SELECTED_BEHAVIOR));
    assertTrue(tester.getComponentFromLastRenderedPage("treeView:rootView:1:children:2:label:selectableLabel")
            .getBehaviors().contains(TreeView.SELECTED_BEHAVIOR));

    //automatic unselect when unexpanding
    tester.executeAjaxEvent("treeView:rootView:1:cbExpand", "click");
    assertEquals(false, one.getExpanded().getObject());
    assertTrue(treeView.getSelectedNodes().isEmpty());
    assertEquals(0, treeView.getSelectedViews().length);

    //multi-select toggle with ctrl
    tester.executeAjaxEvent("treeView:rootView:1:children:2:label:selectableLabel", "click");
    fired.set(false);
    tester.getRequest().addParameter("ctrl", "true");
    tester.executeAjaxEvent("treeView:rootView:1:children:3:selectableLabel", "click");
    assertTrue(fired.get());
    assertEquals(2, treeView.getSelectedNodes().size());
    assertTrue(treeView.getSelectedNodes().contains(two));
    assertTrue(treeView.getSelectedNodes().contains(three));
    assertEquals(2, treeView.getSelectedViews().length);
    assertTrue(tester.getComponentFromLastRenderedPage("treeView:rootView:1:children:3:selectableLabel")
            .getBehaviors().contains(TreeView.SELECTED_BEHAVIOR));
    assertTrue(tester.getComponentFromLastRenderedPage("treeView:rootView:1:children:2:label:selectableLabel")
            .getBehaviors().contains(TreeView.SELECTED_BEHAVIOR));
    fired.set(false);
    tester.getRequest().addParameter("ctrl", "true");
    tester.executeAjaxEvent("treeView:rootView:1:children:2:label:selectableLabel", "click");
    assertTrue(fired.get());
    assertArrayEquals(new Object[] { three }, treeView.getSelectedNodes().toArray());
    assertEquals("3", treeView.getSelectedViews()[0].getId());
    assertFalse(
            tester.getComponentFromLastRenderedPage("treeView:rootView:1:children:2:children:4:selectableLabel")
                    .getBehaviors().contains(TreeView.SELECTED_BEHAVIOR));
    assertTrue(tester.getComponentFromLastRenderedPage("treeView:rootView:1:children:3:selectableLabel")
            .getBehaviors().contains(TreeView.SELECTED_BEHAVIOR));

    //multi-select with shift
    tester.executeAjaxEvent("treeView:rootView:1:children:2:label:selectableLabel", "click");
    fired.set(false);
    tester.getRequest().addParameter("shift", "true");
    tester.executeAjaxEvent("treeView:rootView:1:children:5:selectableLabel", "click");
    assertTrue(fired.get());
    assertEquals(3, treeView.getSelectedNodes().size());
    assertTrue(treeView.getSelectedNodes().contains(two));
    assertTrue(treeView.getSelectedNodes().contains(three));
    assertTrue(treeView.getSelectedNodes().contains(five));
    assertEquals(3, treeView.getSelectedViews().length);
    assertTrue(tester.getComponentFromLastRenderedPage("treeView:rootView:1:children:3:selectableLabel")
            .getBehaviors().contains(TreeView.SELECTED_BEHAVIOR));
    assertTrue(tester.getComponentFromLastRenderedPage("treeView:rootView:1:children:5:selectableLabel")
            .getBehaviors().contains(TreeView.SELECTED_BEHAVIOR));
    assertTrue(tester.getComponentFromLastRenderedPage("treeView:rootView:1:children:2:label:selectableLabel")
            .getBehaviors().contains(TreeView.SELECTED_BEHAVIOR));

    //same but upside down
    tester.executeAjaxEvent("treeView:rootView:1:children:5:selectableLabel", "click");
    fired.set(false);
    tester.getRequest().addParameter("shift", "true");
    tester.executeAjaxEvent("treeView:rootView:1:children:2:label:selectableLabel", "click");
    assertTrue(fired.get());
    assertEquals(3, treeView.getSelectedNodes().size());
    assertTrue(treeView.getSelectedNodes().contains(two));
    assertTrue(treeView.getSelectedNodes().contains(three));
    assertTrue(treeView.getSelectedNodes().contains(five));
    assertEquals(3, treeView.getSelectedViews().length);
    assertTrue(tester.getComponentFromLastRenderedPage("treeView:rootView:1:children:3:selectableLabel")
            .getBehaviors().contains(TreeView.SELECTED_BEHAVIOR));
    assertTrue(tester.getComponentFromLastRenderedPage("treeView:rootView:1:children:5:selectableLabel")
            .getBehaviors().contains(TreeView.SELECTED_BEHAVIOR));
    assertTrue(tester.getComponentFromLastRenderedPage("treeView:rootView:1:children:2:label:selectableLabel")
            .getBehaviors().contains(TreeView.SELECTED_BEHAVIOR));

}

From source file:org.hippoecm.addon.workflow.DualAjaxLink.java

License:Apache License

public DualAjaxLink(final String id, final IModel model) {
    super(id, model);

    add(new AjaxEventBehavior("onclick") {
        private static final long serialVersionUID = 1L;

        protected void onEvent(AjaxRequestTarget target) {
            onClick(target);//from   w w  w .  j av  a 2s . c o  m
        }

        @Override
        protected void updateAjaxAttributes(final AjaxRequestAttributes attributes) {
            super.updateAjaxAttributes(attributes);
            attributes.getAjaxCallListeners().add(new EventStoppingDecorator());
        }

        @Override
        protected void onComponentTag(ComponentTag tag) {
            if (isLinkEnabled()) {
                super.onComponentTag(tag);
            }
        }
    });

    add(new AjaxEventBehavior("oncontextmenu") {
        private static final long serialVersionUID = 1L;

        protected void onEvent(AjaxRequestTarget target) {
            onRightClick(target);
        }

        @Override
        protected void updateAjaxAttributes(final AjaxRequestAttributes attributes) {
            super.updateAjaxAttributes(attributes);
            attributes.getAjaxCallListeners().add(new EventStoppingDecorator());
        }

        @Override
        protected void onComponentTag(ComponentTag tag) {
            if (isLinkEnabled()) {
                super.onComponentTag(tag);
            }
        }
    });
}

From source file:org.hippoecm.addon.workflow.MenuLink.java

License:Apache License

public MenuLink(final String id) {
    super(id);/*from   w w w  .ja va  2  s  .c o m*/

    if (isEnabled()) {
        Form form = getForm();
        if (form != null) {
            add(new AjaxFormSubmitBehavior(form, "onclick") {

                @Override
                protected void onSubmit(final AjaxRequestTarget target) {
                    IContextMenu parent = findParent(IContextMenu.class);
                    if (parent != null) {
                        parent.collapse(target);
                    } else {
                        IContextMenuManager manager = findParent(IContextMenuManager.class);
                        if (manager != null) {
                            manager.collapseAllContextMenus();
                        }
                    }
                    onClick();
                }

                @Override
                protected void onError(final AjaxRequestTarget target) {
                }

                @Override
                protected CharSequence getPreconditionScript() {
                    return "return true;";
                }

                @Override
                protected void onComponentTag(ComponentTag tag) {
                    // add the onclick handler only if link is enabled
                    if (isLinkEnabled()) {
                        super.onComponentTag(tag);
                    }
                }
            });
        } else {
            add(new AjaxEventBehavior("onclick") {
                private static final long serialVersionUID = 1L;

                @Override
                protected void onEvent(AjaxRequestTarget target) {
                    IContextMenu parent = findParent(IContextMenu.class);
                    if (parent != null) {
                        parent.collapse(target);
                    } else {
                        IContextMenuManager manager = findParent(IContextMenuManager.class);
                        if (manager != null) {
                            manager.collapseAllContextMenus();
                        }
                    }
                    onClick();
                }

                @Override
                protected CharSequence getPreconditionScript() {
                    return "return true;";
                }

                @Override
                protected void onComponentTag(ComponentTag tag) {
                    // add the onclick handler only if link is enabled
                    if (isLinkEnabled()) {
                        super.onComponentTag(tag);
                    }
                }
            });
        }
    } else {
        add(new EventStoppingBehavior("onclick"));
    }
}

From source file:org.hippoecm.frontend.dialog.AbstractDialog.java

License:Apache License

public AbstractDialog(IModel<T> model) {
    super("form", model);

    container = new Container(IDialogService.DIALOG_WICKET_ID);
    container.add(this);

    feedback = newFeedbackPanel("feedback");
    IFeedbackMessageFilter filter = feedback.getFilter();

    if (filter == null) {
        // make sure the feedback filters out messages unrelated to this dialog
        feedback.setFilter(new ContainerFeedbackMessageFilter(this));
    } else if (!(filter instanceof ContainerFeedbackMessageFilter)) {
        log.warn(//from w w w . j a  va 2 s  .  c  om
                "The dialog '{}' uses a feedback panel with a filter that does not extend ContainerFeedbackMessageFilter."
                        + "As a result, this dialog may show unrelated feedback messages.",
                getClass());
    }

    feedback.setOutputMarkupId(true);
    add(feedback);

    buttons = new LinkedList<>();
    ListView<ButtonWrapper> buttonsView = new ListView<ButtonWrapper>("buttons", buttons) {
        @Override
        protected void populateItem(ListItem<ButtonWrapper> item) {
            final Button button = item.getModelObject().getButton();
            if (StringUtils.isNotEmpty(buttonCssClass)) {
                button.add(CssClass.append(buttonCssClass));
            }
            item.add(button);
        }
    };
    buttonsView.setReuseItems(true);
    buttonsView.setOutputMarkupId(true);
    add(buttonsView);

    ok = new ButtonWrapper(new ResourceModel("ok")) {
        @Override
        protected void onSubmit() {
            handleSubmit();
        }

        @Override
        protected void onUpdateAjaxAttributes(final AjaxRequestAttributes attributes) {
            attributes.setChannel(ajaxChannel);
        }
    };
    ok.setKeyType(KeyType.Enter);
    buttons.add(ok);

    cancel = new ButtonWrapper(new ResourceModel("cancel")) {

        @Override
        protected void onSubmit() {
            cancelled = true;
            onCancel();
            closeDialog();
        }

        @Override
        protected Button decorate(final Button button) {
            button.add(new AjaxEventBehavior("onclick") {

                @Override
                protected void onComponentTag(final ComponentTag tag) {
                    super.onComponentTag(tag);
                    tag.put("type", "button");
                }

                @Override
                protected void onEvent(final AjaxRequestTarget target) {
                    onSubmit();
                }
            });
            button.setDefaultFormProcessing(false);
            return super.decorate(button);
        }
    };
    cancel.setKeyType(KeyType.Escape);
    buttons.add(cancel);

    if (isFullscreenEnabled()) {
        final AjaxButton goFullscreen = new AjaxButton(DialogConstants.BUTTON,
                new AbstractReadOnlyModel<String>() {
                    @Override
                    public String getObject() {
                        return getString(fullscreen ? "exit-fullscreen" : "fullscreen");
                    }
                }) {
            @Override
            protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
                target.appendJavaScript(getFullscreenScript());
                target.add(this); //update button label
                fullscreen = !fullscreen;
            }
        };
        addButton(goFullscreen);
    }

    if (addAjaxIndicator()) {
        add(indicator = new AjaxIndicatorAppender() {
            @Override
            protected CharSequence getIndicatorUrl() {
                return RequestCycle.get()
                        .urlFor(new ResourceReferenceRequestHandler(DialogConstants.AJAX_LOADER_GIF));
            }
        });
    }
}

From source file:org.hippoecm.frontend.editor.builder.RenderPluginEditorPlugin.java

License:Apache License

public RenderPluginEditorPlugin(final IPluginContext context, final IPluginConfig config) {
    super(context, config);

    renderContext = new RenderContext(context, config);
    builderContext = new BuilderContext(context, config);
    final boolean editable = (builderContext.getMode() == Mode.EDIT);

    final WebMarkupContainer container = new WebMarkupContainer("head");
    container.setOutputMarkupId(true);//from w  w w .  j  a  v a 2 s.c om
    add(container);

    add(CssClass.append(new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            return builderContext.hasFocus() ? "active" : StringUtils.EMPTY;
        }
    }));

    // add transitions from parent container
    container.add(new RefreshingView<ILayoutTransition>("transitions") {

        @Override
        protected Iterator<IModel<ILayoutTransition>> getItemModels() {
            final Iterator<ILayoutTransition> transitionIter = getTransitionIterator();
            return new Iterator<IModel<ILayoutTransition>>() {

                public boolean hasNext() {
                    return transitionIter.hasNext();
                }

                public IModel<ILayoutTransition> next() {
                    return new Model<>(transitionIter.next());
                }

                public void remove() {
                    transitionIter.remove();
                }

            };
        }

        @Override
        protected void populateItem(Item<ILayoutTransition> item) {
            final ILayoutTransition transition = item.getModelObject();
            AjaxLink<Void> link = new AjaxLink<Void>("link") {

                @Override
                public void onClick(AjaxRequestTarget target) {
                    layoutContext.apply(transition);
                }

                @Override
                protected void updateAjaxAttributes(final AjaxRequestAttributes attributes) {
                    super.updateAjaxAttributes(attributes);
                    attributes.getAjaxCallListeners().add(new EventStoppingDecorator());
                }

            };
            link.setVisible(editable);

            final String name = transition.getName();
            final Icon icon = getTransitionIconByName(name);

            link.add(CssClass.append(name));
            link.add(TitleAttribute.append(name));
            link.add(HippoIcon.fromSprite("icon", icon));
            item.add(link);
        }

    });

    final AjaxLink removeLink = new AjaxLink("remove") {

        @Override
        public void onClick(AjaxRequestTarget target) {
            if (validateDelete()) {
                builderContext.delete();
            }
        }

        @Override
        protected void updateAjaxAttributes(final AjaxRequestAttributes attributes) {
            super.updateAjaxAttributes(attributes);
            attributes.getAjaxCallListeners().add(new EventStoppingDecorator());
        }

    };
    removeLink.setVisible(editable);
    removeLink.add(HippoIcon.fromSprite("icon", Icon.TIMES_CIRCLE));
    container.add(removeLink);

    if (editable) {
        add(new AjaxEventBehavior("onclick") {

            @Override
            protected void onEvent(AjaxRequestTarget target) {
                builderContext.focus();
            }

            @Override
            protected void updateAjaxAttributes(final AjaxRequestAttributes attributes) {
                super.updateAjaxAttributes(attributes);
                attributes.getAjaxCallListeners().add(new EventStoppingDecorator());
            }
        });

        builderContext.addBuilderListener(new IBuilderListener() {

            public void onBlur() {
                AjaxRequestTarget target = RequestCycle.get().find(AjaxRequestTarget.class);
                if (target != null) {
                    target.add(RenderPluginEditorPlugin.this);
                }
            }

            public void onFocus() {
                AjaxRequestTarget target = RequestCycle.get().find(AjaxRequestTarget.class);
                if (target != null) {
                    target.add(RenderPluginEditorPlugin.this);
                }
            }
        });
    }
}

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

License:Apache License

public ImageCropPlugin(final IPluginContext context, IPluginConfig config) {
    super(context, config);

    final IEditor.Mode mode = IEditor.Mode.fromString(config.getString("mode"), IEditor.Mode.EDIT);
    final IModel<Node> jcrImageNodeModel = getModel();

    final GalleryProcessor processor = DefaultGalleryProcessor.getGalleryProcessor(context, getPluginConfig());

    boolean upscalingEnabled = false;
    boolean isOriginal = true;
    boolean isOriginalImageWidthSmallerThanThumbWidth = false;
    boolean isOriginalImageHeightSmallerThanThumbHeight = false;
    boolean areExceptionsThrown = false;

    //Check if this is the original image
    try {//from   w  ww  . ja v a  2  s.com
        isOriginal = HippoGalleryNodeType.IMAGE_SET_ORIGINAL.equals(jcrImageNodeModel.getObject().getName());
    } catch (RepositoryException e) {
        error(e);
        log.error("Cannot retrieve name of original image node", e);
        areExceptionsThrown = true;
    }

    //Get dimensions of this thumbnail variant
    try {
        Dimension thumbnailDimension = processor.getDesiredResourceDimension(jcrImageNodeModel.getObject());
        Node originalImageNode = getModelObject().getParent().getNode(HippoGalleryNodeType.IMAGE_SET_ORIGINAL);
        Dimension originalImageDimension = new Dimension(
                (int) originalImageNode.getProperty(HippoGalleryNodeType.IMAGE_WIDTH).getLong(),
                (int) originalImageNode.getProperty(HippoGalleryNodeType.IMAGE_HEIGHT).getLong());

        isOriginalImageWidthSmallerThanThumbWidth = thumbnailDimension.getWidth() > originalImageDimension
                .getWidth();
        isOriginalImageHeightSmallerThanThumbHeight = thumbnailDimension.getHeight() > originalImageDimension
                .getHeight();

        upscalingEnabled = processor.isUpscalingEnabled(jcrImageNodeModel.getObject());

    } catch (RepositoryException | GalleryException | NullPointerException e) {
        error(e);
        log.error("Cannot retrieve dimensions of original or thumbnail image", e);
        areExceptionsThrown = true;
    }

    Label cropButton = new Label("crop-button", new StringResourceModel("crop-button-label", this, null));
    cropButton.setVisible(mode == IEditor.Mode.EDIT && !isOriginal);

    final boolean isUpdateDisabled = isOriginal || areExceptionsThrown
            || (isOriginalImageWidthSmallerThanThumbWidth && !upscalingEnabled)
            || (isOriginalImageHeightSmallerThanThumbHeight && !upscalingEnabled);

    if (mode == IEditor.Mode.EDIT) {
        if (!isUpdateDisabled) {

            cropButton.add(new AjaxEventBehavior("onclick") {
                @Override
                protected void onEvent(final AjaxRequestTarget target) {
                    IDialogService dialogService = context.getService(IDialogService.class.getName(),
                            IDialogService.class);
                    dialogService.show(new ImageCropEditorDialog(jcrImageNodeModel, processor));
                }
            });
        }

        final String cropButtonClass = isUpdateDisabled ? "crop-button inactive" : "crop-button active";

        cropButton.add(new AttributeAppender("class", Model.of(cropButtonClass), " "));

        String buttonTipProperty = areExceptionsThrown ? "crop-button-tip-inactive-error"
                : isOriginalImageWidthSmallerThanThumbWidth && !upscalingEnabled
                        ? "crop-button-tip-inactive-width"
                        : isOriginalImageHeightSmallerThanThumbHeight && !upscalingEnabled
                                ? "crop-button-tip-inactive-height"
                                : "crop-button-tip";

        cropButton.add(TitleAttribute.append(new StringResourceModel(buttonTipProperty, this, null)));
    }

    add(cropButton);
}

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

License:Apache License

public ImageRegeneratePlugin(final IPluginContext context, IPluginConfig config) {
    super(context, config);

    final IEditor.Mode mode = IEditor.Mode.fromString(config.getString("mode"), IEditor.Mode.EDIT);
    galleryProcessor = DefaultGalleryProcessor.getGalleryProcessor(context, getPluginConfig());

    isOriginal = true;/*from   www.  ja  va 2s.c  o m*/
    areExceptionsThrown = false;

    try {
        isOriginal = HippoGalleryNodeType.IMAGE_SET_ORIGINAL.equals(((Node) getModel().getObject()).getName());
    } catch (RepositoryException e) {
        error(e);
        log.error("Cannot retrieve name of original image node", e);
        areExceptionsThrown = true;
    }

    isModelModified = new LoadableDetachableModel<Boolean>() {
        private static final long serialVersionUID = 1L;

        @Override
        protected Boolean load() {
            try {
                Node thumbnailImageNode = (Node) getModelObject();
                Node originalImageNode = thumbnailImageNode.getParent()
                        .getNode(HippoGalleryNodeType.IMAGE_SET_ORIGINAL);
                return !originalImageNode.getProperty(JcrConstants.JCR_LASTMODIFIED).getDate()
                        .equals(thumbnailImageNode.getProperty(JcrConstants.JCR_LASTMODIFIED).getDate());
            } catch (RepositoryException e) {
                error(e);
                log.error("Cannot retrieve name of original image node", e);
                areExceptionsThrown = true;
            }
            return false;
        }
    };

    Label regenerateButton = new Label("regenerate-button",
            new StringResourceModel("regenerate-button-label", this, null)) {
        private static final long serialVersionUID = 1L;

        @Override
        public boolean isEnabled() {
            return !isOriginal && !areExceptionsThrown && isModelModified.getObject();
        }
    };
    regenerateButton.setVisible(mode == IEditor.Mode.EDIT && !isOriginal);

    if (mode == IEditor.Mode.EDIT) {

        regenerateButton.add(new AjaxEventBehavior("onclick") {
            private static final long serialVersionUID = 1L;

            @Override
            protected void onEvent(final AjaxRequestTarget target) {
                regenerateThumbnail();
            }
        });

        regenerateButton.add(CssClass.append(new LoadableDetachableModel<String>() {
            private static final long serialVersionUID = 1L;

            @Override
            protected String load() {
                return (isOriginal || areExceptionsThrown || !isModelModified.getObject())
                        ? "regenerate-button inactive"
                        : "regenerate-button active";
            }
        }));

        regenerateButton.add(TitleAttribute.append(new LoadableDetachableModel<String>() {
            private static final long serialVersionUID = 1L;

            @Override
            protected String load() {
                String buttonTipProperty = areExceptionsThrown ? "regenerate-button-tip-inactive-error"
                        : !isModelModified.getObject() ? "regenerate-button-tip-inactive-not-modified"
                                : "regenerate-button-tip";

                return new StringResourceModel(buttonTipProperty, ImageRegeneratePlugin.this, null).getString();
            }
        }));

    }

    add(regenerateButton);
}

From source file:org.hippoecm.frontend.plugins.standards.list.datatable.ListTableHeader.java

License:Apache License

public ListTableHeader(String id, final T property, final ISortStateLocator<T> stateLocator) {
    super(id);/*  www.  j  a  v a 2  s .c  om*/

    this.property = property;
    this.stateLocator = stateLocator;

    add(CssClass.append(new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            switch (getSortOrder()) {
            case ASCENDING:
                return "hippo-list-order-ascending";
            case DESCENDING:
                return "hippo-list-order-descending";
            default:
                return "hippo-list-order-none";
            }
        }
    }));

    add(new AjaxEventBehavior("onclick") {
        @Override
        protected void onEvent(AjaxRequestTarget target) {
            switch (getSortOrder()) {
            case NONE:
                setSortOrder(SortOrder.ASCENDING);
                break;
            case ASCENDING:
                setSortOrder(SortOrder.DESCENDING);
                break;
            case DESCENDING:
                setSortOrder(SortOrder.NONE);
                break;
            }
            onClick(target);
        }
    });
}