Example usage for org.apache.wicket Component getDefaultModel

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

Introduction

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

Prototype

public final IModel<?> getDefaultModel() 

Source Link

Document

Gets the model.

Usage

From source file:de.flapdoodle.wicket.detach.FieldInspectingDetachListener.java

License:Apache License

private void checkFields(String id, Map<Object, Boolean> hitMap, Object component, List<Field> fields) {
    for (Field f : fields) {
        if (isWorthALook(f)) {
            try {
                if (false)
                    log.debug("inspect {}", f);

                f.setAccessible(true);/*from   w w  w  . j av a2 s . c o  m*/
                Object value = f.get(component);
                if (!hitMap.containsKey(value)) {
                    hitMap.put(value, true);
                    if (value != null) {
                        if (value instanceof LoadableDetachableModel) {
                            LoadableDetachableModel ldm = (LoadableDetachableModel) value;
                            if (ldm.isAttached()) {
                                log.error(id + ": loadable model " + ldm + " in " + f + " is NOT detached ",
                                        new RuntimeException());
                            }
                        }

                        checkFields(id, hitMap, value, getAllFields(value.getClass()));
                    }
                }
            } catch (IllegalArgumentException e) {
                log.error("get value", e);
            } catch (IllegalAccessException e) {
                log.error("get value", e);
            }
        }
    }

    if (component instanceof Component) {
        Component c = (Component) component;
        IModel<?> model = c.getDefaultModel();
        if (model != null) {
            checkFields(id, hitMap, model, getAllFields(model.getClass()));
        }
    }
}

From source file:de.micromata.genome.junittools.wicket.TpsbWicketTools.java

License:Apache License

/**
 * Find components for property model property.
 * //from   w  w  w. j  a  v a 2 s .c o  m
 * @param <X> the generic type
 * @param tester the tester
 * @param startComponent the start component
 * @param componentClass the component class
 * @param property the property
 * @return the list
 * @deprecated use TpsbWicketMatchSelector
 */
@Deprecated
public static <X extends Component> List<X> _findComponentsForPropertyModelProperty(WicketTester tester,
        final MarkupContainer startComponent, final Class<X> componentClass, final String property) {
    final List<X> results = new LinkedList<X>();
    Page lastRenderedPage = tester.getLastRenderedPage();

    if (lastRenderedPage == null) {
        throw new IllegalStateException("You must call #goToPage before you can find components.");
    }

    if (componentClass == null || property == null) {
        throw new IllegalArgumentException("You must provide not null arguments.");
    }

    IVisitor<Component, Object> visitor = new IVisitor<Component, Object>() {
        @Override
        public void component(Component object, IVisit<Object> visit) {
            if (LOG.isDebugEnabled() == true) {
                LOG.debug("candite for wicket internalFinder: " + object.getClass().getSimpleName() + "|"
                        + object.getId() + "|" + object.getPath());
            }
            if (componentClass.isAssignableFrom(object.getClass()) == true) {
                IModel<?> defaultModel = object.getDefaultModel();
                if (defaultModel instanceof AbstractPropertyModel == true) {
                    AbstractPropertyModel propertyModel = (AbstractPropertyModel) defaultModel;
                    if (StringUtils.equals(property, propertyModel.getPropertyExpression()) == true) {
                        results.add((X) object);
                    }
                }
            }
        }
    };
    if (startComponent == null) {
        lastRenderedPage.visitChildren(visitor);
    } else {
        startComponent.visitChildren(visitor);
    }
    return results;
}

From source file:de.micromata.genome.junittools.wicket.WicketTestBuilder.java

License:Apache License

protected T _doFillModels(MarkupContainer startComponent, WicketTestBuilderModelWrapper modelWrapper) {
    for (WicketTestBuilderModelWrapper.ModelWrapper wrapper : modelWrapper.getWrappedList()) {
        List<? extends Component> componentsForSuffixInPath = TpsbWicketTools
                ._findComponentsForPropertyModelProperty(tester, startComponent, wrapper.getTargetClass(),
                        wrapper.getTargetWicketPath());
        if (componentsForSuffixInPath.size() == 1) {
            Component component = componentsForSuffixInPath.get(0);
            if (component.getDefaultModel() != null) {
                component.setDefaultModelObject(wrapper.getModelValue());
            } else {
                LOG.warn("Found component has no model attached, aborting. class=" + wrapper.getTargetClass()
                        + " and wicket:path=" + wrapper.getTargetWicketPath());
            }//  ww  w  .ja  va 2  s.co  m
        } else {
            LOG.warn("Unable to find (or found more then one) component with class=" + wrapper.getTargetClass()
                    + " and wicket:path=" + wrapper.getTargetWicketPath());
        }
    }
    return (T) this;
}

From source file:fr.openwide.core.wicket.more.markup.html.form.CollectionResetter.java

License:Apache License

@Override
public void reset(Component component) {
    @SuppressWarnings("unchecked")
    IModel<C> model = (IModel<C>) component.getDefaultModel();

    if (model != null && model.getObject() != null) {
        model.setObject(newCollectionSupplier.get());
    }/*from w  w w. j av  a  2s  .c o m*/
}

