Example usage for org.apache.wicket.markup.html.list ListView ListView

List of usage examples for org.apache.wicket.markup.html.list ListView ListView

Introduction

In this page you can find the example usage for org.apache.wicket.markup.html.list ListView ListView.

Prototype

public ListView(final String id, final List<T> list) 

Source Link

Usage

From source file:com.senacor.wbs.web.user.ListRolesPanel.java

License:Apache License

public ListRolesPanel(String id) {
    super(id);/* ww  w  . j  av  a  2 s  . co  m*/
    setOutputMarkupId(true);
    setRenderBodyOnly(false);
    roleListView = new ListView("roleList", roleManager.findAll()) {
        protected void populateItem(ListItem item) {
            Role role = (Role) item.getModelObject();
            item.add(new RoleFragment("role", "roleFragment", role));
        }
    };
    add(roleListView);
    editRoleModalWindow = new EditRoleModalWindow("editRoleWindow");
    editRoleModalWindow.setOutputMarkupId(true);
    editRoleModalWindow.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
        public void onClose(AjaxRequestTarget target) {
            roleListView.setList(roleManager.findAll());
            target.addComponent(ListRolesPanel.this);
        }
    });
    add(editRoleModalWindow);
}

From source file:com.servoy.j2db.server.headlessclient.MainPage.java

License:Open Source License

