Example usage for org.apache.wicket.util.resource AbstractResourceStreamWriter AbstractResourceStreamWriter

List of usage examples for org.apache.wicket.util.resource AbstractResourceStreamWriter AbstractResourceStreamWriter

Introduction

In this page you can find the example usage for org.apache.wicket.util.resource AbstractResourceStreamWriter AbstractResourceStreamWriter.

Prototype

AbstractResourceStreamWriter

Source Link

Usage

From source file:com.gitblit.wicket.pages.CommitDiffPage.java

License:Apache License

public CommitDiffPage(PageParameters params) {
    super(params);

    final Repository r = getRepository();
    final RevCommit commit = getCommit();
    final DiffComparator diffComparator = WicketUtils.getDiffComparator(params);

    List<String> parents = new ArrayList<String>();
    if (commit.getParentCount() > 0) {
        for (RevCommit parent : commit.getParents()) {
            parents.add(parent.name());//from  www  . ja va 2  s  .  co m
        }
    }

    // commit page links
    if (parents.size() == 0) {
        add(new Label("parentLink", getString("gb.none")));
    } else {
        add(new LinkPanel("parentLink", null, parents.get(0).substring(0, 8), CommitDiffPage.class,
                newCommitParameter(parents.get(0))));
    }
    add(new BookmarkablePageLink<Void>("patchLink", PatchPage.class,
            WicketUtils.newObjectParameter(repositoryName, objectId)));
    add(new BookmarkablePageLink<Void>("commitLink", CommitPage.class,
            WicketUtils.newObjectParameter(repositoryName, objectId)));
    add(new LinkPanel("whitespaceLink", null, getString(diffComparator.getOpposite().getTranslationKey()),
            CommitDiffPage.class,
            WicketUtils.newDiffParameter(repositoryName, objectId, diffComparator.getOpposite())));

    add(new CommitHeaderPanel("commitHeader", repositoryName, commit));

    final List<String> imageExtensions = app().settings().getStrings(Keys.web.imageExtensions);
    final ImageDiffHandler handler = new ImageDiffHandler(this, repositoryName,
            parents.isEmpty() ? null : parents.get(0), commit.getName(), imageExtensions);
    final int tabLength = app().settings().getInteger(Keys.web.tabLength, 4);
    final DiffOutput diff = DiffUtils.getCommitDiff(r, commit, diffComparator, DiffOutputType.HTML, handler,
            tabLength);
    if (handler.getImgDiffCount() > 0) {
        addBottomScript("scripts/imgdiff.js"); // Tiny support script for image diffs
    }

    // add commit diffstat
    int insertions = 0;
    int deletions = 0;
    for (PathChangeModel pcm : diff.stat.paths) {
        insertions += pcm.insertions;
        deletions += pcm.deletions;
    }
    add(new DiffStatPanel("diffStat", insertions, deletions));

    addFullText("fullMessage", commit.getFullMessage());

    // git notes
    List<GitNote> notes = JGitUtils.getNotesOnCommit(r, commit);
    ListDataProvider<GitNote> notesDp = new ListDataProvider<GitNote>(notes);
    DataView<GitNote> notesView = new DataView<GitNote>("notes", notesDp) {
        private static final long serialVersionUID = 1L;

        @Override
        public void populateItem(final Item<GitNote> item) {
            GitNote entry = item.getModelObject();
            item.add(new RefsPanel("refName", repositoryName, Arrays.asList(entry.notesRef)));
            item.add(createPersonPanel("authorName", entry.notesRef.getAuthorIdent(),
                    Constants.SearchType.AUTHOR));
            item.add(new AvatarImage("noteAuthorAvatar", entry.notesRef.getAuthorIdent()));
            item.add(WicketUtils.createTimestampLabel("authorDate", entry.notesRef.getAuthorIdent().getWhen(),
                    getTimeZone(), getTimeUtils()));
            item.add(new Label("noteContent", bugtraqProcessor().processPlainCommitMessage(getRepository(),
                    repositoryName, entry.content)).setEscapeModelStrings(false));
        }
    };
    add(notesView.setVisible(notes.size() > 0));

    // changed paths list
    add(new CommitLegendPanel("commitLegend", diff.stat.paths));
    ListDataProvider<PathChangeModel> pathsDp = new ListDataProvider<PathChangeModel>(diff.stat.paths);
    DataView<PathChangeModel> pathsView = new DataView<PathChangeModel>("changedPath", pathsDp) {
        private static final long serialVersionUID = 1L;
        int counter;

        @Override
        public void populateItem(final Item<PathChangeModel> item) {
            final PathChangeModel entry = item.getModelObject();

            Label changeType = new Label("changeType", "");
            WicketUtils.setChangeTypeCssClass(changeType, entry.changeType);
            setChangeTypeTooltip(changeType, entry.changeType);
            item.add(changeType);
            item.add(new DiffStatPanel("diffStat", entry.insertions, entry.deletions, true));
            item.add(WicketUtils.setHtmlTooltip(new Label("filestore", ""), getString("gb.filestore"))
                    .setVisible(entry.isFilestoreItem()));

            boolean hasSubmodule = false;
            String submodulePath = null;

            if (entry.isTree()) {
                // tree
                item.add(new LinkPanel("pathName", null, entry.path, TreePage.class,
                        WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path)));
            } else if (entry.isSubmodule()) {
                // submodule
                String submoduleId = entry.objectId;
                SubmoduleModel submodule = getSubmodule(entry.path);
                submodulePath = submodule.gitblitPath;
                hasSubmodule = submodule.hasSubmodule;

                // add relative link
                item.add(new LinkPanel("pathName", "list", entry.path + " @ " + getShortObjectId(submoduleId),
                        "#n" + entry.objectId));
            } else {
                // add relative link
                if (entry.isFilestoreItem()) {

                    item.add(new LinkPanel("pathName", "list", entry.path, new Link<Object>("link", null) {

                        private static final long serialVersionUID = 1L;

                        @Override
                        public void onClick() {
                            IResourceStream resourceStream = new AbstractResourceStreamWriter() {

                                private static final long serialVersionUID = 1L;

                                @Override
                                public void write(OutputStream output) {
                                    UserModel user = GitBlitWebSession.get().getUser();
                                    user = user == null ? UserModel.ANONYMOUS : user;

                                    app().filestore().downloadBlob(entry.getFilestoreOid(), user,
                                            getRepositoryModel(), output);
                                }
                            };

                            ResourceStreamRequestHandler resourceStreamRequestHandler = new ResourceStreamRequestHandler(
                                    resourceStream, entry.path);
                            getRequestCycle().scheduleRequestHandlerAfterCurrent(resourceStreamRequestHandler);
                        }
                    }));
                } else {
                    item.add(new LinkPanel("pathName", "list", entry.path, "#n" + entry.objectId));
                }
            }

            // quick links
            if (entry.isSubmodule()) {
                item.add(new ExternalLink("raw", "").setEnabled(false));
                // submodule
                item.add(new ExternalLink("patch", "").setEnabled(false));
                item.add(new BookmarkablePageLink<Void>("view", CommitPage.class,
                        WicketUtils.newObjectParameter(submodulePath, entry.objectId))
                                .setEnabled(hasSubmodule));
                item.add(new ExternalLink("blame", "").setEnabled(false));
                item.add(new BookmarkablePageLink<Void>("history", HistoryPage.class,
                        WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path))
                                .setEnabled(!entry.changeType.equals(ChangeType.ADD)));
            } else {
                // tree or blob
                item.add(new BookmarkablePageLink<Void>("patch", PatchPage.class,
                        WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path))
                                .setEnabled(!entry.changeType.equals(ChangeType.ADD)
                                        && !entry.changeType.equals(ChangeType.DELETE)));

                if (entry.isFilestoreItem()) {
                    item.add(new Link<Object>("view", null) {

                        private static final long serialVersionUID = 1L;

                        @Override
                        public void onClick() {

                            IResourceStream resourceStream = new AbstractResourceStreamWriter() {

                                private static final long serialVersionUID = 1L;

                                @Override
                                public void write(OutputStream output) {
                                    UserModel user = GitBlitWebSession.get().getUser();
                                    user = user == null ? UserModel.ANONYMOUS : user;

                                    app().filestore().downloadBlob(entry.getFilestoreOid(), user,
                                            getRepositoryModel(), output);
                                }
                            };

                            ResourceStreamRequestHandler resourceStreamRequestHandler = new ResourceStreamRequestHandler(
                                    resourceStream, entry.path);
                            getRequestCycle().scheduleRequestHandlerAfterCurrent(resourceStreamRequestHandler);
                        }
                    });

                    item.add(new Link<Object>("raw", null) {

                        private static final long serialVersionUID = 1L;

                        @Override
                        public void onClick() {

                            IResourceStream resourceStream = new AbstractResourceStreamWriter() {

                                private static final long serialVersionUID = 1L;

                                @Override
                                public void write(OutputStream output) {
                                    UserModel user = GitBlitWebSession.get().getUser();
                                    user = user == null ? UserModel.ANONYMOUS : user;

                                    app().filestore().downloadBlob(entry.getFilestoreOid(), user,
                                            getRepositoryModel(), output);
                                }
                            };

                            ResourceStreamRequestHandler resourceStreamRequestHandler = new ResourceStreamRequestHandler(
                                    resourceStream, entry.path);
                            getRequestCycle().scheduleRequestHandlerAfterCurrent(resourceStreamRequestHandler);
                        }
                    });
                } else {
                    item.add(new BookmarkablePageLink<Void>("view", BlobPage.class,
                            WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path))
                                    .setEnabled(!entry.changeType.equals(ChangeType.DELETE)));

                    item.add(new ExternalLink("raw",
                            RawServlet.asLink(getContextUrl(), repositoryName, entry.commitId, entry.path))
                                    .setEnabled(!entry.changeType.equals(ChangeType.DELETE)));
                }

                item.add(new BookmarkablePageLink<Void>("blame", BlamePage.class,
                        WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path))
                                .setEnabled(!entry.changeType.equals(ChangeType.ADD)
                                        && !entry.changeType.equals(ChangeType.DELETE)));
                item.add(new BookmarkablePageLink<Void>("history", HistoryPage.class,
                        WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path))
                                .setEnabled(!entry.changeType.equals(ChangeType.ADD)));
            }

            WicketUtils.setAlternatingBackground(item, counter);
            counter++;
        }
    };
    add(pathsView);
    add(new Label("diffText", diff.content).setEscapeModelStrings(false));
}

