Example usage for org.apache.wicket.extensions.ajax.markup.html.modal ModalWindow setContent

List of usage examples for org.apache.wicket.extensions.ajax.markup.html.modal ModalWindow setContent

Introduction

In this page you can find the example usage for org.apache.wicket.extensions.ajax.markup.html.modal ModalWindow setContent.

Prototype

public ModalWindow setContent(final Component component) 

Source Link

Document

Sets the content of the modal window.

Usage

From source file:ro.nextreports.server.web.core.HeaderPanel.java

License:Apache License

public HeaderPanel(String id) {
    super(id);//  ww  w.  j a v a2 s.com

    final WebMarkupContainer imageContainer = new WebMarkupContainer("imageContainer");
    imageContainer.setOutputMarkupPlaceholderTag(true);
    imageContainer.add(new Image("logoImage", new LogoResource()));
    add(imageContainer);

    add(new Label("currentUser", NextServerSession.get().getUsername()));
    add(new Label("realName", NextServerSession.get().getRealName()));

    final ModalWindow dialog = new ModalWindow("modal");
    add(dialog);

    Link<String> logoutLink = new Link<String>("logout") {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick() {
            NextServerSession.get().signOut();

            if (CasUtil.isCasUsed()) {
                setResponsePage(new RedirectPage(CasUtil.getLogoutUrl()));
            } else {
                setResponsePage(getApplication().getHomePage());
            }
        }

    };
    add(logoutLink);

    AjaxLink<String> changePassword = new AjaxLink<String>("changePassord") {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            dialog.setTitle(getString("ChangePassword.change"));
            dialog.setInitialWidth(350);
            dialog.setUseInitialHeight(false);
            dialog.setContent(new ChangePasswordPanel(dialog.getContentId()) {

                private static final long serialVersionUID = 1L;

                @Override
                public void onChange(AjaxRequestTarget target) {
                    ModalWindow.closeCurrent(target);
                    try {
                        User loggedUser = securityService.getUserByName(NextServerSession.get().getUsername());
                        loggedUser.setPassword(passwordEncoder.encodePassword(confirmPassword, null));
                        storageService.modifyEntity(loggedUser);
                    } catch (Exception e) {
                        e.printStackTrace();
                        add(new AlertBehavior(e.getMessage()));
                        target.add(this);
                    }
                }

                @Override
                public void onCancel(AjaxRequestTarget target) {
                    ModalWindow.closeCurrent(target);
                }

            });
            dialog.show(target);
        }
    };
    add(changePassword);
    if (NextServerSession.get().isDemo()) {
        changePassword.setEnabled(false);
    }
}

From source file:ro.nextreports.server.web.core.migration.ExportPanel.java

License:Apache License

@SuppressWarnings("unchecked")
public ExportPanel(String id) {
    super(id);/*w  w w . ja v  a  2  s .  c  om*/

    final FeedbackPanel feedbackPanel = new FeedbackPanel("feedback");
    feedbackPanel.setOutputMarkupId(true);
    add(feedbackPanel);

    Form<Void> exportForm = new Form<Void>("exportForm");
    add(exportForm);

    final Model<ArrayList<String>> choiceModel = new Model<ArrayList<String>>();
    final ListMultipleChoice listChoice = new ListMultipleChoice("listChoice", choiceModel,
            new PropertyModel<String>(this, "list"));
    listChoice.setMaxRows(10);
    listChoice.setOutputMarkupId(true);
    exportForm.add(listChoice);

    AjaxLink addLink = new AjaxLink<Void>("addElement") {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            ModalWindow dialog = findParent(BasePage.class).getDialog();
            dialog.setTitle(getString("Settings.migration.export.entity.add"));
            dialog.setInitialWidth(350);
            dialog.setUseInitialHeight(false);

            AddEntityPanel addEntityPanel = new AddEntityPanel() {

                private static final long serialVersionUID = 1L;

                @Override
                public void onOk(AjaxRequestTarget target) {
                    Iterator<Entity> entities = getEntities();
                    if (!entities.hasNext()) {
                        error(getString("Settings.migration.export.entity.select"));
                        target.add(getFeedbackPanel());
                        return;
                    }
                    while (entities.hasNext()) {
                        Entity entity = entities.next();
                        String path = entity.getPath();
                        path = path.substring(StorageConstants.NEXT_SERVER_ROOT.length() + 1);
                        if (!list.contains(path)) {
                            list.add(path);
                        }
                    }
                    ModalWindow.closeCurrent(target);
                    target.add(listChoice);
                }

            };
            dialog.setContent(new FormPanel<Void>(dialog.getContentId(), addEntityPanel, true) {

                private static final long serialVersionUID = 1L;

                @Override
                protected void onConfigure() {
                    super.onConfigure();
                    setOkButtonValue(getString("add"));
                }

            });
            dialog.show(target);
        }

    };
    addLink.add(new SimpleTooltipBehavior(getString("Settings.migration.export.entity.add")));
    exportForm.add(addLink);

    AjaxSubmitLink removeLink = new AjaxSubmitLink("removeElement", exportForm) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            for (String sel : choiceModel.getObject()) {
                for (Iterator<?> it = list.iterator(); it.hasNext();) {
                    if (sel.equals(it.next())) {
                        it.remove();
                    }
                }
            }
            if (target != null) {
                target.add(listChoice);
            }
        }

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

    };
    removeLink.add(new SimpleTooltipBehavior(getString("Settings.migration.export.entity.remove")));
    exportForm.add(removeLink);

    TextField<String> exportField = new TextField<String>("exportPath",
            new PropertyModel<String>(this, "exportPath"));
    exportField.setLabel(new Model<String>(getString("Settings.migration.export.path")));
    exportForm.add(exportField);

    exportForm.add(new AjaxSubmitLink("export") {

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

            // we do not use TextField validation with setRequired because we have a submit button (remove entity)
            // which must work without validation
            if ((exportPath == null) || "".endsWith(exportPath.trim())) {
                error(getString("Settings.migration.export.path.select"));
                target.add(feedbackPanel);
                return;
            }

            NextServerApplication.setMaintenance(true);

            MigrationObject mo = new MigrationObject();
            List<DataSource> dsList = new ArrayList<DataSource>();
            List<Report> reportList = new ArrayList<Report>();
            List<Chart> chartList = new ArrayList<Chart>();
            List<DashboardState> dashboards = new ArrayList<DashboardState>();
            mo.setDataSources(dsList);
            mo.setReports(reportList);
            mo.setCharts(chartList);
            mo.setDashboards(dashboards);

            FileOutputStream fos = null;
            try {

                if (list.size() == 0) {
                    error(getString("Settings.migration.export.entity.select"));
                } else {

                    for (String pathM : list) {
                        populateLists(pathM, mo);
                    }

                    XStream xstream = new XStream(new DomDriver());
                    SimpleDateFormat sdf = new SimpleDateFormat("dd_MM_yyyy_hh_mm");
                    fos = new FileOutputStream(
                            exportPath + File.separator + "migration-" + sdf.format(new Date()) + ".xml");
                    xstream.toXML(mo, fos);

                    info(getString("Settings.migration.export.info"));
                }
            } catch (Throwable t) {
                error(t.getMessage());
            } finally {
                NextServerApplication.setMaintenance(false);
                if (fos != null) {
                    try {
                        fos.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }

            target.add(feedbackPanel);

        }

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

    });
}