@SuppressWarnings("nls")
private void init(WebClient sc) {
    setStatelessHint(false);//www .  j  a  va 2 s.  c  om
    client = sc;
    webForms = new ArrayList<IFormUIInternal<?>>();

    title = new Label("title", new Model<String>("Servoy Web Client")); //$NON-NLS-1$ //$NON-NLS-2$
    title.setOutputMarkupId(true);
    add(title);

    useAJAX = Utils.getAsBoolean(client.getRuntimeProperties().get("useAJAX")); //$NON-NLS-1$
    int dataNotifyFrequency = Utils
            .getAsInteger(sc.getSettings().getProperty("servoy.webclient.datanotify.frequency", "5")); //$NON-NLS-1$  //$NON-NLS-2$
    if (dataNotifyFrequency > 0 && useAJAX) {
        add(new AbstractAjaxTimerBehavior(Duration.seconds(dataNotifyFrequency)) {
            private static final long serialVersionUID = 1L;

            @Override
            protected void onTimer(AjaxRequestTarget target) {
                if (isServoyEnabled() && !client.getFlattenedSolution().isInDesign(null)
                        && String.valueOf(MainPage.this.getCurrentVersionNumber())
                                .equals(RequestCycle.get().getRequest().getParameter("pvs"))) {
                    WebEventExecutor.generateResponse(target, MainPage.this);
                }
            }

            @Override
            public void renderHead(IHeaderResponse response) {
                if (isServoyEnabled()) {
                    super.renderHead(response);

                    String jsTimerScript = getJsTimeoutCall(getUpdateInterval());
                    response.renderJavascript("function restartTimer() {" + jsTimerScript + "}", //$NON-NLS-1$//$NON-NLS-2$
                            "restartTimer"); //$NON-NLS-1$
                }
            }

            @Override
            protected CharSequence getPreconditionScript() {
                return "onAjaxCall(); if(Servoy.DD.isDragging) Servoy.DD.isRestartTimerNeeded=true; return !Servoy.DD.isDragging && !Servoy.redirectingOnSolutionClose;"; //$NON-NLS-1$
            }

            @Override
            protected CharSequence getFailureScript() {
                return "onAjaxError();restartTimer();"; //$NON-NLS-1$
            }

            @Override
            protected CharSequence getCallbackScript() {
                // if it is not enabled then just return an empty function. so that the timer stops.
                if (isServoyEnabled()) {
                    return generateCallbackScript("wicketAjaxGet('" + //$NON-NLS-1$
                    getCallbackUrl(onlyTargetActivePage()) + "&ignoremp=true&pvs=" //$NON-NLS-1$
                            + MainPage.this.getCurrentVersionNumber() + "'");
                }
                return "Servoy.Utils.nop()";
            }

            @Override
            public CharSequence getCallbackUrl(boolean onlyTargetActivePage) {
                if (getComponent() == null) {
                    throw new IllegalArgumentException(
                            "Behavior must be bound to a component to create the URL"); //$NON-NLS-1$
                }
                return getComponent().urlFor(this, AlwaysLastPageVersionRequestListenerInterface.INTERFACE);
            }

            @Override
            protected String findIndicatorId() {
                return null; // main page defines it and the timer shouldnt show it
            }

            /*
             * this can't be isEnabled(component) of the behavior itself because IE8 will constant call this on closed (modal)windows. So then this is
             * marked as disabled and an AbortException is thrown what our code sees as a server error and will constantly restart the timer.
             */
            private boolean isServoyEnabled() {
                return ((getController() != null && getController().isFormVisible()) || closingAsWindow);
            }

        });

    }
    add(new TriggerOrientationChangeAjaxBehavior());
    add(new TriggerResizeAjaxBehavior());

    add(new AbstractServoyLastVersionAjaxBehavior() {
        @Override
        protected void execute(AjaxRequestTarget target) {
            for (ServoyDivDialog divDialog : divDialogs.getOrderedByOpenSequence()) {
                if (!divDialog.isShown()) {
                    // this means a refresh was probably triggered and we must re-show these... because we do not keep closed dialogs in divDialogs
                    int x = divDialog.getX();
                    int y = divDialog.getY();
                    int w = divDialog.getWidth();
                    int h = divDialog.getHeight();
                    divDialog.show(target, null);
                    divDialog.setBounds(target, x, y, w, h, null);
                }
            }
            WebEventExecutor.generateResponse(target, MainPage.this);
        }

        @Override
        public void renderHead(IHeaderResponse response) {
            super.renderHead(response);
            response.renderOnDomReadyJavascript(getCallbackScript(true).toString());
        }

        @Override
        public boolean isEnabled(Component component) {
            return divDialogs.size() > 0 && super.isEnabled(component);
        }
    });

    body = new WebMarkupContainer("servoy_page") //$NON-NLS-1$
    {
        private static final long serialVersionUID = 1L;

        /**
         * @see org.apache.wicket.Component#onComponentTag(org.apache.wicket.markup.ComponentTag)
         */
        @Override
        protected void onComponentTag(ComponentTag tag) {
            super.onComponentTag(tag);
            tag.putAll(bodyAttributes);
        }
    };
    body.add(new AttributeModifier("dir", true, new AbstractReadOnlyModel<String>() //$NON-NLS-1$
    {

        @Override
        public String getObject() {
            String value = AttributeModifier.VALUELESS_ATTRIBUTE_REMOVE;
            Locale l = client.getLocale();
            Solution solution = client.getSolution();

            if (solution != null && l != null) {
                value = OrientationApplier.getHTMLContainerOrientation(l, solution.getTextOrientation());
            }
            return value;
        }
    }));

    add(body);
    pageContributor = new PageContributor(client, "contribution");
    body.add(pageContributor);

    Label loadingIndicator = new Label("loading_indicator", sc.getI18NMessage("servoy.general.loading"));
    loadingIndicator.add(new SimpleAttributeModifier("style", "display:none;"));

    body.add(loadingIndicator);
    divDialogsParent = new WebMarkupContainer(DIV_DIALOGS_REPEATER_PARENT_ID);
    divDialogsParent.setOutputMarkupPlaceholderTag(true);
    divDialogsParent.setVisible(false);
    body.add(divDialogsParent);

    if (useAJAX) {
        add(new TriggerUpdateAjaxBehavior()); // for when another page needs to trigger an ajax update on this page using js (see media upload)

        divDialogRepeater = new RepeatingView(DIV_DIALOG_REPEATER_ID);
        divDialogsParent.add(divDialogRepeater);

        fileUploadWindow = new ServoyDivDialog(FILE_UPLOAD_DIALOG_ID);
        body.add(fileUploadWindow);
        fileUploadWindow.setModal(true);
        fileUploadWindow.setPageMapName(null);
        fileUploadWindow.setCookieName("dialog_fileupload");
        fileUploadWindow.setResizable(true);
        fileUploadWindow.setInitialHeight(150);
        fileUploadWindow.setInitialWidth(400);
        fileUploadWindow.setMinimalHeight(130);
        fileUploadWindow.setMinimalWidth(400);
        fileUploadWindow.setUseInitialHeight(true); // no effect, can be removed
        fileUploadWindow.setPageCreator(new ModalWindow.PageCreator() {
            private static final long serialVersionUID = 1L;

            public Page createPage() {
                return new MediaUploadPage(PageMap.forName(FILE_UPLOAD_PAGEMAP), mediaUploadCallback,
                        mediaUploadMultiSelect, getController().getApplication());
            }
        });
        fileUploadWindow.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {
            private static final long serialVersionUID = 1L;

            public void onClose(AjaxRequestTarget target) {
                divDialogs.remove(FILE_UPLOAD_PAGEMAP);
                fileUploadWindow.setPageMapName(null);
                fileUploadWindow.remove(fileUploadWindow.getContentId());
                restoreFocusedComponentInParentIfNeeded();
                WebEventExecutor.generateResponse(target, findPage());
            }
        });
    } else {
        divDialogsParent.add(new Label("divdialogs"));
        body.add(new Label("fileuploaddialog")); //$NON-NLS-1$
    }

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

        @Override
        public String getObject() {
            if (main != null) {
                return getRequest().getRelativePathPrefixToContextRoot() + "servoy-webclient/templates/" + //$NON-NLS-1$
                client.getClientProperty(WEBCONSTANTS.WEBCLIENT_TEMPLATES_DIR)
                        + "/servoy_web_client_default.css"; //$NON-NLS-1$
            }
            return null;
        }
    };
    Label main_form_style = new Label("main_form_style"); //$NON-NLS-1$
    main_form_style.add(new AttributeModifier("href", true, styleHrefModel)); //$NON-NLS-1$
    add(main_form_style);

    IModel<List<IFormUIInternal<?>>> loopModel = new AbstractReadOnlyModel<List<IFormUIInternal<?>>>() {
        private static final long serialVersionUID = 1L;

        @Override
        public List<IFormUIInternal<?>> getObject() {
            return webForms;
        }
    };

    listview = new ListView<IFormUIInternal<?>>("forms", loopModel) //$NON-NLS-1$
    {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<IFormUIInternal<?>> item) {
            final WebForm form = (WebForm) item.getModelObject();
            tempRemoveMainForm = true;
            try {
                if (form.getParent() != null) {
                    form.remove(); // TODO isn't this already done by item.add(form) below in wicket's impl?
                }
                item.add(form);
            } finally {
                tempRemoveMainForm = false;
            }

            IFormLayoutProvider layoutProvider = FormLayoutProviderFactory.getFormLayoutProvider(client,
                    client.getSolution(), form.getController().getForm(), form.getController().getName());

            TextualStyle styleToReturn = null;

            if ((navigator != null) && (form == navigator.getFormUI())) {
                styleToReturn = layoutProvider.getLayoutForForm(navigator.getForm().getSize().width, true,
                        false);
            } else if (form == main) {
                int customNavWidth = 0;
                if (navigator != null)
                    customNavWidth = navigator.getForm().getSize().width;
                styleToReturn = layoutProvider.getLayoutForForm(customNavWidth, false, false);
            }
            if (styleToReturn != null) {
                form.add(new StyleAppendingModifier(styleToReturn) {
                    @Override
                    public boolean isEnabled(Component component) {
                        // Laurian: looks like bogus condition, shouldn't this be || as in WebForm ?
                        return (component.findParent(WebTabPanel.class) == null)
                                && (component.findParent(WebSplitPane.class) == null);
                    }
                });
            }
            TabIndexHelper.setUpTabIndexAttributeModifier(item, ISupportWebTabSeq.SKIP);
        }

        @Override
        protected ListItem<IFormUIInternal<?>> newItem(final int index) {
            return new ListItem<IFormUIInternal<?>>(index, getListItemModel(getModel(), index)) {
                @Override
                public void remove(Component component) {
                    super.remove(component);
                    // for example when a form is shown in a popup form (window plugin) it must know that it's main page changed
                    if (!tempRemoveMainForm && component instanceof WebForm) {
                        WebForm formUI = ((WebForm) component);
                        if (MainPage.this == formUI.getMainPage()) {
                            // if the form is visible and it will be now removed from the mainpage
                            // then call notifyVisble false on it to let the form know it will hide
                            // we can't do much if that is blocked by an onhide here.
                            // (could be triggered by a browser back button)
                            if (formUI.getController().isFormVisible()) {
                                List<Runnable> invokeLaterRunnables = new ArrayList<Runnable>();
                                formUI.getController().notifyVisible(false, invokeLaterRunnables);
                                Utils.invokeLater(client, invokeLaterRunnables);
                            }
                            formUI.setMainPage(null);
                        }
                    }
                }
            };
        }

        /**
         * @see org.apache.wicket.markup.html.list.ListView#onBeforeRender()
         */
        @Override
        protected void onBeforeRender() {
            super.onBeforeRender();
            // now first initialize all the tabs so that data from
            // tab x doesn't change anymore (so that it could alter data in tab y)
            // don't know if this still does anything because we need to do it
            // in the onBeforeRender of WebTabPanel itself, else tableviews don't have there models yet..
            visitChildren(WebTabPanel.class, new IVisitor<WebTabPanel>() {
                public Object component(WebTabPanel wtp) {
                    wtp.initalizeFirstTab();
                    return IVisitor.CONTINUE_TRAVERSAL;
                }
            });

            addWebAnchoringInfoIfNeeded();
        }
    };
    listview.setReuseItems(true);
    // if versioning is disabled then table views can go wrong (don't rollback on a submit)
    //listview.setVersioned(false);

    Form form = new ServoyForm("servoy_dataform"); //$NON-NLS-1$

    form.add(new SimpleAttributeModifier("autocomplete", "off")); //$NON-NLS-1$ //$NON-NLS-2$
    if (useAJAX)
        form.add(new SimpleAttributeModifier("onsubmit", "return false;")); //$NON-NLS-1$ //$NON-NLS-2$

    form.add(listview);
    WebMarkupContainer defaultButton = new WebMarkupContainer("defaultsubmitbutton", new Model()); //$NON-NLS-1$
    defaultButton.setVisible(!useAJAX);
    form.add(defaultButton);

    StylePropertyChangeMarkupContainer container = new StylePropertyChangeMarkupContainer("externaldivsparent");
    form.add(container);
    PageContributorRepeatingView repeatingView = new PageContributorRepeatingView("externaldivs", container);
    container.add(repeatingView);
    pageContributor.addRepeatingView(repeatingView);

    body.add(form);
}

