List of usage examples for org.apache.wicket.util.resource AbstractResourceStreamWriter AbstractResourceStreamWriter
AbstractResourceStreamWriter
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); }