From source file:ro.nextreports.server.web.dashboard.DashboardNavigationPanel.java

License:Apache License

private void addToolbar() {

    ContextImage dashboardImage = new ContextImage("dashboardImage", "images/dashboard_add.png");
    dashboardImage.add(new WiQueryAjaxEventBehavior(MouseEvent.CLICK) {

        private static final long serialVersionUID = 1L;

        @Override/*www .  ja  v a 2s  .  c o m*/
        protected void onEvent(AjaxRequestTarget target) {
            ModalWindow dialog = findParent(BasePage.class).getDialog();
            dialog.setTitle(getString("DashboardStatistics.title"));
            dialog.setInitialWidth(300);
            dialog.setUseInitialHeight(false);
            dialog.setContent(new DashboardStatisticsPanel(dialog.getContentId()));
            dialog.show(target);
        }

        @Override
        public JsStatement statement() {
            return null;
        }

    });
    dashboardImage.add(new SimpleTooltipBehavior(getString("DashboardStatistics.title")));
    add(dashboardImage);

    add(new AjaxLink<Void>("addDashboard") {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            ModalWindow dialog = findParent(BasePage.class).getDialog();
            dialog.setTitle(getString("DashboardNavigationPanel.add"));
            dialog.setInitialWidth(350);
            dialog.setUseInitialHeight(false);

            final AddDashboardPanel addDashboardPanel = new AddDashboardPanel(dialog.getContentId()) {

                private static final long serialVersionUID = 1L;

                @Override
                public void onAdd(AjaxRequestTarget target) {
                    ModalWindow.closeCurrent(target);
                    String id;
                    String title = getTitle();
                    Dashboard dashboard = new DefaultDashboard(title, getColumnCount());
                    id = dashboardService.addDashboard(dashboard);

                    SectionContext sectionContext = NextServerSession.get()
                            .getSectionContext(DashboardSection.ID);
                    sectionContext.getData().put(SectionContextConstants.SELECTED_DASHBOARD_ID, id);

                    target.add(DashboardNavigationPanel.this.findParent(DashboardBrowserPanel.class));
                }

                @Override
                public void onCancel(AjaxRequestTarget target) {
                    ModalWindow.closeCurrent(target);
                }

            };
            dialog.setContent(addDashboardPanel);
            dialog.show(target);
        }

    });
}

From source file:ro.nextreports.server.web.dashboard.DashboardPanel.java

License:Apache License