From source file:com.gitblit.wicket.pages.CommitPage.java

License:Apache License

public CommitPage(PageParameters params) {
    super(params);

    Repository r = getRepository();//w  w  w . j  a  v  a  2 s  . c  o m
    RevCommit c = getCommit();

    List<String> parents = new ArrayList<String>();
    if (c.getParentCount() > 0) {
        for (RevCommit parent : c.getParents()) {
            parents.add(parent.name());
        }
    }

    // commit page links
    if (parents.size() == 0) {
        add(new Label("parentLink", "none"));
        add(new Label("commitdiffLink", getString("gb.commitdiff")));
    } else {
        add(new LinkPanel("parentLink", null, getShortObjectId(parents.get(0)), CommitPage.class,
                newCommitParameter(parents.get(0))));
        add(new LinkPanel("commitdiffLink", null, new StringResourceModel("gb.commitdiff", this, null),
                CommitDiffPage.class, WicketUtils.newObjectParameter(repositoryName, objectId)));
    }
    add(new BookmarkablePageLink<Void>("patchLink", PatchPage.class,
            WicketUtils.newObjectParameter(repositoryName, objectId)));

    add(new CommitHeaderPanel("commitHeader", repositoryName, c));

    addRefs(r, c);

    // author
    add(createPersonPanel("commitAuthor", c.getAuthorIdent(), Constants.SearchType.AUTHOR));
    add(WicketUtils.createTimestampLabel("commitAuthorDate", c.getAuthorIdent().getWhen(), getTimeZone(),
            getTimeUtils()));

    // committer
    add(createPersonPanel("commitCommitter", c.getCommitterIdent(), Constants.SearchType.COMMITTER));
    add(WicketUtils.createTimestampLabel("commitCommitterDate", c.getCommitterIdent().getWhen(), getTimeZone(),
            getTimeUtils()));

    add(new Label("commitId", c.getName()));

    add(new LinkPanel("commitTree", "list", c.getTree().getName(), TreePage.class, newCommitParameter()));
    add(new BookmarkablePageLink<Void>("treeLink", TreePage.class, newCommitParameter()));
    final String baseUrl = WicketUtils.getGitblitURL(getRequest());

    add(new CompressedDownloadsPanel("compressedLinks", baseUrl, repositoryName, objectId, null));

    // Parent Commits
    ListDataProvider<String> parentsDp = new ListDataProvider<String>(parents);
    DataView<String> parentsView = new DataView<String>("commitParents", parentsDp) {
        private static final long serialVersionUID = 1L;

        @Override
        public void populateItem(final Item<String> item) {
            String entry = item.getModelObject();
            item.add(new LinkPanel("commitParent", "list", entry, CommitPage.class, newCommitParameter(entry)));
            item.add(new BookmarkablePageLink<Void>("view", CommitPage.class, newCommitParameter(entry)));
            item.add(new BookmarkablePageLink<Void>("diff", CommitDiffPage.class, newCommitParameter(entry)));
        }
    };
    add(parentsView);

    addFullText("fullMessage", c.getFullMessage());

    // git notes
    List<GitNote> notes = JGitUtils.getNotesOnCommit(r, c);
    ListDataProvider<GitNote> notesDp = new ListDataProvider<GitNote>(notes);
    DataView<GitNote> notesView = new DataView<GitNote>("notes", notesDp) {
        private static final long serialVersionUID = 1L;

        @Override
        public void populateItem(final Item<GitNote> item) {
            GitNote entry = item.getModelObject();
            item.add(new RefsPanel("refName", repositoryName, Arrays.asList(entry.notesRef)));
            item.add(createPersonPanel("authorName", entry.notesRef.getAuthorIdent(),
                    Constants.SearchType.AUTHOR));
            item.add(new AvatarImage("noteAuthorAvatar", entry.notesRef.getAuthorIdent()));
            item.add(WicketUtils.createTimestampLabel("authorDate", entry.notesRef.getAuthorIdent().getWhen(),
                    getTimeZone(), getTimeUtils()));
            item.add(new Label("noteContent", bugtraqProcessor().processPlainCommitMessage(getRepository(),
                    repositoryName, entry.content)).setEscapeModelStrings(false));
        }
    };
    add(notesView.setVisible(notes.size() > 0));

    // changed paths list
    List<PathChangeModel> paths = JGitUtils.getFilesInCommit(r, c);

    // add commit diffstat
    int insertions = 0;
    int deletions = 0;
    for (PathChangeModel pcm : paths) {
        insertions += pcm.insertions;
        deletions += pcm.deletions;
    }
    add(new DiffStatPanel("diffStat", insertions, deletions));

    add(new CommitLegendPanel("commitLegend", paths));
    ListDataProvider<PathChangeModel> pathsDp = new ListDataProvider<PathChangeModel>(paths);
    DataView<PathChangeModel> pathsView = new DataView<PathChangeModel>("changedPath", pathsDp) {
        private static final long serialVersionUID = 1L;
        int counter;

        @Override
        public void populateItem(final Item<PathChangeModel> item) {
            final PathChangeModel entry = item.getModelObject();

            Label changeType = new Label("changeType", "");
            WicketUtils.setChangeTypeCssClass(changeType, entry.changeType);
            setChangeTypeTooltip(changeType, entry.changeType);
            item.add(changeType);
            item.add(new DiffStatPanel("diffStat", entry.insertions, entry.deletions, true));
            item.add(WicketUtils.setHtmlTooltip(new Label("filestore", ""), getString("gb.filestore"))
                    .setVisible(entry.isFilestoreItem()));

            boolean hasSubmodule = false;
            String submodulePath = null;
            if (entry.isTree()) {
                // tree
                item.add(new LinkPanel("pathName", null, entry.path, TreePage.class,
                        WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path)));
            } else if (entry.isSubmodule()) {
                // submodule
                String submoduleId = entry.objectId;
                SubmoduleModel submodule = getSubmodule(entry.path);
                submodulePath = submodule.gitblitPath;
                hasSubmodule = submodule.hasSubmodule;

                item.add(new LinkPanel("pathName", "list", entry.path + " @ " + getShortObjectId(submoduleId),
                        TreePage.class, WicketUtils.newPathParameter(submodulePath, submoduleId, ""))
                                .setEnabled(hasSubmodule));
            } else {
                // blob
                String displayPath = entry.path;
                String path = entry.path;
                if (entry.isSymlink()) {
                    path = JGitUtils.getStringContent(getRepository(), getCommit().getTree(), path);
                    displayPath = entry.path + " -> " + path;
                }

                if (entry.isFilestoreItem()) {
                    item.add(new LinkPanel("pathName", "list", entry.path, new Link<Object>("link", null) {

                        private static final long serialVersionUID = 1L;

                        @Override
                        public void onClick() {

                            IResourceStream resourceStream = new AbstractResourceStreamWriter() {

                                private static final long serialVersionUID = 1L;

                                @Override
                                public void write(OutputStream output) {
                                    UserModel user = GitBlitWebSession.get().getUser();
                                    user = user == null ? UserModel.ANONYMOUS : user;

                                    app().filestore().downloadBlob(entry.getFilestoreOid(), user,
                                            getRepositoryModel(), output);
                                }
                            };

                            ResourceStreamRequestHandler resourceStreamRequestHandler = new ResourceStreamRequestHandler(
                                    resourceStream, entry.path);
                            getRequestCycle().scheduleRequestHandlerAfterCurrent(resourceStreamRequestHandler);
                        }
                    }));

                } else {
                    item.add(new LinkPanel("pathName", "list", displayPath, BlobPage.class,
                            WicketUtils.newPathParameter(repositoryName, entry.commitId, path)));
                }
            }

            // quick links
            if (entry.isSubmodule()) {
                item.add(new ExternalLink("raw", "").setEnabled(false));

                // submodule
                item.add(new BookmarkablePageLink<Void>("diff", BlobDiffPage.class,
                        WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path))
                                .setEnabled(!entry.changeType.equals(ChangeType.ADD)));
                item.add(new BookmarkablePageLink<Void>("view", CommitPage.class,
                        WicketUtils.newObjectParameter(submodulePath, entry.objectId))
                                .setEnabled(hasSubmodule));
                item.add(new ExternalLink("blame", "").setEnabled(false));
                item.add(new BookmarkablePageLink<Void>("history", HistoryPage.class,
                        WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path))
                                .setEnabled(!entry.changeType.equals(ChangeType.ADD)));
            } else {
                // tree or blob
                item.add(new BookmarkablePageLink<Void>("diff", BlobDiffPage.class,
                        WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path))
                                .setEnabled(!entry.changeType.equals(ChangeType.ADD)
                                        && !entry.changeType.equals(ChangeType.DELETE)));

                if (entry.isFilestoreItem()) {
                    item.add(new Link<Object>("view", null) {

                        private static final long serialVersionUID = 1L;

                        @Override
                        public void onClick() {

                            IResourceStream resourceStream = new AbstractResourceStreamWriter() {

                                private static final long serialVersionUID = 1L;

                                @Override
                                public void write(OutputStream output) {
                                    UserModel user = GitBlitWebSession.get().getUser();
                                    user = user == null ? UserModel.ANONYMOUS : user;

                                    app().filestore().downloadBlob(entry.getFilestoreOid(), user,
                                            getRepositoryModel(), output);
                                }
                            };

                            ResourceStreamRequestHandler resourceStreamRequestHandler = new ResourceStreamRequestHandler(
                                    resourceStream, entry.path);
                            getRequestCycle().scheduleRequestHandlerAfterCurrent(resourceStreamRequestHandler);
                        }
                    });

                    item.add(new Link<Object>("raw", null) {

                        private static final long serialVersionUID = 1L;

                        @Override
                        public void onClick() {

                            IResourceStream resourceStream = new AbstractResourceStreamWriter() {

                                private static final long serialVersionUID = 1L;

                                @Override
                                public void write(OutputStream output) {
                                    UserModel user = GitBlitWebSession.get().getUser();
                                    user = user == null ? UserModel.ANONYMOUS : user;

                                    app().filestore().downloadBlob(entry.getFilestoreOid(), user,
                                            getRepositoryModel(), output);
                                }
                            };

                            ResourceStreamRequestHandler resourceStreamRequestHandler = new ResourceStreamRequestHandler(
                                    resourceStream, entry.path);
                            getRequestCycle().scheduleRequestHandlerAfterCurrent(resourceStreamRequestHandler);
                        }
                    });

                } else {
                    item.add(new BookmarkablePageLink<Void>("view", BlobPage.class,
                            WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path))
                                    .setEnabled(!entry.changeType.equals(ChangeType.DELETE)));
                    String rawUrl = RawServlet.asLink(getContextUrl(), repositoryName, entry.commitId,
                            entry.path);
                    item.add(new ExternalLink("raw", rawUrl)
                            .setEnabled(!entry.changeType.equals(ChangeType.DELETE)));
                }
                item.add(new BookmarkablePageLink<Void>("blame", BlamePage.class,
                        WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path))
                                .setEnabled(!entry.changeType.equals(ChangeType.ADD)
                                        && !entry.changeType.equals(ChangeType.DELETE)));
                item.add(new BookmarkablePageLink<Void>("history", HistoryPage.class,
                        WicketUtils.newPathParameter(repositoryName, entry.commitId, entry.path))
                                .setEnabled(!entry.changeType.equals(ChangeType.ADD)));
            }

            WicketUtils.setAlternatingBackground(item, counter);
            counter++;
        }
    };
    add(pathsView);
}

