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.axway.ats.testexplorer.pages.BasePage.java

License:Apache License

public BasePage(PageParameters parameters) {

    super(parameters);

    LOG = Logger.getLogger(this.getClass());

    add(new Label("page_title", "Axway ATS Test Explorer - " + getPageName()));

    // check DB connection and sets the current DB Name
    getTESession().getDbReadConnection();

    WebMarkupContainer topRightContent = new WebMarkupContainer("topRightContent");
    add(topRightContent);// w w w.  j a v a2 s.c  o m

    String dbName = getTESession().getDbName();
    if (dbName == null || "".equals(dbName)) {
        topRightContent.add(new Label("dbName", "").setVisible(false));
        topRightContent.add(new Label("machinesLink", "").setVisible(false));
        topRightContent.add(new Label("runCopyLink", runCopyLinkModel).setVisible(false));
        topRightContent.add(new Label("testcasesCopyLink", testcasesCopyLinkModel).setVisible(false));
        topRightContent.add(new Label("representationLink", representationLinkModel).setVisible(false));
    } else {
        String dbNameAndVersion = dbName;
        String dbVersion = getTESession().getDbVersion();
        if (dbVersion != null) {
            dbNameAndVersion = dbNameAndVersion + ", v" + dbVersion;
        }
        topRightContent.add(new Label("dbName",
                "<div class=\"dbName\"><span style=\"color:#C8D5DF;\">Exploring database:</span>&nbsp; "
                        + dbNameAndVersion + "</div>").setEscapeModelStrings(false));
        topRightContent.add(new Label("machinesLink",
                "<a href=\"machines?dbname=" + dbName + "\" class=\"machinesLink\" target=\"_blank\"></a>")
                        .setEscapeModelStrings(false));
        runCopyLinkModel.setObject(
                "<a href=\"runCopy?dbname=" + dbName + "\" class=\"runCopyLink\" target=\"_blank\"></a>");
        topRightContent.add(new Label("runCopyLink", runCopyLinkModel).setEscapeModelStrings(false));

        testcasesCopyLinkModel.setObject("<a href=\"testcasesCopy?dbname=" + dbName
                + "\" class=\"testcasesCopyLink\" target=\"_blank\"></a>");
        topRightContent.add(getTestcasesCopyButton());

        representationLinkModel.setObject(createRepresentationLinkModelObject());

        topRightContent
                .add(new Label("representationLink", representationLinkModel).setEscapeModelStrings(false));

    }

    itemsCountLabel = new Label("itemsCount", new Model<Integer>() {

        private static final long serialVersionUID = 1L;

        @Override
        public Integer getObject() {

            return getTESession().getCompareContainer().size();
        }
    });
    itemsCountLabel.setOutputMarkupId(true);
    topRightContent.setVisible(!(this instanceof WelcomePage));
    topRightContent.add(itemsCountLabel);

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

    // add navigation panel
    add(new ListView<PagePojo>("navigation_links", navigationList) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<PagePojo> item) {

            final PagePojo pp = item.getModelObject();

            if (pp.pageSuffix != null && !pp.pageName.endsWith("</span>")) {
                pp.pageName = pp.pageName + " <span class=\"locationName\">[" + pp.pageSuffix + "]</span>";
            }

            item.add(new Link<Object>("navigation_link") {

                private static final long serialVersionUID = 1L;

                @Override
                protected CharSequence getURL() {

                    // generate Bookmarkable link url
                    return urlFor(pp.pageClass, pp.parameters);
                }

                @Override
                public void onClick() {

                    // This link acts like Bookmarkable link and don't have a click handler.
                }
            }.add(new Label("navigation_link_name", pp.pageName).setEscapeModelStrings(false)));
        }
    });
    add(new Label("navigation_current_page_name", getPageName()));
    add(getNavigationSuffixComponent());
    add(getTestcaseNavigationButtons());

    currentTestDetails();

    // add child page
    TransparentWebMarkupContainer pageWrapper = new TransparentWebMarkupContainer("page_wrapper");
    add(pageWrapper);

    if (TestExplorerUtils.extractPageParameter(parameters, "hacks") != null) {
        showTestcaseStatusChangeButtons = true;
    }

    add(timeOffsetField);
    add(dayLightSavingOnField);

    // AJAX handler for obtaining browser's time offset from UTC and current browser timestamp
    add(new AbstractDefaultAjaxBehavior() {

        private static final long serialVersionUID = 1L;

        @Override
        protected void respond(AjaxRequestTarget target) {

            IRequestParameters request = RequestCycle.get().getRequest().getRequestParameters();
            int timeOffset = request.getParameterValue("timeOffset").toInt();
            TestExplorerSession teSession = (TestExplorerSession) Session.get();
            teSession.setTimeOffset(timeOffset);
            teSession.setDayLightSavingOn(request.getParameterValue("dayLightSavingOn").toBoolean());
        }

        @Override
        protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {

            super.updateAjaxAttributes(attributes);
            attributes.getDynamicExtraParameters().add("return {'timeOffset': $('#timeOffset').val(), "
                    + "'dayLightSavingOn': $('#dayLightSavingOn').val() }");
        }

        @Override
        public void renderHead(Component component, IHeaderResponse response) {

            // Date.prototype.getTimezoneOffset() returns negative value if the local time is ahead of UTC,
            // so we invert the result, before sending it to Wicket
            String getTimeOffsetScript = ";var timeOffset = $('#timeOffset');timeOffset.val(new Date().getTimezoneOffset()*60*1000*-1);"
                    + ";var dayLightSavingOn = $('#dayLightSavingOn');dayLightSavingOn.val(isDayLightSavingOn());";
            response.render(OnLoadHeaderItem.forScript(getCallbackScript().toString()));
            response.render(OnLoadHeaderItem.forScript(getTimeOffsetScript));
        }

    });

}

