Example usage for org.apache.wicket.model IModel detach

List of usage examples for org.apache.wicket.model IModel detach

Introduction

In this page you can find the example usage for org.apache.wicket.model IModel detach.

Prototype

@Override
    default void detach() 

Source Link

Usage

From source file:com.doculibre.constellio.wicket.components.form.LoggingTextArea.java

License:Open Source License

public LoggingTextArea(String id, final IModel loggedLinesModel, long refreshDelayMillis) {
    super(id);/* w ww  .j a  v  a2s.com*/
    setModel(new LoadableDetachableModel() {
        @SuppressWarnings("unchecked")
        @Override
        protected Object load() {
            StringBuffer sb = new StringBuffer();
            List<String> loggedLines = (List<String>) loggedLinesModel.getObject();
            for (String loggedLine : loggedLines) {
                sb.append(loggedLine + "\n");
            }
            return sb.toString();
        }

        @Override
        protected void onDetach() {
            loggedLinesModel.detach();
            super.onDetach();
        }
    });
    initComponents(refreshDelayMillis);
}

From source file:com.doculibre.constellio.wicket.panels.admin.solrConfig.SolrConfigPanel.java

License:Open Source License

private ListView getPropertiesListView(List<PropertyRow> propertyRows) {
    return new ListView("properties", propertyRows) {

        @Override/*from  w w w. j  a v  a 2 s . c o m*/
        protected void populateItem(final ListItem item) {

            final PropertyRow propertyRow = (PropertyRow) item.getModelObject();
            item.setOutputMarkupId(true);
            item.add(new Label("property",
                    new StringResourceModel(propertyRow.getMessageKey(), SolrConfigPanel.this, null)));
            IModel stateModel = new LoadableDetachableModel() {

                protected Object load() {
                    SolrConfig config = solrConfigModel.getObject();
                    boolean isSet = PropertyResolver.getValue(propertyRow.getProperty(), config) != null;
                    return new StringResourceModel(isSet ? "yes" : "no", SolrConfigPanel.this, null)
                            .getObject();
                }

            };
            item.add(new Label("state", stateModel));
            AjaxLink defaultValueLink = new AjaxLink("defaultValue") {

                @Override
                public void onClick(AjaxRequestTarget target) {
                    SolrConfig config = solrConfigModel.getObject();
                    PropertyResolver.setValue(propertyRow.getProperty(), config, null, null);
                    target.addComponent(item);
                    save();
                }

                @Override
                public boolean isVisible() {
                    SolrConfig config = solrConfigModel.getObject();
                    return PropertyResolver.getValue(propertyRow.getProperty(), config) != null;
                }
            };
            item.add(defaultValueLink);
            IModel titleLabelModel = new LoadableDetachableModel() {

                @Override
                protected Object load() {
                    boolean isServerConfig = solrConfigModel.getObject().getRecordCollection() == null;
                    String resourceKey = isServerConfig ? "defaultValue" : "defaultServerValue";
                    return new StringResourceModel(resourceKey, SolrConfigPanel.this, null).getObject();
                }
            };
            defaultValueLink.add(new Label("label", titleLabelModel));

            if (propertyRow.isModalEdit()) {
                item.add(new ModalImgLinkHolder("editComponent") {
                    @Override
                    public WebMarkupContainer newLink(String id) {
                        return new AjaxLink(id) {
                            @Override
                            public void onClick(AjaxRequestTarget target) {
                                ModalWindow editModal = getModalWindow();
                                editModal.setInitialHeight(MODAL_HEIGHT);
                                editModal.setInitialWidth(MODAL_WIDTH);
                                String editMsg = getLocalizer().getString("edit", SolrConfigPanel.this);
                                editModal.setTitle(editMsg);

                                WebMarkupContainer editContent = propertyRow
                                        .getEditLinkPanel(editModal.getContentId());
                                editModal.setContent(editContent);
                                editModal.show(target);
                                target.addComponent(item);
                            }
                        };
                    }

                    @Override
                    protected Component newImg(String id) {
                        return new NonCachingImage(id,
                                new ResourceReference(BaseConstellioPage.class, "images/ico_crayon.png"));
                    }
                });
            } else if (propertyRow.getType().equals(Boolean.class)) {
                final IModel valueModel = propertyRow.createModel();
                item.add(new CheckBoxHolder("editComponent") {

                    @Override
                    protected WebMarkupContainer newInput(String id) {
                        return new AjaxCheckBox(id, valueModel) {

                            @Override
                            protected void onUpdate(AjaxRequestTarget target) {
                                save();
                                target.addComponent(item);
                            }

                            @Override
                            public void detachModels() {
                                super.detachModels();
                                valueModel.detach();
                            }

                        };
                    }
                });
            } else {
                final IModel valueModel = propertyRow.createModel();
                item.add(new AjaxEditableLabel("editComponent", valueModel) {

                    @Override
                    protected void onSubmit(AjaxRequestTarget target) {
                        super.onSubmit(target);
                        save();
                        target.addComponent(item);
                    }

                    @Override
                    public void detachModels() {
                        super.detachModels();
                        valueModel.detach();
                    }

                });
            }

        }

    };
}