From source file:com.servoy.j2db.server.headlessclient.SelectSolution.java

License:Open Source License

/**
 * Constructor that is invoked when page is invoked without a session.
 * /*from  www . j av a  2  s.  c o  m*/
 * @param parameters Page parameters
 */
public SelectSolution() throws RepositoryException {
    List<Solution> data = new ArrayList<Solution>();
    try {
        IApplicationServerSingleton as = ApplicationServerRegistry.get();
        if (as.isDeveloperStartup()) {
            data.add(as.getDebugClientHandler().getDebugSmartClient().getCurrent());
        } else {
            if (Utils
                    .getAsBoolean(Settings.getInstance().getProperty("servoy.allowSolutionBrowsing", "true"))) {
                RootObjectMetaData[] smds = as.getLocalRepository()
                        .getRootObjectMetaDatasForType(IRepository.SOLUTIONS);
                int solutionType;
                for (RootObjectMetaData element : smds) {
                    solutionType = ((SolutionMetaData) element).getSolutionType();
                    if ((solutionType & (SolutionMetaData.SOLUTION + SolutionMetaData.WEB_CLIENT_ONLY)) > 0) {
                        Solution solution = (Solution) as.getLocalRepository()
                                .getActiveRootObject(element.getRootObjectId());
                        if (solution != null) {
                            data.add(solution);
                        }
                    }
                }
            }
        }
    } catch (RemoteException e) {
        Debug.error(e);
    }

    add(new ListView<Solution>("solutions", data) {
        private static final long serialVersionUID = 1L;

        /**
         * Populate the table with Wicket elements
         */
        @Override
        protected void populateItem(final ListItem<Solution> listItem) {
            Solution sol = listItem.getModelObject();
            PageParameters parameters = new PageParameters();
            parameters.put("solution", sol.getName());
            Link l = new BookmarkablePageLink("solution_link", SolutionLoader.class, parameters);
            listItem.add(l);
            l.add(new Label("solution_name", sol.getName()));
            listItem.add(new Image("login_req", new ResourceReference(IApplication.class,
                    sol.requireAuthentication() ? "images/lock.gif" : "images/empty.gif")));
            //            listItem.add(new Label("release", ""+sd.getActiveRelease()));
        }
    });
}