From source file:com.axway.ats.testexplorer.pages.machines.MachinesPage.java

License:Apache License

private Form<Object> getMachinesForm(final Label noMachinesLabel) {

    final Form<Object> machinesForm = new Form<Object>("machinesForm");
    machinesForm.setOutputMarkupId(true);

    machineModels = new HashMap<Integer, IModel<String>>();

    ListView<Machine> machinesTable = new ListView<Machine>("machine", machines) {

        private static final long serialVersionUID = 1L;

        @Override//from w  w  w  . ja v  a 2s  .c o  m
        protected void populateItem(final ListItem<Machine> item) {

            if (item.getIndex() % 2 != 0) {
                item.add(AttributeModifier.replace("class", "oddRow"));
            }
            IModel<String> aliasModel = new Model<String>(item.getModelObject().alias);
            machineModels.put(item.getModelObject().machineId, aliasModel);
            item.add(new TextField<String>("machineAlias", aliasModel));

            item.add(new Label("machineName", item.getModelObject().name).setEscapeModelStrings(false));

            final Machine machine = item.getModelObject();
            item.add(new AjaxButton("machineInfo") {

                private static final long serialVersionUID = 1L;

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

                    if (machine.alias == null || machine.alias.trim().length() == 0) {
                        machineInfoDialogTitle.setDefaultModelObject(machine.name);
                    } else {
                        machineInfoDialogTitle.setDefaultModelObject(machine.alias + " (" + machine.name + ")");
                    }

                    machineInfoDialog.setVisible(true);
                    machineForEdit = machine;
                    machineInfoText.setModelObject(getMachineInformation(machine));

                    target.add(machineInfoDialogForm);
                }
            });
        }
    };
    machinesForm.add(machinesTable);

    AjaxButton saveMachineAliasesButton = new AjaxButton("saveMachineAliasesButton") {

        private static final long serialVersionUID = 1L;

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

            if (!form.isSubmitted()) {
                return;
            }

            for (Machine machine : machines) {

                String newMachineAlias = machineModels.get(machine.machineId).getObject();
                if (newMachineAlias != null) {
                    newMachineAlias = newMachineAlias.trim();
                }
                if ((newMachineAlias == null && machine.alias != null)
                        || (newMachineAlias != null && !newMachineAlias.equals(machine.alias))) {

                    machine.alias = newMachineAlias;
                    try {
                        getTESession().getDbWriteConnection().updateMachineAlias(machine);
                    } catch (DatabaseAccessException e) {
                        LOG.error("Can't update alias of machine '" + machine.name + "'", e);
                        target.appendJavaScript(
                                "alert('There was an error while updating the machine aliases!');");
                        return;
                    }
                }
            }
            target.appendJavaScript("alert('The machine aliases were successfully updated.');");
        }
    };

    boolean hasMachines = machines.size() > 0;

    machinesTable.setVisible(hasMachines);
    saveMachineAliasesButton.setVisible(hasMachines);
    noMachinesLabel.setVisible(!hasMachines);

    machinesForm.add(saveMachineAliasesButton);
    machinesForm.add(noMachinesLabel);

    return machinesForm;
}

From source file:com.axway.ats.testexplorer.pages.model.BaseCopyPage.java