From source file:com.gitblit.wicket.pages.TreePage.java

License:Apache License

public TreePage(PageParameters params) {
    super(params);

    final String path = WicketUtils.getPath(params);

    Repository r = getRepository();//from  ww  w.j  a  v  a2  s  .co  m
    RevCommit commit = getCommit();
    List<PathModel> paths = JGitUtils.getFilesInPath2(r, path, commit);

    // tree page links
    add(new BookmarkablePageLink<Void>("historyLink", HistoryPage.class,
            WicketUtils.newPathParameter(repositoryName, objectId, path)));
    add(new CompressedDownloadsPanel("compressedLinks",
            GitBlitRequestUtils.getRelativePathPrefixToContextRoot(), repositoryName, objectId, path));

    add(new CommitHeaderPanel("commitHeader", repositoryName, commit));

    // breadcrumbs
    add(new PathBreadcrumbsPanel("breadcrumbs", repositoryName, path, objectId));
    if (path != null && path.trim().length() > 0) {
        // add .. parent path entry
        String parentPath = null;
        if (path.lastIndexOf('/') > -1) {
            parentPath = path.substring(0, path.lastIndexOf('/'));
        }
        PathModel model = new PathModel("..", parentPath, null, 0, FileMode.TREE.getBits(), null, objectId);
        model.isParentPath = true;
        paths.add(0, model);
    }

    final String id = getBestCommitId(commit);

    final ByteFormat byteFormat = new ByteFormat();
    final String baseUrl = WicketUtils.getGitblitURL(getRequest());

    // changed paths list
    ListDataProvider<PathModel> pathsDp = new ListDataProvider<PathModel>(paths);
    DataView<PathModel> pathsView = new DataView<PathModel>("changedPath", pathsDp) {
        private static final long serialVersionUID = 1L;
        int counter;

        @Override
        public void populateItem(final Item<PathModel> item) {
            final PathModel entry = item.getModelObject();

            item.add(new Label("pathPermissions", JGitUtils.getPermissionsFromMode(entry.mode)));
            item.add(WicketUtils.setHtmlTooltip(new Label("filestore", ""), getString("gb.filestore"))
                    .setVisible(entry.isFilestoreItem()));

            if (entry.isParentPath) {
                // parent .. path
                item.add(WicketUtils.newBlankImage("pathIcon"));
                item.add(new Label("pathSize", ""));
                item.add(new LinkPanel("pathName", null, entry.name, TreePage.class,
                        WicketUtils.newPathParameter(repositoryName, id, entry.path)));
                item.add(new Label("pathLinks", ""));
            } else {
                if (entry.isTree()) {
                    // folder/tree link
                    item.add(WicketUtils.newImage("pathIcon", "folder_16x16.png"));
                    item.add(new Label("pathSize", ""));
                    item.add(new LinkPanel("pathName", "list", entry.name, TreePage.class,
                            WicketUtils.newPathParameter(repositoryName, id, entry.path)));

                    // links
                    Fragment links = new Fragment("pathLinks", "treeLinks", TreePage.this);
                    links.add(new BookmarkablePageLink<Void>("tree", TreePage.class,
                            WicketUtils.newPathParameter(repositoryName, id, entry.path)));
                    links.add(new BookmarkablePageLink<Void>("history", HistoryPage.class,
                            WicketUtils.newPathParameter(repositoryName, id, entry.path)));
                    links.add(new CompressedDownloadsPanel("compressedLinks", baseUrl, repositoryName, objectId,
                            entry.path));

                    item.add(links);
                } else if (entry.isSubmodule()) {
                    // submodule
                    String submoduleId = entry.objectId;
                    String submodulePath;
                    boolean hasSubmodule = false;
                    SubmoduleModel submodule = getSubmodule(entry.path);
                    submodulePath = submodule.gitblitPath;
                    hasSubmodule = submodule.hasSubmodule;

                    item.add(WicketUtils.newImage("pathIcon", "git-orange-16x16.png"));
                    item.add(new Label("pathSize", ""));
                    item.add(new LinkPanel("pathName", "list",
                            entry.name + " @ " + getShortObjectId(submoduleId), TreePage.class,
                            WicketUtils.newPathParameter(submodulePath, submoduleId, ""))
                                    .setEnabled(hasSubmodule));

                    Fragment links = new Fragment("pathLinks", "submoduleLinks", TreePage.this);
                    links.add(new BookmarkablePageLink<Void>("view", SummaryPage.class,
                            WicketUtils.newRepositoryParameter(submodulePath)).setEnabled(hasSubmodule));
                    links.add(new BookmarkablePageLink<Void>("tree", TreePage.class,
                            WicketUtils.newPathParameter(submodulePath, submoduleId, ""))
                                    .setEnabled(hasSubmodule));
                    links.add(new BookmarkablePageLink<Void>("history", HistoryPage.class,
                            WicketUtils.newPathParameter(repositoryName, id, entry.path)));
                    links.add(new CompressedDownloadsPanel("compressedLinks", baseUrl, submodulePath,
                            submoduleId, "").setEnabled(hasSubmodule));
                    item.add(links);
                } else {
                    // blob link
                    String displayPath = entry.name;
                    String path = entry.path;
                    if (entry.isSymlink()) {
                        path = JGitUtils.getStringContent(getRepository(), getCommit().getTree(), path);
                        displayPath = entry.name + " -> " + path;
                    }
                    item.add(WicketUtils.getFileImage("pathIcon", entry.name));
                    item.add(new Label("pathSize", byteFormat.format(entry.size)));

                    // links
                    Fragment links = new Fragment("pathLinks", "blobLinks", TreePage.this);

                    if (entry.isFilestoreItem()) {
                        item.add(new LinkPanel("pathName", "list", displayPath, new Link<Object>("link", null) {

                            private static final long serialVersionUID = 1L;

                            @Override
                            public void onClick() {

                                IResourceStream resourceStream = new AbstractResourceStreamWriter() {

                                    private static final long serialVersionUID = 1L;

                                    @Override
                                    public void write(OutputStream output) {
                                        UserModel user = GitBlitWebSession.get().getUser();
                                        user = user == null ? UserModel.ANONYMOUS : user;

                                        app().filestore().downloadBlob(entry.getFilestoreOid(), user,
                                                getRepositoryModel(), output);
                                    }
                                };

                                ResourceStreamRequestHandler resourceStreamRequestHandler = new ResourceStreamRequestHandler(
                                        resourceStream, entry.path);
                                getRequestCycle()
                                        .scheduleRequestHandlerAfterCurrent(resourceStreamRequestHandler);

                            }
                        }));

                        links.add(new Link<Object>("view", null) {

                            private static final long serialVersionUID = 1L;

                            @Override
                            public void onClick() {

                                IResourceStream resourceStream = new AbstractResourceStreamWriter() {

                                    private static final long serialVersionUID = 1L;

                                    @Override
                                    public void write(OutputStream output) {
                                        UserModel user = GitBlitWebSession.get().getUser();
                                        user = user == null ? UserModel.ANONYMOUS : user;

                                        app().filestore().downloadBlob(entry.getFilestoreOid(), user,
                                                getRepositoryModel(), output);
                                    }
                                };

                                ResourceStreamRequestHandler resourceStreamRequestHandler = new ResourceStreamRequestHandler(
                                        resourceStream, entry.path);
                                getRequestCycle()
                                        .scheduleRequestHandlerAfterCurrent(resourceStreamRequestHandler);
                            }
                        });

                        links.add(new Link<Object>("raw", null) {

                            private static final long serialVersionUID = 1L;

                            @Override
                            public void onClick() {

                                IResourceStream resourceStream = new AbstractResourceStreamWriter() {

                                    private static final long serialVersionUID = 1L;

                                    @Override
                                    public void write(OutputStream output) {
                                        UserModel user = GitBlitWebSession.get().getUser();
                                        user = user == null ? UserModel.ANONYMOUS : user;

                                        app().filestore().downloadBlob(entry.getFilestoreOid(), user,
                                                getRepositoryModel(), output);
                                    }
                                };

                                ResourceStreamRequestHandler resourceStreamRequestHandler = new ResourceStreamRequestHandler(
                                        resourceStream, entry.path);
                                getRequestCycle()
                                        .scheduleRequestHandlerAfterCurrent(resourceStreamRequestHandler);
                            }
                        });

                    } else {
                        item.add(new LinkPanel("pathName", "list", displayPath, BlobPage.class,
                                WicketUtils.newPathParameter(repositoryName, id, path)));

                        links.add(new BookmarkablePageLink<Void>("view", BlobPage.class,
                                WicketUtils.newPathParameter(repositoryName, id, path)));
                        String rawUrl = RawServlet.asLink(getContextUrl(), repositoryName, id, path);
                        links.add(new ExternalLink("raw", rawUrl));
                    }

                    links.add(new BookmarkablePageLink<Void>("blame", BlamePage.class,
                            WicketUtils.newPathParameter(repositoryName, id, path)));
                    links.add(new BookmarkablePageLink<Void>("history", HistoryPage.class,
                            WicketUtils.newPathParameter(repositoryName, id, path)));
                    item.add(links);
                }
            }
            WicketUtils.setAlternatingBackground(item, counter);
            counter++;
        }
    };
    add(pathsView);
}