From source file:gr.interamerican.wicket.utils.WicketUtils.java

License:Open Source License

/**
 * Sets the default model object without checking the new model
 * object equality to the old one.//from   w  w w. j av  a 2  s.c o m
 * @param cmp
 * @param t
 */
public static <T> void setDefaultModelObject(Component cmp, T t) {
    cmp.modelChanging();
    @SuppressWarnings("unchecked")
    IModel<T> model = (IModel<T>) cmp.getDefaultModel();
    model.setObject(t);
    cmp.modelChanged();
}

From source file:net.databinder.components.hib.DataForm.java

License:Open Source License

/** 
 * @return the effective compound model for this form, which may be
 * attached to a parent component//from   w w w .  j av  a 2s. c om
 */
protected CompoundPropertyModel getCompoundModel() {
    IModel model = getModel();
    Component cur = this;
    while (cur != null) {
        model = cur.getDefaultModel();
        if (model != null && model instanceof CompoundPropertyModel)
            return (CompoundPropertyModel) model;
        cur = cur.getParent();
    }
    throw new WicketRuntimeException("DataForm has no parent compound model");
}

From source file:ontopoly.components.FieldsEditorExistingPanel.java

License:Apache License

public FieldsEditorExistingPanel(String id, final TopicTypeModel topicTypeModel,
        final FieldAssignmentModel fieldAssignmentModel, boolean readonly) {
    super(id);/* ww  w. ja v a2 s  .  co  m*/
    this.readonly = readonly;

    FieldAssignment fieldAssignment = fieldAssignmentModel.getFieldAssignment();

    WebMarkupContainer container = new WebMarkupContainer("field", fieldAssignmentModel);
    add(container);

    OntopolyImage icon = new OntopolyImage("icon", "dnd.gif", new ResourceModel("icon.dnd.reorder"));
    icon.setVisible(!readonly);
    container.add(icon);

    FieldDefinition fieldDefinition = fieldAssignment.getFieldDefinition();
    final FieldDefinitionModel fieldDefinitionModel = new FieldDefinitionModel(fieldDefinition);

    container.add(new FieldDefinitionLabel("fieldLabel", fieldDefinitionModel) {
        @Override
        protected boolean isFieldDefinitionLinkEnabled(Topic topic) {
            return true;
        }

        @Override
        protected boolean isOntologyTypeLinkEnabled(Topic topic) {
            return true;
        }
    });

    Component fieldType = getFieldType("valueType",
            fieldAssignmentModel.getFieldAssignment().getFieldDefinition());
    fieldType.setRenderBodyOnly(true);
    container.add(fieldType);

    Component cardinalityComponent = getCardinality("cardinality", fieldAssignmentModel);
    cardinalityComponent.setEnabled(!readonly);
    container.add(cardinalityComponent);

    // drag and drop
    if (!readonly) {
        String dndId = "fields_" + topicTypeModel.getTopicType().getId();
        container.add(new DraggableBehavior(dndId));
        container.add(new DroppableBehavior(dndId) {
            @Override
            protected MarkupContainer getDropContainer() {
                return FieldsEditorExistingPanel.this.getParent().getParent();
            }

            @Override
            protected void onDrop(Component component, AjaxRequestTarget target) {
                FieldAssignmentModel fam_dg = (FieldAssignmentModel) component.getDefaultModel();
                FieldAssignmentModel fam_do = (FieldAssignmentModel) getComponent().getDefaultModel();
                FieldAssignment fa_dg = fam_dg.getFieldAssignment();
                FieldAssignment fa_do = fam_do.getFieldAssignment();
                fa_do.moveAfter(fa_dg);
                FieldsEditorExistingPanel.this.onMoveAfter(fam_dg, fam_do, target);
            }
        });
    }

    TopicType topicType = topicTypeModel.getTopicType();
    TopicType declaredTopicType = fieldAssignmentModel.getFieldAssignment().getDeclaredTopicType();

    if (ObjectUtils.equals(topicType, declaredTopicType)) {
        OntopolyImageLink button = new OntopolyImageLink("button", "remove-value.gif",
                new ResourceModel("icon.remove.field")) {
            @Override
            public void onClick(AjaxRequestTarget target) {
                FieldsEditorExistingPanel.this.onRemove(fieldAssignmentModel, target);
            }

            @Override
            public boolean isVisible() {
                return !FieldsEditorExistingPanel.this.readonly;
                //! || (fieldDefinitionModel.getFieldDefinition().isSystemTopic() && ((OntopolySession)Session.get()).isAdministrationEnabled());
            }
        };
        container.add(button);
    } else {
        OntopolyImageLink button = new OntopolyImageLink("button", "goto.gif",
                new ResourceModel("icon.goto.assigning-type")) {
            @Override
            public void onClick(AjaxRequestTarget target) {
                TopicType declaredTopicType = fieldAssignmentModel.getFieldAssignment().getDeclaredTopicType();
                Map<String, String> pageParametersMap = new HashMap<String, String>(3);
                pageParametersMap.put("topicMapId", declaredTopicType.getTopicMap().getId());
                pageParametersMap.put("topicId", declaredTopicType.getId());
                pageParametersMap.put("ontology", "true");
                setResponsePage(InstancePage.class, new PageParameters(pageParametersMap));
            }
        };
        container.add(button);
    }
}