private void addToolbar() {

    toolbarContainer = new WebMarkupContainer("toolbar");
    add(toolbarContainer);/*from w ww.  j a  v  a 2 s  . c  o m*/

    IModel<String> toggleImageModel = new LoadableDetachableModel<String>() {

        private static final long serialVersionUID = 1L;

        @Override
        protected String load() {
            String imagePath = "images/left-gray.png";
            Map<String, String> preferences = NextServerSession.get().getPreferences();
            boolean isHidden = !PreferencesHelper.getBoolean("dashboard.navigationToggle", preferences);
            if (isHidden) {
                imagePath = "images/right-gray.png";
            }

            return imagePath;
        }

    };
    final ContextImage toggle = new ContextImage("toggle", toggleImageModel);
    toggle.add(new WiQueryAjaxEventBehavior(MouseEvent.CLICK) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onEvent(AjaxRequestTarget target) {
            Map<String, String> preferences = NextServerSession.get().getPreferences();
            boolean toogle = false;
            if (preferences.containsKey("dashboard.navigationToggle")) {
                toogle = Boolean.parseBoolean(preferences.get("dashboard.navigationToggle"));
                toogle = !toogle;
            }

            preferences.put("dashboard.navigationToggle", String.valueOf(toogle));
            NextServerSession.get().setPreferences(preferences);

            DashboardBrowserPanel browserPanel = findParent(DashboardBrowserPanel.class);
            target.add(browserPanel.getDashboardNavigationPanel());
            target.add(toggle);
            target.add(DashboardPanel.this);
        }

        public JsStatement statement() {
            return null;
        }

    });
    IModel<String> toggleTooltipModel = new LoadableDetachableModel<String>() {

        private static final long serialVersionUID = 1L;

        @Override
        protected String load() {
            String tooltip = getString("DashboardPanel.hide");
            Map<String, String> preferences = NextServerSession.get().getPreferences();
            boolean isHidden = !PreferencesHelper.getBoolean("dashboard.navigationToggle", preferences);
            if (isHidden) {
                tooltip = getString("DashboardPanel.show");
            }

            return tooltip;
        }

    };
    toggle.add(new AttributeModifier("title", toggleTooltipModel));
    toolbarContainer.add(toggle);

    //      add(new AjaxLink<Void>("addDashboard") {
    //
    //         private static final long serialVersionUID = 1L;
    //
    //         @Override
    //         public void onClick(AjaxRequestTarget target) {
    //                ModalWindow dialog = findParent(BasePage.class).getDialog();
    //                dialog.setTitle("Add dashboard");
    //                dialog.setInitialWidth(350);
    //                dialog.setUseInitialHeight(false);
    //                
    //                final AddDashboardPanel addDashboardPanel = new AddDashboardPanel(dialog.getContentId()) {
    //
    //               private static final long serialVersionUID = 1L;
    //
    //               @Override
    //                    public void onAdd(AjaxRequestTarget target) {
    //                        ModalWindow.closeCurrent(target);
    //                        String id;
    //                        String title = getTitle();                        
    //                        Dashboard dashboard = new DefaultDashboard(title, getColumnCount());
    //                        id = dashboardService.addOrModifyDashboard(dashboard);
    //
    //                        SectionContext sectionContext = NextServerSession.get().getSectionContext(DashboardSection.ID);
    //                        sectionContext.getData().put(SectionContextConstants.SELECTED_DASHBOARD_ID, id);
    //                        
    //                        target.add(DashboardPanel.this.findParent(DashboardBrowserPanel.class));
    //                    }
    //
    //                    @Override
    //                    public void onCancel(AjaxRequestTarget target) {
    //                        ModalWindow.closeCurrent(target);
    //                    }
    //
    //                };
    //                dialog.setContent(addDashboardPanel);
    //                dialog.show(target);
    //         }
    //         
    //      });

    AjaxLink<Void> refreshLink = new AjaxLink<Void>("refresh") {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            target.add(DashboardPanel.this);
        }

    };
    toolbarContainer.add(refreshLink);

    AjaxLink<Void> addWidgetLink = new AjaxLink<Void>("addWidget") {

        private static final long serialVersionUID = 1L;

        @SuppressWarnings("unchecked")
        @Override
        public void onClick(AjaxRequestTarget target) {
            ModalWindow dialog = findParent(BasePage.class).getDialog();
            dialog.setTitle(getString("DashboardPanel.add"));
            dialog.setInitialWidth(350);
            dialog.setUseInitialHeight(false);

            AddWidgetPanel addWidgetPanel = new AddWidgetPanel() {

                private static final long serialVersionUID = 1L;

                @Override
                public void onOk(AjaxRequestTarget target) {
                    if (getEntity() == null) {
                        error(getString("DashboardPanel.select"));
                        target.add(getFeedbackPanel());
                        return;
                    }

                    ModalWindow.closeCurrent(target);

                    Widget widget = null;
                    //!important: first we test for pivot and then for drill-downable
                    if (isPivot()) {
                        PivotWidget pivotWidget = (PivotWidget) widgetFactory
                                .createWidget(new PivotWidgetDescriptor());
                        pivotWidget.setEntity(getEntity());
                        widget = pivotWidget;
                    } else if (isDrillDownable()) {
                        DrillDownWidget drillWidget = (DrillDownWidget) widgetFactory
                                .createWidget(new DrillDownWidgetDescriptor());
                        drillWidget.setEntity(getEntity());
                        widget = drillWidget;
                    } else if (isChart()) {
                        ChartWidget chartWidget = (ChartWidget) widgetFactory
                                .createWidget(new ChartWidgetDescriptor());
                        chartWidget.setEntity(getEntity());
                        widget = chartWidget;
                    } else if (isTable()) {
                        TableWidget tableWidget = (TableWidget) widgetFactory
                                .createWidget(new TableWidgetDescriptor());
                        tableWidget.setEntity(getEntity());
                        widget = tableWidget;
                    } else if (isAlarm()) {
                        AlarmWidget alarmWidget = (AlarmWidget) widgetFactory
                                .createWidget(new AlarmWidgetDescriptor());
                        alarmWidget.setEntity(getEntity());
                        widget = alarmWidget;
                    } else if (isIndicator()) {
                        IndicatorWidget indicatorWidget = (IndicatorWidget) widgetFactory
                                .createWidget(new IndicatorWidgetDescriptor());
                        indicatorWidget.setEntity(getEntity());
                        widget = indicatorWidget;
                    } else if (isDisplay()) {
                        DisplayWidget displayWidget = (DisplayWidget) widgetFactory
                                .createWidget(new DisplayWidgetDescriptor());
                        displayWidget.setEntity(getEntity());
                        widget = displayWidget;
                    }
                    widget.setTitle(getUniqueWidgetTitle(widget.getTitle()));
                    widget.afterCreate(storageService);
                    Dashboard dashboard = getDashboard();
                    try {
                        dashboardService.addWidget(dashboard.getId(), widget);
                    } catch (NotFoundException e) {
                        // never happening
                        throw new RuntimeException(e);
                    }

                    // TODO
                    /*
                    target.add(getLeftColumnPanel());
                    // @todo
                    // if we do not refresh right panel we have a strange bug :                       
                    // move a W widget from left to right, add a widget (to left), move W from right to left (will look like the added widget) 
                    target.add(getRightColumnPanel());
                    */
                    /*
                    for (int i = 0; i < getDashboard().getColumnCount(); i++) {
                       System.out.println(">>> " + i);
                       System.out.println(getColumnPanel(i));
                       target.add(getColumnPanel(i));
                    }
                    */

                    // globalSettingsLink may be disabled
                    //                       target.add(globalSettingsLink);         

                    // need to to do detach (otherwise after we add a widget to current dashboard, added widget does not appear)!
                    // see also DashboardColumnModel
                    DashboardPanel.this.getModel().detach();
                    target.add(DashboardPanel.this);
                }

            };
            dialog.setContent(new FormPanel<Void>(dialog.getContentId(), addWidgetPanel, true) {

                private static final long serialVersionUID = 1L;

                @Override
                protected void onConfigure() {
                    super.onConfigure();
                    setOkButtonValue(getString("add"));
                }

            });
            dialog.show(target);
        }

        @Override
        public boolean isVisible() {
            return hasWritePermission();
        }

    };
    toolbarContainer.add(addWidgetLink);

    globalSettingsLink = new AjaxLink<Void>("globalSettings") {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            ModalWindow dialog = findParent(BasePage.class).getDialog();
            dialog.setTitle(getString("DashboardPanel.global"));

            final WidgetRuntimeModel runtimeModel = ChartUtil.getGlobalRuntimeModel(
                    storageService.getSettings(), getDashboard().getId(), reportService, dataSourceService,
                    dashboardService);
            Entity entity = null;
            if (runtimeModel.getParameters().size() > 0) {
                entity = ((EntityWidget) getDashboard().getWidgets().get(0)).getEntity();
            }
            if (getDashboard().getWidgets().size() > 0) {
                final ParameterRuntimePanel paramRuntimePanel = new GeneralWidgetRuntimePanel(
                        "chartRuntimePanel", entity, runtimeModel, true);

                boolean isDynamic = false;
                if (paramRuntimePanel instanceof DynamicParameterRuntimePanel) {
                    if (((DynamicParameterRuntimePanel) paramRuntimePanel).hasDynamicParameter()) {
                        isDynamic = true;
                    }
                }

                if (paramRuntimePanel.hasPalette()) {
                    if (isDynamic) {
                        dialog.setInitialWidth(720);
                    } else {
                        dialog.setInitialWidth(685);
                    }
                } else {
                    if (isDynamic) {
                        dialog.setInitialWidth(445);
                    } else {
                        dialog.setInitialWidth(435);
                    }
                }
                dialog.setUseInitialHeight(false);
                dialog.setContent(new WidgetSettingsPanel(dialog.getContentId(), paramRuntimePanel) {

                    private static final long serialVersionUID = 1L;

                    @Override
                    public void onChange(AjaxRequestTarget target) {
                        changeGlobalSettings(runtimeModel, target);
                    }

                    @Override
                    public void onCancel(AjaxRequestTarget target) {
                        ModalWindow.closeCurrent(target);
                    }

                    @Override
                    public void onReset(AjaxRequestTarget target) {
                        // resetSettings(widget, target);
                    }

                });
            } else {
                dialog.setContent(new Label(dialog.getContentId(), getString("DashboardPanel.empty")));
                dialog.setInitialWidth(300);
                dialog.setInitialHeight(40);
            }
            dialog.show(target);
        }

        @Override
        public boolean isVisible() {
            return hasWritePermission()
                    && (DashboardUtil.getDashboard(DashboardUtil.getSelectedDashboardId(), dashboardService)
                            .getWidgets().size() > 0);
        }

    };
    globalSettingsLink.setOutputMarkupId(true);
    globalSettingsLink.setOutputMarkupPlaceholderTag(true);
    toolbarContainer.add(globalSettingsLink);

    toolbarContainer.add(new AjaxLink<Void>("pdf") {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            target.appendJavaScript(getPdfJavascriptCall());
        }

        // a landscape pdf with the entire visible part of dashboard
        private String getPdfJavascriptCall() {
            StringBuilder sb = new StringBuilder();
            sb.append("var doc = new jsPDF('l', 'mm');");
            //sb.append("var list = $('li[id^=\"widget\"]');");
            //sb.append("pdfSettings.position = 1;");
            sb.append("var list = $('div[class=\"dashboardCapture\"]');");
            sb.append("var pdfSettings = new Object();");
            sb.append("pdfSettings.doc = doc;");
            sb.append("pdfSettings.elements = list;");
            sb.append("pdfSettings.title = \"" + getDashboard().getTitle() + "\";");
            sb.append("pdfSettings.showFooter = true;");
            sb.append("pdfSettings.footerText = \"Generated by NextReports "
                    + new SimpleDateFormat().format(new Date()) + "\";");
            sb.append("capturePdf(pdfSettings);");
            return sb.toString();
        }

    });

}