From source file:com.senacor.wbs.web.project.ProjectListPanel.java

License:Apache License

public ProjectListPanel(final String id, final List<Project> projects) {
    super(id);//from ww w  .  ja  v a2 s . c o  m
    this.locale = getLocale();
    SortableListDataProvider<Project> projectProvider = new SortableListDataProvider<Project>(projects) {
        @Override
        protected Locale getLocale() {
            return ProjectListPanel.this.getLocale();
        }

        public IModel model(final Object object) {
            return new CompoundPropertyModel(object);
        }
    };
    projectProvider.setSort("name", true);
    dataView = new DataView("projects", projectProvider, 4) {
        @Override
        protected void populateItem(final Item item) {
            Project project = (Project) item.getModelObject();
            PageParameters pageParameters = new PageParameters();
            pageParameters.put("projectId", project.getId());
            item.add(new BookmarkablePageLink("tasks", ProjectDetailsPage.class, pageParameters)
                    .add(new Label("id")));
            item.add(new Label("kuerzel"));
            item.add(new Label("titel", project.getName()));
            item.add(new Label("budget"));
            item.add(new Label("costPerHour"));
            item.add(new Label("start"));
            item.add(new Label("ende"));
            item.add(new Label("state"));
            // Alternieren der Farbe zwischen geraden und
            // ungeraden Zeilen
            item.add(new AttributeModifier("class", true, new AbstractReadOnlyModel() {
                @Override
                public Object getObject() {
                    return (item.getIndex() % 2 == 1) ? "even" : "odd";
                }
            }));
        }
    };
    add(dataView);
    Form localeForm = new Form("localeForm");
    ImageButton deButton = new ImageButton("langde", new ResourceReference(BaseWBSPage.class, "de.png")) {
        @Override
        public void onSubmit() {
            ProjectListPanel.this.locale = Locale.GERMANY;
        }
    };
    localeForm.add(deButton);
    ImageButton usButton = new ImageButton("langus", new ResourceReference(BaseWBSPage.class, "us.png")) {
        @Override
        public void onSubmit() {
            ProjectListPanel.this.locale = Locale.US;
        }
    };
    localeForm.add(usButton);
    add(localeForm);
    final IResourceStream pdfResourceStream = new AbstractResourceStreamWriter() {
        public void write(final OutputStream output) {
            Document document = new Document();
            try {
                PdfWriter.getInstance(document, output);
                document.open();
                // document.add(new
                // Paragraph("WBS-Projektliste"));
                // document.add(new Paragraph(""));
                PdfPTable table = new PdfPTable(new float[] { 1f, 1f, 2f, 1f });
                PdfPCell cell = new PdfPCell(new Paragraph("WBS-Projektliste"));
                cell.setColspan(4);
                cell.setGrayFill(0.8f);
                table.addCell(cell);
                table.addCell("ID");
                table.addCell("Krzel");
                table.addCell("Titel");
                table.addCell("Budget in PT");
                for (Project project : projects) {
                    table.addCell("" + project.getId());
                    table.addCell(project.getKuerzel());
                    table.addCell(project.getName());
                    table.addCell("" + project.getBudget());
                }
                document.add(table);
                document.close();
            } catch (DocumentException e) {
                throw new RuntimeException(e);
            }
        }

        public String getContentType() {
            return "application/pdf";
        }
    };
    WebResource projectsResource = new WebResource() {
        {
            setCacheable(false);
        }

        @Override
        public IResourceStream getResourceStream() {
            return pdfResourceStream;
        }

        @Override
        protected void setHeaders(final WebResponse response) {
            super.setHeaders(response);
            // response.setAttachmentHeader("projekte.pdf");
        }
    };
    WebResource projectsResourceDL = new WebResource() {
        {
            setCacheable(false);
        }

        @Override
        public IResourceStream getResourceStream() {
            return pdfResourceStream;
        }

        @Override
        protected void setHeaders(final WebResponse response) {
            super.setHeaders(response);
            response.setAttachmentHeader("projekte.pdf");
        }
    };
    ResourceLink pdfDownload = new ResourceLink("pdfDownload", projectsResourceDL);
    ResourceLink pdfPopup = new ResourceLink("pdfPopup", projectsResource);
    PopupSettings popupSettings = new PopupSettings(PopupSettings.STATUS_BAR);
    popupSettings.setWidth(500);
    popupSettings.setHeight(700);
    pdfPopup.setPopupSettings(popupSettings);
    Link pdfReqTarget = new Link("pdfReqTarget") {
        @Override
        public void onClick() {
            RequestCycle.get()
                    .setRequestTarget(new ResourceStreamRequestTarget(pdfResourceStream, "projekte.pdf"));
        }
    };
    add(pdfReqTarget);
    add(pdfDownload);
    add(pdfPopup);
    add(new OrderByBorder("orderByKuerzel", "kuerzel", projectProvider));
    add(new OrderByBorder("orderByName", "name", projectProvider));
    add(new OrderByBorder("orderByBudget", "budget", projectProvider));
    add(new OrderByBorder("orderByCostPerHour", "costPerHour", projectProvider));
    add(new OrderByBorder("orderByStart", "start", projectProvider));
    add(new OrderByBorder("orderByEnde", "ende", projectProvider));
    add(new OrderByBorder("orderByState", "state", projectProvider));
    add(new PagingNavigator("projectsNavigator", dataView));
}