From source file:org.apache.isis.viewer.wicket.ui.components.widgets.formcomponent.FormComponentPanelAbstract.java

License:Apache License

private UiHintContainer hintContainerOf(Component component) {
    if (component == null) {
        return null;
    }/*from  ww  w  .  j  a v  a  2s  .  c  o m*/
    IModel<?> model = component.getDefaultModel();
    if (model instanceof UiHintContainer) {
        return (UiHintContainer) model;
    }
    // otherwise, go up the UI component hierarchy
    return hintContainerOf(getParent());
}

From source file:org.apache.isis.viewer.wicket.ui.panels.FormExecutorDefault.java

License:Apache License

private void addComponentsToRedraw(final AjaxRequestTarget target) {
    final List<Component> componentsToRedraw = Lists.newArrayList();
    final List<Component> componentsNotToRedraw = Lists.newArrayList();

    final Page page = target.getPage();
    page.visitChildren(new IVisitor<Component, Object>() {
        @Override//  ww  w .  j a va 2 s  . co m
        public void component(final Component component, final IVisit<Object> visit) {
            if (component.getOutputMarkupId() && !(component instanceof Page)) {
                List<Component> listToAddTo = shouldRedraw(component) ? componentsToRedraw
                        : componentsNotToRedraw;
                listToAddTo.add(component);
            }
        }

        private boolean shouldRedraw(final Component component) {

            // hmm... this doesn't work, because I think that the components
            // get removed after they've been added to target.
            // so.. still getting WARN log messages from XmlPartialPageUpdate

            //                final Page page = component.findParent(Page.class);
            //                if(page == null) {
            //                    // as per logic in XmlPartialPageUpdate, this has already been
            //                    // removed from page so don't attempt to redraw it
            //                    return false;
            //                }

            final Object defaultModel = component.getDefaultModel();
            if (!(defaultModel instanceof ScalarModel)) {
                return true;
            }
            final ScalarModel scalarModel = (ScalarModel) defaultModel;
            final UnchangingFacet unchangingFacet = scalarModel.getFacet(UnchangingFacet.class);
            return unchangingFacet == null || !unchangingFacet.value();
        }
    });

    for (Component componentNotToRedraw : componentsNotToRedraw) {
        MarkupContainer parent = componentNotToRedraw.getParent();
        while (parent != null) {
            parent = parent.getParent();
        }

        componentNotToRedraw.visitParents(MarkupContainer.class, new IVisitor<MarkupContainer, Object>() {
            @Override
            public void component(final MarkupContainer parent, final IVisit<Object> visit) {
                componentsToRedraw.remove(parent); // no-op if not in that list
            }
        });
        if (componentNotToRedraw instanceof MarkupContainer) {
            final MarkupContainer containerNotToRedraw = (MarkupContainer) componentNotToRedraw;
            containerNotToRedraw.visitChildren(new IVisitor<Component, Object>() {
                @Override
                public void component(final Component parent, final IVisit<Object> visit) {
                    componentsToRedraw.remove(parent); // no-op if not in that list
                }
            });
        }
    }

    if (LOG.isDebugEnabled()) {
        debug(componentsToRedraw, componentsNotToRedraw);
    }

    for (Component component : componentsToRedraw) {
        target.add(component);
    }
}

From source file:org.brixcms.web.picker.common.NodePickerTreeGridPanel.java

License:Apache License

protected void initComponents() {
    grid = new TreeGrid<NodePickerTreeModel, JcrTreeNode>("grid", (IModel<NodePickerTreeModel>) newTreeModel(),
            newGridColumns()) {/*from   w w w .  j  a v  a 2 s  .c  om*/
        @Override
        protected void onItemSelectionChanged(IModel<JcrTreeNode> rowModel, boolean newValue) {
            BrixNode node = getNode(rowModel);
            if (isNodeEnabled(rowModel.getObject()) && node != null) {
                if (isItemSelected(rowModel)) {
                    onNodeSelected(node);
                } else {
                    onNodeDeselected(node);
                }
                update();
            }
            super.onItemSelectionChanged(rowModel, newValue);
        }

        @Override
        protected void onRowClicked(AjaxRequestTarget target, IModel<JcrTreeNode> rowModel) {
            BrixNode node = getNode(rowModel);
            if (isNodeEnabled(rowModel.getObject()) && node != null) {
                super.onRowClicked(target, rowModel);
            }
        }

        @Override
        protected void onRowPopulated(WebMarkupContainer rowComponent) {
            super.onRowPopulated(rowComponent);
            rowComponent.add(new AbstractBehavior() {
                @Override
                public void onComponentTag(Component component, ComponentTag tag) {
                    BrixNode node = getNode(component.getDefaultModel());
                    if (!isNodeEnabled((JcrTreeNode) component.getDefaultModelObject()) || node == null) {
                        tag.put("class", "disabled");
                    }
                }
            });
        }
    };

    configureGrid(grid);
    add(grid);
}