From source file:com.swordlord.gozer.components.wicket.action.button.detail.GWDetailPanelActionToolbar.java

License:Open Source License

public GWDetailPanelActionToolbar(String name, IModel<GWContext> model, GDetail detail, final Form<?> form) {
    super(name, model);

    _detail = detail;/* ww  w.  j  a v  a 2  s  .  c om*/

    final GWContext context = getGWContext();
    final GozerController gc = context.getFrameExtension().getGozerController();

    List<GActionBase> actions = getKnownActions();

    ListView<GActionBase> listView = new ListView<GActionBase>("eachAction", actions) {
        @Override
        protected void populateItem(ListItem<GActionBase> item) {
            GActionBase ob = item.getModelObject();

            if (ob.getClass().equals(GNewAction.class)) {
                item.add(new GWNewButton(ACTION_WICKET_ID, gc, ob, form));
            } else if (ob.getClass().equals(GDeleteAction.class)) {
                item.add(new GWDeleteButton(ACTION_WICKET_ID, gc, ob, form));
            } else if (ob.getClass().equals(GAddAction.class)) {
                item.add(new GWAddButton(ACTION_WICKET_ID, gc, ob, form));
            } else if (ob.getClass().equals(GRemoveAction.class)) {
                item.add(new GWRemoveButton(ACTION_WICKET_ID, gc, ob, form));
            } else if (ob.getClass().equals(GToggleAction.class)) {
                item.add(new GWSwitchToListButton(ACTION_WICKET_ID, gc, ob));
            } else if (ob.getClass().equals(GFirstAction.class)) {
                item.add(new GWFirstButton(ACTION_WICKET_ID, gc, ob));
            } else if (ob.getClass().equals(GPrevAction.class)) {
                item.add(new GWPrevButton(ACTION_WICKET_ID, gc, ob));
            } else if (ob.getClass().equals(GNextAction.class)) {
                item.add(new GWNextButton(ACTION_WICKET_ID, gc, ob));
            } else if (ob.getClass().equals(GLastAction.class)) {
                item.add(new GWLastButton(ACTION_WICKET_ID, gc, ob));
            } else if (ob.getClass().equals(GOtherAction.class)) {
                item.add(new GWOtherButton(ACTION_WICKET_ID, gc, ob, form));
            }
        }
    };
    listView.setReuseItems(true);
    add(listView);

    if (actions.size() == 0) {
        listView.setVisible(false);
        this.setVisible(false);
    }
}