From source file:hsa.awp.admingui.report.view.CampaignListPrintingPanel.java

License:Open Source License

private Form<Object> createConflictListForm() {
    Form<Object> form = new Form<Object>("conflict.form");

    final EventSortedListSelectorPanel listSelector = new EventSortedListSelectorPanel("conflict.listSelector",
            controller.getEventsByMandator(getSession()), new LinkedList<Event>());
    listSelector.setOutputMarkupId(true);

    Button downloadButton = new Button("conflict.txtDownload") {
        public void onSubmit() {

            final ConflictList list = new ConflictList(listSelector.getSelected());

            IResourceStream resourceStream = new AbstractResourceStreamWriter() {
                /**/*from ww  w  . j a v a  2 s .  c om*/
                 * generated UID.
                 */
                private static final long serialVersionUID = -7988815924081508988L;

                @Override
                public String getContentType() {

                    return list.getCsvProperties().getMimeType();
                }

                public void write(OutputStream output) {
                    Printer printer = new CsvPrinter();
                    printer.setOutputStream(output);
                    printer.print(list);
                }
            };

            getRequestCycle().setRequestTarget(new ResourceStreamRequestTarget(resourceStream)
                    .setFileName(list.toString() + list.getCsvProperties().getFileExtension()));
        }
    };

    form.add(listSelector);
    form.add(createListInfoLabel("conflict.listInfo", PrintableLists.COURSECONFLICTLIST));
    form.add(downloadButton);
    return form;
}