License:Apache License

public BaseCopyPage(PageParameters parameters) {

    super(parameters);

    this.form = new Form<Object>("form");
    addCopyButton(form);/*from  w ww .j a va 2  s  . c  o m*/
    addCopyHiddenButton(form);
    add(form);

    IModel<List<String>> consoleModel = new LoadableDetachableModel<List<String>>() {

        private static final long serialVersionUID = 1L;

        protected List<String> load() {

            int size = webConsole.size();
            if (size > MAX_CONSOLE_LINES) {
                webConsole.subList(0, size - MAX_CONSOLE_LINES).clear();
            }
            return webConsole;
        }
    };

    ListView<String> messages = new ListView<String>("messages", consoleModel) {

        private static final long serialVersionUID = 1L;

        protected void populateItem(ListItem<String> item) {

            Label label = new Label("message", item.getModelObject());
            label.setEscapeModelStrings(false);
            item.add(label);
        }
    };
    messages.setOutputMarkupId(true);

    consoleContainer = new WebMarkupContainer("webConsole");
    consoleContainer.setOutputMarkupId(true);
    consoleContainer.add(messages);

    add(consoleContainer);
}

From source file:com.axway.ats.testexplorer.pages.reports.compare.ComparePage.java

License:Apache License

private Form<Object> getItemsToCompareForm(final Label noRunsLabel, final Label noTestcasesLabel) {

    final Form<Object> itemsToCompareForm = new Form<Object>("itemsToCompareForm");
    itemsToCompareForm.setOutputMarkupId(true);

    IModel<? extends List<Run>> runsListModel = new LoadableDetachableModel<List<Run>>() {
        private static final long serialVersionUID = 1L;

        protected List<Run> load() {

            return getTESession().getCompareContainer().getRunsList();
        }/*from   w w w .j  a  v a 2 s.c  o  m*/
    };
    final ListView<Run> runsToCompare = new ListView<Run>("runsToCompare", runsListModel) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(final ListItem<Run> item) {

            final ListView<Run> runsToCompareComponent = this;

            if (item.getIndex() % 2 != 0) {
                item.add(AttributeModifier.replace("class", "oddRow"));
            }
            Map<Run, Model<Boolean>> runs = getTESession().getCompareContainer().getRuns();
            item.add(new CheckBox("checkbox", runs.get(item.getModelObject())));
            item.add(new Label("runName", item.getModelObject().runName).setEscapeModelStrings(false));
            item.add(new Label("version", item.getModelObject().versionName).setEscapeModelStrings(false));
            item.add(new Label("build", item.getModelObject().buildName).setEscapeModelStrings(false));
            item.add(new Label("startDate", item.getModelObject().getDateStart()).setEscapeModelStrings(false));
            item.add(new Label("endDate", item.getModelObject().getDateEnd()).setEscapeModelStrings(false));
            item.add(new AjaxButton("removeIcon") {

                private static final long serialVersionUID = 1L;

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

                    CompareContainer compareContainer = getTESession().getCompareContainer();
                    compareContainer.removeObject(item.getModelObject());
                    runsToCompareComponent.setModelObject(compareContainer.getRunsList());

                    noRunsLabel.setVisible(compareContainer.getRuns().size() == 0);

                    target.add(noRunsLabel);
                    target.add(itemsToCompareForm);
                }
            });
        }
    };
    itemsToCompareForm.add(runsToCompare);

    AjaxButton removeAllRunsButton = new AjaxButton("removeAllRuns") {

        private static final long serialVersionUID = 1L;

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

            CompareContainer compareContainer = getTESession().getCompareContainer();
            compareContainer.getRuns().clear();
            runsToCompare.setModelObject(compareContainer.getRunsList());
            noRunsLabel.setVisible(true);

            target.add(noRunsLabel);
            target.add(itemsToCompareForm);
        }
    };
    itemsToCompareForm.add(removeAllRunsButton);

    IModel<? extends List<Testcase>> testcasesListModel = new LoadableDetachableModel<List<Testcase>>() {
        private static final long serialVersionUID = 1L;

        protected List<Testcase> load() {

            return getTESession().getCompareContainer().getTestcasesList();
        }
    };
    final TestcaseListView<Testcase> testcasesToCompare = new TestcaseListView<Testcase>("testcasesToCompare",
            testcasesListModel) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(final ListItem<Testcase> item) {

            final ListView<Testcase> testcasesToCompareComponent = this;

            if (item.getIndex() % 2 != 0) {
                item.add(AttributeModifier.replace("class", "oddRow"));
            }
            Map<Testcase, Model<Boolean>> testcases = getTESession().getCompareContainer().getTestcases();
            item.add(new CheckBox("checkbox", testcases.get(item.getModelObject())));
            item.add(new Label("runName", item.getModelObject().runName).setEscapeModelStrings(false));
            item.add(new Label("suiteName", item.getModelObject().suiteName).setEscapeModelStrings(false));
            item.add(
                    new Label("scenarioName", item.getModelObject().scenarioName).setEscapeModelStrings(false));
            item.add(new Label("testcaseName", item.getModelObject().name).setEscapeModelStrings(false));
            item.add(new Label("dateStart", item.getModelObject().getDateStart()).setEscapeModelStrings(false));
            item.add(new TextField<String>("testcaseAlias",
                    new PropertyModel<String>(item.getModelObject(), "alias")));

            item.add(moveLinkUp("moveUpLink", item));
            item.add(new AjaxButton("removeIcon") {

                private static final long serialVersionUID = 1L;

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

                    CompareContainer compareContainer = getTESession().getCompareContainer();
                    compareContainer.removeObject(item.getModelObject());
                    testcasesToCompareComponent.setModelObject(compareContainer.getTestcasesList());

                    noTestcasesLabel.setVisible(compareContainer.getTestcases().size() == 0);

                    target.add(noTestcasesLabel);
                    target.add(itemsToCompareForm);
                }
            });
        }
    };
    itemsToCompareForm.add(testcasesToCompare);

    AjaxButton removeAllTestcasesButton = new AjaxButton("removeAllTestcases") {

        private static final long serialVersionUID = 1L;

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

            CompareContainer compareContainer = getTESession().getCompareContainer();
            compareContainer.getTestcases().clear();
            testcasesToCompare.setModelObject(compareContainer.getTestcasesList());
            noTestcasesLabel.setVisible(true);

            target.add(noTestcasesLabel);
            target.add(itemsToCompareForm);
        }
    };
    itemsToCompareForm.add(removeAllTestcasesButton);

    // Standard Runs Compare buttons
    itemsToCompareForm.add(getStandardRunsCompareButtons());

    // Custom Runs Compare buttons
    itemsToCompareForm.add(getCustomRunsCompareButtons());

    // Standard Testcases Compare buttons
    itemsToCompareForm.add(getStandardTestcasesCompareButtons());

    // Custom Testcases Compare buttons
    itemsToCompareForm.add(getCustomTestcasesCompareButtons());

    noRunsLabel.setVisible(getTESession().getCompareContainer().getRuns().size() == 0);
    itemsToCompareForm.add(noRunsLabel);
    noTestcasesLabel.setVisible(getTESession().getCompareContainer().getTestcases().size() == 0);
    itemsToCompareForm.add(noTestcasesLabel);

    return itemsToCompareForm;
}