From source file:ro.nextreports.server.web.dashboard.WidgetPopupMenuModel.java

License:Apache License

private AjaxLink createEditLink(final IModel<Widget> model) {
    AjaxLink<Void> editLink = new AjaxLink<Void>(MenuPanel.LINK_ID) {

        @Override//w w w.  ja  v  a2  s . co  m
        public void onClick(AjaxRequestTarget target) {

            final Widget widget = model.getObject();
            final ModalWindow dialog = findParent(BasePage.class).getDialog();

            dialog.setTitle(new StringResourceModel("WidgetPopupMenu.editSettings", null).getString());
            dialog.setUseInitialHeight(false);
            dialog.setOutputMarkupId(true);

            final WidgetRuntimeModel runtimeModel;
            final ParameterRuntimePanel paramRuntimePanel;

            final EntityWidget entityWidget = (EntityWidget) widget;

            String userDataPath = WidgetUtil.getUserWidgetParametersPath(ServerUtil.getUsername()) + "/"
                    + entityWidget.getId();
            UserWidgetParameters wp = null;
            try {
                String dashboardId = getDashboardId(entityWidget.getId());
                String owner = dashboardService.getDashboardOwner(dashboardId);
                String user = ServerUtil.getUsername();
                boolean isDashboardLink = !owner.equals(user);
                boolean hasWrite = securityService.hasPermissionsById(user, PermissionUtil.getWrite(),
                        dashboardId);
                if (isDashboardLink && !hasWrite) {
                    wp = (UserWidgetParameters) storageService.getEntity(userDataPath);
                }
            } catch (NotFoundException e) {
                // nothing to do
                Log.info("There is no UserWidgetParameters for : " + userDataPath);
                System.out.println("----> NOT FOUND");
            }
            final UserWidgetParameters fwp = wp;

            runtimeModel = ChartUtil.getRuntimeModel(storageService.getSettings(), entityWidget, reportService,
                    dataSourceService, true, fwp);
            if ((widget instanceof ChartWidget) || ((widget instanceof DrillDownWidget)
                    && (((DrillDownWidget) widget).getEntity() instanceof Chart))) {
                Chart chart = (Chart) entityWidget.getEntity();
                paramRuntimePanel = new ChartRuntimePanel("chartRuntimePanel", chart, runtimeModel);
            } else if ((widget instanceof TableWidget) || ((widget instanceof DrillDownWidget)
                    && (((DrillDownWidget) widget).getEntity() instanceof Report))) {
                paramRuntimePanel = new TableWidgetRuntimePanel("chartRuntimePanel", entityWidget.getEntity(),
                        runtimeModel);
            } else {
                paramRuntimePanel = new GeneralWidgetRuntimePanel("chartRuntimePanel", entityWidget.getEntity(),
                        runtimeModel);
            }

            boolean isDynamic = false;
            if (paramRuntimePanel instanceof DynamicParameterRuntimePanel) {
                if (((DynamicParameterRuntimePanel) paramRuntimePanel).hasDynamicParameter()) {
                    isDynamic = true;
                }
            }

            if (paramRuntimePanel.hasPalette()) {
                if (isDynamic) {
                    dialog.setInitialWidth(720);
                } else {
                    dialog.setInitialWidth(685);
                }
            } else {
                if (isDynamic) {
                    dialog.setInitialWidth(445);
                } else {
                    dialog.setInitialWidth(435);
                }
            }

            final Component component = this;

            dialog.setContent(new WidgetSettingsPanel(dialog.getContentId(), paramRuntimePanel) {

                private static final long serialVersionUID = 1L;

                @Override
                public void onChange(AjaxRequestTarget target) {
                    changeSettings(getFeedbackPanel(), component, widget, runtimeModel, target);
                }

                @Override
                public void onCancel(AjaxRequestTarget target) {
                    ModalWindow.closeCurrent(target);
                }

                @Override
                public void onReset(AjaxRequestTarget target) {
                    resetSettings(getFeedbackPanel(), component, widget, target);
                }
            });

            dialog.show(target);
        }

        //         @Override
        //            public boolean isVisible() {            
        //            return hasWritePermission(model.getObject());
        //         }              
    };

    return editLink;
}