From source file:com.swordlord.gozer.components.wicket.action.GWActionBox.java

License:Open Source License

/**
 * @param id//from w ww . ja va  2s  .  com
 * @param model
 * @param actionBox
 * @param form
 */
public GWActionBox(String id, IModel<?> model, GActionBox actionBox, final Form<?> form) {
    super(id, model);

    _actionBox = actionBox;

    final GWContext context = getGWContext();
    final GozerController gc = context.getFrameExtension().getGozerController();

    final boolean isModal = context.isModal();

    List<GActionBase> actions = null;

    if (!isModal) {
        actions = filterKnownActions(actionBox, actionBox.getChildren());
    } else {
        actions = getModalActions(actionBox, actionBox.getObjectTree());
    }

    WebMarkupContainer toolbar = new WebMarkupContainer("action_toolbar");
    add(toolbar);

    // validate if this is within an hbox or not
    if (hasVBoxAsParent(actionBox)) {
        toolbar.add(new AttributeModifier("class", new Model<String>("actionbox_halve")));
    }

    ListView<GActionBase> listView = new ListView<GActionBase>("eachAction", actions) {
        @Override
        protected void populateItem(ListItem<GActionBase> item) {
            GActionBase ob = item.getModelObject();

            if (context.isModal()) {
                DataBinding dataBinding = new DataBinding(ob);

                ImageButton panel = new ImageButton(ACTION_WICKET_ID, "");
                panel.setEnabled(false);
                panel.setVisible(false);
                item.add(panel);

                if (ob.getClass().equals(GCancelAction.class)) {
                    item.add(new GWModalCancelButton(ACTION_PANEL_WICKET_ID, gc, context, dataBinding));
                } else if (ob.getClass().equals(GOKAction.class)) {
                    item.add(new GWModalOKButton(ACTION_PANEL_WICKET_ID, gc, context, dataBinding));
                }
            } else {
                Panel panel = new EmptyPanel(ACTION_PANEL_WICKET_ID);
                panel.setEnabled(false);
                panel.setVisible(false);
                item.add(panel);

                if (ob.getClass().equals(GNewAction.class)) {
                    item.add(new GWNewButton(ACTION_WICKET_ID, gc, ob, form));
                } else if (ob.getClass().equals(GCancelAction.class)) {
                    item.add(new GWCancelButton(ACTION_WICKET_ID, gc, ob, form));
                } else if (ob.getClass().equals(GDeleteAction.class)) {
                    item.add(new GWDeleteButton(ACTION_WICKET_ID, gc, ob, form));
                } else if (ob.getClass().equals(GDetailAction.class)) {
                    item.add(new GWDetailButton(ACTION_WICKET_ID, gc, ob));
                } else if (ob.getClass().equals(GPersistAction.class)) {
                    item.add(new GWPersistButton(ACTION_WICKET_ID, gc, ob, form));
                } else if (ob.getClass().equals(GGoBackAction.class)) {
                    item.add(new GWGoBackButton(ACTION_WICKET_ID, gc, ob));
                } else if (ob.getClass().equals(GEditAction.class)) {
                    item.add(new GWEditButton(ACTION_WICKET_ID, gc, ob, form));
                } else if (ob.getClass().equals(GFopAction.class)) {
                    item.add(new GWFopButton(ACTION_WICKET_ID, gc, ob));
                } else if (ob.getClass().equals(GReportAction.class)) {
                    item.add(new GWReportButton(ACTION_WICKET_ID, gc, (GReportAction) ob));
                } else if (ob.getClass().equals(GCsvAction.class)) {
                    item.add(new GWCsvButton(ACTION_WICKET_ID, gc, ob));
                } else if (ob.getClass().equals(GAddAction.class)) {
                    item.add(new GWAddButton(ACTION_WICKET_ID, gc, ob, form));
                } else if (ob.getClass().equals(GAddReferenceAction.class)) {
                    item.add(new GWAddReferenceButton(ACTION_WICKET_ID, gc, ob, form));
                } else if (ob.getClass().equals(GRemoveAction.class)) {
                    item.add(new GWRemoveButton(ACTION_WICKET_ID, gc, ob, form));
                } else if (ob.getClass().equals(GOtherAction.class)) {
                    item.add(new GWOtherButton(ACTION_WICKET_ID, gc, ob, form));
                } else {
                    LOG.error("Something went completely wrong. There is no check for the current class: "
                            + ob.getClass());
                    item.add(new WebMarkupContainer(ACTION_WICKET_ID).setVisible(false));
                }
            }
        }
    };

    listView.setReuseItems(true);

    toolbar.add(listView);

    if (actions.size() == 0) {
        toolbar.setVisible(false);
        this.setVisible(false);
    }
}