From source file:com.axway.ats.testexplorer.pages.reports.compare.ComparePage.java

License:Apache License

private ListView<PluginParameters> getCustomRunsCompareButtons() {

    // Add buttons that will create some reports about the selected runs
    List<PluginParameters> pluginParameters = TestExplorerPluginsRepo.getInstance()
            .getPluginParameters(PluginConfigurationParser.PLUGIN_TYPE.COMPARE_RUNS_REPORT);
    // add plugin buttons, clicking a button forwards to the plugin web page 
    ListView<PluginParameters> reportButtons = new ListView<PluginParameters>("runs_compare_plugin_buttons",
            pluginParameters) {/*from w ww.  jav  a2 s .  c  o m*/

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(final ListItem<PluginParameters> item) {

            final PluginParameters pluginParameters = item.getModelObject();

            AjaxLink<String> aReportButton = new AjaxLink<String>("runs_compare_plugin_button") {
                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {

                    StringBuilder sb = new StringBuilder();
                    Map<Run, Model<Boolean>> runs = getTESession().getCompareContainer().getRuns();
                    for (Run r : runs.keySet()) {
                        if (runs.get(r).getObject()) {
                            sb.append(String.valueOf(r.runId));
                            sb.append("_");
                        }
                    }
                    if (sb.length() > 0) {

                        PageParameters parameters = new PageParameters();
                        parameters.add("runIds", sb.substring(0, sb.length() - 1));
                        //pass database name
                        parameters.add("dbname", ((TestExplorerSession) Session.get()).getDbName());
                        setResponsePage(pluginParameters.getPluginClass(), parameters);
                    }
                }
            };
            aReportButton.add(new Label("button_name", pluginParameters.getButtonName()));
            item.add(aReportButton);
        }
    };
    return reportButtons;
}