From source file:hsa.awp.admingui.report.view.CampaignListPrintingPanel.java

License:Open Source License

private Form<Object> createBookinglistForm() {
    Form<Object> form = new Form<Object>("bookingList.form");

    final DropDownChoice<Campaign> campaignList = createCampaignList("bookingList.sourceList");

    Button downloadButton = new Button("bookingList.pdfDownload") {
        public void onSubmit() {

            final BookingList list = new BookingList(
                    controller.getCampaignById(campaignList.getModelObject().getId()));

            IResourceStream resourceStream = new AbstractResourceStreamWriter() {
                /**/*w w w  .  j a  v  a  2s .c  om*/
                 * generated UID.
                 */
                private static final long serialVersionUID = -7988815924081508988L;

                @Override
                public String getContentType() {

                    return list.getPdfProperties().getMimeType();
                }

                public void write(OutputStream output) {
                    Printer printer = new PdfPrinter();
                    printer.setOutputStream(output);
                    printer.print(list);
                }
            };

            getRequestCycle().setRequestTarget(new ResourceStreamRequestTarget(resourceStream)
                    .setFileName(campaignList.getModelObject().getName() + " " + list.toString()
                            + list.getPdfProperties().getFileExtension()));
        }
    };

    form.add(campaignList);
    form.add(createListInfoLabel("bookingList.listInfo", PrintableLists.BOOKINGLIST));
    form.add(downloadButton);

    return form;
}