From source file:com.swordlord.gozer.components.wicket.box.GWFrame.java

License:Open Source License

/**
 * @param id//from  ww w  . j a  v a  2 s.c  om
 * @param model
 * @param gozerForm
 */
public GWFrame(String id, final IModel<?> model, ObjectBase gozerForm) {
    super(id, model);

    GWContext context = getGWContext();
    context.setFormPanel(this);

    final SecureForm<Object> form = new SecureForm<Object>("gozerForm");
    add(form);

    final FeedbackPanel feedback = new FeedbackPanel("feedback");
    form.add(feedback);
    // filteredErrorLevels will not be shown in the FeedbackPanel
    // int[] filteredErrorLevels = new int[]{FeedbackMessage.ERROR};
    // feedback.setFilter(new ErrorLevelFeedbackMessageFilter(filteredErrorLevels));

    ObjectBase formRoot = gozerForm;

    ListView<ObjectBase> listView = new ListView<ObjectBase>("eachGuiElem", formRoot.getChildren()) {
        @Override
        protected void populateItem(ListItem<ObjectBase> item) {
            ObjectBase ob = item.getModelObject();

            item.add(getPanelFromObjectBase("cell", ob, model, form));
        }
    };

    listView.setReuseItems(true);

    if (formRoot.getChildren().size() == 0) {
        listView.setVisible(false);
    }

    form.add(listView);
}

From source file:com.swordlord.gozer.components.wicket.box.GWHBoxPanel.java