From source file:com.axway.ats.testexplorer.pages.reports.compare.ComparePage.java

License:Apache License

private ListView<PluginParameters> getCustomTestcasesCompareButtons() {

    // Add buttons that will create some reports about the selected testcases
    List<PluginParameters> pluginParameters = TestExplorerPluginsRepo.getInstance()
            .getPluginParameters(PluginConfigurationParser.PLUGIN_TYPE.COMPARE_TESTCASES_REPORT);
    // add plugin buttons, clicking a button forwards to the plugin web page 
    ListView<PluginParameters> reportButtons = new ListView<PluginParameters>(
            "testcases_compare_plugin_buttons", pluginParameters) {

        private static final long serialVersionUID = 1L;

        @Override//from   w w w  .j  av a 2 s. c o m
        protected void populateItem(final ListItem<PluginParameters> item) {

            final PluginParameters pluginParameters = item.getModelObject();

            AjaxLink<String> aReportButton = new AjaxLink<String>("testcases_compare_plugin_button") {
                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {

                    StringBuilder sb = new StringBuilder();
                    Map<Testcase, Model<Boolean>> testcases = getTESession().getCompareContainer()
                            .getTestcases();
                    for (Testcase t : testcases.keySet()) {
                        if (testcases.get(t).getObject()) {
                            sb.append(String.valueOf(t.testcaseId));
                            sb.append("_");
                        }
                    }
                    if (sb.length() > 0) {

                        PageParameters parameters = new PageParameters();
                        parameters.add("testcaseIds", sb.substring(0, sb.length() - 1));
                        setResponsePage(pluginParameters.getPluginClass(), parameters);
                    }
                }
            };
            aReportButton.add(new Label("button_name", pluginParameters.getButtonName()));
            item.add(aReportButton);
        }
    };
    return reportButtons;
}

From source file:com.axway.ats.testexplorer.pages.reports.compare.CompareRunsPage.java

License:Apache License

private ListView<List<TestcasesTableCell>> getTestcasesTable(
        List<List<TestcasesTableCell>> testcasesTableModel) {

    ListView<List<TestcasesTableCell>> statisticDetailsTable = new ListView<List<TestcasesTableCell>>(
            "runsDetailsRows", testcasesTableModel) {

        private static final long serialVersionUID = 1L;

        @Override/*  w  w w .  j a  va  2s.c  o m*/
        protected void populateItem(ListItem<List<TestcasesTableCell>> item) {

            // table TR
            List<TestcasesTableCell> tdObjects = item.getModelObject();
            final int columnsCount = tdObjects.size();

            if (item.getIndex() == 0) {
                item.add(AttributeModifier.append("class", "runName"));
            } else if (item.getIndex() == 1) {
                item.add(AttributeModifier.append("class", "runDuration"));
            } else if (item.getIndex() == 2) {
                item.add(AttributeModifier.append("class", "testStateFilter"));
            } else if (item.getIndex() == 3 || item.getIndex() == 4) {
                // this is the Apply Filter Button row, we will use colspan, so we need only one column
                tdObjects = item.getModelObject().subList(0, 1);
            } else if (item.getIndex() % 2 != 0) {
                item.add(AttributeModifier.append("class", "oddRow"));
            } else {
                item.add(AttributeModifier.append("class", "evenRow"));
            }

            item.add(new ListView<TestcasesTableCell>("runsDetailsColumns", tdObjects) {

                private static final long serialVersionUID = 1L;

                @Override
                protected void populateItem(ListItem<TestcasesTableCell> item) {

                    // table TD
                    if (item.getIndex() == 0) {
                        item.add(AttributeModifier.append("class", "compareTest_firstCell"));
                    }
                    TestcasesTableCell cell = item.getModelObject();
                    if (cell.isFilter) {

                        item.add(new CheckBox("showOnlyTestsPresentInAllRuns").setVisible(false));
                        item.add(new Label("label", "").setVisible(false));
                        item.add(getTestStateChoices(cell.labelText));

                    } else if (cell.isShowOnlyTestsPresentInAllRunsCheckbox) {

                        item.add(AttributeModifier.replace("class", "compareTest_checkboxCell"));
                        item.add(AttributeModifier.replace("colspan", columnsCount));

                        item.add(new CheckBox("showOnlyTestsPresentInAllRuns",
                                showOnlyTestsPresentInAllRunsModel).setOutputMarkupId(true)
                                        .setMarkupId("showOnlyTestsPresentInAllRuns"));
                        item.add(new Label("label",
                                "<label for=\"showOnlyTestsPresentInAllRuns\">Show only tests present in all runs</label>")
                                        .setEscapeModelStrings(false));
                        item.add(getTestStateChoices(null).setVisible(false));
                    } else if (cell.isFilterButton) {

                        item.add(AttributeModifier.replace("class", "compareTest_applyFilterButtonCell"));
                        item.add(AttributeModifier.replace("colspan", columnsCount));

                        item.add(new CheckBox("showOnlyTestsPresentInAllRuns").setVisible(false));
                        Label label = new Label("label",
                                "<a href=\"#\" class=\"button applyFilterButton\" onclick=\"document.getElementById('applyFilterButton').click();\"><span>Apply Filter</span></a>");
                        label.setEscapeModelStrings(false);
                        item.add(label);
                        item.add(getTestStateChoices(null).setVisible(false));
                    } else {

                        if (cell.cssClass != null) {
                            item.add(AttributeModifier.append("class", cell.cssClass));
                        }
                        item.add(new CheckBox("showOnlyTestsPresentInAllRuns").setVisible(false));
                        Label label = null;
                        if (cell.url != null) {
                            label = new Label("label", "<a href=\"" + cell.url + "\" target=\"_blank\">"
                                    + cell.labelText + "</a>");
                        } else {
                            label = new Label("label", cell.labelText);
                        }
                        label.setEscapeModelStrings(false);
                        item.add(label);
                        item.add(getTestStateChoices(null).setVisible(false));
                    }
                }
            });
        }
    };

    statisticDetailsTable.setOutputMarkupId(true);
    return statisticDetailsTable;
}