From source file:ro.nextreports.server.web.dashboard.WidgetPopupMenuModel.java

License:Apache License

private AjaxLink createEmbedCodeLink(final IModel<Widget> model) {
    AjaxLink<Void> link = new AjaxLink<Void>(MenuPanel.LINK_ID) {

        private static final long serialVersionUID = 1L;

        @Override/* w w w . j  a  v a 2s  .c  o  m*/
        public void onClick(AjaxRequestTarget target) {
            final Widget widget = model.getObject();
            ModalWindow dialog = findParent(BasePage.class).getDialog();

            dialog.setTitle(new StringResourceModel("WidgetPopupMenu.embeddedCode", null).getString());
            dialog.setInitialWidth(550);
            dialog.setUseInitialHeight(false);

            dialog.setContent(new WidgetEmbedCodePanel(dialog.getContentId(), widget.getId()));
            dialog.show(target);
        }
    };
    return link;
}

From source file:ro.nextreports.server.web.dashboard.WidgetPopupMenuModel.java

License:Apache License

private AjaxLink createMoveLink(final IModel<Widget> model) {
    AjaxLink<Void> moveLink = new AjaxLink<Void>(MenuPanel.LINK_ID) {

        @Override// w w w . java  2s. c om
        public void onClick(AjaxRequestTarget target) {

            final Widget widget = model.getObject();
            ModalWindow dialog = findParent(BasePage.class).getDialog();

            dialog.setTitle(new StringResourceModel("WidgetPopupMenu.copyMoveWidget", null).getString());
            dialog.setInitialWidth(300);
            dialog.setUseInitialHeight(false);

            final Component component = this;

            dialog.setContent(new SelectDashboardPanel(dialog.getContentId()) {

                private static final long serialVersionUID = 1L;

                @Override
                public void onAction(String toDashboardId, boolean move, AjaxRequestTarget target) {
                    try {
                        int column = dashboardService.getWidgetColumn(widget.getId());
                        if (move) {
                            dashboardService.moveWidget(DashboardUtil.getSelectedDashboardId(), toDashboardId,
                                    widget.getId());
                            DashboardColumnPanel columnPanel = component.findParent(DashboardPanel.class)
                                    .getColumnPanel(column);
                            target.add(component.findParent(DashboardColumnPanel.class));
                            target.add(columnPanel);
                        } else {
                            dashboardService.copyWidget(DashboardUtil.getSelectedDashboardId(), toDashboardId,
                                    widget.getId());
                        }
                    } catch (NotFoundException e) {
                        e.printStackTrace();
                        // should never happen
                    } finally {
                        ModalWindow.closeCurrent(target);
                    }
                }

                @Override
                public void onCancel(AjaxRequestTarget target) {
                    ModalWindow.closeCurrent(target);
                }
            });

            dialog.show(target);
        }

        @Override
        public boolean isVisible() {
            return hasWritePermission(model.getObject());
        }
    };
    return moveLink;
}

From source file:ro.nextreports.server.web.pivot.PivotAreaPanel.java

License:Apache License