From source file:com.doculibre.constellio.wicket.panels.status.UserStatusPanel.java

License:Open Source License

public UserStatusPanel(String id, final IModel simpleSearchModel) {
    super(id);/* w  w w  .  ja  v  a  2 s  .c o m*/

    add(new AdminLinkHolder("adminLinkHolder"));
    add(new SignInLinkHolder("signInLinkHolder"));
    add(new SignOutLinkHolder("signOutLinkHolder"));
    add(new SwitchLocaleLinkHolder("switchLocaleLinkHolder"));
    //TODO Disactivate if the user do not want it
    add(new SwitchSearchMethod("switchSearchMethod", (SimpleSearch) simpleSearchModel.getObject()));
    add(new LinkHolder("searchHistoryLinkHolder", new StringResourceModel("searchHistory", this, null)) {
        @Override
        protected WebMarkupContainer newLink(String id) {
            SimpleSearch simpleSearch = (SimpleSearch) simpleSearchModel.getObject();
            return new BookmarkablePageLink(id, SearchHistoryPage.class,
                    new PageParameters(SimpleSearch.COLLECTION_NAME + "=" + simpleSearch.getCollectionName()));
        }

        @Override
        public boolean isVisible() {
            SimpleSearch simpleSearch = (SimpleSearch) simpleSearchModel.getObject();
            String collectionName = simpleSearch.getCollectionName();
            return super.isVisible() && collectionName != null
                    && !ConstellioSession.get().getSearchHistory(collectionName).isEmpty();
        }

        @Override
        public void detachModels() {
            simpleSearchModel.detach();
            super.detachModels();
        }
    });
    add(new LinkHolder("newSearchLinkHolder", new StringResourceModel("newSearch", this, null)) {
        @Override
        protected WebMarkupContainer newLink(String id) {
            PageFactoryPlugin pageFactoryPlugin = PluginFactory.getPlugin(PageFactoryPlugin.class);
            SimpleSearch simpleSearch = (SimpleSearch) simpleSearchModel.getObject();
            return new BookmarkablePageLink(id, pageFactoryPlugin.getSearchFormPage(),
                    SearchFormPage.getParameters(simpleSearch));
        }

        @Override
        public boolean isVisible() {
            PageFactoryPlugin pageFactoryPlugin = PluginFactory.getPlugin(PageFactoryPlugin.class);
            return super.isVisible() && !(pageFactoryPlugin.isSearchFormPage(UserStatusPanel.this.getPage()));
        }
    });
}

From source file:com.jeroensteenbeeke.hyperion.data.TestPersistenceModel.java

License:Open Source License

@Test
public void testPersistenceModel() {
    current = sf.openSession();//from ww w  .  ja v a  2 s . c  om

    Lolcat t1 = new Lolcat();
    Lolcat t2 = new Lolcat();

    t2.setParent(t1);

    current.save(t1);
    current.save(t2);

    IModel<Lolcat> model = new PersistenceModel<Lolcat>(t1) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void injectDAO() {
            setDao(new BaseEntityFinder() {

                @SuppressWarnings("unchecked")
                @Override
                public <T extends DomainObject> T getEntity(Class<T> entityClass, Serializable id) {
                    return (T) current.load(entityClass, id);
                }
            });
        }

    };

    current.close();

    model.detach();

    current = sf.openSession();

    assertEquals(1, model.getObject().getChildren().size());

    current.close();
}

From source file:com.norconex.commons.wicket.bootstrap.filesystem.BootstrapSelectableContent.java

License:Apache License

@Override
public boolean isSelected(File file) {
    IModel<File> model = provider.model(file);
    try {//from   ww  w.ja  v  a 2 s.c  o m
        return selected != null && selected.equals(model);
    } finally {
        model.detach();
    }
}

From source file:com.pushinginertia.wicket.core.model.ConcatResourceModel.java

License:Open Source License

@Override
public void detach() {
    super.detach();
    for (final IModel<String> model : modelList) {
        model.detach();
    }/*from   w w w. ja  va2 s.com*/
}

From source file:com.servoy.j2db.server.headlessclient.dataui.WebDataRenderer.java

License:Open Source License

public void refreshRecord(IRecordInternal record) {
    IModel<?> model = getDefaultModel();
    if (model != null) {
        model.detach();
    }/*from  w  w w  . j  a  v  a  2 s.  c o  m*/
    if (dataAdapterList != null) {
        dataAdapterList.setRecord(record, true);
    }

    DataAdapterList.setDataRendererComponentsRenderState(this, record);
    if (getOnRenderComponent().getRenderEventExecutor().hasRenderCallback()) {
        jsChangeRecorder.setChanged();
    }
}

From source file:com.wickettraining.modelproxy.ProxyManager.java

License:Apache License