From source file:com.axway.ats.testexplorer.pages.reports.testcase.SelectTestcaseReportPage.java

License:Apache License

public SelectTestcaseReportPage(PageParameters parameters) {

    super(parameters);

    testcaseId = TestExplorerUtils.extractPageParameter(parameters, "testcaseId");

    WebMarkupContainer mainContainer = new WebMarkupContainer("mainContainer");
    add(mainContainer);/*from w  w w . j av a 2  s.  c  o  m*/

    PageNavigation navigation;
    try {
        navigation = ((TestExplorerSession) Session.get()).getDbReadConnection()
                .getNavigationForTestcase(testcaseId, getTESession().getTimeOffset());
    } catch (DatabaseAccessException e) {
        error("Could not read info about testcase with id " + testcaseId + "; CAUSE: " + e.getMessage());

        mainContainer.setVisible(false);
        return;
    }

    // Add fields describing the selected testcase
    TextField<String> runNameTextField = new TextField<String>("run_name",
            new Model<String>(navigation.getRunName()));
    runNameTextField.setEnabled(false);
    mainContainer.add(runNameTextField);

    TextField<String> runIdTextField = new TextField<String>("run_id",
            new Model<String>(navigation.getRunId()));
    runIdTextField.setEnabled(false);
    mainContainer.add(runIdTextField);

    TextField<String> suiteNameTextField = new TextField<String>("suite_name",
            new Model<String>(navigation.getSuiteName()));
    suiteNameTextField.setEnabled(false);
    mainContainer.add(suiteNameTextField);

    TextField<String> scenarioNameTextField = new TextField<String>("scenario_name",
            new Model<String>(navigation.getScenarioName()));
    scenarioNameTextField.setEnabled(false);
    mainContainer.add(scenarioNameTextField);

    TextField<String> testcaseNameTextField = new TextField<String>("testcase_name",
            new Model<String>(navigation.getTestcaseName()));
    testcaseNameTextField.setEnabled(false);
    mainContainer.add(testcaseNameTextField);

    TextField<String> testcaseIdTextField = new TextField<String>("testcase_id", new Model<String>(testcaseId));
    testcaseIdTextField.setEnabled(false);
    mainContainer.add(testcaseIdTextField);

    // Add buttons that will create some reports about the selected testcase
    List<PluginParameters> pluginParameters = TestExplorerPluginsRepo.getInstance()
            .getPluginParameters(PluginConfigurationParser.PLUGIN_TYPE.SINGLE_TESTCASE_REPORT);

    // add plugin buttons, clicking a button forwards to the plugin web page 
    ListView<PluginParameters> reportButtons = new ListView<PluginParameters>("report_buttons",
            pluginParameters) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(final ListItem<PluginParameters> item) {

            final PluginParameters pluginParameters = item.getModelObject();

            AjaxLink<String> aReportButton = new AjaxLink<String>("report_button") {
                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {

                    if (!StringUtils.isNullOrEmpty(testcaseId)) {

                        PageParameters parameters = new PageParameters();
                        parameters.add("testcaseId", String.valueOf(testcaseId));

                        setResponsePage(pluginParameters.getPluginClass(), parameters);
                    }
                }
            };
            aReportButton.add(new Label("button_name", pluginParameters.getButtonName()));
            item.add(aReportButton);
        }
    };
    mainContainer.add(reportButtons);
}