From source file:hsa.awp.admingui.report.view.CampaignListPrintingPanel.java

License:Open Source License

private Form<Object> createCourseParticipationForm() {
    Form<Object> form = new Form<Object>("courseParticipation.form");

    final DropDownChoice<Campaign> campaignList = createCampaignList("courseParticipation.sourceList");

    Button downloadButton = new Button("courseParticipation.txtDownload") {
        public void onSubmit() {

            final CourseParticipationList list = new CourseParticipationList(
                    controller.getCampaignById(campaignList.getModelObject().getId()));

            IResourceStream resourceStream = new AbstractResourceStreamWriter() {
                /**// ww w.ja  v  a 2 s . co m
                 * generated UID.
                 */
                private static final long serialVersionUID = -798881592408150838L;

                @Override
                public String getContentType() {

                    return list.getTxtProperties().getMimeType();
                }

                public void write(OutputStream output) {
                    Printer printer = new TxtPrinter();
                    printer.setOutputStream(output);
                    printer.print(list);
                }
            };

            getRequestCycle().setRequestTarget(new ResourceStreamRequestTarget(resourceStream)
                    .setFileName(campaignList.getModelObject().getName() + " " + list.toString()
                            + list.getTxtProperties().getFileExtension()));
        }
    };

    form.add(campaignList);
    form.add(createListInfoLabel("courseParticipation.listInfo", PrintableLists.COURSEPARTICIPATIONLIST));
    form.add(downloadButton);

    return form;
}

From source file:hsa.awp.admingui.report.view.CampaignListPrintingPanel.java

License:Open Source License

private Form<Object> createExamOfficelistForm() {
    Form<Object> form = new Form<Object>("examOffice.form");

    final DropDownChoice<Campaign> campaignList = createCampaignList("examOffice.sourceList");

    Button downloadButton = new Button("examOffice.txtDownload") {
        public void onSubmit() {

            final ExamOfficeList list = new ExamOfficeList(
                    controller.getCampaignById(campaignList.getModelObject().getId()));

            IResourceStream resourceStream = new AbstractResourceStreamWriter() {
                /**//from w  w w  . ja  v a2  s.com
                 * generated UID.
                 */
                private static final long serialVersionUID = -7988815924081508988L;

                @Override
                public String getContentType() {

                    return list.getTxtProperties().getMimeType();
                }

                public void write(OutputStream output) {
                    Printer printer = new TxtPrinter();
                    printer.setOutputStream(output);
                    printer.print(list);
                }
            };

            getRequestCycle().setRequestTarget(new ResourceStreamRequestTarget(resourceStream)
                    .setFileName(campaignList.getModelObject().getName() + " " + list.toString()
                            + list.getTxtProperties().getFileExtension()));
        }
    };

    form.add(campaignList);
    form.add(createListInfoLabel("examOffice.listInfo", PrintableLists.EXAMOFFICELIST));
    form.add(downloadButton);

    return form;
}

From source file:hsa.awp.admingui.report.view.EventListPrintingPanel.java

License:Open Source License

/**
 * Constructor.//w  w  w.ja  va2  s  . c o m
 *
 * @param id wicket:id
 */