License:Open Source License

public GWHBoxPanel(String id, final IModel<?> model, GHBox detail, final Form<?> form) {
    super(id, model);

    LinkedList<ObjectBase> childs = detail.getChildrenCloned();

    ListView<ObjectBase> listView = new ListView<ObjectBase>("cell", childs) {
        @Override/* w  w w  . j  a  va  2s  .c o  m*/
        protected void populateItem(ListItem<ObjectBase> item) {
            ObjectBase ob = item.getModelObject();

            item.add(getPanelFromObjectBase("content", ob, model, form));
        }
    };

    listView.setReuseItems(true);
    add(listView);
}

From source file:com.swordlord.gozer.components.wicket.box.GWVBoxPanel.java

License:Open Source License

public GWVBoxPanel(String id, final IModel<?> model, GVBox detail, final Form<?> form) {
    super(id, model);

    LinkedList<ObjectBase> childs = detail.getChildrenCloned();

    ListView<ObjectBase> listView = new ListView<ObjectBase>("eachGuiElem", childs) {
        @Override//w  w  w. j a  va  2s .c om
        protected void populateItem(ListItem<ObjectBase> item) {
            ObjectBase ob = item.getModelObject();

            item.add(getPanelFromObjectBase("cell", ob, model, form));
        }
    };

    listView.setReuseItems(true);
    add(listView);
}

From source file:com.swordlord.gozer.components.wicket.detail.GWDetailPanel.java

License:Open Source License