public <T> IModel<T> proxyModel(final IModel<T> model) {
    return new LoadableDetachableModel<T>() {
        private static final long serialVersionUID = 1L;

        @Override//  w w  w  . jav  a2  s.  co  m
        protected T load() {
            T ret = proxy(model.getObject());
            if (!committed.get()) {
                try {
                    commit(ret);
                } catch (Exception ex) {
                    logger.warn("Error while committing during proxyModel#load: " + ex.getMessage());
                    ex.printStackTrace();
                }
            }
            return ret;
        }

        @Override
        public void setObject(T object) {
            super.setObject(object);
            model.setObject(object);
        }

        @Override
        public void detach() {
            super.detach();
            model.detach();
        }
    };
}

From source file:cz.zcu.kiv.eegdatabase.wui.ui.experiments.components.ExperimentListForm.java

License:Apache License

/**
 *
 * @return list of columns the table of experiments shall display
 *///from   w  ww  . j ava 2 s  .  com
private List<? extends IColumn<Experiment, String>> createListColumns() {
    List<IColumn<Experiment, String>> columns = new ArrayList<IColumn<Experiment, String>>();

    columns.add(new CheckBoxColumn<Experiment, String>(Model.of("")) {

        @Override
        protected IModel<Boolean> newCheckBoxModel(final IModel<Experiment> rowModel) {
            return new AbstractCheckBoxModel() {

                @Override
                public boolean isSelected() {
                    return selectedExperiments.contains(rowModel.getObject());
                }

                @Override
                public void select() {
                    selectedExperiments.add(rowModel.getObject());
                }

                @Override
                public void unselect() {
                    selectedExperiments.add(rowModel.getObject());
                }

                @Override
                public void detach() {
                    rowModel.detach();
                }

            };

        }
    });
    columns.add(new PropertyColumn<Experiment, String>(ResourceUtils.getModel("dataTable.heading.number"),
            "experimentId", "experimentId"));
    columns.add(new PropertyColumn<Experiment, String>(
            ResourceUtils.getModel("dataTable.heading.scenarioTitle"), "scenario.title", "scenario.title"));
    columns.add(new PropertyColumn<Experiment, String>(ResourceUtils.getModel("dataTable.heading.date"),
            "startTime", "startTime"));
    columns.add(new PropertyColumn<Experiment, String>(ResourceUtils.getModel("dataTable.heading.gender"),
            "personBySubjectPersonId.gender", "personBySubjectPersonId.gender"));
    columns.add(new TimestampPropertyColumn<Experiment, String>(
            ResourceUtils.getModel("dataTable.heading.yearOfBirth"), "personBySubjectPersonId.dateOfBirth",
            "personBySubjectPersonId.dateOfBirth", "yyyy"));

    return columns;
}

From source file:cz.zcu.kiv.eegdatabase.wui.ui.experiments.components.ExperimentPackageManagePanel.java

License:Apache License

/**
 *
 * @return list of columns the table of experiments shall display
 *//*  w w w.  j  a  va2 s  .co  m*/
private List<? extends IColumn<Experiment, String>> createListColumns() {
    List<IColumn<Experiment, String>> columns = new ArrayList<IColumn<Experiment, String>>();

    columns.add(new CheckBoxColumn<Experiment, String>(Model.of("")) {
        @Override
        protected IModel<Boolean> newCheckBoxModel(final IModel<Experiment> rowModel) {
            return new AbstractCheckBoxModel() {
                @Override
                public boolean isSelected() {
                    return selectedExperiments.contains(rowModel.getObject());
                }

                @Override
                public void select() {
                    selectedExperiments.add(rowModel.getObject());
                }

                @Override
                public void unselect() {
                    selectedExperiments.add(rowModel.getObject());
                }

                @Override
                public void detach() {
                    rowModel.detach();
                }
            };

        }
    });
    columns.add(new PropertyColumn<Experiment, String>(ResourceUtils.getModel("dataTable.heading.number"),
            "experimentId", "experimentId"));
    columns.add(new PropertyColumn<Experiment, String>(
            ResourceUtils.getModel("dataTable.heading.scenarioTitle"), "scenario.title", "scenario.title"));
    columns.add(new PropertyColumn<Experiment, String>(ResourceUtils.getModel("dataTable.heading.date"),
            "startTime", "startTime"));
    columns.add(new PropertyColumn<Experiment, String>(ResourceUtils.getModel("dataTable.heading.gender"),
            "personBySubjectPersonId.gender", "personBySubjectPersonId.gender"));
    columns.add(new TimestampPropertyColumn<Experiment, String>(
            ResourceUtils.getModel("dataTable.heading.yearOfBirth"), "personBySubjectPersonId.dateOfBirth",
            "personBySubjectPersonId.dateOfBirth", "yyyy"));
    columns.add(new PropertyColumn<Experiment, String>(ResourceUtils.getModel("dataTable.heading.detail"), null,
            null) {
        @Override
        public void populateItem(Item<ICellPopulator<Experiment>> item, String componentId,
                IModel<Experiment> rowModel) {
            item.add(new ViewLinkPanel(componentId, ExperimentsDetailPage.class, "experimentId", rowModel,
                    ResourceUtils.getModel("link.detail")));
        }
    });

    return columns;
}