From source file:com.axway.ats.testexplorer.pages.testcase.attachments.AttachmentsPanel.java

License:Apache License

@SuppressWarnings({ "unchecked", "rawtypes" })
public AttachmentsPanel(String id, final String testcaseId, final PageParameters parameters) {
    super(id);//from   w w  w.  j a v a 2 s. c  o  m

    form = new Form<Object>("form");
    buttonPanel = new WebMarkupContainer("buttonPanel");
    noButtonPanel = new WebMarkupContainer("noButtonPanel");
    fileContentContainer = new TextArea<String>("textFile", new Model<String>(""));
    imageContainer = new WebMarkupContainer("imageFile");
    fileContentInfo = new Label("fileContentInfo", new Model<String>(""));
    buttons = getAllAttachedFiles(testcaseId);

    form.add(fileContentContainer);
    form.add(imageContainer);
    form.add(fileContentInfo);
    form.add(buttonPanel);

    add(noButtonPanel);
    add(form);

    buttonPanel.setVisible(!(buttons == null));
    fileContentContainer.setVisible(false);
    imageContainer.setVisible(false);
    fileContentInfo.setVisible(false);
    noButtonPanel.setVisible(buttons == null);

    // if noButtonPanel is visible, do not show form and vice versa
    form.setVisible(!noButtonPanel.isVisible());

    noButtonPanel.add(new Label("description", noButtonPanelInfo));

    final ListView lv = new ListView("buttons", buttons) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(final ListItem item) {

            if (item.getIndex() % 2 != 0) {
                item.add(AttributeModifier.replace("class", "oddRow"));
            }

            final String viewedFile = buttons.get(item.getIndex());

            final String name = getFileSimpleName(buttons.get(item.getIndex()));
            final Label buttonLabel = new Label("name", name);

            Label fileSize = new Label("fileSize", getFileSize(viewedFile));

            downloadFile = new DownloadLink("download", new File(" "), "");
            downloadFile.setModelObject(new File(viewedFile));
            downloadFile.setVisible(true);

            alink = new AjaxLink("alink", item.getModel()) {
                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {

                    fileContentInfo.setVisible(true);
                    String fileContent = new String();
                    if (!isImage(viewedFile)) {
                        fileContentContainer.setVisible(true);
                        imageContainer.setVisible(false);
                        fileContent = getFileContent(viewedFile, name);
                        fileContentContainer.setModelObject(fileContent);
                    } else {

                        PageNavigation navigation = null;
                        try {
                            navigation = ((TestExplorerSession) Session.get()).getDbReadConnection()
                                    .getNavigationForTestcase(testcaseId, getTESession().getTimeOffset());
                        } catch (DatabaseAccessException e) {
                            LOG.error("Can't get runId, suiteId and dbname for testcase with id=" + testcaseId,
                                    e);
                        }

                        String runId = navigation.getRunId();
                        String suiteId = navigation.getSuiteId();
                        String dbname = TestExplorerUtils.extractPageParameter(parameters, "dbname");

                        fileContentInfo.setDefaultModelObject("Previewing '" + name + "' image");

                        final String url = "AttachmentsServlet?&runId=" + runId + "&suiteId=" + suiteId
                                + "&testcaseId=" + testcaseId + "&dbname=" + dbname + "&fileName=" + name;
                        imageContainer.add(new AttributeModifier("src", new Model<String>(url)));
                        imageContainer.setVisible(true);
                        fileContentContainer.setVisible(false);
                    }

                    // first setting all buttons with the same state
                    String reverseButtonsState = "var cusid_ele = document.getElementsByClassName('attachedButtons'); "
                            + "for (var i = 0; i < cusid_ele.length; ++i) { " + "var item = cusid_ele[i];  "
                            + "item.style.color= \"#000000\";" + "}";
                    // setting CSS style to the pressed button and its label
                    String pressClickedButton = "var span = document.evaluate(\"//a[@class='button attachedButtons']/span[text()='"
                            + name + "']\", "
                            + "document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;"
                            + "span.style.backgroundPosition=\"left bottom\";"
                            + "span.style.padding=\"6px 0 4px 18px\";"
                            + "var button = document.evaluate(\"//a[@class='button attachedButtons']/span[text()='"
                            + name + "']/..\", "
                            + "document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;"
                            + "button.style.backgroundPosition=\"right bottom\";"
                            + "button.style.color=\"#000000\";" + "button.style.outline=\"medium none\";";

                    // I could not figure out how it works with wicket, so i did it with JS
                    target.appendJavaScript(reverseButtonsState);
                    target.appendJavaScript(pressClickedButton);

                    target.add(form);
                }
            };

            alink.add(buttonLabel);
            item.add(alink);
            item.add(downloadFile);
            item.add(fileSize);
        }
    };
    buttonPanel.add(lv);
}