public PivotAreaPanel(String id, PivotField.Area area) {
    super(id);//from   w w  w.  jav a 2  s.  c  o  m

    this.area = area;

    add(new Label("name", getString("pivot." + area.getName()).toUpperCase()));

    final ModalWindow modal = new ModalWindow("modal");
    modal.setTitle(getString("pivot.aggregator"));
    add(modal);

    WebMarkupContainer fieldsContainer = new WebMarkupContainer("fieldsContainer");
    fieldsContainer.setOutputMarkupId(true);
    fieldsContainer.setMarkupId("area-" + area.getName() + "-" + getSession().nextSequenceValue());
    add(fieldsContainer);

    values = new ListView<PivotField>("values") {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<PivotField> item) {
            final IModel<PivotField> itemModel = item.getModel();
            PivotField pivotField = itemModel.getObject();
            String title = pivotField.getTitle();
            if (pivotField.getArea().equals(PivotField.Area.DATA)) {
                title += " (" + pivotField.getAggregator().getFunction().toUpperCase() + ")";
            }
            Label valueLabel = new Label("value", title);
            if (pivotField.isNumber()) {
                valueLabel.add(AttributeModifier.append("class", "label-info"));
                //            } else {
                //               valueLabel.add(AttributeModifier.append("class", "label-important"));
            }
            if (item.getModelObject().getArea().equals(PivotField.Area.DATA)) {
                valueLabel.add(new AjaxEventBehavior("onclick") {

                    private static final long serialVersionUID = 1L;

                    protected void onEvent(AjaxRequestTarget target) {
                        final AggregatorPanel panel = new AggregatorPanel(modal.getContentId(), itemModel);
                        modal.setUseInitialHeight(false);
                        modal.setInitialWidth(200);
                        modal.setContent(panel);
                        /*
                        modal.setWindowClosedCallback(new WindowClosedCallback() {
                                   
                           private static final long serialVersionUID = 1L;
                                
                           public void onClose(AjaxRequestTarget target) {
                              if (panel.isOkPressed()) {
                                 System.out.println(">>> " + itemModel.getObject().getAggregator());
                              }
                           }
                                   
                        });
                        */
                        modal.show(target);
                    }

                });
                valueLabel.add(AttributeModifier.append("style", "cursor: pointer;"));
            }
            item.add(valueLabel);
            item.setOutputMarkupId(true);
            item.setMarkupId("field-" + pivotField.getIndex());
        }
    };
    values.setOutputMarkupPlaceholderTag(true);
    fieldsContainer.add(values);

    // add dnd support
    //      addSortableBehavior();

    setOutputMarkupId(true);
}

From source file:ro.nextreports.server.web.report.RunHistoryPanel.java

License:Apache License