@SuppressWarnings("unchecked")
public GWDetailPanel(String id, IModel model, GDetail detail, final Form<?> form) {
    super(id, model);

    final IModel<?> detailModel = getModel();

    GWDetailPanelActionToolbar tb = new GWDetailPanelActionToolbar("actionToolbox", model, detail, form);
    add(tb);/*from   ww  w  . ja  v a2 s .  c  o  m*/

    LinkedList childs = (LinkedList) detail.getChildren().clone();
    for (int i = 0; i < childs.size(); i++) {
        if (childs.get(i) instanceof GActionToolbar) {
            childs.remove(i);
        }
    }

    ListView listView = new ListView("eachGuiElem", childs) {
        @Override
        protected void populateItem(ListItem item) {
            ObjectBase formObject = (ObjectBase) item.getModelObject();

            String tblName = formObject.getDataBinding().getDataBindingMember().getDataBindingTableName();
            String fieldName = formObject.getDataBinding().getDataBindingField().getFieldName();
            DataTableBase dtb = formObject.getDataBinding().getDataBindingManager().getDataContainer()
                    .getTableByAbsoluteName("com.swordlord.repository.datatable." + tblName + ".base." + tblName
                            + "DataTableBase");
            String[] listOfFields = dtb.getPropertyList();

            // TODO re-add EAD Manager
            //if (!formObject.getClass().equals(GLibraryField.class) && !formObject.getClass().equals(GOneToNField.class)
            //        && !EADManager.instance().isAttributeDefined(listOfFields, tblName, fieldName))
            if (!formObject.getClass().equals(GLibraryField.class)
                    && !formObject.getClass().equals(GOneToNField.class)) {
                String msg = _tr.getString("com.swordlord.sobf.wicket.message",
                        "virutal_attribute_not_defined_db");
                msg = MessageFormat.format(msg + " ({0}, {1})", fieldName, tblName);
                LOG.warn(msg);
                Label label = new Label("cell",
                        "<td colspan=3><b><font color=red>" + msg + "<br></font></b></td>");
                label.setEscapeModelStrings(false);
                item.add(label);
            } else {

                if (formObject.getClass().equals(GField.class)) {
                    final DataBinding dataBinding = formObject.getDataBinding();
                    final DataBindingField field = dataBinding.getDataBindingField();

                    if (field.isForeignKey()) {
                        GWDetailFKeyFieldPanel detailFKeyFieldPanel = new GWDetailFKeyFieldPanel("cell",
                                detailModel, (GField) formObject, GWDetailPanel.this);
                        detailFKeyFieldPanel.setRenderBodyOnly(true);
                        // omit the <span> tags, we want to have the <td>
                        // tags of DetailFieldPanel
                        // right after <tr>

                        item.add(detailFKeyFieldPanel);
                    } else if (field.getDataFormat() instanceof DateTypeFormat) {
                        GWDetailDateFieldPanel detailFieldPanel = new GWDetailDateFieldPanel("cell",
                                detailModel, (GField) formObject);
                        detailFieldPanel.setRenderBodyOnly(true);
                        // omit the <span> tags, we want to have the <td>
                        // tags of DetailFieldPanel
                        // right after <tr>
                        item.add(detailFieldPanel);
                    } else if (field.getDataFormat() instanceof BooleanTypeFormat) {
                        GWDetailBooleanFieldPanel detailBooleanFieldPanel = new GWDetailBooleanFieldPanel(
                                "cell", detailModel, (GField) formObject);
                        detailBooleanFieldPanel.setRenderBodyOnly(true);
                        // omit the <span> tags, we want to have the <td>
                        // tags of DetailFieldPanel
                        // right after <tr>

                        item.add(detailBooleanFieldPanel);
                    }

                    else {
                        GWDetailFieldPanel detailFieldPanel = new GWDetailFieldPanel("cell", detailModel,
                                (GField) formObject);
                        detailFieldPanel.setRenderBodyOnly(true);
                        // omit the <span> tags, we want to have the <td>
                        // tags of DetailFieldPanel
                        // right after <tr>

                        item.add(detailFieldPanel);
                    }
                } else if (formObject.getClass().equals(GLinkField.class)) {
                    GWDetailLinkFieldPanel detailLinkFieldPanel = new GWDetailLinkFieldPanel("cell",
                            detailModel, (GLinkField) formObject);
                    detailLinkFieldPanel.setRenderBodyOnly(true);
                    // omit the <span> tags, we want to have the <td> tags
                    // of DetailFieldPanel
                    // right after <tr>

                    item.add(detailLinkFieldPanel);
                } else if (formObject.getClass().equals(GCodeField.class)) {
                    GWDetailCodeFieldPanel detailCodeFieldPanel = new GWDetailCodeFieldPanel("cell",
                            detailModel, (GCodeField) formObject);
                    detailCodeFieldPanel.setRenderBodyOnly(true);
                    // omit the <span> tags, we want to have the <td> tags
                    // of DetailFieldPanel
                    // right after <tr>

                    item.add(detailCodeFieldPanel);
                } else if (formObject.getClass().equals(GPredefinedListField.class)) {
                    GWDetailPredefinedListFieldPanel detailPredefinedListFieldPanel = new GWDetailPredefinedListFieldPanel(
                            "cell", detailModel, (GPredefinedListField) formObject);
                    detailPredefinedListFieldPanel.setRenderBodyOnly(true);
                    // omit the <span> tags, we want to have the <td> tags
                    // of DetailFieldPanel
                    // right after <tr>

                    item.add(detailPredefinedListFieldPanel);
                } else if (formObject.getClass().equals(GOneToNField.class)) {
                    GWDetailOneToNPanel detailOneToNPanel = new GWDetailOneToNPanel("cell", detailModel,
                            (GOneToNField) formObject, GWDetailPanel.this);
                    detailOneToNPanel.setRenderBodyOnly(true);

                    item.add(detailOneToNPanel);
                }
            }
        }
    };

    listView.setReuseItems(true);
    add(listView);
}

From source file:com.ttdev.wicketpagetest.sample.guice.PageExtractedByWicketIds.java

License:Open Source License

public PageExtractedByWicketIds() {
    values = new ArrayList<Integer>();
    values.add(3);//from  ww w.  j  a v  a  2  s  .  co  m
    values.add(2);
    values.add(8);
    ListView<Integer> eachRow = new ListView<Integer>("eachRow", values) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<Integer> item) {
            Form<Void> f = new Form<Void>("f");
            f.add(new TextField<Integer>("v", item.getModel(), Integer.class));
            f.add(new AjaxButton("ok") {

                private static final long serialVersionUID = 1L;

                @Override
                protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
                    target.add(totalLabel);
                }

                @Override
                protected void onError(AjaxRequestTarget target, Form<?> form) {

                }

            });
            item.add(f);
        }
    };
    add(eachRow);
    WebMarkupContainer container = new WebMarkupContainer("container");
    add(container);
    totalLabel = new Label("total", new PropertyModel<String>(this, "total"));
    totalLabel.setOutputMarkupId(true);
    container.add(totalLabel);
}