public EventListPrintingPanel(String id) {

    super(id);

    final DropDownChoice<Campaign> source = new DropDownChoice<Campaign>("eventListPrintingPanel.sourceList",
            new Model<Campaign>(), controller.getCampaignsByMandator(getSession()),
            new ChoiceRenderer<Campaign>("name"));

    final CheckBox matNumber = new CheckBox("eventListPrintingPanel.matNumber", new Model<Boolean>());
    final CheckBox email = new CheckBox("eventListPrintingPanel.email", new Model<Boolean>());

    listSelector = new EventSortedListSelectorPanel("eventListPrintingPanel.listSelector",
            getSelectableEvents(), new LinkedList<Event>());
    listSelector.setOutputMarkupId(true);

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

    source.add(new AjaxFormComponentUpdatingBehavior("onchange") {
        /**
         * uuid.
         */
        private static final long serialVersionUID = 1L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {

            if (source.getModelObject() == null) {
                listSelector.setVisible(false);
            } else {
                EventSortedListSelectorPanel eventSelector = new EventSortedListSelectorPanel(
                        "eventListPrintingPanel.listSelector",
                        controller.getEventsByCampaign(source.getModelObject()), new LinkedList<Event>());
                listSelector.replaceWith(eventSelector);
                listSelector = eventSelector;
                listSelector.setVisible(true);
            }
            target.addComponent(form);
        }
    });

    Button pdfPrint = new Button("eventListPrintingPanel.pdfDownload") {
        @Override
        public void onSubmit() {

            if (listSelector.getSelected().size() <= 0) {
                error("Keine Veranstaltung gewhlt");
                return;
            }

            final List<ExportList> lists = new ArrayList<ExportList>();
            for (Event event : listSelector.getSelected()) {
                lists.add(new ParticipantList(event, matNumber.getModelObject(), email.getModelObject()));
            }

            IResourceStream resourceStream = new AbstractResourceStreamWriter() {
                /**
                 * generated UID.
                 */
                private static final long serialVersionUID = -7988815924081508988L;

                @Override
                public String getContentType() {

                    return ((PdfPrintable) lists.get(0)).getPdfProperties().getMimeType();
                }

                public void write(OutputStream output) {
                    Printer printer = new PdfPrinter();
                    printer.setOutputStream(output);
                    printer.print(lists);
                }
            };

            getRequestCycle().setRequestTarget(new ResourceStreamRequestTarget(resourceStream).setFileName(
                    "Teilnehmerliste" + ((PdfPrintable) lists.get(0)).getPdfProperties().getFileExtension()));
            return;
        }
    };

    Button csvPrint = new Button("eventListPrintingPanel.csvDownload") {
        @Override
        public void onSubmit() {

            if (listSelector.getSelected().size() <= 0) {
                error("Keine Veranstaltung gewhlt");
                return;
            }

            final List<ExportList> lists = new ArrayList<ExportList>();
            for (Event event : listSelector.getSelected()) {
                lists.add(new ParticipantList(event, matNumber.getModelObject(), email.getModelObject(), true));
            }

            IResourceStream resourceStream = new AbstractResourceStreamWriter() {
                /**
                 * generated UID.
                 */
                private static final long serialVersionUID = -7988815924081508988L;

                @Override
                public String getContentType() {

                    return new CsvProperties().getMimeType();
                }

                public void write(OutputStream output) {
                    Printer printer = new CsvPrinter();
                    printer.setOutputStream(output);
                    printer.print(lists);
                }
            };

            getRequestCycle().setRequestTarget(new ResourceStreamRequestTarget(resourceStream)
                    .setFileName("Teilnehmerliste" + new CsvProperties().getFileExtension()));
        }
    };

    form.add(source);
    form.add(matNumber);
    form.add(email);
    form.add(listSelector);
    form.add(pdfPrint);
    form.add(csvPrint);

    add(form);

    add(new FeedbackPanel("feedback")

    );
}

From source file:hsa.awp.admingui.report.view.FormatSelectorPanel.java

License:Open Source License

public FormatSelectorPanel(String id) {
    super(id);// w  ww. jav a 2s.c om

    Button pdfPrint = new Button("pdf") {
        @Override
        public void onSubmit() {
            final ExportList list = getExportList();
            if (list instanceof PdfPrintable) {
                IResourceStream resourceStream = new AbstractResourceStreamWriter() {
                    /**
                     * generated UID.
                     */
                    private static final long serialVersionUID = -7988815924081508988L;

                    @Override
                    public String getContentType() {

                        return ((PdfPrintable) list).getPdfProperties().getMimeType();
                    }

                    public void write(OutputStream output) {
                        Printer printer = new PdfPrinter();
                        printer.setOutputStream(output);
                        printer.print(list);
                    }
                };

                getRequestCycle().setRequestTarget(new ResourceStreamRequestTarget(resourceStream).setFileName(
                        list.toString() + ((PdfPrintable) list).getPdfProperties().getFileExtension()));
            }
        }
    };

    Button txtPrint = new Button("txt") {
        @Override
        public void onSubmit() {
            final ExportList list = getExportList();
            if (list instanceof TxtPrintable) {
                IResourceStream resourceStream = new AbstractResourceStreamWriter() {
                    /**
                     * generated UID.
                     */
                    private static final long serialVersionUID = -7988815924081508988L;

                    @Override
                    public String getContentType() {

                        return ((TxtPrintable) list).getTxtProperties().getMimeType();
                    }

                    public void write(OutputStream output) {
                        Printer printer = new TxtPrinter();
                        printer.setOutputStream(output);
                        printer.print(list);
                    }
                };

                getRequestCycle().setRequestTarget(new ResourceStreamRequestTarget(resourceStream).setFileName(
                        list.toString() + ((TxtPrintable) list).getTxtProperties().getFileExtension()));
            }
        }
    };

    Button csvPrint = new Button("csv") {
        @Override
        public void onSubmit() {
            final ExportList list = getExportList();
            if (list instanceof CsvPrintable) {
                IResourceStream resourceStream = new AbstractResourceStreamWriter() {
                    /**
                     * generated UID.
                     */
                    private static final long serialVersionUID = -7988815924081508988L;

                    @Override
                    public String getContentType() {

                        return ((CsvPrintable) list).getCsvProperties().getMimeType();
                    }

                    public void write(OutputStream output) {
                        Printer printer = new CsvPrinter();
                        printer.setOutputStream(output);
                        printer.print(list);
                    }
                };

                getRequestCycle().setRequestTarget(new ResourceStreamRequestTarget(resourceStream).setFileName(
                        list.toString() + ((CsvPrintable) list).getCsvProperties().getFileExtension()));
            }
        }
    };

    pdfPrint.setOutputMarkupId(true);
    txtPrint.setOutputMarkupId(true);
    csvPrint.setOutputMarkupId(true);

    ExportList list = getExportList();
    boolean isPdfDocument = list instanceof PdfPrintable;
    boolean isTxtDocument = list instanceof TxtPrintable;
    boolean isCsvDocument = list instanceof CsvPrintable;

    pdfPrint.setVisible(isPdfDocument);
    txtPrint.setVisible(isTxtDocument);
    csvPrint.setVisible(isCsvDocument);

    add(pdfPrint);
    add(txtPrint);
    add(csvPrint);
}