protected List<IColumn<RunReportHistory, String>> createHistoryTableColumns() {
    List<IColumn<RunReportHistory, String>> columns = new ArrayList<IColumn<RunReportHistory, String>>();

    columns.add(new AbstractColumn<RunReportHistory, String>(
            new Model<String>(getString("ActionContributor.EditParameters.parameterSelect"))) {

        public void populateItem(Item<ICellPopulator<RunReportHistory>> item, String componentId,
                IModel<RunReportHistory> rowModel) {
            try {
                if (securityService.hasPermissionsById(ServerUtil.getUsername(), PermissionUtil.getDelete(),
                        rowModel.getObject().getId())) {
                    item.add(new CheckBoxPanel(componentId, rowModel, item));
                } else {
                    item.add(new Label(componentId));
                }//from w w w. j  av  a  2  s  .  c o m
                item.add(new AttributeModifier("width", "30px"));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        @Override
        public Component getHeader(String s) {
            return new CheckBoxHeaderPanel(s);
        }

    });

    columns.add(new PropertyColumn<RunReportHistory, String>(new Model<String>(getString("Report")), "path",
            "path") {

        @Override
        public void populateItem(Item<ICellPopulator<RunReportHistory>> item, String componentId,
                IModel<RunReportHistory> rowModel) {
            String path = rowModel.getObject().getPath();
            String relativePath = path.substring(StorageConstants.REPORTS_ROOT.length(),
                    path.indexOf("/runHistory"));
            String name = StorageUtil.getName(relativePath);
            Label label = new Label(componentId, name);
            label.add(new SimpleTooltipBehavior(relativePath));
            item.add(label);
        }

    });

    columns.add(new AbstractColumn<RunReportHistory, String>(
            new Model<String>(getString("ActionContributor.DataSource.url"))) {

        public void populateItem(Item<ICellPopulator<RunReportHistory>> item, String componentId,
                final IModel<RunReportHistory> rowModel) {
            String url = rowModel.getObject().getUrl();
            if ((url == null) || url.equals("")) {
                item.add(new Label(componentId));
                return;
            } else if (url.equals(ReportConstants.ETL_FORMAT)) {
                item.add(new Label(componentId, Model.of(url)));
                return;
            }

            // dynamic url
            String fileName = url.substring(url.lastIndexOf("/") + 1);
            String dynamicUrl = reportService.getReportURL(fileName);
            item.add(new SimpleLink(componentId, dynamicUrl, getString("view"), true));
        }

    });

    columns.add(new PropertyColumn<RunReportHistory, String>(
            new Model<String>(getString("DashboardNavigationPanel.owner")), "runnerId", "runnerId") {

        @Override
        protected IModel<?> createLabelModel(IModel<RunReportHistory> rowModel) {
            try {
                // TODO optimization (getNameByUUID - no entity creation)
                Entity entity = storageService.getEntityById(rowModel.getObject().getRunnerId());
                String owner;
                if (entity instanceof User) {
                    owner = entity.getName();
                } else {
                    //SchedulerJob
                    owner = entity.getCreatedBy();
                }
                return new Model<String>(owner);
            } catch (NotFoundException ex) {
                // if user or scheduler was deleted
                return new Model<String>();
            }
        }

    });
    columns.add(new PropertyColumn<RunReportHistory, String>(
            new Model<String>(getString("ActionContributor.RunHistory.type")), "runnerType", "runnerType") {
        @Override
        public void populateItem(Item<ICellPopulator<RunReportHistory>> item, String componentId,
                IModel<RunReportHistory> rowModel) {
            item.add(new Label(componentId,
                    getString("MonitorPanel.runnerType." + rowModel.getObject().getRunnerType())));
        }
    });
    columns.add(new DateColumn<RunReportHistory>(new Model<String>(getString("startDate")), "startDate",
            "startDate"));
    columns.add(new PropertyColumn<RunReportHistory, String>(new Model<String>(getString("duration")),
            "duration", "duration") {

        @Override
        public void populateItem(Item<ICellPopulator<RunReportHistory>> item, String componentId,
                IModel<RunReportHistory> rowModel) {
            super.populateItem(item, componentId, rowModel);
            item.add(new AttributeModifier("width", "70px"));
        }

        @Override
        protected IModel<?> createLabelModel(IModel<RunReportHistory> rowModel) {
            int runTime = rowModel.getObject().getDuration();
            String text = "";
            if (runTime >= 0) {
                DateTimeFormatter formatter = DateTimeFormat.forPattern("HH:mm:ss").withZone(DateTimeZone.UTC);
                text = formatter.print(runTime * 1000);
            }

            return new Model<String>(text);
        }

    });
    columns.add(
            new DateColumn<RunReportHistory>(new Model<String>(getString("endDate")), "endDate", "endDate"));

    columns.add(new ImageLinkPropertyColumn<RunReportHistory>(new Model<String>(getString("Query"))) {

        @Override
        public void populateItem(Item<ICellPopulator<RunReportHistory>> item, String componentId,
                IModel<RunReportHistory> rowModel) {
            super.populateItem(item, componentId, rowModel);
            item.add(new AttributeModifier("width", "50px"));
            item.add(new SimpleTooltipBehavior(getString("Query")));
        }

        @Override
        public void onImageClick(RunReportHistory runHistory, AjaxRequestTarget target) {
            ModalWindow dialog = findParent(BasePage.class).getDialog();
            dialog.setTitle(getString("Query"));
            dialog.setInitialWidth(600);
            dialog.setInitialHeight(400);
            dialog.setContent(new RunHistoryQueryPanel(dialog.getContentId(), runHistory));
            dialog.show(target);
        }

        @Override
        public String getLinkImageName() {
            return "sql.png";
        }

    });

    columns.add(new BooleanImageLinkPropertyColumn<RunReportHistory>(new Model<String>(getString("success")),
            "success", "success") {

        @Override
        public void populateItem(Item<ICellPopulator<RunReportHistory>> item, String componentId,
                IModel<RunReportHistory> rowModel) {
            super.populateItem(item, componentId, rowModel);
            item.add(new AttributeModifier("width", "50px"));
            item.add(new SimpleTooltipBehavior(getString("details")));
        }

        @Override
        public void onImageClick(RunReportHistory runHistory, AjaxRequestTarget target) {
            ModalWindow dialog = findParent(BasePage.class).getDialog();
            dialog.setTitle(getString("details"));
            dialog.setInitialWidth(350);
            dialog.setInitialHeight(200);
            dialog.setContent(new RunHistoryDetailPanel(dialog.getContentId(), runHistory));
            dialog.show(target);
        }

    });

    return columns;
}

From source file:ro.nextreports.server.web.schedule.TemplatePanel.java

License:Apache License

private void init() {

    validator = createValidator();/*from  w  w w  .j  a va  2s.c  o  m*/

    add(new Label("templateLabel", getString("ActionContributor.Run.template.name")));

    ChoiceRenderer<ReportRuntimeTemplate> nameRenderer = new ChoiceRenderer<ReportRuntimeTemplate>("name") {

        private static final long serialVersionUID = 1L;

        @Override
        public Object getDisplayValue(ReportRuntimeTemplate template) {
            if (template == null) {
                return getString("nullValid");
            }
            return template.getName();
        }

    };

    final DropDownChoice<ReportRuntimeTemplate> templateChoice = new DropDownChoice<ReportRuntimeTemplate>(
            "template", new PropertyModel<ReportRuntimeTemplate>(this, "template"),
            new LoadableDetachableModel<List<ReportRuntimeTemplate>>() {

                @Override
                protected List<ReportRuntimeTemplate> load() {
                    List<ReportRuntimeTemplate> templates = new ArrayList<ReportRuntimeTemplate>();
                    try {
                        templates = reportService.getReportTemplatesById(report.getId());
                    } catch (Exception e) {
                        e.printStackTrace();
                        LOG.error(e.getMessage(), e);
                        error(e.getMessage());
                    }
                    return templates;
                }
            }, nameRenderer);

    templateChoice.setNullValid(true);

    templateChoice.add(new AjaxFormComponentUpdatingBehavior("onchange") {
        protected void onUpdate(AjaxRequestTarget target) {
            if (template != null) {
                new ChangeValuesTemplateEvent(templateChoice, report, template.getReportRuntime(),
                        template.getShortcutType(), target).fire();
                runtimeModel.setShortcutType(template.getShortcutType());
                target.add(shortcutChoice);

                // when a template is changed then the shortcut is changed
                ShortcutType shortcutType = runtimeModel.getShortcutType();
                new ChangeShortcutTemplateEvent(shortcutChoice, shortcutType, target).fire();

                timeType = TimeShortcutType.getTypeName(runtimeModel.getShortcutType().getTimeType());
                boolean visible = (runtimeModel.getShortcutType().getType() == -1);
                shortcutLastContainer.setVisible(visible);
                target.add(shortcutLastContainer);
            } else {
                runtimeModel.setShortcutType(ShortcutType.NONE);
                shortcutLastContainer.setVisible(false);
                target.add(shortcutChoice);
                target.add(shortcutLastContainer);
            }
        }
    });
    add(templateChoice);

    final TextField<String> nameField = new TextField<String>("name",
            new PropertyModel<String>(this, "runtimeModel.templateName"));
    nameField.setRequired(false);
    nameField.setEnabled(false);
    nameField.setOutputMarkupId(true);
    nameField.setLabel(Model.of(getString("ActionContributor.Run.template.info")));
    add(nameField);

    add(new Label("saveTemplateLabel", getString("ActionContributor.Run.template.save")));
    final CheckBox saveTemplate = new CheckBox("saveTemplate",
            new PropertyModel<Boolean>(this, "runtimeModel.saveTemplate"));
    saveTemplate.add(new AjaxFormComponentUpdatingBehavior("onchange") {
        protected void onUpdate(AjaxRequestTarget target) {
            boolean save = runtimeModel.isSaveTemplate();
            nameField.setEnabled(save);
            nameField.setRequired(save);
            if (save) {
                nameField.add(validator);
            } else {
                nameField.remove(validator);
            }
            target.add(nameField);
        }
    });
    add(saveTemplate);

    WebMarkupContainer shortcutContainer = new WebMarkupContainer("shortcutContainer");
    boolean visible = ReportUtil.hasIntervalParameters(storageService.getSettings(), report);
    shortcutContainer.setVisible(visible);
    add(shortcutContainer);

    shortcutContainer.add(new Label("withShortcut", getString("ActionContributor.Run.template.interval")));

    ChoiceRenderer<ShortcutType> shortcutRenderer = new ChoiceRenderer<ShortcutType>("name") {

        private static final long serialVersionUID = 1L;

        @Override
        public Object getDisplayValue(ShortcutType shortcut) {
            return getString(
                    "ActionContributor.Run.template.interval." + ShortcutType.getName(shortcut.getType()));
        }

    };
    shortcutChoice = new DropDownChoice<ShortcutType>("shortcutType",
            new PropertyModel<ShortcutType>(this, "runtimeModel.shortcutType"), ShortcutType.getTypes(),
            shortcutRenderer);
    shortcutChoice.setNullValid(false);
    shortcutChoice.add(new AjaxFormComponentUpdatingBehavior("onchange") {
        protected void onUpdate(AjaxRequestTarget target) {
            ShortcutType shortcutType = runtimeModel.getShortcutType();
            new ChangeShortcutTemplateEvent(shortcutChoice, shortcutType, target).fire();
            boolean visible = (runtimeModel.getShortcutType().getType() == -1);
            shortcutLastContainer.setVisible(visible);
            target.add(shortcutLastContainer);
        }
    });
    shortcutChoice.setOutputMarkupId(true);
    shortcutContainer.add(shortcutChoice);

    shortcutLastContainer = new WebMarkupContainer("shortcutLastContainer");
    shortcutLastContainer.setVisible(false);
    shortcutLastContainer.setOutputMarkupPlaceholderTag(true);
    shortcutContainer.add(shortcutLastContainer);

    timeUnitsField = new TextField<Integer>("timeUnits",
            new PropertyModel<Integer>(this, "runtimeModel.shortcutType.timeUnits"));
    timeUnitsField.add(new AjaxFormComponentUpdatingBehavior("onchange") {
        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            new ChangeShortcutTemplateEvent(shortcutChoice, runtimeModel.getShortcutType(), target).fire();
        }
    });
    timeUnitsField.setRequired(false);
    shortcutLastContainer.add(timeUnitsField);

    ChoiceRenderer<String> timeTypeRenderer = new ChoiceRenderer<String>() {

        private static final long serialVersionUID = 1L;

        @Override
        public Object getDisplayValue(String type) {
            return getString(type.toLowerCase());
        }

    };
    timeTypeChoice = new DropDownChoice<String>("timeType", new PropertyModel<String>(this, "timeType"),
            TimeShortcutType.getTypeNames(), timeTypeRenderer);
    timeTypeChoice.add(new AjaxFormComponentUpdatingBehavior("onchange") {
        protected void onUpdate(AjaxRequestTarget target) {
            runtimeModel.getShortcutType().setTimeType(TimeShortcutType.getTypeUnit(timeType));
            new ChangeShortcutTemplateEvent(shortcutChoice, runtimeModel.getShortcutType(), target).fire();
        }
    });
    shortcutLastContainer.add(timeTypeChoice);

    if (runtimeModel.getShortcutType().getType() == -1) {
        shortcutLastContainer.setVisible(true);
    }

    add(new AjaxLink<Void>("removeTemplate") {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            ModalWindow dialog = findParent(BasePage.class).getDialog();
            dialog.setTitle(getString("ActionContributor.Run.template.remove"));
            dialog.setInitialWidth(350);
            dialog.setInitialHeight(200);
            dialog.setResizable(true);

            final ManageTemplatesPanel panel = new ManageTemplatesPanel(dialog.getContentId(), report) {

                private static final long serialVersionUID = 1L;

                @Override
                public void onDelete(AjaxRequestTarget target, List<ReportRuntimeTemplate> selected) {
                    ModalWindow.closeCurrent(target);
                    if (selected.size() == 0) {
                        return;
                    }
                    List<String> ids = new ArrayList<String>();
                    for (ReportRuntimeTemplate rt : selected) {
                        ids.add(rt.getId());
                    }
                    try {
                        storageService.removeEntitiesById(ids);
                    } catch (NotFoundException e) {
                        e.printStackTrace();
                        LOG.error(e.getMessage(), e);
                        error(e.getMessage());
                    }
                    template = null;
                    target.add(templateChoice);
                }

                @Override
                public void onCancel(AjaxRequestTarget target) {
                    ModalWindow.closeCurrent(target);
                }

            };
            dialog.setContent(panel);
            dialog.show(target);
        }

    });
}