From source file:com.axway.ats.testexplorer.pages.testcase.loadqueues.LoadQueuesPanel.java

License:Apache License

public LoadQueuesPanel(String id, final String testcaseId) {

    super(id);//ww  w . ja v  a 2s.  co m

    List<ComplexLoadQueue> loadQueues = getLoadQueues(testcaseId);
    ListView<ComplexLoadQueue> loadQueuesContainer = new ListView<ComplexLoadQueue>("loadQueuesContainer",
            loadQueues) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<ComplexLoadQueue> item) {

            final ComplexLoadQueue loadQueue = item.getModelObject();

            if (item.getIndex() % 2 != 0) {
                item.add(AttributeModifier.replace("class", "oddRow"));
            }
            item.add(new Label("name", loadQueue.getName()));
            item.add(new Label("threadingPattern", loadQueue.getThreadingPattern())
                    .setEscapeModelStrings(false));

            item.add(new Label("state", loadQueue.getState())
                    .add(AttributeModifier.replace("class", loadQueue.getState().toLowerCase() + "State")));

            item.add(new Label("dateStart", loadQueue.getDateStart()));
            item.add(new Label("dateEnd", loadQueue.getDateEnd()));
            item.add(new Label("duration", String.valueOf(loadQueue.getDuration())));

            item.add(new ListView<ComplexAction>("checkpoint_summary_info", loadQueue.getCheckpointsSummary()) {
                private static final long serialVersionUID = 1L;

                @Override
                protected void populateItem(ListItem<ComplexAction> item) {

                    if (item.getIndex() % 2 != 0) {
                        item.add(AttributeModifier.replace("class", "oddRow"));
                    }
                    final ComplexAction checkpointSummary = item.getModelObject();
                    item.add(new Label("name", checkpointSummary.getName()));

                    item.add(new Label("numTotal", String.valueOf(checkpointSummary.getNumTotal())));
                    item.add(new Label("numRunning", String.valueOf(checkpointSummary.getNumRunning())));
                    item.add(new Label("numPassed", String.valueOf(checkpointSummary.getNumPassed())));
                    item.add(new Label("numFailed", String.valueOf(checkpointSummary.getNumFailed())));

                    item.add(new Label("minResponseTime", checkpointSummary.getMinResponseTime()));
                    item.add(new Label("avgResponseTime", checkpointSummary.getAvgResponseTime()));
                    item.add(new Label("maxResponseTime", checkpointSummary.getMaxResponseTime()));

                    String transferRateUnit = checkpointSummary.getTransferRateUnit();
                    if (StringUtils.isNullOrEmpty(transferRateUnit)) {
                        // this action does not transfer data
                        item.add(new Label("minTransferRate", ""));
                        item.add(new Label("avgTransferRate", ""));
                        item.add(new Label("maxTransferRate", ""));
                        item.add(new Label("transferRateUnit", ""));
                    } else {
                        // this action transfers data
                        item.add(new Label("minTransferRate", checkpointSummary.getMinTransferRate()));
                        item.add(new Label("avgTransferRate", checkpointSummary.getAvgTransferRate()));
                        item.add(new Label("maxTransferRate", checkpointSummary.getMaxTransferRate()));
                        item.add(new Label("transferRateUnit", transferRateUnit));
                    }
                }
            });
        }
    };
    loadQueuesContainer.setVisible(!loadQueues.isEmpty());

    WebMarkupContainer noLoadQueuesContainer = new WebMarkupContainer("noLoadQueuesContainer");
    noLoadQueuesContainer.setVisible(loadQueues.isEmpty());

    add(loadQueuesContainer);
    add(noLoadQueuesContainer);
}